WebCAD-Lib-TS API 文档 - v1.0.0
    Preparing search index...

    Class LinearDimensionEnt

    线性标注实体

    用于标注两点之间的距离,由起点、终点和标注线位置点定义。

    import { LinearDimensionEnt, Point2D } from 'webcad-lib-ts';

    const linearDim = new LinearDimensionEnt(
    new Point2D(0, 0), // startPoint: 起点
    new Point2D(100, 0), // endPoint: 终点
    new Point2D(50, 20), // thirdPoint: 标注线位置点
    0 // dimAngle: 标注角度
    );
    linearDim.textHeight = 3.5;
    linearDim.arrowSize = 2.5;
    linearDim.scaleFactor = 1.0;

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    explode clearNestEntsCache boundingBox mapToDbDefaultProps getDisplayName setModified setExtData clearExtData hasExtData fromDefaultProps setDefaults fromDbDefaultProps applyStyle applyCurrentDocStyle getScaledArrowSize getScaledTextHeight getScaledTextGap getScaledExtensionLineOffset getScaledExtensionLineExtend getDisplayText updateDimText getDefaultTextRotation ensureTextReadable createArrowEx createArrow getArrow1Type getArrow2Type createDimensionLine createExtensionLine createLine createArc createDimensionArc calculateExtensionLinePoints shouldDrawExtensionLine1 shouldDrawExtensionLine2 shouldDrawDimensionLine1 shouldDrawDimensionLine2 formatLinearMeasurement formatAngularMeasurement formatRadiusMeasurement formatDiameterMeasurement formatArcLengthMeasurement formatWithTolerance calculateTextLayout normalizeTextAngle getOwnerIds setReactorDirty isReactorDirty unlinkAllOwners tryRegisterReactor getSourceEntityRefs findOwnerEntity validateOwners getColorDisplayText getArrowTypeDisplayText getArrowTypeOptions getBasePropertyInfo getBaseEntityData setBaseEntityData copyBasePropsTo dispose getMeasurement getDefaultTextPosition getFormattedMeasurement getPropertyInfo getArrowRad getArrowSizeValue getSnapPoints getGripPoints buildNestEnts getNestEnts clone getEntityData setEntityData toDb fromDb setDimHorBase regen calcThirdPt getDimTextBasePt setDimTextOverridePt getDimTextOverridePosition getDimTextHomePosition getDimTextSide allPointsWithInBox mirror move rotate rotateHorizonAngle scale stretch stretch_start stretch_end repairStretch stretch_start_end stretch_dimline gripEdit undoMap onOwnerChanged updateFromOwners setSourceEntities

    Constructors

    • 构造函数

      Parameters

      • startPoint: Point2D = ...

        标注起点,默认为原点

      • endPoint: Point2D = ...

        标注终点,默认为原点

      • dimensionLinePoint: Point2D = ...

        标注线位置点,默认为原点

      • dimensionAngle: number = 0

        标注角度,默认为0

      Returns LinearDimensionEnt

    Properties

    type: string = "CUSTOM"

    实体类型标识(固定为 "CUSTOM")

    _nestEntsCache: EntityBase[] = null

    嵌套实体缓存 用于避免重复生成嵌套实体,提高渲染性能

    objectId: string

    DWG对象ID(句柄)- 从DWG文件导入时的唯一标识符 这个值不应该在克隆时复制,新创建的实体应该为空字符串

    id: number

    实体索引ID - 从1开始递增的唯一索引 用于在WebCAD格式中标识实体

    _lineType: string
    _isAlive: boolean
    isDirty: boolean

    是否处于脏状态,供渲染器增量更新

    block?: any
    _textPosition: Point2D = ...

    文本位置(用户指定位置)

    _textOverride: string = ''

    文本覆盖内容

    _textRotation: number = 0

    文本旋转角度

    _useDefaultTextPosition: boolean = true

    是否使用默认文本位置

    _dimText: MTextEnt = null

    缓存的文本实体

    标注样式

    _ownerRefs: OwnerReference[] = []

    关联的源实体引用

    _reactorDirty: boolean = false

    反应器是否脏

    _reactorRegistered: boolean = false

    是否已注册反应器

    customType: string = 'LINEAR_DIMENSION'

    自定义实体类型标识

    customDisplayName: string = '线性标注'

    自定义实体显示名称(属性栏中显示)

    dimensionType: DimensionType = DimensionType.Linear

    标注类型

    Accessors

    • get color(): number

      获取颜色索引

      Returns number

      颜色索引值(256表示"随图层"颜色)

    • set color(value: number): void

      设置颜色索引

      Parameters

      • value: number

        颜色索引值(256表示"随图层"颜色)

      Returns void

    • get layerId(): string

      获取图层ID

      Returns string

      图层ID字符串

    • set layerId(value: string): void

      设置图层ID

      Parameters

      • value: string

        图层ID字符串

      Returns void

    • get lineTypeScale(): number

      获取线型比例

      Returns number

      线型比例因子

    • set lineTypeScale(value: number): void

      设置线型比例

      Parameters

      • value: number

        线型比例因子

      Returns void

    • get lineWeight(): number

      获取线宽

      Returns number

      线宽值(-1=ByLayer, -2=ByBlock, >=0为具体值,单位为0.01mm)

    • set lineWeight(value: number): void

      设置线宽

      Parameters

      • value: number

        线宽值(-1=ByLayer, -2=ByBlock, >=0为具体值)

      Returns void

    • get transpMgr(): TransparencyManager

      获取透明度管理器

      Returns TransparencyManager

      透明度管理器实例

    • set transpMgr(value: TransparencyManager): void

      设置透明度管理器

      Parameters

      Returns void

    • get isAlive(): boolean

      获取实体存活状态

      Returns boolean

      是否存活(true表示有效,false表示已删除)

    • set isAlive(value: boolean): void

      设置实体存活状态

      Parameters

      • value: boolean

        是否存活

      Returns void

    • get xdataRaw(): Record<string, string>

      获取原始扩展数据(用于序列化) 格式: { "1001": "AppName", "1000": "JSON字符串" }

      Returns Record<string, string>

      原始xdata对象或undefined

    • set xdataRaw(value: Record<string, string>): void

      设置原始扩展数据(从数据库加载时使用)

      Parameters

      • value: Record<string, string>

        原始xdata对象

      Returns void

    • get extData(): Record<string, any>

      获取扩展数据(用户友好格式) 自动解析JSON字符串返回对象

      Returns Record<string, any>

      解析后的扩展数据对象,或undefined

      const data = entity.extData;
      console.log(data?.sensorVal); // 10
    • get extDataAppName(): string

      获取扩展数据的应用程序名(AppName)

      Returns string

      AppName字符串,或undefined

    • get doc(): any

      获取所属文档

      通过实体所在的块来获取文档对象。在CAD系统中, 实体总是属于某个块,而块又属于某个文档。

      Returns any

      文档对象,如果无法获取则返回undefined

    • get layer(): string

      获取图层名称

      根据实体的layerId从文档的图层集合中查找对应的图层名称。 如果找不到对应的图层,则返回默认图层"0"。

      Returns string

      图层名称,默认为"0"

    • set layer(layerName: string): void

      设置图层名称

      根据图层名称查找对应的图层ID并设置给实体。 如果找不到指定的图层,则使用默认图层ID("0")。

      注意:优先使用实体所属文档的图层列表,如果实体尚未添加到文档, 则使用 Engine.currentDoc 的图层列表。

      Parameters

      • layerName: string

        图层名称

      Returns void

    • get lineType(): string

      获取线型

      返回实体当前的线型设置。线型控制线条的显示样式 (如实线、虚线、点划线等)。

      Returns string

      线型名称

    • set lineType(lineTypeName: string): void

      设置线型

      设置实体的线型,支持标准CAD线型、常见别名和自定义线型。 输入的线型名称会被转换为大写进行匹配。

      支持的线型:

      • CONTINUOUS: 连续线(实线)
      • HIDDEN/DASHED: 虚线(虚线)
      • CENTER: 中心线
      • PHANTOM: 幻影线
      • DOT: 点线(映射为虚线)
      • 自定义线型:通过LinetypeManager管理的线型

      Parameters

      • lineTypeName: string

        线型名称

      Returns void

    • get textPosition(): Point2D

      文本位置

      Returns Point2D

    • set textPosition(value: Point2D): void

      Parameters

      Returns void

    • get textOverride(): string

      文本覆盖内容

      Returns string

    • set textOverride(value: string): void

      Parameters

      • value: string

      Returns void

    • get textRotation(): number

      文本旋转角度

      Returns number

    • set textRotation(value: number): void

      Parameters

      • value: number

      Returns void

    • get useDefaultTextPosition(): boolean

      是否使用默认文本位置

      Returns boolean

    • set useDefaultTextPosition(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get style(): DimensionStyle

      标注样式

      Returns DimensionStyle

    • set style(value: DimensionStyle): void

      Parameters

      Returns void

    • get scaleFactor(): number

      缩放因子

      Returns number

    • set scaleFactor(value: number): void

      Parameters

      • value: number

      Returns void

    • get textHeight(): number

      文本高度

      Returns number

    • set textHeight(value: number): void

      Parameters

      • value: number

      Returns void

    • get arrowSize(): number

      箭头大小

      Returns number

    • set arrowSize(value: number): void

      Parameters

      • value: number

      Returns void

    • get textColor(): number

      文本颜色

      Returns number

    • set textColor(value: number): void

      Parameters

      • value: number

      Returns void

    • get dimensionLineColor(): number

      标注线颜色

      Returns number

    • set dimensionLineColor(value: number): void

      Parameters

      • value: number

      Returns void

    • get extensionLineColor(): number

      延伸线颜色

      Returns number

    • set extensionLineColor(value: number): void

      Parameters

      • value: number

      Returns void

    • get decimalPlaces(): number

      小数位数

      Returns number

    • set decimalPlaces(value: number): void

      Parameters

      • value: number

      Returns void

    • get linearScaleFactor(): number

      线性比例因子

      Returns number

    • set linearScaleFactor(value: number): void

      Parameters

      • value: number

      Returns void

    • get textGap(): number

      文本间距

      Returns number

    • set textGap(value: number): void

      Parameters

      • value: number

      Returns void

    • get extensionLineOffset(): number

      延伸线偏移

      Returns number

    • set extensionLineOffset(value: number): void

      Parameters

      • value: number

      Returns void

    • get extensionLineExtend(): number

      延伸线超出量

      Returns number

    • set extensionLineExtend(value: number): void

      Parameters

      • value: number

      Returns void

    • get isAssociative(): boolean

      检查是否为关联标注

      Returns boolean

    • get startPoint(): Point2D

      Returns Point2D

    • set startPoint(val: Point2D): void

      Parameters

      Returns void

    • get endPoint(): Point2D

      Returns Point2D

    • set endPoint(val: Point2D): void

      Parameters

      Returns void

    • get thirdPoint(): Point2D

      Returns Point2D

    • set thirdPoint(val: Point2D): void

      Parameters

      Returns void

    • get dimAngle(): number

      Returns number

    • set dimAngle(val: number): void

      Parameters

      • val: number

      Returns void

    • get dimHorizonAng(): number

      Returns number

    • set dimHorizonAng(val: number): void

      Parameters

      • val: number

      Returns void

    • get dimTextOverridePt(): Point2D

      Returns Point2D

    • set dimTextOverridePt(val: Point2D): void

      Parameters

      Returns void

    • get TOL(): number

      Returns number

    • set TOL(val: number): void

      Parameters

      • val: number

      Returns void

    • get doUpdate(): boolean

      Returns boolean

    • set doUpdate(val: boolean): void

      Parameters

      • val: boolean

      Returns void

    • get dimText(): MTextEnt

      Returns MTextEnt

    • set dimText(val: MTextEnt): void

      Parameters

      Returns void

    • get dimTextHome(): boolean

      获取标注文本是否在默认位置

      Returns boolean

    • set dimTextHome(isHome: boolean): void

      设置标注文本是否在默认位置

      Parameters

      • isHome: boolean

      Returns void

    • get textinsertionPoint(): Point2D

      获取文本插入点

      Returns Point2D

    • get dimLength(): number

      获取标注长度(投影长度)

      Returns number

    • get dimDistance(): number

      获取标注距离(标注线长度)

      Returns number

    • get point1(): Point2D

      获取第1个点(起点)

      Returns Point2D

    • get point1_offset(): Point2D

      获取第1个点的偏移位置

      Returns Point2D

    • get point2(): Point2D

      获取第2个点(终点)

      Returns Point2D

    • get point2_offset(): Point2D

      获取第2个点的偏移位置

      Returns Point2D

    • get point3(): Point2D

      获取第3个点(标注线起点)

      Returns Point2D

    • get point4(): Point2D

      获取第4个点(标注线终点)

      point4 应该对应 startPoint 在标注线上的位置。 从 startPoint 沿垂直于 dimAngle 的方向(与延伸线相同方向)投影到标注线。

      Returns Point2D

    • get midPoint(): Point2D

      获取中点

      Returns Point2D

    • get dimMidPoint(): Point2D

      获取标注中点

      Returns Point2D

    Methods

    • 炸开实体

      将自定义实体分解为基本图元(线、圆弧等)。 用于分解命令和DXF导出。

      子类可以重写此方法以提供自定义的炸开逻辑。 如果不重写,默认使用 getNestEnts() 返回的实体进行炸开。

      Returns EntityBase[]

      炸开后的基本实体数组

      explode(): EntityBase[] {
      const line1 = new LineEnt(this.point1, this.point2);
      const arc = new ArcEnt(this.center, this.radius, this.startAng, this.endAng);
      return [line1, arc];
      }
    • 清除嵌套实体缓存

      在需要强制重新生成嵌套实体时调用。 通常在setModified时会自动调用。

      Returns void

    • 计算边界框

      默认实现:根据 getNestEnts() 返回的子实体计算合并边界框。 子类可以重写此方法以提供自定义的边界框计算逻辑。

      Parameters

      Returns BoundingBox

      边界框

    • 将属性映射到数据库默认属性对象(重写父类方法)

      除了调用父类的基础属性映射外,还会序列化嵌套实体用于DWG导出。

      Parameters

      • targetDbObject: any

        目标数据库属性对象

      Returns any

      映射后的属性对象

    • 获取属性面板显示名称

      返回在属性面板中显示的实体名称。 超过指定长度的内容将被截断并显示"..."

      Parameters

      • maxLength: number = 20

        最大显示长度,默认为20

      Returns string

      显示名称

    • 标记实体已修改

      重写父类方法,在标记修改时同时清除嵌套实体缓存。

      Returns void

    • 设置扩展数据(用户友好格式) 自动将对象序列化为JSON字符串存储

      Parameters

      • appName: string

        应用程序名(用于在DWG中标识数据来源)

      • data: Record<string, any>

        要存储的数据对象(将被序列化为JSON)

      Returns void

      entity.setExtData("MY_SENSOR", {
      sensorVal: 10,
      deviceName: "温度传感器",
      isActive: true
      });
    • 清除扩展数据

      Returns void

    • 检查是否有扩展数据

      Returns boolean

      是否存在扩展数据

    • 从默认属性对象复制属性

      将指定的默认属性对象的所有相关属性复制到当前实体。 这通常用于创建新实体时应用默认设置。

      Parameters

      • defaultPropsObject: any

        默认属性对象,包含layer、colorIndex、lineType等属性

      Returns this

      当前实例(支持链式调用)

    • 设置为系统默认值

      从全局CAD系统设置中获取当前的默认属性值并应用到实体。 这些默认值包括当前图层、当前颜色、当前线型等。

      使用的全局变量:

      • Engine.currentDoc.CLAYER: 当前图层名称
      • Engine.CECOLOR: 当前实体颜色
      • Engine.CELTYPE: 当前实体线型
      • Engine.CELTSCALE: 当前实体线型比例

      Returns void

    • 从数据库默认属性对象设置属性

      从数据库查询结果或序列化数据中恢复实体属性。 这个方法处理数据库中可能存在的空值和默认值情况。

      Parameters

      • dbPropsObject: any

        数据库属性对象,包含layerId、colorIndex等属性

      Returns this

      当前实例(支持链式调用)

    • 从当前文档应用标注样式 获取文档中当前的标注样式并应用到此实体

      Returns void

    • 获取实际箭头大小(考虑缩放)

      Returns number

    • 获取实际文本高度(考虑缩放)

      Returns number

    • 获取实际文本间距(考虑缩放)

      Returns number

    • 获取实际延伸线超出量(考虑缩放)

      Returns number

    • 获取显示文本

      Returns string

    • 更新文本实体

      Returns void

    • 获取默认文本旋转角度

      Returns number

    • 确保文本可读(不会上下颠倒)

      Parameters

      • rotation: number

      Returns number

    • 创建标注线实体

      Parameters

      • start: Point2D

        起点

      • end: Point2D

        终点

      • isDimensionLine: boolean = true

        是否是标注线(true: 标注线, false: 延伸线)

      Returns LineEnt

    • 创建弧实体

      Parameters

      • center: Point2D
      • radius: number
      • startAngle: number
      • endAngle: number
      • OptionalcolorOverride: number

      Returns ArcEnt

    • 创建标注弧实体

      Parameters

      • center: Point2D
      • radius: number
      • startAngle: number
      • endAngle: number

      Returns ArcEnt

    • 检查是否应该绘制延伸线1

      Returns boolean

    • 检查是否应该绘制延伸线2

      Returns boolean

    • 检查是否应该绘制标注线1(第一段,起点到中间)

      Returns boolean

    • 检查是否应该绘制标注线2(第二段,中间到终点)

      Returns boolean

    • 格式化线性测量值

      Parameters

      • value: number

      Returns string

    • 格式化角度测量值

      Parameters

      • valueRadians: number

      Returns string

    • 格式化半径测量值

      Parameters

      • value: number

      Returns string

    • 格式化直径测量值

      Parameters

      • value: number

      Returns string

    • 格式化弧长测量值

      Parameters

      • value: number

      Returns string

    • 格式化带公差的测量值

      Parameters

      • value: number

      Returns string

    • 规范化文本角度

      Parameters

      • angle: number

      Returns number

    • 获取此反应器订阅的所有Owner实体ID

      Returns number[]

    • 标记反应器需要更新

      Returns void

    • 检查反应器是否脏

      Returns boolean

    • 断开与所有Owner的关联

      Returns void

    • 尝试注册到反应器管理器

      Parameters

      • docId: number

      Returns boolean

    • 验证源实体是否有效

      Returns boolean

    • 获取颜色显示文本

      Parameters

      • colorIndex: number

        颜色索引

      Returns string

      颜色显示文本

    • 获取箭头类型选项列表

      Returns { label: string; value: number }[]

    • 释放资源

      Returns void

    • 获取测量值

      Returns number

    • 获取箭头半径

      Returns number

    • 获取箭头大小(考虑缩放因子)

      Returns number

    • 获取嵌套实体(支持参数)

      重写基类方法以支持 useOffsetExtensionLines 参数。 当使用默认参数时使用缓存,非默认参数时不使用缓存。

      Parameters

      • useOffsetExtensionLines: boolean = true

        是否使用偏移的延伸线,默认为true

      Returns EntityBase[]

    • 设置标注水平基准

      Parameters

      • horizontalAngle: number

      Returns void

    • 重新生成标注

      Returns void

    • 计算第三点位置

      Returns void

    • 获取标注文本基准点

      文字应该放在标注线的"外侧"(远离原线的一侧)。 需要根据标注线相对于原线的位置来确定偏移方向。

      Returns Point2D

    • 设置标注文本覆盖位置点

      Parameters

      Returns void

    • 获取标注文本覆盖位置

      Parameters

      • usePositivePosition: boolean

      Returns Point2D

    • 获取标注文本默认位置

      Returns Point2D

    • 获取标注文本显示侧

      Returns string

    • 旋转变换

      Parameters

      Returns void

    • 旋转水平角度

      Parameters

      • angleIncrement: number

      Returns void

    • 缩放变换

      Parameters

      • centerPoint: Point2D
      • scaleFactor: number

      Returns void

    • 拉伸起点

      Parameters

      Returns void

    • 拉伸终点

      Parameters

      Returns void

    • 拉伸起点和终点

      Parameters

      Returns void

    • 拉伸标注线

      Parameters

      Returns void

    • 夹点编辑

      Parameters

      • newPosition: Point2D
      • gripType: string

      Returns void

    • 执行更新逻辑 - 从源实体重新计算标注几何

      Returns boolean

      更新是否成功

    • 设置源实体(建立关联)

      Parameters

      • startLineId: number

        起点关联线的实体ID(-1表示无关联)

      • startSegIdx: number

        起点关联线的线段索引(-1表示整条线)

      • endLineId: number

        终点关联线的实体ID(-1表示无关联)

      • endSegIdx: number

        终点关联线的线段索引(-1表示整条线)

      • OptionalstartPointType: "midpoint" | "center" | "start" | "end"

        起点在关联线上的点类型

      • OptionalendPointType: "midpoint" | "center" | "start" | "end"

        终点在关联线上的点类型

      • OptionalstartParameterT: number

        起点在关联线上的线性参数 t (0-1)

      • OptionalendParameterT: number

        终点在关联线上的线性参数 t (0-1)

      Returns void