diff --git a/docs/superpowers/specs/2026-05-26-wire-duct-din-rail-assets-design.md b/docs/superpowers/specs/2026-05-26-wire-duct-din-rail-assets-design.md new file mode 100644 index 0000000..428bec7 --- /dev/null +++ b/docs/superpowers/specs/2026-05-26-wire-duct-din-rail-assets-design.md @@ -0,0 +1,79 @@ +# 线槽与 DIN 导轨模型资产设计 + +## 目标 + +生成两类常用柜内安装资产: + +- 一条开口线槽,用于后续柜内走线场景摆放。 +- 一条 DIN 35mm 导轨,用于后续端子、断路器等设备安装基准。 + +交付物同时包含 `.FCStd` 和 `.step`: + +- `.FCStd` 作为 FreeCAD 原生资产,保留对象层级和颜色。 +- `.step` 作为纯几何交换文件,方便外部 CAD 预览或复用。 + +## 输出位置 + +生成文件放在: + +```text +data/examples/qet_cabinet_assets/ +``` + +计划文件: + +- `qet_wire_duct.FCStd` +- `qet_wire_duct.step` +- `qet_din_rail.FCStd` +- `qet_din_rail.step` +- `create_qet_cabinet_assets.py` +- `qet_cabinet_assets_report.json` +- `README.md` + +## 线槽设计 + +第一版生成一条灰色开口线槽: + +- 长度:200 mm,沿 X 轴。 +- 宽度:40 mm,沿 Y 轴。 +- 高度:40 mm,沿 Z 轴。 +- 结构:底板、左右侧壁、侧壁齿状开口、底部安装孔。 +- 颜色:浅灰主体,深灰安装孔/细节。 + +线槽不接线,不设置模板端子 LCS,也不写入工程绑定字段。 + +## DIN 导轨设计 + +第一版生成一条标准比例 DIN 35mm 帽形导轨: + +- 长度:200 mm,沿 X 轴。 +- 总宽:35 mm,沿 Y 轴。 +- 高度:约 7.5 mm,沿 Z 轴。 +- 结构:帽形截面、左右翻边、中心凸台、长圆安装孔。 +- 颜色:金属灰。 + +导轨用于安装基准,不设置模板端子 LCS,也不写入工程绑定字段。 + +## 生成方式 + +使用 FreeCAD Python API 生成参数化几何: + +- 线槽与导轨分别创建独立 FreeCAD 文档并保存为 `.FCStd`。 +- 每个资产分别导出对应 `.step`。 +- 生成脚本写出 JSON report,记录尺寸、输出路径和几何对象名。 +- Windows 下复用本机 `C:\Users\ng123\AppData\Local\QETDeps\runtime.json` 中登记的 FreeCAD Python runtime,避免裸 `FreeCADCmd.exe` 缺 DLL。 + +## 验收标准 + +1. 四个模型文件均存在且非空。 +2. 两个 `.FCStd` 文件均能被 FreeCAD Python 打开。 +3. `qet_wire_duct.FCStd` 中存在底板、侧壁、齿状开口和安装孔视觉几何。 +4. `qet_din_rail.FCStd` 中存在帽形截面和长圆安装孔视觉几何。 +5. 两个 `.step` 文件均包含 `ISO-10303-21` 头部。 +6. 两个资产均不包含端子 LCS 或工程绑定字段。 + +## 自检 + +- 本设计只新增模型资产,不改 QET/FreeCAD 协同代码。 +- 线槽和导轨是安装/走线几何,不承担 2D/3D 端子绑定职责。 +- `.FCStd` 和 `.step` 均保留,符合用户确认的交付格式。