Files
envi-code/SourceCode/Code2026
company-desktop 3013ceb4f7 feat: cad_mcp_aec 增加平板开洞工具(add/update_aec_opening)
对应菜单命令 PL_CDKD 平板开洞(Pool3dCmd/pool3dcmdCmd.cpp:14763)。
洞不是普通实体,是"长在母体上的 part",所以工具收 host(板的 handle):

- add_aec_opening:host + shape(circle/rect) + position(缺省取板中心)
  + diameter 或 width/height + depth(缺省取板厚)+ nozzle/no/for_use/layer。
  内部照命令的序列:new AecDbX3dPartEntity -> SetAsHole(中心,尺寸,板厚,法向)
  -> KEY_ASSOIC 记母体 -> LAY_HOLE 图层 -> 入库 -> 给母体 addPersistentReactor
  + AppendAssocPart(绘制时母体据此做布尔)。
- update_aec_opening:改形状/直径/宽高/深度/管嘴/编号/用途;改尺寸会重建几何。
  洞口中心在创建时另存一个 AECMCP_HOLE_CEN 键(SetAsHole 自己会把 KEY_NOPOS 挪到侧边),
  更新时就靠它 / 或母体中心兜底。
- query_aec_entities / get_aec_entity_detail 支持 opening(读回 host/no/for_use/position)。

实测(AutoCAD 2020 / R230 Debug,pcf_1.dwg):
- tools/list = 46;
- 先 add_aec_slab 建 6x5m/厚200 的板(3A0),再 add_aec_opening(DN600 圆洞, 中心 2000,2000)
  返回洞口 3A1、host=3A0;
- get_aec_entity_detail 读回 host=3A0 / no=H-1 / position=(2000,2000,100)
  (z=100 正是板厚中点,说明命令里那步"挪到厚度中点"生效);
- update_aec_opening 改直径成功;query(type=opening) 命中 1 条。

限制(写进文档):目前只支持平板 + 圆/矩形洞;墙体开洞(母体是墙)
和异形洞(点串脚本格式)还没接。
2026-10-30 08:48:02 +08:00
..
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-09-28 15:28:50 +08:00
2026-09-28 15:28:50 +08:00
2026-09-28 15:28:50 +08:00