pub fn build_frame(model: &Model, target: FrameTarget) -> Option<Frame>Expand description
モデルから構面を切り出す。対象が存在しない場合は None。
通り(軸組図)に属する節点は、「通り芯の所属節点リストに載っている または
そのグループでの離れが FRAME_TOL_MM 以内」のいずれかを満たすものとする。
リストだけでは、柱間の大梁が中間節点で分割されているときに中間節点が柱節点で
ないため大梁が丸ごと落ちる。座標だけでは、通りの位置と柱の芯がずれた
芯ずれ(ST-Bridge の実ファイルで見られる)の柱が落ちる。両方を拾うため和を採る。
階(伏図)に属する節点は、Model::node_stories(帰属区間による幾何判定)で
その階に属する節点とする。Node::story のキャッシュではなく幾何を見るのは、
キャッシュを埋めるのが準備計算だけであり、架構ウィザードで作った直後のモデルや、
節点を足した/動かした直後のモデルでは空または古いままだからである。伏図は
描画対象の絞り込みのみで構造計算には用いないため、幾何から引いてよい。
要素は「全材端節点がその階に属するもの」に加え、上端節点がその階に属する柱を
含める(柱は上下 2 つの階レベルにまたがるため、前者だけでは伏図から柱が消え、
梁の支持位置が読めなくなる)。柱の所属階の規則は階の主要構造種別の判定と同じ
「材端節点のうち最も高い節点の所属階」(Model::member_story)。