← ギャラリーへ

相持ちの屋根

焚き火の三脚、井桁に組んだ薪、鍋敷きの木組み。どれも「たがいの上に乗せ合う」だけで、真ん中に柱を立てずに立っている。梁が順ぐりに相手の上に乗って輪を閉じる骨組みを、建築ではレシプロカル構造、あるいは nexorade(ラテン語の nexor=結び目から)と呼ぶ。短い材だけで広く架けられるのが取り柄である。ここで確かめたのはその代わりに何を払うかで、梁に厚みがあるかぎり、輪にすれば必ず持ち上がり、格子にすればどんな周期もとれない。閉じる条件はたった 1 本、「段差の総和がゼロ」だけだった。

生成りの地に、三方向の短い棒が順ぐりに重なり合って編まれた網の図。棒は向きごとに濃い藍・中間の藍・淡い藍に塗り分けられ、重なりでは上に乗るほうが手前に描かれ、あいだに三角形の隙間があく
三角格子の辺を中点まわりに 30° 回した相持ちの格子。棒は向きごとに塗り分けてある。どの棒も端は相手の上に乗り、体の途中で別の棒の端を受けている。棒の長さは格子の目のわずか 15% 増しにしかならない。

なにか

梁 A の端を梁 B の上に置き、B の端を C の上に、C の端をまた A の上に置く。三本が輪になって、どれも地面に届いていないのに落ちない。これが相持ちである。輪は何本でも作れて、n 本の梁が順ぐりに乗り合うと真ん中に多角形の穴があく。梁の外側の端は壁や柱で受ける。

取り柄は材の長さである。ふつうに架ければ梁は差し渡しの長さが要る。相持ちなら、短い材を持ち合わせるだけで、それより広い差し渡しが取れる。ここで確かめたのは、その取り柄がどこまで効くのかと、代わりに何が起きるのかである。

輪にすると必ず持ち上がる

上段に 3・4・6・8 本の扇の平面図、その下に係合長・外半径・持ち上がり・くびれ・勾配・差し渡しの表、中段に回す角を 10・20・30・45 度に振った相持ちの格子 4 枚と寸法の表、下段に周期をとったときの階数の不足と左零ベクトルの表、段差の振り方 4 通りの表、半径ごとの傾きの表
上段が扇(n=3・4・6・8)と数の帳簿。中段が格子を回す角 θ で振ったもの。下段が「周期をとると閉じない」帳簿と、閉じる条件を段差の振り方で確かめた表、そして有限の屋根で材の傾きがどう増えるか。

まず輪ひとつ。n 本の梁の内側の端が半径 r の正 n 角形をつくるとする。梁 i の内端は梁 i+1 の上に乗るので、乗る場所は隣の内端から測って η = 2r sin(π/n) のところ、つまり内側の多角形の一辺ちょうどになる。材の長さを L とすると外側の端が届く半径は R = √(L² + r² − 2rL sin(π/n)) で、これは余弦定理そのものである。式と実測は 15 桁まで合う。

差し渡し 2R は材の長さ L より大きくできる。ただし上限があって、係合長が材長に届いたところ(=梁が首尾つながって正 n 角形になる退化)で 2R/L = 1/sin(π/n) に達する。n=6 でちょうど 2 倍、n=12 で 3.86 倍。輪ひとつでは、本数を増やさないかぎり差し渡しは材長の数倍で頭打ちになる。

ここに梁の厚みを入れる。梁 i の内端は梁 i+1 の上に乗るのだから、軸どうしは厚みぶん d だけ離れている。内端の高さを h、外端を 0 として計算すると h = dL/η がぴたりと出る。係合長が短いほど急になる。平らな相持ちの輪は作れない。真ん中が持ち上がって、円錐のような形になる。

ついでに分かったこと。梁を軸のまわりに n 個ならべた形は、直線を回してできる一葉双曲面の直線族になっている。そのくびれの半径は r cos(π/n) ちょうど、つまり真ん中の穴の内接円だった(差は 1e−17 台)。平面に落とした梁の線が内側の多角形の一辺を含んでいるので当たり前ではあるが、シューホフの塔と同じ面がここに出てくるのは面白い。

