Abstract构造函数
Readonlytype实体类型标识(固定为 "CUSTOM")
Abstract Readonlycustom自定义实体类型标识 子类必须设置此属性以标识具体的自定义实体类型 例如: "ANGLE_DIMENSION", "CUSTOM_HATCH" 等
Abstract Readonlycustom自定义实体显示名称 子类必须设置此属性以提供在属性栏中显示的名称 例如: customType为"ANGLE_DIMENSION"时,displayName为"角度标注" 属性栏显示时会自动截断过长内容并显示"..."
Protected_嵌套实体缓存 用于避免重复生成嵌套实体,提高渲染性能
DWG对象ID(句柄)- 从DWG文件导入时的唯一标识符 这个值不应该在克隆时复制,新创建的实体应该为空字符串
实体索引ID - 从1开始递增的唯一索引 用于在WebCAD格式中标识实体
是否处于脏状态,供渲染器增量更新
OptionalblockProtected_文本位置(用户指定位置)
Protected_文本覆盖内容
Protected_文本旋转角度
Protected_是否使用默认文本位置
Protected_缓存的文本实体
Protected_标注样式
Protected_关联的源实体引用
Protected_反应器是否脏
Protected_是否已注册反应器
Abstract Readonlydimension标注类型
获取颜色索引
颜色索引值(256表示"随图层"颜色)
设置颜色索引
颜色索引值(256表示"随图层"颜色)
获取图层ID
图层ID字符串
设置图层ID
图层ID字符串
获取线型比例
线型比例因子
设置线型比例
线型比例因子
获取线宽
线宽值(-1=ByLayer, -2=ByBlock, >=0为具体值,单位为0.01mm)
设置线宽
线宽值(-1=ByLayer, -2=ByBlock, >=0为具体值)
获取实体存活状态
是否存活(true表示有效,false表示已删除)
设置实体存活状态
是否存活
获取原始扩展数据(用于序列化) 格式: { "1001": "AppName", "1000": "JSON字符串" }
原始xdata对象或undefined
设置原始扩展数据(从数据库加载时使用)
原始xdata对象
获取扩展数据的应用程序名(AppName)
AppName字符串,或undefined
获取所属文档
通过实体所在的块来获取文档对象。在CAD系统中, 实体总是属于某个块,而块又属于某个文档。
文档对象,如果无法获取则返回undefined
获取图层名称
根据实体的layerId从文档的图层集合中查找对应的图层名称。 如果找不到对应的图层,则返回默认图层"0"。
图层名称,默认为"0"
设置图层名称
根据图层名称查找对应的图层ID并设置给实体。 如果找不到指定的图层,则使用默认图层ID("0")。
注意:优先使用实体所属文档的图层列表,如果实体尚未添加到文档, 则使用 Engine.currentDoc 的图层列表。
图层名称
获取线型
返回实体当前的线型设置。线型控制线条的显示样式 (如实线、虚线、点划线等)。
线型名称
设置线型
设置实体的线型,支持标准CAD线型、常见别名和自定义线型。 输入的线型名称会被转换为大写进行匹配。
支持的线型:
线型名称
文本覆盖内容
文本旋转角度
是否使用默认文本位置
标注样式
缩放因子
文本高度
箭头大小
箭头类型
文本颜色
标注线颜色
延伸线颜色
小数位数
线性比例因子
文本间距
延伸线偏移
延伸线超出量
检查是否为关联标注
AbstractgetAbstractget炸开实体
将自定义实体分解为基本图元(线、圆弧等)。 用于分解命令和DXF导出。
子类可以重写此方法以提供自定义的炸开逻辑。 如果不重写,默认使用 getNestEnts() 返回的实体进行炸开。
炸开后的基本实体数组
Protected Abstractbuild构建嵌套实体(由子类实现)
返回组成该自定义实体的子实体,用于渲染显示。 与explode不同,这里返回的实体不需要独立存在, 主要用于渲染器绘制自定义实体的视觉效果。
子类必须实现此方法来生成实际的嵌套实体。
此方法的返回值会被基类缓存(通过 getNestEnts() 调用)。 当实体被修改(调用 setModified())时,缓存会自动清除。 下次调用 getNestEnts() 时会重新调用 buildNestEnts() 生成新的实体。
在实现此方法时,不允许克隆文本实体(MTextEnt/TextEnt)!
原因:文本实体的坐标是在渲染时动态计算和更新的。 如果克隆文本实体,会导致:
正确做法是直接将类内部的文本对象(如 _dimText)添加到实体数组中:
// 错误示例 - 不要这样做:
const textClone = this._dimText.clone();
entities.push(textClone);
// 正确示例:
if (this._dimText) {
this._dimText.fromDefaultProps(this);
entities.push(this._dimText);
}
嵌套实体数组
获取嵌套实体(带缓存)
返回组成该自定义实体的子实体,用于渲染显示。
此方法使用内部缓存来避免重复生成嵌套实体,提高渲染性能:
子类如需重写此方法(如需支持额外参数),应注意正确处理缓存逻辑。
嵌套实体数组
Protectedclear清除嵌套实体缓存
在需要强制重新生成嵌套实体时调用。 通常在setModified时会自动调用。
计算边界框
默认实现:根据 getNestEnts() 返回的子实体计算合并边界框。 子类可以重写此方法以提供自定义的边界框计算逻辑。
坐标系类型
边界框
Abstractclone转换为数据库格式
将实体序列化为可存储的数据格式。 默认实现会包含嵌套实体数据用于DWG导出。 子类可以重写此方法以提供自定义序列化逻辑。
数据库格式对象
将属性映射到数据库默认属性对象(重写父类方法)
除了调用父类的基础属性映射外,还会序列化嵌套实体用于DWG导出。
目标数据库属性对象
映射后的属性对象
AbstractfromAbstractget获取自定义实体的特定数据
子类应重写此方法返回需要序列化的自定义数据。
自定义实体数据对象
Abstractset从自定义实体数据恢复
子类应重写此方法从自定义数据恢复实体状态。
自定义实体数据对象
获取属性面板显示名称
返回在属性面板中显示的实体名称。 超过指定长度的内容将被截断并显示"..."
最大显示长度,默认为20
显示名称
夹点编辑
响应夹点拖拽操作。子类应根据gripId识别不同的夹点。
新的夹点位置
夹点标识符
标记实体已修改
重写父类方法,在标记修改时同时清除嵌套实体缓存。
移动变换
默认实现:移动所有夹点。子类可重写以实现自定义移动逻辑。
起始点
目标点
拉伸变换
拉伸起点
拉伸终点
拉伸框
清除扩展数据
检查是否有扩展数据
是否存在扩展数据
从默认属性对象复制属性
将指定的默认属性对象的所有相关属性复制到当前实体。 这通常用于创建新实体时应用默认设置。
默认属性对象,包含layer、colorIndex、lineType等属性
当前实例(支持链式调用)
设置为系统默认值
从全局CAD系统设置中获取当前的默认属性值并应用到实体。 这些默认值包括当前图层、当前颜色、当前线型等。
使用的全局变量:
从数据库默认属性对象设置属性
从数据库查询结果或序列化数据中恢复实体属性。 这个方法处理数据库中可能存在的空值和默认值情况。
数据库属性对象,包含layerId、colorIndex等属性
当前实例(支持链式调用)
Abstractget获取测量值
Abstractget获取默认文本位置
Abstractget获取格式化的测量文本
从当前文档应用标注样式 获取文档中当前的标注样式并应用到此实体
获取实际箭头大小(考虑缩放)
获取实际文本高度(考虑缩放)
获取实际文本间距(考虑缩放)
获取实际延伸线偏移(考虑缩放)
获取实际延伸线超出量(考虑缩放)
获取显示文本
Protectedupdate更新文本实体
Protectedget获取默认文本旋转角度
Protectedensure确保文本可读(不会上下颠倒)
Protectedcreate创建箭头(使用 ArrowRenderer)
箭头顶点位置
箭头指向方向(弧度)
OptionalarrowType: DimensionArrowType箭头类型
是否翻转
箭头渲染结果
Protectedcreate创建箭头(简化接口,兼容旧代码)
箭头顶点位置
箭头指向方向(弧度)
OptionalarrowType: DimensionArrowType箭头类型
Protectedget获取箭头1类型(考虑 useSeparateArrows)
Protectedget获取箭头2类型(考虑 useSeparateArrows)
ProtectedcreateProtectedcreateProtectedcreateProtectedcreateProtectedcreateProtectedcalculateProtectedshould检查是否应该绘制延伸线1
Protectedshould检查是否应该绘制延伸线2
Protectedshould检查是否应该绘制标注线1(第一段,起点到中间)
Protectedshould检查是否应该绘制标注线2(第二段,中间到终点)
Protectedformat格式化线性测量值
Protectedformat格式化角度测量值
Protectedformat格式化半径测量值
Protectedformat格式化直径测量值
Protectedformat格式化弧长测量值
Protectedformat格式化带公差的测量值
ProtectedcalculateProtectednormalize规范化文本角度
获取此反应器订阅的所有Owner实体ID
标记反应器需要更新
检查反应器是否脏
从源实体更新(子类实现)
断开与所有Owner的关联
尝试注册到反应器管理器
获取源实体引用
ProtectedfindProtectedvalidate验证源实体是否有效
Protectedget获取颜色显示文本
颜色索引
颜色显示文本
ProtectedgetProtectedget获取箭头类型选项列表
Protectedget获取基础属性面板信息
Protectedget获取基础实体数据
ProtectedsetProtectedcopy释放资源
标注基类
提供所有标注实体的通用功能: