Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

通り芯

通り芯は、日本の構造設計で各通りを識別するために付ける呼称です。「X2 通りの柱」「Y3 通りの 大梁」のように部材の位置を言い表すためのもので、構造計算には一切用いません。応力解析・ 断面算定・保有水平耐力のいずれにも入らないため、通り芯を作っても解析結果は変わりません。

通り芯は下ドックの「モデル」タブにある「通り芯」で確認・編集します。準備計算の成果では ないため、準備計算を実行しても通り芯は作られません。生成したいときは、このタブの 「柱位置から自動生成」を押してください。計算に用いないデータなので、必ずしも自動生成する 必要はなく、通り芯を持たないままモデルを解析しても差し支えありません。

計算に用いないことに合わせて、通り芯の追加・改名・自動生成は解析結果・設計結果・準備計算を 陳腐化させません。通り芯を 1 本足すたびに再解析が必要になると、識別のためのデータが解析の 手戻りを生むことになるためです。編集後は保存だけが必要になります。

実装参照:一覧・編集 UI は sepika_app::tables::axes::axes_table(crates/sepika-app/src/tables/axes.rs)が表示し、自動生成の適用は sepika_app::app::App::generate_axes_action(crates/sepika-app/src/app/actions/mod.rs)が解析結果を陳腐化させずに行います。

通り芯の構成

通り芯は、同じ幾何規則を共有する「グループ」と、その中の 1 本ずつの「通り」の 2 段構成です。 X 方向の通りをまとめたグループ、Y 方向の通りをまとめたグループ、という持ち方をします。

グループは次の 2 種類です。

  • 平行芯:原点と方向角を持ち、各通りは原点からの符号付きの離れで位置が決まる
  • 平行芯以外:円弧芯・放射芯・作図芯。幾何は保持せず、所属節点のまとまりとしてのみ扱う

平行芯グループでは、芯線の方向が方向角 \( \theta \) の \( (\cos\theta, \sin\theta) \)、離れを測る 向きがそれを 90° 回した \( (-\sin\theta, \cos\theta) \) になります。方向角 270° のグループは 離れが +X 向きに測られるため X 方向の位置を、方向角 0° のグループは +Y 向きに測られるため Y 方向の位置を表します。

1 本の通りが持つのは、通り名・離れ・所属節点・出所の 4 つです。

実装参照:型は sepika_core::model::{AxisGroup, Axis, AxisGroupKind, AxisSource}(crates/sepika-core/src/model/axis.rs)が持ちます。

所属節点と所属要素

通り芯が保持するのは所属節点だけです。所属要素は「すべての材端節点がその通りに属する 要素」として、必要になった時点で算出します。柱・梁・ブレースのような線材のほか、4 節点 すべてがその通りに属する壁も所属要素になり、一覧の「所属要素」列にはこの規則で数えた本数を 表示します。

所属節点を座標から導かずリストとして持つのは、実務では通りの位置と柱の芯が一致しない 芯ずれが普通に起こるためです。たとえば X=3000 の位置にある通りに、X=3500 に立つ柱を 所属させるモデル化があります。所属を座標から求める方式ではこの関係を表せないため、所属は リストを正とします。

実装参照:所属要素の算出は sepika_core::model::Model::axis_elements(crates/sepika-core/src/model/axis.rs)が担い、一覧の「所属要素」列は sepika_app::tables::axes が表示します。

自動生成の規則

「柱位置から自動生成」は、柱が立つ平面位置に X 方向・Y 方向の通り芯を作ります。既定の 判定基準は以下のとおりです。

対象とする部材

対象は柱の材端節点だけです。柱は、線材のうち両端の水平距離(XY 平面内の距離)が 1 mm 未満のものと判定します。この判定規則は、仕上げ周長式・柱脚梁せいの付加・壁領域の 構面走査と共通です。

