Appearance
DXF 尺寸标注层:刀房拿到 DXF 能不能直接读出尺寸
状态:已实现并复验(P4-48,默认关的 opt-in)。 复验命令 node tools/verify-dxf-dims.mjs(服务端/CLI/内核,32 项)+ node tools/verify-2d-workbench.mjs(工作台界面,含 6 项标注开关断言), 证据在 docs/verification/p4-48-dxf-dims/report.json 与 docs/verification/qa-20261001/workbench-report.json。 界面与服务端共用同一个内核函数:门禁把两档正文与 node 直调逐字节比对(sha 相同=界面没有旁路)。
客户原话与这层解决什么
"CAD 里看不到尺寸,还得重新量一遍。"
刀模 DXF 里有刀线几何没错,但尺寸链(每段多长)此前只活在刀模图纸 SVG(P4-43)里, 而图纸是给人看的纸,不是能喂给 CAD / CNC 的模型。本层把同一串站点尺寸以 LINE + TEXT 实体写进 DXF 的独立图层 APW_DIM(颜色 4 cyan,和刀线红 / 压线绿一眼分开), 于是 CAD 端可以:读文字拿到数字、按图层整体开关显隐、单独冻结或打印。
怎么开
| 入口 | 怎么开 | 默认 |
|---|---|---|
| 导出服务 API | POST /export-jobs 传 {"kind":"dxf","dxfDims":true}(apps/api/src/http.ts) | 关 |
| 交付包 | 同上,{"kind":"bundle","dxfDims":true} → 包内 die-lines.dxf 带标注 | 关 |
| 渲染 CLI | node tools/render-document.mjs design.json out --dxf-dims(回执 printProfile.dxfDims 自述真数) | 关 |
| 工作台界面 | 勾「DXF 尺寸标注层」再点「导出刀线 DXF」,状态栏报的是从正文数出来的条数(docs/demo/app.mjs) | 关 |
| 内核直调 | exportDxf(design, { dxfDims: true })(docs/demo/scene.mjs) | 关 |
默认必须是关的,两个理由:
- 默认档 DXF 逐字节不变是硬要求——20 个门禁在数 DXF 的实体与层名,交付包里的
die-lines.dxf还有 sha 记账; - 多一层对开模 CNC 是干扰项:误选到标注层可能把尺寸线当刀线走刀。
三条边界(务必读)
- 这不是 CAD 参数化
DIMENSION。 DXF 里没有DIMENSION/DIMSTYLE实体(门禁A8钉住), 只有LINE+TEXT:数字能读、能改、能分层,但改数字图形不会跟着动、不随图元联动、不是测量真值。 真·参数化联动(改尺寸段位图自动重画)归PX-01(CAD 插件 / 内核,未开工)。 - 数字只有一个真源。 标注数字全部从刀模图纸内核
dieDrawingSpec(docs/demo/assets/runtime/die-drawing.mjs)取, 门禁A7逐一对齐两串序列;在 DXF 侧重算一遍站点=第二个真源(AGENTS.md 红线 1),迟早和图纸分叉。 真源没有刀线时标注 fail-closed 抛错,但默认档 DXF 照常出——可选层不许把主链拖死。 - 坐标口径沿用既有约定。 直接写设计 mm 坐标、不做 Y 翻转(刀线层就是这么写的),
$INSUNITS = 4恒定; 收到非 mm 直接抛(红线 2)。层名大小写不敏感,撞车(例如印厂把刀线层改名apw_dim)就地抛错,绝不静默并层。
它不动刀线
标注只追加实体:开启前后 ENTITIES 段里刀线部分(第一个 LINE 之前)逐字节相同, 门禁 B4(CLI)与 C8(真链)各钉一次。刀房拿到的还是同一把刀,只是多了一行能读的尺寸。
与印厂责任边界
带标注的 DXF 不等于"开模即可":压线宽度、瓦楞加肉(折缝吃纸)、爬移与公差待 PE-04(结构工程师), 能否上机待实物打样(P3-12 / PE-01)。参见 交付物边界与打样流程 与 印前检查清单(AGENTS.md 红线 7:不承诺印厂可生产)。