基线:全量源码首提(D1 版本控制落地,含第一轮优化 B1-B4/A1/A4/缩放修复)

This commit is contained in:
dqb-dev
2026-10-01 22:15:22 +08:00
commit 1e65792b09
499 changed files with 204579 additions and 0 deletions
@@ -0,0 +1,33 @@
# 整合方案 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 实现离线嵌入