造枓之制有四(《营造法式》原文)

一曰櫨枓,二曰交互枓,三曰齊心枓,四曰散枓。

櫨枓高20分°;上8分°爲耳,中4分°爲平,下8分°爲欹。開口廣10分°,深8分°。底四面各殺4分°。欹顱1分°。 交互枓、齊心枓、散枓皆高10分°;上4分°爲耳,中2分°爲平,下4分°爲欹。開口皆廣10分°,深4分°。底四面各殺2分°,欹顱0.5分°。

凡四耳枓於順跳口內,前後裹壁各留隔口包耳,高2分°,厚1.5分°。櫨枓則倍之。角內櫨枓,於出角栱口內留隔口包耳,其高隨耳,抹角內廕入0.5分°。


术语简释

  • 櫨枓(斗栱的坐斗):是最下方承托整组斗栱的大斗,尺寸最大(高20分°)。
  • 交互枓、齊心枓、散枓:均为上层小斗,高度统一为10分°,分别用于不同位置(交互斗承托十字栱,齐心斗在栱心,散斗在栱端)。
  • 耳、平、欹:斗的三段式结构,“耳”为上部凸起,“平”为中部平台,“欹”为下部收分斜面。
  • 分°:《营造法式》的基本模数单位,即“材份”,用于精确控制构件比例。
YingZaoComponent
YingZaoComponent
图片引自[1]092
YingZaolab

功能概述

LUDouSolver 是一个面向櫨枓(LU_DOU)构件的“一体化参数求解与加工流水线”组件。它从数据库读取 LU_DOU 参数后,按预设工艺链自动完成主木坯生成、参考平面提取、欹䫜刀具构造、两阶段刀具/坯料对位以及最终布尔切割,并输出完整中间结果与日志,适合在 Grasshopper 中进行可追踪的斗栱构件自动建模与加工模拟。


输入参数

参数 类型 说明
DBPath str SQLite 数据库路径
PlacePlane Plane 或 Point 放置输入;Plane 时同时提供 base_point 与 reference_plane,Point 时仅覆盖 base_point
Table str 表名,默认 DouGong
KeyField str 查询主键字段,默认 type_code
KeyValue str 查询主键值,默认 LU_DOU
Field str JSON 字段名,默认 params_json
Refresh bool 刷新开关;为 True 时清空输出并清除组件缓存

核心流程

YingZaolab
  1. 读取数据库参数
    通过 DBJsonReader 读取目标记录并展开为 All_dict,作为后续全部参数源。

  2. 生成主木坯
    调用 build_timber_block_uniform 生成櫨枓主坯及完整几何特征集。

  3. 提取一组工艺参考平面
    通过 PlaneFromLists 生成第一组与第二组 ResultPlane(用于不同刀具/坯料对位)。

  4. 构造欹䫜刀具
    调用 build_qiao_tool 生成刀具体、截面平面和参考线。

  5. 第一次对位
    将欹䫜刀具对位到主木坯目标面(支持参数广播)。

  6. 生成待切木料组
    按数据库尺寸参数批量生成 BlockTimbers。

  7. 提取第三组参考平面
    对 BlockTimbers 做 PlaneFromLists,生成后续对位基准。

  8. 第二次对位
    将待切木料组对位到主木坯工艺平面。

  9. 执行切割
    汇总两阶段对位后的刀具,调用 FT_CutTimberByTools 对主木坯进行布尔裁切。

  10. 汇总日志
    按步骤拼接日志,形成完整可审计求解记录。


输出结果(按类别)

类别 代表输出
数据库 Value, All, All_dict
主木坯 TimberBrep, FaceList, EdgeMidPoints, Corner0Planes, AxisX/Y/Z
平面链 ResultPlane1, ResultPlane2, ResultPlane3
刀具链 ToolBrep, AlignedTool, AlignedTool2
切割结果 CutTimbers, FailTimbers
调试信息 DebugInfo, DebugInfo2, Log

关键行为说明

  • PlacePlane 优先级高于数据库中的放置参数。
  • 参数读取具备默认值与类型兜底,缺失字段不会直接中断整条流水线。
  • 对位阶段支持列表广播,便于一组参数驱动多次姿态计算。
  • 切割阶段会自动跳过空刀具并记录失败项,保证批处理稳定性。
  • Refresh 可触发组件级清理,避免旧缓存影响新求解。

适用场景

  • LU_DOU 构件的数据库驱动参数化生成。
  • 斗栱节点中“主坯 + 刀具 + 次级坯料”的多阶段加工模拟。
  • 需要保留中间过程几何与日志以便校核的教学、研究或工程流程。

设计要点

  • 采用类封装统一管理跨步骤状态,便于扩展与调试。
  • 每一步结果都可独立输出,支持局部替换与流水线复用。
  • 将数据库参数、几何构造、对位、切割整合到同一求解入口,降低组件连线复杂度。

参考文献:
[1] 潘德华,潘叶祥。斗栱(上册)[M]. 第 2 版。南京:东南大学出版社,2017. (Pan, D. H. (Pan Dehua). Dougong (Volume 1) [M]. 1st ed. Nanjing: Southeast University Press, 2004.)
[2] 梁思成。梁思成全集(第七卷)[M]. 北京:中国建筑工业出版社,2001.(Liang, S. C. (Liang Sicheng). The Complete Works of Liang Sicheng (Volume 7) [M]. Beijing: China Architecture & Building Press, 2001.)