docs: cad-mcp-aec.md 增加菜单命令-实体-工具对照表

解析 c:\ShangHuaSoft\Envi3D-2026-M\sys\*.mnu(8 个文件、674 条命令、GBK),
按 "ID_xxx [四字说明]命令" 取出命令名,再到源码里找 ADD_CMD / addCommand 注册的
handler,在 handler(含一层直接调用)里搜 new AecDbXxx,得到"会新建实体的命令"
共 74 条、涉及 44 个实体类,按表头
|cad命令|4字中文名称|实体名称|工具名称1|工具名称2|
列成 84 行对照表(一个命令对应多个实体就拆多行)。

已实现 6 类实体(管道/墙/板/柱/梁/爬梯)的命令直接标出对应工具,
其余标"(未实现)",并写明补的做法:从命令实现里抄建模序列 → 抽参数 → 加工具。
AecDbX3dPart / AecDbX3dPartEntity / AcDbX3dSolid 标"内部构件,不单独建"。
This commit is contained in:
company-desktop committed 2026-10-29 23:56:58 +08:00
1 parent 266a9f5e4c
commit 06c843f62a
1 file changed
+98
+98
View File
@@ -167,3 +167,101 @@ MCP 工具是通过 `PostMessage` 在主线程的消息里跑的,**不在命
`cannot open target space for write`(`eLockViolation`)—— 补了 `dwg_annotate::DocLock`;
2. 上游 `cadsdk.h` 带 `NOMINMAX`,本仓库 `KTCad.h` 没有,
`std::min/std::max` 被 windows 宏顶掉 —— 在用到它们的三个文件里 `#undef min/max`。
## 8. 菜单命令 → 实体 → 工具 对照表
来源:`c:\ShangHuaSoft\Envi3D-2026-M\sys\*.mnu`(8 个文件、674 条命令、GBK 编码)。
做法:解析 `ID_xxx [四字说明]命令` → 用命令名在源码里找注册的 handler
(`ADD_CMD` / `acedRegCmds->addCommand`)→ 在 handler(含一层直接调用)里找 `new AecDbXxx`
→ 得到"会新建实体的命令"共 74 条、涉及 44 个实体类。
已实现的实体:管道/墙/板/柱/梁/爬梯(每类一个 `add_*` + 一个 `update_*`)。
其余实体的创建参数还没梳理(多数要读对话框),标"(未实现)",
要补的话照 `add_aec_climb_stair` 的写法:命令实现里抄建模序列 → 抽出参数 → 加工具。
|cad命令|4字中文名称|实体名称|工具名称1|工具名称2|
| --- | --- | --- | --- | --- |
|PL_CRJZ|插入角柱|AecDbColumn|add_aec_column|update_aec_column|
|PL_GZZZ|构造柱子|AecDbColumn|add_aec_column|update_aec_column|
|PL_DXBQ|单线变墙|AecDbXWall|add_aec_wall|update_aec_wall|
|PL_HZMQ|绘制幕墙|AecDbGlassCurtainWall|(未实现)||
|PL_QTDJ|墙体倒角|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_QTDY|墙体倒圆|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_ZXPT|直段爬梯|AecDbClimbStair|add_aec_climb_stair|update_aec_climb_stair|
|PL_YHZT|圆护爬梯|AecDbClimbStair|add_aec_climb_stair|update_aec_climb_stair|
|PL_PTLT|直线钢梯|AecDbLineStair|(内部构件,不单独建)||
|PL_SPLT|双跑楼梯|AecDbZLineStair|(未实现)||
|PL_SFPX|双平行梯|AecDbParaLlelStair|(未实现)||
|PL_SFZJ|双分转角|AecDbCornerStair|(未实现)||
|PL_SFSP|双分三跑|AecDbDoubleMulStair|(未实现)||
|PL_JCLT|交叉楼梯|AecDbScissorsStair|(未实现)||
|PL_JDLT|剪刀楼梯|AecDbCrossStair|(未实现)||
|PL_SJLT|三角楼梯|AecDbTriangleStair|(未实现)||
|PL_JXZJ|矩形转角|AecDbRectCornerStair|(未实现)||
|PL_DDLT|多段楼梯|AecDbMRPLineStair|(未实现)||
|PL_YHLT|圆弧楼梯|AecDbArcStair|(未实现)||
|PL_ZXLT|直线楼梯|AecDbLineSegStair|(未实现)||
|PL_RYPD|任意屋顶|AecDbXRoof|(未实现)||
|PL_RZPD|人字屋顶|AecDbXRoof|(未实现)||
|PL_ZJPD|攒尖屋顶|AecDbXRoof|(未实现)||
|PL_JXPD|<-矩形屋顶|AecDbXRoof|(未实现)||
|PL_ZHMC|组合门窗|AecDbGroupXOpening|(未实现)||
|PL_ZHMC|组合门窗|AecDbXOpening|(未实现)||
|PL_DXCH|带形窗户|AecDbZLineXOpening|(未实现)||
|PL_ZJCH|转角窗户|AecDbZLineXOpening|(未实现)||
|PL_JLHC|加老虎窗|AecDbXDormerWindow|(未实现)||
|PL_JBWC|加保温层|AecDbInsulation|(未实现)||
|PL_CBKD|墙体开洞|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_CDKD|平板开洞|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_YXKD|异形开洞|AecDbX3dPart|(内部构件,不单独建)||
|PL_YXKD|异形开洞|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_YXKD|异形开洞|AecDbXEquipment|(未实现)||
|PL_ZLKD|阵列开洞|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_YXCG|穿管开洞|AecDbX3dPart|(内部构件,不单独建)||
|PL_YXCG|穿管开洞|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_YXCG|穿管开洞|AecDbXEquipment|(未实现)||
|PL_FZYT|放置阳台|AecDbBalcony|(未实现)||
|PL_FZTJ|放置台阶|AecDbXStep|(未实现)||
|PL_FZPD|放置坡道|AecDbAscent|(未实现)||
|PL_FZSS|放置散水|AecDbXApron|(未实现)||
|PL_FZHN|放置护栏|AecDbGuardBar|(内部构件,不单独建)||
|PL_QXHN|<-曲线护栏|AecDbGuardBar|(内部构件,不单独建)||
|PL_JFZJ|添加方井|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_JYZJ|添加圆井|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_JFYJ|加方圆井|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_JYXJ|加异形井|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_JJSK|加集水坑|AecDbX3dPartEntity|(内部构件,不单独建)||
|PL_LSJM|绘制沟渠|AecDbEwPipeBase|(未实现)||
|PL_YXGZ|<-异形构筑|AecDbMultiPartEntity|(未实现)||
|PL_FZZJ|放置支架|AecDbHolder|(未实现)||
|PL_LGGJ|立管固架|AecDbHolder|(未实现)||
|PL_FZDJ|放置吊架|AecDbHanger|(未实现)||
|PL_FZZD|<-放置支墩|AecDbBossHolder|(未实现)||
|EL_HZXG|绘制线管|AecDb3dRoadAxisLine|(未实现)||
|EL_HZXG|绘制线管|AecDbEwFlexiblePipe|(未实现)||
|EL_JYZW|<-加乙字弯|AecDbEcFitting|(未实现)||
|EL_HBLW|绘避雷网|AecDbEwEquipment|(未实现)||
|EL_HBLW|绘避雷网|AecDbEwFlexiblePipe|(未实现)||
|EL_HBLD|绘避雷带|AecDbEwEquipment|(未实现)||
|EL_HBLD|绘避雷带|AecDbEwFlexiblePipe|(未实现)||
|EL_JSSJ|加伸缩缝|AecDb3dRoadAxisLine|(未实现)||
|EL_FWBR|<-翻弯避让|AecDb3dRoadAxisLine|(未实现)||
|PL_DGTJ|单管托架|AecDbPipeHanger|(未实现)||
|PL_SGTJ|双管托架|AecDbPipeHanger|(未实现)||
|PL_LGTJ|立管托架|AecDbPipeHanger|(未实现)||
|PL_PGZZ|平管支座|AecDbPipeHanger|(未实现)||
|PL_WGZZ|弯管支座|AecDbPipeHanger|(未实现)||
|PL_SBLG|设备连管|AecDbEwPipe|add_aec_pipe|update_aec_pipe|
|PL_RYGZ|任意管嘴|AecDbEwEquipment|(未实现)||
|PL_XHBZ|序号标注|AecDbEwPipeDim|(未实现)||
|PL_XHPB|序号批标|AecDbEwPipeDim|(未实现)||
|DI_JDBZ|角度标注|AecDbDimension|(未实现)||
|DI_JDBZ|角度标注|AecDbX3dPart|(内部构件,不单独建)||
|DI_JDBZ|角度标注|AecDbXEquipment|(未实现)||
|PL_DKBZ|洞口标注|AecDbEwPipeDim|(未实现)||
|PL_TGBZ|套管标注|AecDbEwPipeDim|(未实现)||
|PL_YHBZ|翼环标注|AecDbEwPipeDim|(未实现)||
|PL_FMBZ|阀门标注|AecDbEwPipeDim|(未实现)||
|HA_FBBZ|风管标注|AecDbEwPipeDim|(未实现)||
|IS_BZFM|标注阀门|AecDbEwPipeDim|(未实现)||
|IS_GZGJ|标注管件|AecDbEwPipeDim|(未实现)||