Skip to content

Latest commit

 

History

History
145 lines (99 loc) · 8.48 KB

File metadata and controls

145 lines (99 loc) · 8.48 KB

基于缝的编码体系

层:事实源(编码规律) | 更新触发:规律定档(记日期) | 注册表:README

引用《营造法式》中“缝”的概念(参见吴国源等人2024年刊于《建筑史学刊》的文章《〈营造法式〉大木作“缝”内涵考释(一):综述与文本》),将“缝”作为控制构件位置的辅助线,决定构件的基准位置。

字段

类型 描述 编码示例
朝向 F:前=南(front)/ B:后=北(back)/ L:左=东(left)/ R:右=西(right)——以建筑自身朝向为基准(坐北朝南),非看图者视角
内外 i:内(inner)/ o:外(outer)
位置 0+:距中线距离(mm 或 D 表达式)
缝 CAO 槽缝 / JIAN 间缝 / FU 栿缝 / TUAN 槫缝 / TUANJIAN 槫间缝 / PUZUO 铺作缝 / TIAO 跳心缝 CAO_Fo(前槽缝外侧)JIAN_L1(左一间缝)TUAN_0(中槫缝)TUAN_F1(前第 1 槫缝)
构件 名称拼音小写 + 参数(mm 或 D 表达式)+ 所属缝 yanzhu[CAO_Fo, JIAN_L1]

缝的分类

按语义功能分七类(括号内为编码 KIND):

  1. 槽缝(CAO):空间限定线
  2. 间缝(JIAN):面阔方向的分割线
  3. 栿缝(FU):梁栿的定位线
  4. 槫缝(TUAN):槫的定位线
  5. X 间缝(TUANJIAN 等):构件之间的连接处,一般称为「X间缝」,如「槫间缝」
  6. 铺作缝(PUZUO):斗栱的出跳方向
  7. 铺作出跳跳心缝(TIAO):斗栱出跳(即横栱安装)的位置

注:第 2 类「间缝」(JIAN,面阔分割线)与第 5 类「X间缝」(构件连接处,如 TUANJIAN 槫间缝)是两个不同概念——前者是独立缝型,后者是一族「构件名 + 间缝」连接缝的统称。

缝编码结构

缝编码形如 {KIND}_{SUFFIX}:

  • KIND:上述 7 种缝类型之一
  • SUFFIX:正则 ^([FBLR]?)(\d*)([io]?)$
    • 第 1 段:朝向(可选)
    • 第 2 段:序数(可选,如 L1 的 1);中缝/中线用序数 0 表达(如 JIAN_0 间中缝、TUAN_0 中槫缝),即「默认方向 + 数字 0」
    • 第 3 段:内外标记(可选,i 内 / o 外)

朝向与坐标约定(ADR-0007)

  • 坐北朝南:建筑正面朝南。方向字母以建筑自身为基准:F=南(前)、B=北(后)、L=东(建筑左手)、R=西(建筑右手)。平面图(北在上)中 L/R 与看图者的左右相反——Lo(东)在图面右侧,Ro(西)在图面左侧。
  • 坐标系:+X=东(面阔向右),+Y=北(进深向上)。

缝的平面走向

走向由 KIND + 方向字母 共同决定:

类型 走向 位置定义于
CAO(F/B) 沿 X(面阔方向)延伸 Y 轴(南北)
CAO(L/R) 沿 Y(进深方向)延伸 X 轴(东西)——外圈槽缝的两侧线
JIAN 沿 Y(进深方向)延伸 X 轴(东西)
TUAN / TUANJIAN 沿 X(面阔方向)延伸 Y 轴(南北)

FU / PUZUO / TIAO 的走向尚未定义(V2 再议)。

槽缝(CAO)的外圈语义:最外一圈檐柱对应四条槽缝——前(南)Fo、后(北)Bo、左(东)Lo、右(西)Ro。

构件位置:交点定位(V1)

构件的 instances[].axes 须一横一纵(如 ["CAO_Fo", "JIAN_L1"]),构件中心 = 两条缝的交点坐标。

不满足的实例在 resolver.resolve 时抛错并提示使用 instances 枚举。整排布置的紧凑写法(开放项)见 docs/adr/ADR-0004.md。

数据层 JSON 映射

缝定义示例(data/axes.json):

{ "id": "CAO_Fo",  "kind": "CAO",  "distance": "2D", "note": "前槽缝(外)" }

构件实例示例(data/members/yanzhu.json):

{ "id": "yanzhu_01", "axes": ["CAO_Fo", "JIAN_L1"] }

构件 ID 命名

构件实例 ID 形如 {类型全拼}_{序号},正则 ^[a-z][a-z0-9]*_[0-9]+$(已固化在 data/schema/member.schema.json):

  • 前缀 = type 字段 = 数据文件名,全拼小写(如 yanzhu),不用缩写,避免不同构件缩写撞名(缩写 YZ 无法区分檐柱/游柱/圆作等)
  • 分隔符统一用下划线,与缝编码 {KIND}_{SUFFIX} 语法一致
  • 构件用小写、缝 KIND 用大写,正好区分两个命名空间
  • 示例:yanzhu_01;将来的 efang_01(额枋)、dougong_01(斗栱)同规则

