overview
本文回答:开始 vjcad 开发前应按照"安装 → MainView 配置 → initCadContainer 挂载 → await onLoad → 用 Engine"的顺序检查这 7 个 setup 子主题。
一、初始化的 6 步
npm install vjcad(或 yarn/pnpm),见 install-and-mcp。- 准备好一个有非零宽高的 DOM 容器(例如
<div id="cad-app">设width:100% height:100%)。 new MainView({...}):传入appname / version / wasmServiceUrl / serviceUrl / accessToken / sidebarStyle / fonts / locale / viewMode等,见 mainview-init。initCadContainer('cad-app', cadView):把MainView实例挂到容器。await cadView.onLoad():必须等待,onLoad内部会等 PixiJS、WASM、字体、插件、URL 参数全部就绪。详见 onload-lifecycle。- 绘图/文档 API(
Engine.addEntities、Engine.currentDoc、Engine.editor等)须在onLoad之后调用;CommandRegistry.regist、Engine.eventManager.on在onLoad前调用也有效(命令表是静态数组、事件管理器是全局单例)。
二、按场景挑子主题
| 场景 | 子主题 |
|---|---|
| 安装 / 环境 / MCP 服务地址 | install-and-mcp |
MainView 配置项详解 |
mainview-init |
onLoad() 在等什么、为什么必须等 |
onload-lifecycle |
| 字体(woff/ttf/shx)配置 | fonts |
中英文界面切换 / t / registerMessages |
locale-i18n |
| 只读查看模式(隐藏菜单/工具栏) | viewer-mode |
| 状态栏 / 菜单 / Ribbon / 侧边栏全量定制 | mainview-config |
三、Top 初始化错误
- 没
await cadView.onLoad()就用Engine→ 不会报 undefined:Engine.currentDoc是懒建的孤儿文档、Engine.pcanvas为null、Engine.addEntities静默丢弃;Engine.eventManager是真单例。详见 onload-lifecycle §三。 - 容器
<div>宽高为 0 或没设position→ 首屏黑屏。 - 把
new vjmap.Service()/new vjmap.Map()套到 vjcad → vjcad 不需要这些,只走MainView + initCadContainer。 - 写错 viewer 配置项(应是
viewMode: "viewer",不是viewerMode: true)。
参考(官方文档 MCP)
- 文档:
vjcad/doc/guide/quick-start.md、vjcad/doc/basic/index.md、vjcad/doc/guide/architecture.md - 示例:
vjcad/example/basic/01init.js、vjcad/example/basic/02onload.js、vjcad/example/basic/03viewermode.js