唯杰地图 logo唯杰地图
VJMAP
EN

overview

vjcad/references/setup/overview.md 2.6 KB35 行
原文

本文回答:开始 vjcad 开发前应按照"安装 → MainView 配置 → initCadContainer 挂载 → await onLoad → 用 Engine"的顺序检查这 7 个 setup 子主题。

一、初始化的 6 步

  1. npm install vjcad(或 yarn/pnpm),见 install-and-mcp。
  2. 准备好一个有非零宽高的 DOM 容器(例如 <div id="cad-app"> 设 width:100% height:100%)。
  3. new MainView({...}):传入 appname / version / wasmServiceUrl / serviceUrl / accessToken / sidebarStyle / fonts / locale / viewMode 等,见 mainview-init。
  4. initCadContainer('cad-app', cadView):把 MainView 实例挂到容器。
  5. await cadView.onLoad():必须等待,onLoad 内部会等 PixiJS、WASM、字体、插件、URL 参数全部就绪。详见 onload-lifecycle。
  6. 绘图/文档 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 初始化错误

  1. 没 await cadView.onLoad() 就用 Engine → 不会报 undefined:Engine.currentDoc 是懒建的孤儿文档、Engine.pcanvas 为 null、Engine.addEntities 静默丢弃;Engine.eventManager 是真单例。详见 onload-lifecycle §三。
  2. 容器 <div> 宽高为 0 或没设 position → 首屏黑屏。
  3. 把 new vjmap.Service() / new vjmap.Map() 套到 vjcad → vjcad 不需要这些,只走 MainView + initCadContainer。
  4. 写错 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