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

Merged
gjm merged 2 commits from company-desktop/company-desktop-computer/feat-aec-mcp-entities-p2 AGit into main 2026-10-30 08:35:25 +08:00
2 Commits
Author SHA1 Message Date
company-desktop 06c843f62a 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 标"内部构件,不单独建"。
2026-10-29 23:56:58 +08:00
company-desktop 266a9f5e4c feat: cad_mcp_aec 增加爬梯工具,query 支持 climb_stair
第 4 项(按 sys/*.mnu 扩工具)的第一步:从菜单命令里筛出一类参数清晰的实体先做通。

- 新增 add_aec_climb_stair / update_aec_climb_stair(AecDbClimbStair,对应菜单命令
  PL_ZXPT 直爬梯、PL_YHZT 圆护爬梯)。建模序列照抄 pool3dcmdCmd.cpp:5742 的命令实现:
  SetSection(踏管直径) -> SetBaseCurve(底->顶) -> SetClimbStairData(参数体),
  再写专业数据 2dStyle / 朝向(KEY_MAJBR)。工具直接收两个端点,不需要复现
  "放置点+朝向"那套偏移算法。
  参数:start/end、width、cage_diameter、height、bottom_elevation、type(0/1)、
  bar_diameter、step_height、step_spacing、wall_distance、facing、material、layer。
- query_aec_entities / get_aec_entity_detail 支持 climb_stair(读 GetClimbStairData)。
- mcp_config.json 增加这两个工具(40 -> 42),query 的 type 枚举补 climb_stair。

实测(AutoCAD 2020 / R230 Debug):
- tools/list = 42;add_aec_climb_stair 建出 handle 3A0(宽 450 / 护笼 700 / 高 3000);
- get_aec_entity_detail 读回 type=0/width=450/cage=700/height=3000/bar=20/step=300;
- update 改 width=600、step_height=250 后读回一致;query type=climb_stair 命中 1 条。
2026-10-29 23:56:58 +08:00