# QET Cabinet Assets This directory contains reusable cabinet placement assets for QET / FreeCAD exchange examples. ## Files - `qet_wire_duct.FCStd`: FreeCAD native wire duct asset. - `qet_wire_duct.step`: geometry-only wire duct exchange export. - `qet_din_rail.FCStd`: FreeCAD native DIN rail asset. - `qet_din_rail.step`: geometry-only DIN rail exchange export. - `qet_cabinet_assets_report.json`: generated metadata for verification. - `create_qet_cabinet_assets.py`: FreeCAD Python generator used to recreate the assets. ## Wire Duct The wire duct is a gray open duct for cabinet routing: - Length: `200 mm` - Width: `40 mm` - Height: `40 mm` It includes a base plate, two side walls, comb-style side slots, and mounting hole markers. ## DIN Rail The DIN rail is a metal-gray DIN 35mm rail: - Length: `200 mm` - Width: `35 mm` - Height: `7.5 mm` It includes a hat-shaped rail profile, return lips, and elongated mounting slot markers. ## Semantics These are placement and routing support assets. They intentionally do not contain terminal LCS objects or engineering binding fields such as `QetProjectUuid`, `QetElementUuid`, `QetTerminalUuid`, or `QetInstanceId`. ## Regenerate On this Windows workstation, use the registered FreeCAD runtime: ```powershell $runtime = Get-Content -LiteralPath 'C:\Users\ng123\AppData\Local\QETDeps\runtime.json' -Raw | ConvertFrom-Json $env:QET_FREECAD_RUNTIME_JSON = 'C:\Users\ng123\AppData\Local\QETDeps\runtime.json' & $runtime.freecad_python 'D:\LightWork3D\data\examples\qet_cabinet_assets\create_qet_cabinet_assets.py' ```