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

    Class MTextEnt

    多行文本类

    继承自基础实体类,用于处理多行文本的显示和编辑。 支持自动换行、行间距调整、多种对齐方式等功能。

    import { MTextEnt, Point2D, Engine } from '@aspect/webcad-lib-ts';

    // 创建多行文本
    const mtext = new MTextEnt(new Point2D(100, 100), "多行文本\\P第二行", 10, 0, 200);
    mtext.setDefaults();

    // 添加到画布
    Engine.addEntities(mtext);

    Hierarchy (View Summary)

    Index

    Constructors

    • 多行文本构造函数

      Parameters

      • insertionPoint: Point2D

        插入点坐标

      • textString: string

        文本字符串

      • height: number

        文本高度

      • rotation: number

        旋转角度

      • textAttachment: number

        文本附着点

      • rowSpcFac: number = SystemConstants.MTEXT_rowSpcFac

        行间距因子,默认为S.MTEXT_rowSpcFac

      • font: string = ""

        字体名称

      • color: number = 256

        颜色索引,默认为256

      • contents: string = ""

        MText格式化内容字符串,默认为空字符串

      • maxWidth: number = 0

        最大宽度,默认为0(无限制)

      Returns MTextEnt

    Properties

    objectId: string

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

    id: number

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

    _lineType: string
    _isAlive: boolean
    isDirty: boolean

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

    block?: any
    type: string

    实体类型标识符(如"LINE"、"CIRCLE"等)

    textStyle: TextStyle

    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 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 styleName(): string

      获取文本样式名称

      Returns string

      文本样式名称

    • set styleName(value: string): void

      设置文本样式名称

      当设置样式名称时,会自动从文档的文本样式集合中获取对应的样式对象并设置。

      Parameters

      • value: string

        新的文本样式名称

      Returns void

    • get isAlive(): boolean

      重写isAlive属性的setter

      Returns boolean

    • set isAlive(value: boolean): void

      获取实体存活状态

      Parameters

      • value: boolean

      Returns void

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

    • get insertionPoint(): Point2D

      Returns Point2D

    • set insertionPoint(val: PointInput): void

      Parameters

      Returns void

    • get font(): string

      Returns string

    • set font(val: string): void

      Parameters

      • val: string

      Returns void

    • get rowSpcFac(): number

      Returns number

    • set rowSpcFac(val: number): void

      Parameters

      • val: number

      Returns void

    • get flowDirection(): number

      FlowDirection (AutoCAD 兼容) 1=LtoR, 2=RtoL, 3=TtoB, 4=BtoT, 5=ByStyle

      Returns number

    • set flowDirection(val: number): void

      Parameters

      • val: number

      Returns void

    • get lineSpacingStyle(): number

      行距样式 (kAtLeast=1, kExactly=2)

      Returns number

    • set lineSpacingStyle(val: number): void

      Parameters

      • val: number

      Returns void

    • get columnType(): number

      列类型 (kNoColumns=1, kStaticColumns=2, kDynamicColumns=3)

      Returns number

    • set columnType(val: number): void

      Parameters

      • val: number

      Returns void

    • get refWidth(): number

      参考宽度(等同于 AutoCAD 的 definedWidth / 本类的 maxWidth) .webcad JSON 中的 refWidth 与此等价

      Returns number

    • set refWidth(val: number): void

      Parameters

      • val: number

      Returns void

    • get definedHeight(): number

      参考高度 / 定义高度 当前几何未使用,仅用于向 WASM 传递 MText 相关信息

      Returns number

    • set definedHeight(val: number): void

      Parameters

      • val: number

      Returns void

    • get backgroundFill(): boolean

      背景填充开关 控制是否显示文本背景遮罩

      Returns boolean

    • set backgroundFill(val: boolean): void

      Parameters

      • val: boolean

      Returns void

    • get backgroundConfig(): { color: number; scaleFactor: number }

      背景填充配置 包含背景颜色和比例因子

      Returns { color: number; scaleFactor: number }

    • set backgroundConfig(val: { color: number; scaleFactor: number }): void

      Parameters

      • val: { color: number; scaleFactor: number }

      Returns void

    • get backgroundFillColor(): number

      背景颜色 快捷访问背景填充配置中的颜色

      Returns number

    • set backgroundFillColor(val: number): void

      Parameters

      • val: number

      Returns void

    • get backgroundScaleFactor(): number

      背景比例因子 快捷访问背景填充配置中的比例因子

      Returns number

    • set backgroundScaleFactor(val: number): void

      Parameters

      • val: number

      Returns void

    • get charUnitW(): number

      获取单字符单位宽度

      Returns number

      单字符宽度

    • get charDoubleUnitW(): number

      获取双字符单位宽度

      Returns number

      双字符宽度

    • get lineSpacingFactor(): number

      获取行间距因子(AutoCAD兼容格式) 返回符合AutoCAD标准的行间距因子值

      Returns number

      行间距因子

    • get showBorder(): boolean

      获取边框显示状态

      Returns boolean

      是否显示边框

    • set showBorder(showBorderFlag: boolean): void

      设置边框显示状态 控制文本边框的显示和隐藏

      Parameters

      • showBorderFlag: boolean

        是否显示边框

      Returns void

    • get rotation(): number

      获取旋转角度

      Returns number

      旋转角度(弧度)

    • set rotation(rotationAngle: number): void

      设置旋转角度 设置文本的旋转角度,同时更新相关的几何计算

      Parameters

      • rotationAngle: number

        旋转角度(弧度)

      Returns void

    • get textAlign(): string

      获取文本对齐方式

      Returns string

      文本对齐方式(left/center/right)

    • set textAlign(textAlignment: string): void

      设置文本对齐方式 设置文本的水平对齐方式

      Parameters

      • textAlignment: string

        对齐方式(left/center/right)

      Returns void

    • get textAttachment(): number

      获取文本附着点

      Returns number

      文本附着点枚举值

    • set textAttachment(textAttachmentValue: number): void

      设置文本附着点 设置文本相对于插入点的附着位置

      Parameters

      • textAttachmentValue: number

        文本附着点枚举值

      Returns void

    • get rowSpcDist(): number

      获取行间距距离 计算实际的行间距像素值

      Returns number

      行间距距离

    • get height(): number

      获取文本高度

      Returns number

      文本高度

    • set height(textHeight: number): void

      设置文本高度 设置文本的字体高度,影响文本显示大小

      Parameters

      • textHeight: number

        文本高度

      Returns void

    • get maxWidth(): number

      获取最大宽度

      Returns number

      文本框最大宽度

    • set maxWidth(maxWidthValue: number): void

      设置最大宽度 设置文本框的最大宽度,影响自动换行

      Parameters

      • maxWidthValue: number

        最大宽度值

      Returns void

    • get wordWrapColmn(): number

      获取自动换行列数 根据最大宽度和字符宽度计算可容纳的字符列数

      Returns number

      自动换行列数

    • set wordWrapColmn(wordWrapColumnCount: number): void

      设置自动换行列数 根据指定的列数设置文本框的最大宽度

      Parameters

      • wordWrapColumnCount: number

        自动换行列数

      Returns void

    • get textString(): string

      获取文本字符串

      Returns string

      文本内容

    • set textString(value: string): void

      设置文本字符串 设置文本内容,自动处理换行符转换和Unicode解码并更新显示 注意:普通换行符 \n 会自动转换为 MText 格式的 \P

      Parameters

      • value: string

        文本内容

      Returns void

    • get text(): string

      获取文本内容(textString 的别名)

      Returns string

      文本字符串内容

    • set text(newText: string): void

      设置文本内容(textString 的别名)

      Parameters

      • newText: string

        新的文本字符串

      Returns void

    • get contents(): string

      获取MText格式化内容字符串

      Returns string

      MText格式化内容

    • set contents(value: string): void

      设置MText格式化内容字符串 设置MText格式化内容,当内容不为空且与textString不同时,会触发解析

      Parameters

      • value: string

        MText格式化内容

      Returns void

    • get curWidth(): number

      获取当前宽度

      Returns number

      文本当前实际宽度

    • get rowCount(): number

      获取行数

      Returns number

      文本行数

    • set rowCount(value: number): void

      设置行数

      Parameters

      • value: number

        文本行数

      Returns void

    • get pt1(): Point2D

      获取内部文本框关键点1(左下角) 从 WASM 渲染阶段写回的角点中获取左下角点(世界坐标)。

      Returns Point2D

      左下角坐标

    • get pt2(): Point2D

      获取内部文本框关键点2(底部中心) 从 WASM 渲染阶段写回的角点中计算底边中点(世界坐标)。

      Returns Point2D

      底部中心坐标

    • get pt3(): Point2D

      获取内部文本框关键点3(右下角) 从 WASM 渲染阶段写回的角点中获取右下角点(世界坐标)。

      Returns Point2D

      右下角坐标

    • get pt4(): Point2D

      获取内部文本框关键点4(左侧中心) 从 WASM 渲染阶段写回的角点中计算左边中点(世界坐标)。

      Returns Point2D

      左侧中心坐标

    • get pt5(): Point2D

      获取内部文本框关键点5(中心点) 从 WASM 渲染阶段写回的角点中计算中心点(世界坐标)。

      Returns Point2D

      中心点坐标

    • get pt6(): Point2D

      获取内部文本框关键点6(右侧中心) 从 WASM 渲染阶段写回的角点中计算右边中点(世界坐标)。

      Returns Point2D

      右侧中心坐标

    • get pt7(): Point2D

      获取内部文本框关键点7(左上角) 从 WASM 渲染阶段写回的角点中获取左上角点(世界坐标)。

      Returns Point2D

      左上角坐标

    • get pt8(): Point2D

      获取内部文本框关键点8(顶部中心) 从 WASM 渲染阶段写回的角点中计算顶边中点(世界坐标)。

      Returns Point2D

      顶部中心坐标

    • get pt9(): Point2D

      获取内部文本框关键点9(右上角) 从 WASM 渲染阶段写回的角点中获取右上角点(世界坐标)。

      Returns Point2D

      右上角坐标

    • get opt1(): Point2D

      Returns Point2D

    • get opt2(): Point2D

      Returns Point2D

    • get opt3(): Point2D

      Returns Point2D

    • get opt4(): Point2D

      Returns Point2D

    • get opt5(): Point2D

      Returns Point2D

    • get opt6(): Point2D

      Returns Point2D

    • get opt7(): Point2D

      Returns Point2D

    • get opt8(): Point2D

      Returns Point2D

    • get opt9(): Point2D

      Returns Point2D

    Methods

    • 设置扩展数据(用户友好格式) 自动将对象序列化为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

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

    • 将属性映射到数据库默认属性对象

      将当前实体的属性映射到数据库存储格式的对象中。 用于保存实体数据到数据库或序列化。

      Parameters

      • targetDbObject: any

        目标数据库属性对象

      Returns any

      映射后的属性对象

    • 通知渲染系统此实体已被修改。 在桶渲染模式下,这将标记对应的桶为"脏",以便在下次 regenPartial 时重绘。 注意:此方法只标记,不触发重绘。调用方需要在适当的时候(如命令结束时)调用 regenPartial()

      Returns void

    • 计算统一的文字基线调整偏移量 这个方法确保简单文本和复杂文本使用相同的基线调整逻辑

      Returns {
          thadjOffset: number;
          chineseBaselineAdjust: number;
          chineseTopReduction: number;
          chineseBottomBoost: number;
          baselineToTopOffset: number;
          textHeightAdjustment: number;
          verticalOffset: number;
          baselineOffset: number;
          adjustedLineSpacing: number;
      }

      包含各种偏移量的对象

    • 检测文本是否包含中文字符

      Returns boolean

      是否包含中文字符

    • 克隆为纯文本对象(无边框和内边距) 创建一个不带边框和内边距的文本副本,用于特殊显示需求

      Returns MTextEnt

      纯文本对象副本 建议重命名为:cloneAsPureText

    • 克隆为单行文本数组 将多行文本分解为多个单行文本对象,每行创建一个独立的文本实体 用于将MTEXT转换为多个DTEXT对象

      Returns TextEnt[]

      单行文本对象数组

    • 设置行间距因子 设置文本行间距的倍数因子,影响多行文本的垂直间距

      Parameters

      • rowSpacingFactor: number

        行间距因子值 建议重命名为:setRowSpacingFactor

      Returns void

    • 设置行间距因子(AutoCAD兼容格式) 根据AutoCAD标准的行间距因子设置内部行间距值

      Parameters

      • autocadLineSpacingFactor: number

        AutoCAD格式的行间距因子

      Returns void

    • 获取嵌套实体作为单行文本 返回将多行文本分解为单行文本后的所有实体,包括文本和边框

      Returns TextEnt[]

      嵌套实体数组(单行文本格式) 建议重命名为:getNestedEntitiesAsDTexts

    • 获取嵌套实体 返回文本对象的所有嵌套实体,包括文本本身和可选的边框

      Returns MTextEnt[]

      嵌套实体数组 建议重命名为:getNestedEntities

    • 设置旋转角度(方法形式) 提供与rotation setter相同的功能,用于API一致性

      Parameters

      • angle: number

        新的旋转角度(弧度)

      Returns void

    • 由渲染阶段写回内部四个角点(世界坐标系) 如果之前空间索引缓存了宽高为0的边界框,则更新缓存和索引

      Parameters

      Returns void

    • 获取内部角点坐标 获取文本内容区域的四个角点坐标。 角点由 WASM 渲染阶段写回,格式为 [左下, 右下, 右上, 左上](世界坐标)

      Returns Point2D[]

      内部角点坐标数组

    • 计算边界框 计算文本在指定坐标系中的边界框。 使用 WASM 渲染时写回的角点数据。

      Parameters

      • coordinateSystemType: CoordinateSystemType = CoordinateSystemType.WCS

        坐标系类型(WCS/UCS/DCS)

      Returns BoundingBox

      文本边界框

    • 通过关键字设置多行文本附着点 使用字符串关键字设置文本的附着位置

      Parameters

      • attachmentKeyword: string

        附着点关键字(如"TL"、"TC"等)

      • updateInsertionPoint: boolean = true

        是否同时更新插入点位置 建议重命名为:setMTextAttachmentByKeyword

      Returns void

    • 设置文本附着点(带模式控制) 设置文本附着点,可选择是否同时更新外部插入点

      Parameters

      • attachmentType: number

        文本附着点枚举值

      • updateInsertionPoint: boolean = true

        是否更新外部插入点位置

      Returns void

    • 获取多行文本附着点关键字 将数字形式的附着点转换为字符串关键字

      Returns string

      附着点关键字(TL/TC/TR/ML/M/MR/BL/BC/BR) 建议重命名为:getMTextAttachmentKeyword

    • 通过关键字获取多行文本附着点数字 将字符串关键字转换为数字形式的附着点枚举值

      Parameters

      • keyword: string

        附着点关键字

      Returns number

      附着点数字值 建议重命名为:getMTextAttachmentNumberByKeyword

    • 通过关键字设置多行文本对齐方式 使用字符串关键字设置文本的对齐方式

      Parameters

      • alignmentKeyword: string

        对齐方式关键字 建议重命名为:setMTextAlignByKeyword

      Returns void

    • 检查所有点是否在指定边界框内 检查文本的插入点是否在给定的边界框内

      Parameters

      Returns boolean

      是否在边界框内

    • 镜像变换 对文本进行镜像变换,这是一个复杂的操作,需要根据不同的附着点类型 和镜像轴的角度来调整文本的位置和旋转角度

      Parameters

      • mirrorAxisStart: PointInput

        镜像轴起点

      • mirrorAxisEnd: PointInput

        镜像轴终点

        镜像变换算法说明:

        1. 计算镜像轴的角度
        2. 将文本移动到原点并反向旋转
        3. 计算镜像后的角度
        4. 根据文本附着点类型和角度范围调整位置和旋转
        5. 恢复原始变换

      Returns void

    • 移动变换 将文本从一个位置移动到另一个位置

      Parameters

      Returns void

    • 旋转变换 围绕指定点旋转文本

      Parameters

      • centerPoint: PointInput

        旋转中心点

      • angle: number

        旋转角度(弧度)

      Returns void

    • 缩放变换 以指定点为中心缩放文本

      Parameters

      • centerPoint: PointInput

        缩放中心点

      • scaleFactor: number

        缩放因子

      Returns void

    • 拉伸变换 在指定的拉伸框内拉伸文本

      Parameters

      Returns void

    • 修复拉伸 从备份对象恢复拉伸前的插入点位置

      Parameters

      • backupText: MTextEnt

        备份的文本对象

      Returns void

    • 夹点编辑功能 通过拖拽夹点来编辑文本的位置和大小

      Parameters

      • newPosition: Point2D

        新的夹点位置

      • gripType: string

        夹点类型标识符

        夹点类型说明:

        • "ins": 插入点夹点,用于移动文本
        • "opt1"-"opt9": 外边界的9个选项点,用于调整文本框大小 建议重命名为:editByGrip

      Returns void

    • 获取UCS坐标系边界 获取文本在用户坐标系中的边界框

      Returns BoundingBox

      UCS坐标系边界框 建议重命名为:getBoundsInUcs

    • 获取边界框 根据指定的坐标系类型获取文本的边界框

      Parameters

      • coordinateSystem: string = "Ucs"

        坐标系类型,默认为"Ucs"

      Returns BoundingBox

      指定坐标系中的边界框

    • 撤销映射 从备份对象恢复文本的所有属性

      Parameters

      • backupText: MTextEnt

        备份的文本对象

      Returns void

    • 克隆文本对象 创建当前文本对象的完整副本

      Returns MTextEnt

      克隆的文本对象

    • 转换为数据库对象 将文本对象转换为可存储到数据库的格式

      Returns DbMText

      数据库文本对象

    • 从数据库对象加载 从数据库对象恢复文本的所有属性

      Parameters

      • dbText: DbMText

        数据库文本对象

      Returns void

    • 释放实体占用的外部资源 子类如持有 PIXI 对象或大尺寸缓冲,应覆盖此方法清理

      Returns void