格子にすると材の長さが止まる

輪を並べて格子にする。三角格子の辺を 1 本ずつ、その中点のまわりに同じ角 θ だけ回す。すると頂点に集まっていた 6 本が離れて穴があき、辺だった線は隣とすれ違う。すれ違ったところで乗り合わせれば相持ちの格子になる。

この網の寸法を θ で振ると、まず頂点にできる穴は θ をどう変えても正六角形だった(外接半径と一辺の差は 1e−16 台)。次に材の長さ λ は θ=30° で最大になり、その値は 2/√3 = 1.154701 ちょうど。しかも θ と 60°−θ が同じ長さを与える。係合長は θ=30° で材長のちょうど 1/4 になる。

要点は、材の長さが格子の目 1 つぶん(+最大 15%)で止まることである。屋根をいくら広げても材は長くならない。「短い材で大屋根」が効くのは輪ひとつではなくここで、差し渡しと材長の比はいくらでも大きくできる。

どんな周期もとれない

ではその格子に高さを入れる。梁 1 本の高さは、自分の線に沿った 1 次式(中点での高さ α と傾き β)で書ける。交点では上の梁と下の梁が厚み d だけ離れる。未知数は梁 1 本につき 2 つ、式は交点 1 つにつき 1 本。三角格子なら 1 頂点あたり梁が 3 本ぶん・交点が 6 個ぶんなので、未知数と式の数がちょうど同じになる。正方格子でも六角格子でも同じである。

そこで格子の周期を仮定して解こうとすると、解けない。周期 1×1 でも 2×2 でも 3×3 でも、三角格子でも正方格子でも六角格子でも、階数の不足はいつもちょうど 1だった。1 本だけ条件が余っている。

その 1 本が何かは、左零ベクトル(式の側からかけて 0 になるベクトル)を出せば分かる。それは全成分が等しいベクトルだった(成分の幅は 1e−15 台)。つまり余っている条件は、全部の交点の段差を足したものがゼロ、それだけである。

ここが効く。相持ちでは梁の端は相手の上に乗る。下から支えるものが無いのだから、端が相手の下に潜ることはできない。だから段差はどの交点でも同じ向き、総和は交点の数だけ正の値になる。ゼロにはならない。全部の端が相手の上に乗る相持ちの格子は、どんな周期もとれない。θ を 5° から 55° まで振っても、辺の類ごとに違う角で回しても、結果は変わらなかった。

なぜ 1 本だけ余るのか。梁 1 本には交点が 4 つ付いている。自分の端が相手に乗る点が 2 つ、自分の体で相手の端を受ける点が 2 つ。この 4 点の、梁の中点から測った位置を足すと厳密に 0 になる(どの θ でも 1e−16 台)。梁もその上の乗り方も、自分の中点のまわりの 2 回対称になっているからで、上の 2 点と下の 2 点がそれぞれ ± の対で並ぶ。だから式を全部足すと傾き β の項がきれいに消え、高さ α の項も打ち消し合い、右辺の段差だけが残る。傾けても逃げられないのがこの構造の芯である。

条件が Σd = 0 ちょうどであることは、段差の振り方を変えて直に確かめた。周期 2×2 の 24 個の交点に対して、全部を +d にすると解けない。半分を −d(=そこだけ吊る)にして総和をゼロにすると解ける。1 か所だけ深く吊って(残り全部ぶんを 1 点で引き受けて)総和をゼロにしても解ける。総和を d ひとつぶんだけ余らせると、また解けない。三角・正方・六角の 3 つの格子で 4 通りずつ、12 件すべてが予想どおりだった(格子ごとに交点の数が 24・16・24 と違うので、吊る深さもそれに合わせている)。周期の相持ち格子を作るなら、どこかを吊るか、壁に載せるか、段差を逆にするしかない。

有限の屋根なら縁が引き受ける。ただし面積ぶん

実際の屋根は無限ではない。半径 N の丸いパッチを切り出して、縁の梁を自由にしたまま解くと、不整合はゼロになる。解ける。余った 1 本ぶんの帳尻を、縁の梁が引き受けてくれるからである。