术语英文对照

中文 英文 说明
构件 member 对齐 IFC 术语(线性构件实体即 IfcMember);刻意不用 component——它在软件语境默认指 UI 组件(React/Vue),英文文档中会产生"建筑构件 vs 软件组件"歧义
缝 axis(seam) 控制构件定位的辅助线;走向由 resolver._runs_for 按 KIND+方向字母判定
构件类型 member type data/members/{type}.json,文件名 = type = ID 前缀

D 表达式("11D"、"2D")由 bridge/resolver.py 在生成代码前求值为mm 数值,OpenSCAD 永远接收纯数字。

间数生成柱网(G17)

输入「面阔 X 间,进深 Y 间」自动生成柱网缝位与檐柱实例(bridge/layout.py)。规律如下:

基本规律

  1. 间数 → 柱数:X 间 = X+1 根柱(每排);Y 间 = Y+1 排
  2. 奇数间限制:仅支持奇数间(3、5、7…)——奇数间才有「正中一间」(明间)作基准;输入偶数间报错
  3. 间宽递减:以明间宽 W 为基准,向两侧每出一间 ×0.8(第 k 间宽 = W·0.8^(k-1),明间 k=1);宽度只看 k,间名只看位置(见下「间的命名」)
  4. 柱位(距明间中线):第 1 对柱线 ±W/2;第 k 对(k≥2)= W/2 + W·(0.8 + 0.8² + … + 0.8^(k-1))
  5. 柱高:全柱等高,H = 0.8 × 明间宽(明间面阔的 0.8 倍;与间数、柱位无关)
  6. 柱径:1D 不变
  7. 面阔与进深独立:各自输入间数与明间宽(默认均 8D),互不影响

间的命名(作者给定 2026-09-23)

间由柱网缝线(CAO/JIAN)分隔;中线(AXIS_X/AXIS_Y)不参与间的分隔。设 o=(X−1)/2 为最外间位次(距明间 d=o)。自中间向两侧,判定顺序为梢(尽)先于次:

  • 明间:正中间一间(d=0)
  • 次间:明间两侧的间;次间超过一对时自中间向两侧冠序数——一次间、二次间……(恰一对则直呼"次间")
  • 梢间:最外侧两间(d=o)——判定顺次优于次间:三间建筑两侧即最外,故称梢间(三间 = 明间 + 两梢间)
  • 尽间:当有外侧走廊时在梢间外的更外两间(此时最外=尽间、梢间内移一位)——V1 无廊输入,仅预留术语

用字定为「梢间」。举例:

面阔 自中间向一侧(d 升序)
3 间 明间 · 梢间
5 间 明间 · 次间 · 梢间
7 间 明间 · 一次间 · 二次间 · 梢间
9 间(带外廊) 明间 · 一次间 · 二次间 · 梢间 · 尽间

缝命名(生成布局 · 2026-09-22 纠偏)

奇数间布局的明间中线是非缝体系的轴线(占 GB 编号正中号,但不定位分间); 槽缝仅指外圈檐柱列,内圈分间线一律为间缝:

  • CAO(槽缝):仅最外圈——面阔两端 CAO_Lo/CAO_Ro(山面檐柱列)+ 进深两端 CAO_Fo/CAO_Bo(前后檐柱列)
  • JIAN(间缝):内圈分间线——面阔 JIAN_L1..L(n-1) / JIAN_R1..R(n-1)(走向沿 Y)、进深 JIAN_F1..F(n-1) / JIAN_B1..B(n-1)(走向沿 X);走向随方向字母(resolver _runs_for)
  • 中线(非缝):AXIS_X(面阔明间中线,定 x=0)/ AXIS_Y(进深中心基准面,定 y=0)——占编号、不定位分间;TUAN_0(中槫缝)为脊檩定位线,与 AXIS_Y 投影重合但一个是线、一个是面
  • 示例(面阔 3 间,明间 8D):CAO_Lo / JIAN_L1 / AXIS_X / JIAN_R1 / CAO_Ro = ±10.4D / ±4D / 0;间序:梢间(CAO_Lo–JIAN_L1,宽 0.8×8D=6.4D)· 明间(JIAN_L1–JIAN_R1,AXIS_X 居中)· 梢间(JIAN_R1–CAO_Ro)——三间两侧即最外,按「间的命名」判为梢间;4 柱/排,柱高 H = 0.8×8D = 6.4D

遗留差异(待讨论)

静态示例 data/axes.json 已同步新缝型(JIAN_0→AXIS_X、CAO_F1→JIAN_F1); 其面阔 2 间(偶数、中柱立于 AXIS_X)早于"奇数间"生成规律,两套并存,是否统一记入 PROGRESS 开放问题。