SM-Build · formwork-auto-layout · Platform Workflow
统一平台工作流:DWG 图纸进 → 全套交付物出
8 阶段流水线 · 阶段状态落盘可断点续跑 · 产物幂等跳过 · 门禁与人话异常 · 单命令 python python/platform_workflow.py
架构版本 2026-08-29 · commit f5d1891+引擎口径:JGJ/T 231-2021 · JGJ 130-2011 · 建办质〔2018〕31号实测数据源:地下一层(43柱/61.3m×74.3m)
🧰 在线平台(浏览器直接使用,无需安装)
支模架安全计算 —— 盘扣模板支撑 / 扣件脚手架 / 盘扣脚手架三类验算,浏览器本地计算,
数值与桌面版 EXE 同源(28/28 项黄金向量对拍通过)。
填写参数即得完整验算表(计算值/限值/依据/危大等级),可打印存 PDF。
Figure 1 — Stage Flow
八阶段流水线与产物(实线=产物,虚线框=含门禁,红标=人工节点)
1DWG→DXF 转换
dwg2dxf 逐张转换
已转换自动跳过
LibreDWG▶
2结构图识别
structure_report.json
柱网/梁网/板厚/砼等级
零命中警告
Node▶
3支模架排版
layout + SVG
柱网障碍/梁底加密
斜杆专家表
门禁 Node▶
4安全计算
calc_result.json
calc_book.docx
22 项验算
Python▶
5高支模辨识
hazard_identification.json
31号文+苏378
超危大→专家论证
法规 Python▶
6工程量算量
quantity.xlsx
GB50500 结构量
Python▶
7品茗导出
pinming_export.xlsx
PlanJson 自动生成
排版实参注入
Python▶
8建模指令
modeling_commands.json
rhino_run.py
平面/轴测图
Rhino
阶段 3 门禁(sanity-check):柱距中位数 1500~15000mm、区域 ≤200m、板厚 50~500mm、支模高 2~30m,超界即阻断并要求人工核对——防止识别畸变静默流入下游。阶段 5 为法规节点:判定超危大时输出需专家论证结论与逐条依据。
Figure 2 — State & Resume
状态机与断点续跑机制
运行状态(_state.json 实时落盘)
- convertok · 0/9 DWG(已有 DXF)
- recognizeok · 10 张图纸
- layoutok · 门禁通过
- safetyok · 50 结构满足
- hazardok · 超危大→专家论证
- quantityok · quantity.xlsx
- exportok · 参数注入核对通过
- modelingok · rhino_run.py 就绪
异常路径(全部转人话提示)
- DXF 目录空/不存在 → exit 1 + 转换指引
- 识别零命中 → 图层不匹配警告
- 门禁拦截 → 指向 [sanity] 逐条原因
- Node 缺失 → 安装指引
- 品茗缺字段 → 补救指引 + 样例
- 任一阶段失败 → 断点保存,
--resume 续跑
Figure 3 — Entry Points
三个入口,同一编排器
# ① 命令行:一条命令跑全流程
python python/platform_workflow.py --dwg-dir 结构图 --floor 地下一层
# ② GUI:图纸排布标签页 →「一键全流程」按钮(python python/sm_platform.py)
# ③ 断点续跑 / 查看状态:
python python/platform_workflow.py --resume _output/platform/_state.json
python python/platform_workflow.py --list
GUI 与命令行共用同一编排器(platform_workflow.py),状态与产物完全一致;EXE 内安全计算/算量/品茗导出直接可用,「图纸排布」需源码方式运行(W-10 边界,移植 Python 列后续批次)。