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
Collaborator

解析 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 标"内部构件,不单独建"。

解析 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 标"内部构件,不单独建"。
company-desktop force-pushed company-desktop/company-desktop-computer/feat-aec-mcp-entities-p2 from 8f7f66b831 to ed01f00dc6 2026-10-29 23:56:35 +08:00 Compare
company-desktop added 2 commits 2026-10-29 23:56:58 +08:00
第 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 条。
解析 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 标"内部构件,不单独建"。
company-desktop force-pushed company-desktop/company-desktop-computer/feat-aec-mcp-entities-p2 from ed01f00dc6 to 06c843f62a 2026-10-29 23:56:58 +08:00 Compare
gjm approved these changes 2026-10-30 08:35:21 +08:00
gjm merged commit 49c23e4395 into main 2026-10-30 08:35:25 +08:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gjm/envi-code#119