Files
ctbjrj/cadbt/.zcode/plans/plan-sess_6f2f9ddb-bc6b-4d41-8364-3e9e73e5ee76.md

33 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 整合方案 v3(按用户要求调整):插件改源码、左侧工具栏 + 网页 CAD 文档区
## 布局(Smart.CustomComponents.DockSurface 停靠面板)
| 窗口 | 位置 | 内容 |
|---|---|---|
| **QuoteWindow(插件工具栏)** | **DockLeft**(宽 ~420,不可关闭) | Form3 报价界面(cadcj 改造版,作为左侧工具面板) |
| **NewProjectWindow** | DockLeft(第二个标签页或 DockBottom) | 新建项目窗体 |
| **CadViewerWindow** | **Document(中央文档区,独立窗口)** | WebView2 → http://localhost:5173 网页 CAD |
## A. 网页端(CAD-Viewer 本地仓库,packages/cad-viewer-example 新增 src/cadbridge.ts)
与 v2 相同:
- 连续扒图命令(仿 AcApRectCmd 两点 jig;正向=逐条/反向=合并;画彩色 AcDbPolyline 框;回传 text/frameHandle/textHandle)
- 消息监听:zoomToHandle / deleteHandles / clearHighlight;删除实体回发 entityErased
- 注册 patu/paxh/payj 命令
## B. 插件改造(直接修改 cadcj 源码,生成 cadbt 专用版本)
- 复制 Form3.cs/Form3.ui.cs/新建项目.cs/新建项目.ui.cs 到 cadbt 项目(cadcj 原插件目录不动,保持 AutoCAD 版独立)
- Form3 中约 15 处 `Autodesk.AutoCAD.*` 调用直接改写为 `CadBridge` 调用(扒图命令、ZoomToFrameHandle、DeleteFramesByHandles、ObjectErased 订阅→桥事件、SaveCurrentDwg 删除)
- PaMode/PaTextResult 保留;PaTextSelector 的桩改为 CadBridge.StartPick / EntityErased 事件
- 好处:无 stub 假类型,编译不依赖 acdbmgd,代码可读可维护
## C. 宿主程序(cadbt)
- csproj:增强组件九件套 + AdvancedDataGridView + System.Data.SQLite(安装目录/..\cadcj HintPath)+ WebView2(nuget 解压到 libs\webview2,x86 loader 复制输出)
- MainForm.Designer.cs:dockSurface1 + DockWindows 集合(左:QuoteWindow/NewProjectWindow;Document:CadViewerWindow)
- CadViewerWindow:代码创建 WebView2,导航 localhost:5173,WebMessageReceived 分发到 CadBridge 事件;失败提示启动 pnpm dev
- MainForm.DockWindows.cs:EnsureDefaultTheme + Show
## D. 验证
编译 cadbt → 运行 → 三面板布局正确 → 联调扒图/定位/删框链路;网页端 pnpm dev 已验证可跑
## 说明
- cadcj 原目录不动,AutoCAD 插件版继续可用;cadbt 用改造副本
- 后续可选:pnpm build 出 dist + SetVirtualHostNameToFolderMapping 实现离线嵌入