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

    Class ArcEnt

    Hierarchy (View Summary)

    Index

    Constructors

    • 构造函数

      创建一个圆弧实体,设置基本的几何参数。 角度使用弧度制,起始角度和结束角度从X轴正方向逆时针测量。 支持简化的数组写法 [x, y]

      Parameters

      • centerPoint: PointInput = ...

        圆心坐标,支持 Point2D 或数组 [x, y],默认为原点(0,0)

      • radiusValue: number = 1

        半径,默认为1单位

      • startAngle: number = 0

        起始角度(弧度),默认为0(X轴正方向)

      • endAngle: number = Math.PI

        结束角度(弧度),默认为π(X轴负方向)

      Returns ArcEnt

      // 简化写法
      const arc1 = new ArcEnt([50, 50], 25, 0, Math.PI / 2);

      // Point2D 写法
      const arc2 = new ArcEnt(new Point2D(50, 50), 25, 0, Math.PI / 2);

    Properties

    _radius: number = 0
    _startAng: number = 0
    _endAng: number = Math.PI
    _isCCW: boolean = true
    type: string

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

    objectId: string

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

    id: number

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

    _lineType: string
    _isAlive: boolean
    isDirty: boolean

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

    block?: any

    Accessors

    • get center(): Point2D

      获取圆心

      Returns Point2D

    • set center(val: PointInput): void

      设置圆心

      Parameters

      • val: PointInput

        新的圆心坐标,支持 Point2D 或数组 [x, y]

      Returns void

    • get radius(): number

      获取半径

      返回圆弧的半径值。

      Returns number

      半径值(非负数)

    • set radius(radiusValue: number): void

      设置半径

      设置圆弧的半径,自动确保半径为非负值。

      Parameters

      • radiusValue: number

        半径值(负数会被转换为正数)

      Returns void

    • get startAng(): number

      获取起始角度

      返回标准化后的起始角度。

      Returns number

      起始角度(弧度,0-2π范围)

    • set startAng(angle: number): void

      设置起始角度

      设置圆弧的起始角度,自动进行角度标准化。

      Parameters

      • angle: number

        起始角度(弧度)

      Returns void

    • get endAng(): number

      获取结束角度

      返回标准化后的结束角度。

      Returns number

      结束角度(弧度,0-2π范围)

    • set endAng(angle: number): void

      设置结束角度

      设置圆弧的结束角度,自动进行角度标准化。

      Parameters

      • angle: number

        结束角度(弧度)

      Returns void

    • get startPoint(): Point2D

      获取圆弧起点坐标

      Returns Point2D

      起点坐标

    • set startPoint(newStartPoint: Point2D): void

      设置圆弧起点

      通过设置新的起点来重新计算圆弧的几何参数。

      Parameters

      • newStartPoint: Point2D

        新的起点坐标

      Returns void

    • get endPoint(): Point2D

      获取圆弧终点坐标

      Returns Point2D

      终点坐标

    • set endPoint(newEndPoint: Point2D): void

      设置圆弧终点

      通过设置新的终点来重新计算圆弧的几何参数。

      Parameters

      • newEndPoint: Point2D

        新的终点坐标

      Returns void

    • get midPoint(): Point2D

      获取圆弧中点坐标

      Returns Point2D

      中点坐标

    • set midPoint(newMidPoint: Point2D): void

      设置圆弧中点

      通过设置新的中点来重新定义圆弧。

      Parameters

      • newMidPoint: Point2D

        新的中点坐标

      Returns void

    • get midAng(): number

      获取中间角度

      Returns number

      中间角度(弧度)

    • get innerAng(): number

      获取内角(属性版本)

      Returns number

      内角值(弧度,0-2π范围)

    • get length(): number

      获取圆弧长度

      Returns number

      圆弧长度

    • get bulge(): number

      获取凸度值

      Returns number

      凸度值,正值表示逆时针,负值表示顺时针

    • get chordLength(): number

      获取弦长

      Returns number

      弦长值

    • get diameter(): number

      获取直径

      Returns number

      直径值

    • get sagitta(): number

      获取矢高(弓形高度)

      Returns number

      矢高值

    • 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

    Methods

    • 根据给定点获取圆弧上最近的点

      Parameters

      • givenPoint: Point2D

        给定点坐标

      Returns Point2D

      圆弧上最近的点坐标

    • 根据给定点计算沿圆弧的距离

      Parameters

      • givenPoint: Point2D

        给定点坐标

      • fromStart: boolean = true

        是否从起点开始计算,true=从起点,false=从终点

      Returns number

      沿圆弧的距离(弧长)

    • 判断点在圆弧的哪一侧进行拾取

      Parameters

      • firstPoint: Point2D

        第一个点(主要判断点)

      • secondPoint: Point2D = ...

        第二个点(可选,用于更精确的判断)

      Returns string

      "start"表示靠近起点,"end"表示靠近终点

    • 判断点是否在圆弧的角度范围内

      Parameters

      Returns boolean

      如果点在圆弧的角度范围内返回true,否则返回false

    • 判断角度是否在圆弧的角度范围内

      Parameters

      • angle: number

        角度值(弧度)

      Returns boolean

      如果角度在圆弧范围内返回true,否则返回false

    • 计算圆弧的边界框

      Parameters

      • coordinateSystemType: CoordinateSystemType = CoordinateSystemType.WCS

        坐标系类型(M.WCS=世界坐标系,M.UCS=用户坐标系,M.DCS=显示坐标系)

      Returns BoundingBox

      边界框对象,包含最小点和最大点

    • 获取圆弧的OpenGL渲染点集

      Parameters

      • renderMode: string = ""

        渲染模式("both"=双端加厚,"start"=起点加厚,"end"=终点加厚,""=普通)

      Returns Point2D[]

      渲染点集数组

    • 初始化圆弧参数

      Parameters

      • centerPoint: Point2D

        圆心坐标点

      • radiusValue: number

        半径值

      • startAngle: number

        起始角度(弧度)

      • endAngle: number

        结束角度(弧度)

      Returns void

    • 为多段线圆弧初始化参数

      Parameters

      • startPoint: Point2D

        起点坐标

      • endPoint: Point2D

        终点坐标

      • bulgeFactor: number

        凸度值(bulge factor)

      Returns void

    • 根据弦长和凸度计算半径

      Parameters

      • chordLength: number

        弦长(两端点间的直线距离)

      • bulgeFactor: number

        凸度值(bulge factor)

      Returns number

      计算得到的半径值(绝对值)

    • 获取角度相对位置

      Parameters

      • targetAngle: number

        目标角度(弧度)

      Returns number

      相对角度位置(0-2π范围)

    • 获取内角(旧版本方法)

      Returns number

      内角值(弧度)

    • 计算总角度

      Returns number

      总角度值

    • 检查所有关键点是否在指定框内

      Parameters

      Returns boolean

      如果起点和终点都在框内返回true,否则返回false

    • 从前端按距离修剪圆弧

      Parameters

      • trimDistance: number

        修剪距离

      • fromStart: boolean = true

        修剪方向,true=从起点修剪,false=从终点修剪

      Returns void

    • 从后端按距离修剪圆弧

      Parameters

      • trimDistance: number

        修剪距离

      • fromEnd: boolean = true

        修剪方向,true=从终点修剪,false=从起点修剪

      Returns void

    • 旋转变换

      Parameters

      • rotationCenter: PointInput

        旋转中心点

      • rotationAngle: number

        旋转角度(弧度)

      Returns void

    • 缩放变换

      Parameters

      • scaleCenter: PointInput

        缩放中心点

      • scaleFactor: number

        缩放因子

      Returns void

    • 根据凸度计算半径

      Returns number

      计算得到的新半径值

    • 通过三点初始化圆弧

      Parameters

      Returns this

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

    • 计算三点确定的圆心

      Parameters

      Returns Point2D

      圆心坐标,如果三点共线则返回null

    • 拉伸变形操作

      Parameters

      Returns void

    • 修复拉伸操作

      从备份数据恢复圆弧的几何参数,用于撤销拉伸操作。

      Parameters

      • backupData: ArcEnt

        备份的圆弧数据

      Returns void

    • 夹点编辑操作

      Parameters

      • newGripPosition: Point2D

        新的夹点位置

      • gripType: string

        夹点类型("start"、"end"、"center"、"mid")

      Returns void

    • 撤销映射操作

      从撤销数据恢复圆弧的几何参数。

      Parameters

      • undoData: ArcEnt

        撤销数据对象

      Returns void

    • 克隆圆弧

      创建当前圆弧的完整副本,包括所有几何参数和属性。

      Returns ArcEnt

      新的圆弧实例

    • 转换为数据库格式

      将圆弧对象转换为适合数据库存储的格式。

      Returns DbArc

      数据库格式的圆弧对象

    • 从数据库格式恢复

      从数据库格式的对象恢复圆弧的所有参数。

      Parameters

      • dbData: DbArc

        数据库格式的圆弧数据

      Returns this

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

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

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

      Returns void