架構作成ウィザード
架構作成ウィザードは、スパンと階高を入力するだけで整形な架構を一度に作る機能で、
ファイル > 新規(架構ウィザード)… から開きます。
日本の構造設計では、まず通り芯と階を決め、その交点に柱を立てて通りに沿って大梁を架けます。 ウィザードはその手順をそのまま入力欄にしたもので、節点を 1 つずつ置く手間を省けます。
本節では、ウィザードの入力項目と既定値、そしてそこから何が作られて何が作られないのかを 紹介します。
実装参照:入力ウィンドウは sepika_app::frame_wizard::frame_wizard_window(crates/sepika-app/src/frame_wizard.rs)が表示し、生成は sepika_core::frame_gen::frame_model(crates/sepika-core/src/frame_gen.rs)が担います。
新規モデルを作る操作である
ウィザードは現在のモデルを置き換えます。既存モデルへ架構を足す使い方はできません。 既存の節点とどう突き合わせるかを決める必要があり、その規則を持たないためです。 既存モデルへ部材を足したい場合は、立体グリッドとスナップを 使うと通り芯と階の格子点に沿って部材を引けるため、ウィザードの代わりになります。
置き換えは undo できませんので、作りかけのモデルがある場合は先に保存してください。
実装参照:結果の反映は sepika_app::frame_wizard::frame_wizard_window(crates/sepika-app/src/frame_wizard.rs)が sepika_app::app::App::load_model(crates/sepika-app/src/app/actions/io.rs)へ渡して行い、undo 履歴も同時に捨てます。
入力項目と既定値
入力欄は「X 方向のスパン」「Y 方向のスパン」「階」「柱脚・大梁・床」の 4 つに分かれます。
| 項目 | 既定値 |
|---|---|
| X 方向のスパン | 6000 mm × 2(通り 3 本) |
| Y 方向のスパン | 6000 mm × 1(通り 2 本) |
| 階高 | 下から 4000 mm・3500 mm・3500 mm(3 階) |
| 階名 | 空欄(既定名で補う)。基部の床を含めて階高より 1 つ多く入力する |
| 平面の原点 | (0, 0) |
| 基部の標高 | 0 mm |
| 通り名の接頭辞 | X 方向は X、Y 方向は Y |
| 柱脚 | ピン |
| 大梁を作る | ON(基礎梁は常に作る) |
| 床を作る | ON |
| 床の板厚 | 150 mm |
| 床の用途 | 事務室 |
| 床のコンクリート | Fc21 |
柱脚の既定はピンです。基礎梁は部材として作られるため、それによる柱脚の回転拘束は解析が 直接評価します。支点に重ねて固定を与えると、基礎そのものの回転拘束を無条件に見込むことに なるため、出発点のモデルでは見込まない側に寄せています。
スパンと階高は 1 つずつ数値を変えられるほか、「等スパン一括入力」「等階高一括入力」を使うと 本数と寸法を指定してまとめて置き換えられます。一括入力欄の既定は X 方向が 6000 mm × 2 スパン、 Y 方向が 6000 mm × 1 スパン、階が 3500 mm × 3 階です。
スパン・階高はいずれも正の値で入力してください。0 以下を許すと同じ位置に節点が重なり、 長さ 0 の部材ができて剛性行列が特異になるため、入力が正でない場合は生成の前に止めます。
階名の入力欄は床ごとに並びます。階は床であり、床の数は階高(層)の数より 1 つ多いため、
表の一番下に基部の床の行があります。基部の行には階高欄がありません。その階高は 1 つ上の床が
持つためで、名前だけを入力する行になります。GL のように付け替えたい場合は、この行の名前を
変えてください。
階名を空欄にすると、床基準の既定名で補います。下から 1F・2F… となり、この規則は準備計算に
よる階の初期化と共通です(階の分布)。最上階も数字で通すため、
屋根であれば RF へ付け替えてください。
階名は階ごとに違う名前にしてください。同じ名前の階があると解析前チェックが止めます。
実装参照:既定値は sepika_core::frame_gen::FrameSpec::default と sepika_app::frame_wizard::FrameWizardState::default(crates/sepika-core/src/frame_gen.rs、crates/sepika-app/src/frame_wizard.rs)が持ち、正の値の検証は FrameSpec::validate が行います。
何が作られるか
「この内容で作成」を押すと以下の 7 つが作られます。作成前に節点数・柱本数・梁本数・床枚数を 表示しますので、規模を確かめてから実行してください。
- 節点:全格子点(X 通り × Y 通り × レベル)に 1 つずつ
- 柱:各格子点で上下に隣り合うレベルを結ぶ。基部から最上階まで通す
- 基礎梁:基部レベルで、隣り合う通りの間に架ける
- 大梁:基部より上の各レベルで、隣り合う通りの間に架ける
- 柱脚支点:最下レベルの節点へ、選んだ支持条件(固定またはピン)を与える
- 通り芯:X 方向・Y 方向のグループを新設し、通り名は座標の昇順に
X1・X2… - 階:全レベルに 1 つずつ(先頭は基部の床)
基礎梁は常に作ります。日本の RC 造・S 造では基礎梁を必ず設けるため、作る/作らないの 選択肢は設けていません。「大梁を作る」を OFF にしても基礎梁は残ります。
柱は材軸が鉛直で局所座標系の基準ベクトルに鉛直方向を使えないため、柱はグローバル X 方向、 梁はグローバル Z 方向を基準ベクトルにとります。
通り芯の出所は「手動」になります。あとから「柱位置から自動生成」を実行したときに、 ウィザードが付けた通り名が機械的な番号で上書きされないようにするためです (通り芯)。
階の所属節点・剛床・地震用重量は節点と部材が決まってはじめて定まる派生値のため、 ウィザードは空のままにし、生成後の準備計算で埋めます。
実装参照:生成規則は sepika_core::frame_gen::generate_frame(crates/sepika-core/src/frame_gen.rs)が担い、実行前の規模表示は FrameSpec::counts が算定します。
柱・梁の断面と材料は作らない
ウィザードは柱・梁(基礎梁を含む)の断面と材料を割り当てません。断面は利用者が決めるものであり、 もっともらしい既定断面を割り当てると、入力し忘れたまま解析が通ってしまうためです。 断面が未割当のまま解析しようとすると、解析前チェックが「断面が未割当の部材があります」で 止め、どの部材が未割当なのかを名指しします。
材料も割り当てません。断面形状が決まらないかぎり材料だけあっても部材の剛性は決まらないため、 材料は断面とあわせて利用者が決めることになります。生成後は断面タブで断面を作り、材料を 割り当ててから部材へ割り当ててください。
実装参照:部材へ断面を割り当てない生成は sepika_core::frame_gen::generate_frame が行い、未割当の検査は sepika_solver::statics::analysis::precheck::model_issues(crates/sepika-solver/src/statics/analysis/precheck.rs)が担います。
床は断面とコンクリートを作る
床は解析対象の部材ではなく、解析上は荷重(自重・積載)としてのみ効く二次部材です。 板厚さえ決めれば断面が確定し、材料は自重を決める入力にすぎないため、床については 断面と材料の両方をウィザードが作ります。
床を作る設定では、板厚 150 mm の断面 S15 を1 枚だけ作り、全階の床へ割り当てます。
床の板厚と自重は断面と材料からしか解決できず、どちらかが欠けた床は解析前チェックが
止めてしまうため、床を作るなら断面とコンクリートもあわせて作ります
(床の断面と自重)。
板厚を変えて入力すれば、その値の断面を作ります。
符号は板厚を変えても S15 のままです。 符号は識別のための札なので、板厚に合わせて
S20 のように付け替えたい場合は、生成後に断面タブで変更してください。
床のコンクリートは Fc18〜Fc60 から選べ、既定は Fc21 です。選んだグレードの材料を
1 つだけ作り、床の断面 S15 へ割り当てます。材料の規格値(ヤング係数・密度・Fc)は
材料タブのプリセットと同じもので、床の自重はこの密度から決まります
(標準材料一覧)。
材料を割り当てない選択肢は設けていません。材料のない床は解析前チェックが止めるので、 選ばずに済ませてもやり直しになるだけです。別のコンクリートを使う場合は、生成後に 材料タブで差し替えてください。
床は基部を含む全レベルの通り芯の各区画(隣り合う通りで囲まれた矩形)に 1 枚ずつ作ります。 X 方向・Y 方向とも通りが 2 本以上ないと通り芯の区画ができないため、片方が 1 本のモデルでは床を 作りません。
床の用途は積載荷重のプリセットで、選んだ用途が全階の床へ入ります。用途を「なし」にすると 積載荷重が入らないため、床の積載を別途入力する場合に使います (積載荷重)。
実装参照:床の断面と材料は sepika_core::frame_gen::generate_frame(crates/sepika-core/src/frame_gen.rs)が作り、材料の規格値は sepika_core::material_grade::material_presets が与えます。
生成後の流れ
ウィザードが作るのは架構と床割りまでですので、解析へ進むには続けて以下を行ってください。
- 断面タブで断面を作り、材料を割り当てる
- 部材へ断面を割り当てる(3D ビューで部材をクリックしても割り当てられる)
- 準備計算を実行する
同じ断面を階ごとに配りたい場合は、階への複製を使うと、下の階で決めた 断面を上の階へまとめて配れます。