ただし引き受ける量が問題になる。交点の数は面積に比例して増え、引き受け手である縁の梁は周にしか増えない。だから 1 本あたりの負担は半径に比例して大きくなる。実際、解の自由度のなかで「いちばん寝かせた」(傾きの二乗和が最小の)解を取ってきて材の傾きを測ると、半径 2・3・4 に対して 0.4030・0.6417・0.8821 で、増分は 0.2387 と 0.2404。ほぼ一定、つまり傾きは半径に比例して増える。

言い換えると、平らな相持ち屋根には大きさの限りがある。広げるほど縁の材が立ってくる。梁の厚みは曲がりを生む種のようなもので、輪ひとつなら真ん中が持ち上がるという形で、格子なら屋根全体がそらざるを得ないという形で、必ず出てくる。測地線ドームで「三角形だけで球を閉じると角の欠損の総量が必ず 720° になる」と書いたのと同じ手ざわりで、ここでも総量が先に決まっている。

どう作ったか

扇
generators/reciprocal.js。内側の端を正 n 角形に置き、隣の内端へ向かう向きに材長ぶん伸ばして外端を出す。外端がすべて同じ半径に来ることを毎回確かめている(=扇が閉じることの確認)。
格子
三角格子の辺を中点まわりに θ 回す。頂点のまわりで隣り合う 2 本の交点を求め、自分の中点から遠いほうの交点をその梁の端とする。近いほうでは相手の端を受ける。この向きを取り違えると、梁の端が自分の体の内側に来て破綻する。
高さの系
梁 1 本に (α, β) を割り当て、交点ごとに「上 − 下 = 段差」の 1 次式を立てる。周期の場合は超格子で閉じ、掃き出しで階数を取る。掃き出しに残る食い違いの数値は行の正規化に依存するので、条件を言うときは左零ベクトルそのものを出している。
検算
格子の定義そのものを辺の長さで検算している。六角格子の辺を書き間違えたときは辺長が 1 でなくなり、左零ベクトルに ±1 が混じって条件が Σd = 0 でなくなった。数字が揃わないときは、まず土台を疑う。

検査

梁に付く 4 交点の位置の総和は 0 で、周期をとると、階数の不足はどの格子・どの周期でもちょうど 1 になる。有限のパッチなら解けて、傾きは半径に比例して増える。

出典と権利

数理
呼び名は M. Gonzalo-Calderón ほか, Load distribution in flat reciprocal structures, Informes de la Construcción(CSIC)の序論(「レシプロカル構造は nexorade とも呼ばれる」「最古の記録は中世のヴィラール・ド・オヌクールと、ルネサンス初期のレオナルドとセルリオ」)で読んだ。レオナルドの橋は J. Aummonier ほか, C. R. Mécanique 353 (2025) の p.544 が「1495 年、アトランティコ手稿の p.69」とし、「梁に厚みがあるので橋は面の外へ反る。厚みがなければ平らに寝る」と書いている。以前ここに挙げていた日本の桔木は、相持ちの骨組みとして論じた資料が見つからなかったので外した(O. Popovic Larsen の本の目次には「日本」の章があるが、挙がっているのは現代の建物である)。実物の寸法は測っていない。ここに書いた式と数はすべてこのギャラリーで計算し直したもので、「周期がとれない」ことが既存の文献にあるかどうかは調べていない。
身近
焚き火の三脚・井桁の薪・鍋敷きの木組み(身近な例として挙げた。寸法は測っていない)。
親戚
測地線ドーム(建築の棚 第 1 弾)・主応力線のリブ(第 2 弾)・Resch のタック(発見13・角の欠損の総量)・ケルトの組紐(上下の織り)・籠目・ハニカム
生成
generators/reciprocal.js(reciprocal.svg カード・reciprocal-book.svg 帳簿)・tools/explore/reciprocal-grid.js(探索の原本)

つながり: 測地線ドーム(建築の棚 第 1 弾)・主応力線のリブ(第 2 弾)・見取り図の発見88