梁・ブレース・二次部材(小梁・間柱)・壁は、通り芯を「柱が立つ位置」と定義しているため 対象にしません。斜材の頂点や小梁の交点まで通りにすると、実際には通りではない位置に多数の 通りが立ち、識別札としての役目を果たさなくなります。剛床代表節点は要素が接続しない仮想 節点のため、自然に対象から外れます。

実装参照:柱の判定は sepika_core::geom::is_vertical_pair(crates/sepika-core/src/geom.rs)と同じ判定を sepika_core::axis_gen::generate_axes(crates/sepika-core/src/axis_gen.rs)が用います。

追加先グループの決め方

追加先のグループは幾何で突き合わせます。離れを測る向きが X 軸に沿う平行芯グループが すでにあれば、そこへ通りを追加します。ない場合は、名前 X・原点 (0, 0)・方向角 270° の グループを新設します。Y 方向も同様で、新設時の方向角は 0° です。

名前ではなく幾何で突き合わせるのは、他ソフトから取り込んだファイルのグループ名が けた行・張り間 のように任意であるためです。名前で探すと、同じ位置に通りが二重に立ちます。

離れはそのグループの原点・方向角で測るため、取り込んだグループの符号の規約にそのまま 従います。たとえば方向角 90° のグループでは、離れを測る向きが -X 向きになるため、X=6000 に 立つ柱の離れは -6000 になります。

実装参照:sepika_core::axis_gen::generate_axes(crates/sepika-core/src/axis_gen.rs)が AxisGroupKind::plan_dir(crates/sepika-core/src/model/axis.rs)で幾何を突き合わせ、グループを新設します。

まとめ方と採番

柱の平面位置を離れの昇順に並べ、許容差 1 mm でまとめて 1 本の通りにします。通りの離れは、 まとまりの先頭の値を採ります。

通り名は離れの昇順に、そのグループ内で未使用の最小の正整数 \( n \) を使って {グループ名}{n} と付けます。通り芯がないモデルであれば X1・X2・… と座標の昇順に 並びます。座標が負のモデルでも同じで、X = -6000, 0, 6000 の 3 本があれば X1(-6000)・X2(0)・X3(6000) になります。番号が空間の順序どおりに増えないと、図面上で 位置を特定するという通り名の役目が果たせないためです。

グループ内の通りは、常に離れの昇順に並べます。

実装参照:並べ替え・許容差 1 mm の集約・採番は sepika_core::axis_gen::{generate_axes, AXIS_TOL_MM}(crates/sepika-core/src/axis_gen.rs)が行います。

既存の通りの扱い

通り芯には自動・手動の 2 つの出所があります。自動生成が作った通りが「自動」、利用者が 作った通り・ST-Bridge から取り込んだ通り・利用者が名前を変更した通りが「手動」です。

自動生成を実行すると、「自動」の通りだけを破棄して作り直し、「手動」の通りはそのまま 残します。さらに、同じグループ内に許容差 1 mm 以内の通りがすでにあれば、その位置には 新しい通りを作りません(既存優先)。取り込んだ通り名や芯ずれした所属は自動生成では復元 できないため、既存を残すほうが情報を失いません。

通り名を変更すると、その通りの出所は「手動」に変わります。利用者が付けた名前を、次の自動 生成が機械的な番号で上書きしないようにするためです。

実装参照:出所 sepika_core::model::AxisSource の保護と既存優先は sepika_core::axis_gen::generate_axes が、改名時の「手動」への変更は sepika_edit::RenameAxis(crates/sepika-edit/src/axis.rs)が担います。

3D ビューでの利用

通り芯と階がそろうと、その交点を格子点とする立体グリッドを 3D ビューへ描けます。 格子点へスナップして部材を引けるため、通り芯は識別のためだけでなく、モデリングの下敷きと しても使えます(立体グリッドとスナップ)。

ST-Bridge との対応

ST-Bridge の通り芯(StbAxes)を含む要素別の取り込み・書き出し・往復の対応状況は、ST-Bridge 要素別 変換状況一覧を参照してください。