构造函数
凸度点集合或坐标数组
颜色索引,默认为256
实体类型标识符(如"LINE"、"CIRCLE"等)
DWG对象ID(句柄)- 从DWG文件导入时的唯一标识符 这个值不应该在克隆时复制,新创建的实体应该为空字符串
实体索引ID - 从1开始递增的唯一索引 用于在WebCAD格式中标识实体
是否处于脏状态,供渲染器增量更新
Optionalblock获取颜色索引
颜色索引值(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线型、常见别名和自定义线型。 输入的线型名称会被转换为大写进行匹配。
支持的线型:
线型名称
获取全局线宽
全局线宽值
设置全局线宽并标记修改
新的全局线宽值
获取是否闭合
是否闭合
设置是否闭合并标记修改
获取整体高程(2D多段线使用)
整体高程值
设置整体高程并标记修改
新的高程值
获取凸度点集合
获取高程值数组(3D多段线使用)
高程值数组,如果不是3D多段线则返回null
设置高程值数组
高程值数组,设置为null则清除高程数据
检查是否有高程数据(是否为3D多段线)
是否有高程数据
检查终点是否与起点闭合 判断多段线的起点和终点是否重合(在容差范围内)
是否闭合
获取多段线总长度
计算多段线所有段的总长度,包括直线段和圆弧段。
多段线的总长度
检测多段线自相交
检查多段线是否存在自相交(线段之间相交)。 这是一个重要的几何验证方法,用于检测多段线的有效性。
算法逻辑:
如果存在自相交返回true
检查是否包含凸度
判断多段线是否包含非零的凸度值(即是否包含圆弧段)。
如果包含圆弧段返回true
检查面积计算时是否闭合
判断多段线在面积计算时是否应该被视为闭合。 即使标记为开放,如果起终点重合也视为闭合。
如果应该视为闭合返回true
获取多段线面积
计算多段线围成的面积。只有满足特定条件的多段线才能计算面积:
面积值,如果不满足条件返回-1
获取双倍面积
使用鞋带公式计算多边形的双倍面积。 这是面积计算的基础方法。
双倍面积值
检查是否为逆时针方向
根据双倍面积的符号判断多段线的绕向。 正值表示逆时针,负值表示顺时针。
如果是逆时针方向返回true
清除扩展数据
检查是否有扩展数据
是否存在扩展数据
从默认属性对象复制属性
将指定的默认属性对象的所有相关属性复制到当前实体。 这通常用于创建新实体时应用默认设置。
默认属性对象,包含layer、colorIndex、lineType等属性
当前实例(支持链式调用)
设置为系统默认值
从全局CAD系统设置中获取当前的默认属性值并应用到实体。 这些默认值包括当前图层、当前颜色、当前线型等。
使用的全局变量:
从数据库默认属性对象设置属性
从数据库查询结果或序列化数据中恢复实体属性。 这个方法处理数据库中可能存在的空值和默认值情况。
数据库属性对象,包含layerId、colorIndex等属性
当前实例(支持链式调用)
将属性映射到数据库默认属性对象
将当前实体的属性映射到数据库存储格式的对象中。 用于保存实体数据到数据库或序列化。
目标数据库属性对象
映射后的属性对象
释放实体占用的外部资源 子类如持有 PIXI 对象或大尺寸缓冲,应覆盖此方法清理
获取指定顶点的高程值
顶点索引(0-based)
高程值,如果索引无效则返回0
设置指定顶点的高程值
顶点索引(0-based)
高程值
检查所有关键点是否在指定框内
判断多段线的所有顶点是否都在指定的边界框内。 这是一个可见性检测方法,用于判断多段线是否完全在视图范围内。
边界框对象
如果所有顶点都在框内返回true
反转多段线方向
将多段线的顶点顺序反转,同时反转所有凸度值的符号。 这个操作会改变多段线的绘制方向,但保持几何形状不变。
添加一个顶点到多段线末尾
支持简化的数组写法 [x, y]。
新顶点的坐标,支持 Point2D 或数组 [x, y]
从新顶点到下一个顶点的凸度,默认为0
Optionalelevation: number顶点高程值(可选),如果存在高程数组会同步添加
移除最后一个顶点
设置闭合状态
是否闭合
镜像变换
对多段线进行镜像变换,以指定的两点为镜像轴。 镜像操作会改变所有顶点位置和凸度值的符号。
镜像轴起点
镜像轴终点
移动变换
将多段线从一个位置移动到另一个位置。 移动所有顶点,保持相对位置不变。
起始位置
目标位置
旋转变换
围绕指定点旋转多段线。旋转所有顶点,凸度值保持不变。
旋转中心点
旋转角度(弧度)
缩放变换
以指定点为中心对多段线进行缩放。 缩放会同时影响顶点位置和全局线宽。
缩放中心点
缩放因子
拉伸变形操作
根据拉伸框和移动向量对多段线进行拉伸。 只有在拉伸框内的顶点会被移动。
拉伸起始点
拉伸目标点
拉伸框对象
清除几何缓存 在实体被修改时调用
重写 setModified 以清除几何缓存
计算边界框
根据指定的坐标系计算多段线的最小边界矩形。 通过合并所有段的边界框来计算总边界框。
坐标系类型(M.WCS、M.UCS、M.DCS)
边界框对象
从前端按距离修剪多段线
从多段线的起点开始,按指定距离修剪多段线。 算法遍历各段,累计长度直到达到指定距离,然后修剪相应的段。
修剪距离
从后端按距离修剪多段线
从多段线的终点开始,按指定距离修剪多段线。 算法与trimFrontAtDist类似,但从后向前处理。
修剪距离
夹点编辑操作
编辑多段线的顶点位置。根据夹点索引更新对应顶点的坐标。
新的夹点位置
夹点索引(字符串格式)
中点夹点编辑操作
编辑多段线段的中点位置。这是一个复杂的操作,需要根据段的类型 (直线或圆弧)采用不同的处理方式。
新的中点位置
段索引(字符串格式)
从数据库格式恢复
从数据库格式的对象恢复多段线的所有参数。 支持两种数据格式:新格式(dbBulgePoints)和旧格式(pointDataList)。
数据库格式的多段线数据
多段线类 表示CAD中的多段线实体,继承自实体基类。 多段线由一系列连接的线段和弧段组成,支持凸度值来表示弧段。
Example