company-desktop
533632fbdd
feat: 开洞支持异形轮廓,新增井工具(方圆井/圆井)
两个都是 AecDbX3dPartEntity 组合体,接着上次的板/墙开洞往下做。
1) 异形洞(菜单命令 PL_YXKD):没有新增工具,add_aec_opening 加 shape=polygon
+ points:[[x,y],...](可选 bulges)。内部按 PolylineToScript
(Pool3dCmd/pool3dcmdCmd.cpp:889)拼点串 "x,y@bulge,..."、首尾自动闭合,
中心取点集包围盒中点;洞口记的中心/法向仍走 AECMCP_HOLE_CEN/_DIR。
2) 井(PL_JFZJ 方井 / PL_JYZJ 圆井 / PL_JFYJ 方圆井):新增 add_aec_well。
shape=rect 用 length/width/bottom_length/bottom_width,
shape=circle 用 diameter/bottom_diameter,再给 height/wall_thickness,
可选 slab_thickness/offset_x/offset_y/no/remark/layer。
内部照命令实现(pool3dcmdCmd.cpp:6925、6750):先 SetAsHole(1.1×板厚) 开洞,
再把中心挪半板厚、SetAsWell(...) 叠井体,写 KEY_SETASWELL/KEY_ASSOIC/KEY_NO/KEY_REM,
入库后 addPersistentReactor + 母体 AppendAssocPart。
实测(AutoCAD 2020 / R230 Debug,pcf_1.dwg,8x8m/厚300/底面-2000 的板):
- tools/list = 47;
- shape=polygon 5 边形洞 -> 3A1;get_aec_entity_detail 读回
host=3A0 / no=P-1 / position=(1500,1500,-1850)
(1500,1500 正是点集包围盒中心,z=-1850 = -2000+150 板厚中点);
- 方圆井(1500x1200,底 1000x800,深 1500,壁厚 200)-> 3A2;
- 圆井(D1200,底 D1000,深 1500,壁厚 150)-> 3A3。
未做:异形井(PL_JYXJ)与集水坑(PL_JJSK)——它们用的是"上下双轮廓点串"
的 SetAsWell 重载,需要再定义一套 top/bottom 点串参数。
2026-10-30 08:48:03 +08:00
..
2026-10-04 00:04:20 +08:00
2026-10-30 08:47:58 +08:00
2026-10-04 00:04:20 +08:00
2026-10-30 08:48:03 +08:00
2026-10-29 06:33:19 +08:00
2026-10-29 22:45:14 +08:00
2026-09-28 15:28:50 +08:00
2026-10-28 22:09:48 +08:00
2026-09-28 15:53:36 +08:00
2026-10-30 08:39:35 +08:00
2026-10-04 00:04:20 +08:00
2026-10-21 23:39:47 +08:00
2026-10-04 00:04:20 +08:00
2026-10-23 10:29:31 +08:00
2026-10-13 09:55:42 +08:00
2026-10-30 08:39:35 +08:00
2026-10-04 00:04:20 +08:00
2026-10-04 00:04:20 +08:00
2026-10-13 09:55:42 +08:00
2026-10-04 00:04:20 +08:00
2026-10-25 11:05:18 +08:00
2026-10-13 09:55:42 +08:00
2026-10-23 10:29:31 +08:00
2026-10-23 10:29:31 +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-10-29 23:51:31 +08:00
2026-09-28 15:28:50 +08:00
2026-09-28 15:42:32 +08:00
2026-09-28 15:42:32 +08:00
2026-09-28 15:42:32 +08:00
2026-09-28 15:28:50 +08:00
2026-09-28 15:42:32 +08:00