diff --git a/cad-mcp-aec.md b/cad-mcp-aec.md index 42ae746..de121f7 100644 --- a/cad-mcp-aec.md +++ b/cad-mcp-aec.md @@ -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|(未实现)||