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

八阶段流水线与产物(实线=产物,虚线框=含门禁,红标=人工节点)
1
DWG→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 为法规节点:判定超危大时输出需专家论证结论与逐条依据。
8
阶段
12+
产物文件
50/50
实测安全计算满足
2 门禁
排版门禁 + 法规节点

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 列后续批次)。