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

    Class Engine

    系统变量类 管理CAD系统的全局变量和状态

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

    // 获取当前文档
    const doc = Engine.currentDoc;

    // 获取当前画布
    const canvas = Engine.pcanvas;

    // 获取/设置系统变量
    Engine.CECOLOR = 1; // 设置当前实体颜色为红色
    console.log(Engine.OSMODE); // 获取对象捕捉模式
    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    APERTURE: number = 5

    光圈大小

    AUTOSNAP: number = 8

    自动捕捉

    BOXRAD: number = 5

    框半径

    CEALPHA: number = 1

    当前实体透明度

    CECOLOR: number = 256

    当前实体颜色

    CELTSCALE: number = 1

    当前实体线型比例

    CELTYPE: string = "ByLayer"

    当前实体线型

    CMDACTIVE: number = 0

    命令激活状态

    FILLETRAD: number = 0

    圆角半径

    GRIPSIZE: number = 4

    夹点大小

    HLCOLOR: number = 172

    高亮颜色

    HLALPHA: number = 0.5

    高亮透明度

    HLGCOLOR: number = 144

    高亮网格颜色

    MAXHISTROWS: number = 20

    最大历史行数

    OFFSETDIST: number = 10

    偏移距离

    PICKBOX: number = 5

    选择框大小

    CURSORSIZE: number = 64

    十字光标大小(像素,0表示全屏)

    PLINEWID: number = 0

    多段线宽度

    POLARANG: number = ...

    极坐标角度

    VIEWSIZE: number = 0

    视图大小

    THADJ: number = 1.2

    文字高度调整

    LAYER_PREFIX: string = "图层"

    图层前缀

    vectorFont: any = null
    SHOWLOADPROGRESS: boolean = true
    performancePriorityMode: boolean = false
    LAZYLOADCLOSEDLAYERS: boolean = true
    ENABLE_GEOMETRY_CACHE: boolean = true
    OPEN_DIMENSION_AS_GROUP: boolean = false

    标注实体打开模式

    • true: 以组形式打开标注实体,使用 nestEnts 显示(与 AutoCAD 显示一致,但不可编辑)
    • false: 以原生自定义实体形式打开(可编辑标注)
    true
    @public
    DARK_BG_COLOR: string = '#212830'

    深色背景色

    LIGHT_BG_COLOR: string = '#FFFFFF'

    浅色背景色

    LASTPOINT: Point2D = ...
    SCREENSIZE: Point2D = ...
    canvasController: CanvasController

    Accessors

    • get maxLinetypeSegments(): number

      获取最大线型段数(动态调整) 根据渲染时的线型段数统计动态调整此值

      Returns number

      最大线型段数

    • set maxLinetypeSegments(value: number): void

      设置最大线型段数的初始值

      Parameters

      • value: number

        初始最大线型段数

      Returns void

    • get reactorManager(): EntityReactorManager

      获取实体反应器管理器(单例)

      管理实体间的依赖关系,用于:

      • 关联标注(当源实体变化时自动更新标注)
      • 约束系统
      • 参数化设计

      Returns EntityReactorManager

      EntityReactorManager 实例

    • get eventManager(): CadEventManager

      获取事件管理器(单例)

      用于订阅和发布CAD系统中的各类事件:

      • 实体事件(EntityAdded, EntityErased等)
      • 命令事件(CommandStarted, CommandEnded等)
      • 文档事件(DocumentOpened, DocumentSaved等)
      • 选择事件(SelectionChanged等)

      Returns CadEventManager

      CadEventManager 实例

      Engine.eventManager.on(CadEvents.EntityAdded, (args) => {
      console.log('实体已添加:', args.entity.type);
      });
    • get service(): Service

      获取全局 Service 实例(懒加载) 用于与后端服务

      Returns Service

    • get DWGNAME(): string

      获取图形名称

      Returns string

      图形名称

    • get DWGPREFIX(): string

      获取图形路径前缀

      Returns string

      图形路径前缀

    • get DWGTITLED(): boolean

      获取图形是否已命名

      Returns boolean

      是否已命名

    • get ZOOMFACTOR(): number

      获取缩放因子

      Returns number

      缩放因子

    • set ZOOMFACTOR(zoomFactor: number): void

      设置缩放因子

      Parameters

      • zoomFactor: number

        缩放因子

      Returns void

    • get OSMODE(): number

      获取对象捕捉模式

      Returns number

      对象捕捉模式

    • set OSMODE(osnapMode: number): void

      设置对象捕捉模式

      Parameters

      • osnapMode: number

        对象捕捉模式

      Returns void

    • get GRIDMODE(): number

      获取网格模式

      Returns number

      网格模式

    • set GRIDMODE(gridMode: number): void

      设置网格模式

      Parameters

      • gridMode: number

        网格模式

      Returns void

    • get ORTHOMODE(): number

      获取正交模式

      Returns number

      正交模式

    • set ORTHOMODE(orthoMode: number): void

      设置正交模式

      Parameters

      • orthoMode: number

        正交模式

      Returns void

    • get POLARMODE(): number

      获取极坐标模式

      Returns number

      极坐标模式

    • set POLARMODE(polarMode: number): void

      设置极坐标模式

      Parameters

      • polarMode: number

        极坐标模式

      Returns void

    • get THEME_MODE(): number

      获取主题模式

      Returns number

      主题模式(0=深色,1=浅色)

    • set THEME_MODE(mode: number): void

      设置主题模式

      Parameters

      • mode: number

        主题模式(0=深色,1=浅色)

      Returns void

    • get app(): HTMLElement

      获取应用程序元素

      Returns HTMLElement

      应用程序元素

    • get view(): MainView

      获取视图元素

      Returns MainView

      视图元素

    • get dialog(): HTMLElement

      获取对话框元素

      Returns HTMLElement

      对话框元素

    • get commandLine(): CommandLine

      获取命令行

      Returns CommandLine

      命令行对象

    • get editor(): Editor

      获取编辑器

      Returns Editor

      编辑器对象

    • get pcanvas(): CanvasController

      获取画布

      Returns CanvasController

      画布对象

    • get sidePalettes(): SidePalettes

      获取侧边调色板

      Returns SidePalettes

      侧边调色板对象

    • get currentDoc(): CadDocument

      获取当前文档

      Returns CadDocument

      当前文档对象

    • get undoManager(): UndoManager

      获取撤销管理器

      Returns UndoManager

      撤销管理器对象

    Methods

    • Returns Promise<void>

    • 设置全局 Service 实例 允许外部注入自定义的 Service 实例

      Parameters

      Returns void

    • 重置全局 Service 实例 下次访问时会重新创建

      Returns void

    • 清除DOM元素缓存 在视图重新挂载或替换时调用

      Returns void

    • 强制刷新DOM元素缓存 在确认视图已更新时调用

      Returns void

    • 获取当前主题的背景色

      Returns string

      背景色十六进制字符串

    • 判断是否为深色主题

      Returns boolean

      是否为深色主题

    • 仅从 localStorage 初始化主题模式值(不调用 setBgc) 用于在 Draw 类创建之前设置正确的主题

      Returns void

    • 从 localStorage 加载主题设置并应用到画布

      Returns void

    • 设置活动文档

      Parameters

      Returns void

    • 释放文档持有的显著资源

      Parameters

      Returns void

    • 销毁整个画布控制器 用于彻底释放所有 PixiJS 资源 注意:调用后需要重新初始化才能继续使用

      Returns void

    • 设置实体到UI

      Parameters

      Returns void

    • 清除UI实体

      Returns void

    • 合并文档ID到历史前端

      Parameters

      • docId: number

        文档ID

      Returns void

    • 查找并移除文档ID

      Parameters

      • docs: CadDocument[]

        文档数组

      • removeDocId: number

        要移除的文档ID

      Returns number

      下一个文档ID

    • 获取当前空间中的所有实体

      Parameters

      • Optionalfilter: (entity: EntityBase) => boolean

        可选的过滤函数

      Returns EntityBase[]

      实体数组

    • 根据实体类型获取实体

      Parameters

      • type: string

        实体类型名称

      Returns EntityBase[]

      匹配的实体数组

    • 批量设置实体图层 自动记录撤销操作

      Parameters

      Returns void

    • 批量设置实体颜色 自动记录撤销操作

      Parameters

      Returns void

    • 批量设置实体线型 自动记录撤销操作

      Parameters

      • entities: EntityBase[]

        实体数组或单个实体

      • lineType: string

        线型名称

      Returns void

    • 批量设置实体线型比例 自动记录撤销操作

      Parameters

      • entities: EntityBase[]

        实体数组

      • scale: number

        线型比例因子

      Returns void

    • 批量设置实体透明度 自动记录撤销操作

      Parameters

      • entities: EntityBase[]

        实体数组

      • transparency: number

        透明度值 (0-100)

      Returns void

    • 标记实体为已修改(用于撤销记录) 在修改实体属性前调用此方法,记录实体当前状态

      Parameters

      Returns void

    • 批量标记实体为已修改

      Parameters

      Returns void

    • 标记图层为已修改

      Parameters

      • layer: Layer

        要修改的图层

      Returns void

    • 获取所有图层

      Returns Layer[]

      图层数组

    • 根据名称获取图层

      Parameters

      • name: string

        图层名称

      Returns Layer

      图层对象

    • 获取当前图层名称

      Returns string

      当前图层名称

    • 设置当前图层 自动记录撤销操作

      Parameters

      • layerName: string

        图层名称

      Returns boolean

      是否设置成功

    • 创建新图层 自动记录撤销操作

      Parameters

      • Optionalname: string

        图层名称,为空则自动生成

      • options: LayerCreateOptions = {}

        图层选项

      Returns Layer

      创建的图层

    • 获取当前选中的实体

      Returns EntityBase[]

      选中的实体数组

    • 获取实体边界框

      Parameters

      • entities: EntityBase[]

        实体数组

      • coordSystem: string = "WCS"

        坐标系统 ("WCS" | "UCS" | "DCS")

      Returns BoundingBox

      边界框

    • 全图显示(缩放视图以显示所有实体)

      Parameters

      • Optionalentities: EntityBase[]

        可选,要显示的实体数组。为空则显示当前空间所有实体

      • Optionaloptions: {
            dcsCorner1?: Point2D;
            dcsCorner2?: Point2D;
            wcsBounds?: number[];
            autoSetRenderOrigin?: boolean;
            padding?: { top?: number; bottom?: number; left?: number; right?: number };
        }

        可选配置

        • OptionaldcsCorner1?: Point2D

          DCS坐标系角点1

        • OptionaldcsCorner2?: Point2D

          DCS坐标系角点2

        • OptionalwcsBounds?: number[]

          WCS世界坐标系范围 [minX, minY, maxX, maxY]

        • OptionalautoSetRenderOrigin?: boolean

          是否自动设置渲染原点,默认为true

        • Optionalpadding?: { top?: number; bottom?: number; left?: number; right?: number }

          边距配置(像素)

      Returns boolean

      是否成功执行全图显示

    • 缩放视图以显示指定实体

      Parameters

      • entities: EntityBase | EntityBase[]

        要显示的实体数组

      • Optionaloptions: { padding?: { top?: number; bottom?: number; left?: number; right?: number } }

        可选配置

      Returns void

    • 重绘画布

      Returns void

    • 渲染画布

      Returns void

    • 清除夹点显示

      Returns void

    • 清除对象捕捉标记

      Returns void

    • 重新生成图形

      Parameters

      • forceFull: boolean = false

        是否强制执行完整重绘,默认为false

      Returns void

    • 设置视图中心到指定的世界坐标点

      Parameters

      • wcsCenter: Point2D

        世界坐标系中的中心点

      • shouldRedraw: boolean = true

        是否重绘画布,默认为true

      • Optionalpadding: { top?: number; bottom?: number; left?: number; right?: number }

        可选的边距设置

      Returns void

    • 设置背景色

      Parameters

      • grayValue: number

        灰度值(0=黑色,255=白色)

      Returns void

    • 调整画布大小

      Parameters

      • width: number

        宽度

      • height: number

        高度

      Returns void

    • 缩放视图以适应指定实体范围

      Parameters

      • entities: EntityBase[]

        实体数组

      • Optionalpadding: { top?: number; bottom?: number; left?: number; right?: number }

        边距配置(像素)

      • autoSetRenderOrigin: boolean = true

        是否自动设置渲染原点,默认为true

      Returns boolean

      是否成功执行

    • 获取屏幕范围(世界坐标系)

      Parameters

      • expandFactor: number = 1

        扩展因子,默认为1

      Returns BoundingBox

      屏幕边界框

    • 获取当前屏幕内的实体

      Parameters

      • expandFactor: number = 1.0

        屏幕边界扩展因子,默认为1.0

      Returns EntityBase[]

      屏幕内实体数组

    • 显示消息到命令行

      Parameters

      • message: string

        消息内容

      Returns void

    • 清空/设置选择集

      Parameters

      • entities: EntityBase[] = []

        要选中的实体数组

      Returns void

    • 获取当前预选集

      Returns EntityBase[]

      当前选中的实体数组

    • 绘制预览实体

      Parameters

      Returns void

    • 批量绘制预览实体

      Parameters

      Returns void

    • 清除预览

      Returns void

    • 重置预览

      Returns void

    • 设置预览位置

      Parameters

      Returns void

    • 设置预览旋转角度

      Parameters

      • angle: number

        旋转角度(弧度)

      Returns void

    • 设置预览缩放

      Parameters

      • scaleX: number

        X 方向缩放

      • scaleY: number

        Y 方向缩放

      Returns void

    • 高亮显示实体

      Parameters

      Returns void

    • 清除高亮

      Returns void

    • Canvas坐标转世界坐标

      Parameters

      Returns Point2D

      世界坐标

    • 世界坐标转用户坐标

      Parameters

      Returns Point2D

      用户坐标

    • 用户坐标转世界坐标

      Parameters

      Returns Point2D

      世界坐标

    • 世界坐标转显示坐标

      Parameters

      Returns Point2D

      显示坐标

    • 开始撤销记录组 支持嵌套调用,只有最外层会真正开始/结束记录组

      Returns void

    • 结束撤销记录组

      Returns void

    • 检查当前是否在撤销记录组内

      Returns boolean

      是否在撤销记录组内

    • 开始撤销标记组

      Returns void

    • 结束撤销标记组

      Returns void

    • 记录添加实体的撤销操作

      Parameters

      Returns void

    • 记录删除实体的撤销操作

      Parameters

      Returns void

    • 记录移动实体的撤销操作

      Parameters

      Returns void

    • 记录旋转实体的撤销操作

      Parameters

      • entities: EntityBase[]

        旋转的实体数组

      • basePoint: Point2D

        基点

      • angle: number

        旋转角度

      Returns void

    • 记录缩放实体的撤销操作

      Parameters

      • entities: EntityBase[]

        缩放的实体数组

      • basePoint: Point2D

        基点

      • scale: number

        缩放比例

      Returns void

    • 记录镜像实体的撤销操作

      Parameters

      Returns void

    • 检测点附近的线段实体

      使用空间索引优化搜索,适用于大量实体的场景。 支持检测 LINE 和 PLINE(多段线中的直线段)类型实体。

      Parameters

      • point: Point2D

        检测点(WCS 坐标)

      • Optionalaperture: number

        可选,拾取容差。默认使用 Engine.APERTURE / Engine.currentSpace.zoom

      Returns LineSegmentInfo

      最近的线段信息,如果没有找到则返回 null

      // 检测鼠标点击位置附近的线段
      const lineInfo = Engine.detectLineAtPoint(worldPoint);
      if (lineInfo) {
      console.log('检测到线段:', lineInfo.entity.id);
      console.log('点类型:', lineInfo.pointType); // 'start' | 'end' | 'midpoint' | 'nearest'
      }