唯杰地图 logo唯杰地图
VJMAP
EN

overview

vjcad/references/core/overview.md 2.6 KB48 行
原文

本文回答:vjcad 的核心层由 Engine(运行时入口)、pcanvas(画布控制器)、CadDocument + currentSpace(文档与当前空间)、trans 坐标转换 五块构成;命令 / 实体 / 事件 / 插件等系统模块都通过 Engine.* 获取这些核心对象。

一、组件关系

Engine(单例 / 全局入口)
├── pcanvas              画布控制器(addEntity/regen/redraw/zoomExtents/drawControl)
│   └── trans            坐标转换(CanvasToWcs / WcsToCanvas)
├── currentDoc           当前文档
│   ├── currentSpace     当前空间(ModelSpace / PaperSpace)
│   │   ├── items        所有实体
│   │   ├── addEntities  批量入库(不记 undo,业务代码用 Engine.addEntities)
│   │   └── erase        删除
│   ├── layers           图层集合
│   ├── blocks           块集合
│   ├── layouts          布局集合
│   ├── textStyles       文字样式
│   ├── dimensionStyles  标注样式(字段名是 dimensionStyles,不是 dimStyles)
│   └── linetypeDefinitions  线型定义(不是 lineTypes)
├── editor               编辑控制器(命令调度、输入处理)
│   ├── executerWithOp   触发命令
│   └── contextMenu      右键菜单(挂在 editor 上,非 Engine 直属)
├── eventManager         事件管理器(on/off/once/offAll/suspend/resume)
├── undoManager          撤销管理器
└── view                 视图相关(coordsBar / openDbDoc / ...)

MCP 参考:vjcad/doc/guide/architecture.md、vjcad/doc/command/api-reference.md。

二、按子主题挑

想问的 去读
Engine 全部能干什么 / 系统变量 engine
pcanvas 的 regen/redraw/render 区别 / 高亮 / 预览图 pcanvas
当前文档与当前空间,怎么取实体 document-space
屏幕 ↔ 图纸坐标怎么转 coordinate
vjcad 包对外导出哪些类 / 函数 public-api

三、生命周期

Engine 在 await cadView.onLoad() 之后才组装好;只有 onLoad 之后才能访问 Engine.pcanvas / Engine.currentDoc / Engine.eventManager / Engine.undoManager / Engine.editor / Engine.view。详见 setup/onload-lifecycle。

参考(官方文档 MCP)

  • 文档:vjcad/doc/guide/architecture.md、vjcad/doc/command/api-reference.md
  • 示例:vjcad/example/basic/01init.js、vjcad/example/basic/02onload.js