4.8 KiB
批量端子排与小型断路器装配设计
目标
第一版只做当前项目可演示、可操作的批量装配能力:用户在 FreeCAD 中选中一根已标记的导轨后,可以批量插入端子片形成端子排,也可以批量插入小型断路器。系统按导轨方向等距放置对象,并为每个对象生成可布线工程端子。
本功能不做完整设备库、不扩展数据库绑定表、不替代 QET 现有 2D 设备/符号关联。2D 仍负责设备型号、端子号和导线任务;3D 只负责模型、位姿、端子空间点和装配状态。
范围
端子排
用户选择导轨后,输入端子排名称、端子数量、端子片宽度/间距和起始偏移。系统沿导轨方向生成:
- 一个端子排分组,例如
XT1 - 多个端子片实例,例如
XT1_001、XT1_002。这些实例同时写入标准 QET 设备语义,便于后续端子绑定和布线索引识别。 - 每片端子对应的工程端子,例如
XT1:1、XT1:2
正式主流程中,端子片模型资源应来自 QET 传入的设备/资产绑定。后端保留 model_path 参数,用于 QET 自动传入模型路径或开发调试兜底;普通用户参数窗口不要求手动选择模型文件。未传入模型路径时回退为脚本生成的简化几何。关键是位置整齐、命名清楚、可被布线模块发现。
小型断路器
用户选择导轨后,输入起始设备名、数量、单个宽度/间距和端子号模板。系统沿导轨方向生成:
- 多个设备实例,例如
QF1、QF2。对象名称使用QETDevice_QF1这类标准前缀,树目录 Label 仍显示QF1。 - 每个设备的工程端子,例如
QF1:1、QF1:2、QF1:3、QF1:4、QF1:5、QF1:6
如果 2D 已经提供真实设备名和端子号,后续导入/绑定逻辑优先使用 QET 的 terminal_uuid;本功能生成的是第一版本地 3D 辅助对象,用于快速摆放和演示。
数据语义
- 不新增数据库字段。
- 3D 对象保存在 FreeCAD 文档中。
- 工程端子仍使用
TerminalObjects.set_terminal_semantics(...)。 - 批量生成的本地槽位端子使用
local:<instance_id>:<terminal_no>,避免伪造 QET terminal_uuid。 - 批量设备组写入
QetProjectUuid、QetElementUuid、QetInstanceId和QetGroupKind=Device,使它们能被现有端子导入/布线绑定逻辑找到。 - 当 QET 的
2d_to_3d.json后续提供真实terminal_uuid + terminal_display时,布线/端子绑定逻辑按端子号匹配本地槽位,并把local:*提升为真实 QETterminal_uuid。 - 树目录显示名使用
设备名:端子号,方便设计人员辨认。 - 批量对象额外写入本地属性:
QetBatchAssemblyKindQetBatchAssemblyNameQetMountHostNameQetMountKindQetBatchSourceModelPath,仅导入本地模型文件时写入可见几何对象
导轨定位规则
第一版使用导轨对象的 QetCarrierAxis 作为排列轴,默认 x。放置公式:
第 N 个对象位置 = 导轨 Placement.Base + 轴向单位向量 * (起始偏移 + N * 间距)
如果导轨对象带有旋转,排列轴会经过导轨 Placement.Rotation 转换。第一版先保证当前工程和内置导轨的稳定演示。
UI
挂在 QET模板 -> 3D手动布线 面板,新增两个按钮:
批量端子排批量断路器
点击按钮后弹出参数窗口,窗口内带默认参数:
- 端子排:
XT1,10 片,5.2 mm 间距 - 小型断路器:
QF,3 个,18 mm 间距,端子号1,2,3,4,5,6
端子号支持用空格、英文逗号、中文逗号、分号分隔;重复端子号会被拒绝,避免生成两个同名接线点。 普通用户窗口不提供模型文件选择;模型文件由 QET 侧传入或由开发调试入口传入。不传入时使用脚本简化几何。
验收
- 选中导轨后点击
批量端子排,生成XT1分组和端子片。 - 在参数窗口中可调整端子排名称、数量、间距和起始偏移。
- 每个端子片都有一个工程端子,Label 为
XT1:n。 - 选中导轨后点击
批量断路器,生成QF1、QF2、QF3。 - 在参数窗口中可调整断路器前缀、数量、间距、起始偏移和端子号模板。
- 每个断路器生成指定端子号。
- 生成对象位于导轨方向上,间距正确。
- 端子默认隐藏,但可被手动/自动布线模块按端子对象收集。
- 如果 QET 已传入同一设备实例和端子号,
local:*槽位能被提升为真实terminal_uuid,从而参与导线任务匹配。
非目标
- 不做完整 SolidWorks Electrical 设备库。
- 不自动读取所有 2D 设备属性批量生成真实设备。
- 不伪造 QET terminal_uuid;只有 QET 输入中存在真实端子 UUID 时才提升绑定。
- 不做复杂 Assembly Joint。
- 不做完整端子排电气跨接片、跳线、短接片规则。