引用《营造法式》中“缝”的概念(参见吴国源等人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):
- 槽缝(
CAO):空间限定线 - 间缝(
JIAN):面阔方向的分割线 - 栿缝(
FU):梁栿的定位线 - 槫缝(
TUAN):槫的定位线 - X 间缝(
TUANJIAN等):构件之间的连接处,一般称为「X间缝」,如「槫间缝」 - 铺作缝(
PUZUO):斗栱的出跳方向 - 铺作出跳跳心缝(
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外)
- 坐北朝南:建筑正面朝南。方向字母以建筑自身为基准:
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。
构件的 instances[].axes 须一横一纵(如 ["CAO_Fo", "JIAN_L1"]),构件中心 = 两条缝的交点坐标。
不满足的实例在 resolver.resolve 时抛错并提示使用 instances 枚举。整排布置的紧凑写法(开放项)见 docs/adr/ADR-0004.md。
缝定义示例(data/axes.json):
{ "id": "CAO_Fo", "kind": "CAO", "distance": "2D", "note": "前槽缝(外)" }构件实例示例(data/members/yanzhu.json):
{ "id": "yanzhu_01", "axes": ["CAO_Fo", "JIAN_L1"] }构件实例 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 永远接收纯数字。
输入「面阔 X 间,进深 Y 间」自动生成柱网缝位与檐柱实例(bridge/layout.py)。规律如下:
- 间数 → 柱数:X 间 = X+1 根柱(每排);Y 间 = Y+1 排
- 奇数间限制:仅支持奇数间(3、5、7…)——奇数间才有「正中一间」(明间)作基准;输入偶数间报错
- 间宽递减:以明间宽 W 为基准,向两侧每出一间 ×0.8——次间 0.8W、梢间 0.64W,依此类推(第 k 间宽 = W·0.8^(k-1),明间 k=1)
- 柱位(距明间中线):第 1 对柱线 ±W/2;第 k 对(k≥2)= W/2 + W·(0.8 + 0.8² + … + 0.8^(k-1))
- 柱高:全柱等高,H = 0.8 × 明间宽(明间面阔的 0.8 倍;与间数、柱位无关)
- 柱径:1D 不变
- 面阔与进深独立:各自输入间数与明间宽(默认均 8D),互不影响
奇数间布局中轴线落在明间中央(两柱之间),没有中柱,故无 JIAN_0:
- JIAN(面阔方向列缝):自明间向外编号
JIAN_L1..Ln/JIAN_R1..Rn,n=(X+1)/2;L=东、R=西(ADR-0007) - CAO(进深方向行缝):外圈檐柱行沿用
o后缀CAO_Fo/CAO_Bo(檐槽),内侧行自内向外编号CAO_F1, F2…/CAO_B1, B2…(金槽)——与既有静态示例(进深 1 间 = 仅 Fo/Bo)兼容 - 示例(面阔 3 间,明间 8D):
JIAN_L1/R1= ±4D(明间 8D)、JIAN_Lo/Ro= ±10.4D(次间 0.8×8D=6.4D,4+6.4=10.4);4 柱/排,柱高 H = 0.8×8D = 6.4D
静态示例 data/axes.json 为面阔 2 间(偶数,有中柱 JIAN_0)+ 进深 1 间(CAO_Fo/Bo),
早于本规律;生成布局仅支持奇数间,两套命名短期共存,是否统一(如 Fo→Fn 重编)记入 PROGRESS 开放问题。