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

    Class HatchEnt

    填充类 表示CAD中的填充实体,支持多种填充图案

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

    // 创建填充实体
    const hatch = new HatchEnt();
    hatch.patternName = "ANSI31";
    hatch.setDefaults();
    Engine.addEntities(hatch);

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    type: string

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

    objectId: string

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

    id: number

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

    _lineType: string
    _isAlive: boolean
    isDirty: boolean

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

    block?: any
    patternEnts: GLine[]
    _regenFlag: boolean
    _patternRenderer?: any

    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 globalWidth(): number

      Returns number

    • set globalWidth(value: number): void

      Parameters

      • value: number

      Returns void

    • get isClosed(): boolean

      Returns boolean

    • set isClosed(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get loops(): Edges

      Returns Edges

    • set loops(value: Edges): void

      Parameters

      Returns void

    • get patternName(): string

      Returns string

    • set patternName(value: string): void

      Parameters

      • value: string

      Returns void

    • get patternCross(): boolean

      Returns boolean

    • set patternCross(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • get patternScale(): number

      Returns number

    • set patternScale(value: number): void

      Parameters

      • value: number

      Returns void

    • get patternSpace(): number

      Returns number

    • set patternSpace(value: number): void

      Parameters

      • value: number

      Returns void

    • get origin(): Point2D

      Returns Point2D

    • set origin(value: Point2D): void

      Parameters

      Returns void

    • get patternAngle(): number

      获取图案角度

      Returns number

      角度值

    • set patternAngle(angleValue: number): void

      设置图案角度

      Parameters

      • angleValue: number

        角度值

      Returns void

    • get regenFlag(): boolean

      获取重新生成标志

      Returns boolean

      是否需要重新生成

    • get fillLoopsCache(): FillLoopData[]

      获取填充循环缓存

      Returns FillLoopData[]

    • set fillLoopsCache(value: FillLoopData[]): void

      设置填充循环缓存

      Parameters

      Returns void

    • get startBulgePoint(): any

      获取起始凸度点

      Returns any

      起始凸度点

    • get endBulgePoint(): any

      获取结束凸度点

      Returns any

      结束凸度点

    • get subGeometries(): SubGeometry[]

      获取填充的轻量级几何体集合(用于几何计算和渲染)

      与 subEnts 不同,此方法返回轻量级几何对象(GLine、GArc、GCircle、GEllipse), 不包含实体属性(颜色、图层等),减少内存占用和计算开销。 支持缓存,通过 Engine.ENABLE_GEOMETRY_CACHE 控制。

      Returns SubGeometry[]

      轻量级几何体数组

    • get Length(): number

      Returns number

    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

      映射后的属性对象

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

      Returns void

    • 设置重新生成标志,并清除填充循环缓存

      Returns void

    • 清除重新生成标志

      Returns void

    • 重新生成填充图案 根据图案名称生成对应的填充线条

      Parameters

      • applyProperties: boolean = true

        是否应用默认属性,默认为true(保留参数以保持接口兼容,但GLine不使用此属性)

      Returns GLine[]

      生成的图案实体数组

    • 设置填充图案性能选项

      Parameters

      • options: any

        性能选项

      Returns void

    • 获取填充算法统计信息

      Returns any

      统计信息

    • 验证当前图案定义

      Returns { valid: boolean; errors: string[] }

      验证结果

    • 获取图案实体

      Returns GLine[]

      图案实体数组

    • 获取图案间隔 从图案定义中获取正确的间隔值

      Returns number

      图案间隔

    • 设置边界循环 自动处理:Circle/Ellipse 类型自动生成 bulgePoints,自动设置闭合

      Parameters

      • edgesCollection: Edges

        边界循环集合

      Returns void

    • 重新生成循环 触发填充图案重新生成

      Returns void

    • 获取DCS坐标系下的边界

      Returns BoundingBox

      DCS坐标系下的边界框

    • 获取UCS坐标系下的边界

      Returns BoundingBox

      UCS坐标系下的边界框

    • 获取指定坐标系下的边界

      Parameters

      • coordinateSystem: string = "Wcs"

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

      Returns BoundingBox

      边界框

    • 检查点是否在凸度点集合内 使用射线法判断点是否在多边形内部

      Parameters

      Returns boolean

      是否在内部

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

      Parameters

      Returns boolean

      是否所有点都在框内

    • 旋转变换

      Parameters

      • rotationCenter: PointInput

        旋转中心

      • rotationAngle: number

        旋转角度

      • shouldSetRegenFlag: boolean = true

        是否设置重新生成标志,默认为true

      Returns void

    • 缩放变换

      Parameters

      • scaleCenter: PointInput

        缩放中心

      • scaleFactor: number

        缩放因子

      Returns void

    • Parameters

      Returns void

    • 获取多边形顶点数组(用于新的填充渲染器) 将包含凸度的边界转换为离散的多边形顶点

      Parameters

      • arcSegments: number = 128

        圆弧离散化的段数,默认128

      Returns number[][][]

      多边形顶点数组 [[x1, y1], [x2, y2], ...]

    • 将圆弧离散化为多个点

      基于AutoCAD的bulge定义:

      • bulge = tan(sweepAngle / 4)
      • 正bulge:逆时针圆弧(CCW)
      • 负bulge:顺时针圆弧(CW)

      Parameters

      • startPoint: Point2D

        起点

      • endPoint: Point2D

        终点

      • bulge: number

        凸度值

      • segments: number

        离散化段数

      Returns number[][]

      离散化后的点数组

    • 清除几何缓存

      Returns void

    • 重写 setModified 以清除几何缓存

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void