八州電工 簡易CAD — 架台版
設計書 (v1)
プルボックスに続く第2製品「架台(箱型フレーム台)」を、既存 CAD
アプリに製品種別セレクタで統合する設計。2026-05-25 boss
ブレスト採決(箱型フレーム / アングル単一 / ①ベースプレート + ③天板 +
⑤取付穴、②中段棚・④筋交いは MVP 外)。
1. 概要
架台 = アングル(L形鋼)で組む箱型フレーム台。外寸
W×D×H
を入力し、天板・脚底板・取付穴を付けて、3D・見積添付用三面図PDF・部材表(切断リスト含む)・自動見積・JSON保存ができる。プルボックスと同一アプリ内で製品種別を切替えて使う(統合方針
= ブレスト案🅐)。
MVP に含む: 箱型フレーム(天枠+地枠+4脚)/
天板(鋼板1枚)/ 脚底板4枚(アンカー穴)/ 天板の機器取付穴 / 仕上げ4種 /
自動見積 / 3D / 三面図PDF / 部材表 / JSON保存。 MVP
に含まない(次段): 中段棚枠 / 筋交い(補強斜材) /
アングル以外の断面 / 部材ごと異断面。
2.
製品種別統合(既存アプリへの組込み)
- 画面上部に製品種別セレクタ「プルボックス / 架台」を追加。
PartModel を判別ユニオン化:
PullboxModel(既存、kind:"pullbox")
FrameModel(新規、kind:"frame")
- 共通フィールド:
meta(品名/図番/客先/createdAt)、estimate(rateMaster/leadTimeDays)、schemaVersion。
- 種別選択で、右ペイン入力パネルとドメイン関数(geometry/estimate/drawing/bom/validation)が種別別ディスパッチに切替わる。
- 3D viewer / PDF出力 / JSON保存・読込・複製 /
タブ(3D・三面図・部材表)は共通基盤をそのまま再利用(種別非依存の入口に整理)。
- JSON は
kind
で種別判定して復元。schemaVersion 整合は既存 fromJson
の検証を拡張。
3. FrameModel データモデル
FrameModel {
schemaVersion, kind: "frame",
material: "steel",
dimensions: { W, D, H } // 外寸 mm
angle: AngleSection // 単一断面(全フレーム材共通)
topPlate: { thickness } // 天板 鋼板(W×D)
basePlate: { width, depth, thickness, anchorHole: { diameter, count } } // 脚底板4枚共通仕様
mountingHoles: RoundHole[] // 天板上の機器取付穴(既存 RoundHole 流用、面=top)
finish: Finish // 既存4種 再利用
estimate: { rateMaster, leadTimeDays }
meta: { name, drawingNo, customer, createdAt }
}
AngleSection { label, a, b, t, kgPerM } // 例 L50×50×4, kgPerM=3.06。選択肢は鋼材単重テーブルから
- アングル一覧 + kg/m
は物理定数テーブル(
config/angleCatalog.ts)。MVP
は代表数サイズの暫定値、実値は How much 鋼材単重シートで確定(Task
相当、後段)。
- 板厚(天板/脚底板)の選択肢も暫定。架台の板は厚め傾向(プルボックスの
1.6/2.3/3.2 とは別レンジ想定)。実値は後段確定。
- 取付穴は既存
RoundHole(x,y=中心、面=top)を再利用。座標規約はプルボックスと統一(左下原点・外寸基準
mm)。
4.
幾何・重量計算(domain/frameGeometry.ts)
- アングル総長 = 天枠(2W+2D) + 地枠(2W+2D) + 脚(4H) =
4W + 4D + 4H (mm) → m 換算。
- フレーム重量 = アングル総長(m) ×
angle.kgPerM。
- 天板重量 = (W×D)/1e6 (m²) × (thickness/1000)(m) ×
7850。
- 脚底板重量 = 4 × (basePlate.width×depth)/1e6 ×
(thickness/1000) × 7850。
- 総重量 = フレーム + 天板 + 脚底板。
- パネル/部材分解(BOM 用): アングル材を {天枠W材×2, 天枠D材×2,
地枠W材×2, 地枠D材×2, 脚×4} で長さ別に列挙(切断リストの素)。
5.
見積ロジック(domain/frameEstimate.ts)
箇所別課金(boss 確定済、プルボックスと同方針):
- 材料費 =
steelKgYen × 総重量(アングル+鋼板を kg ベースで合算。MVP
は単一 kg 単価、将来アングル/板で分離可)。
- 仕上げ費:
- メッキ(hot_dip_galv) =
galvYen × 総重量
- 塗装(baked_paint / rust_paint) =
paintM2Yen × 表面積。表面積 = アングル展開面(≈
2×(a+b)/1000 × 総長(m))+ 天板表裏 + 脚底板表裏(近似)
- そのまま(raw) = 0
- 加工費 = 切断(部材本数 ×
cutYen) +
溶接(接合箇所数 × weldYen) + 穴((アンカー穴総数 + 取付穴数)
× holeYen)。曲げなし。
- 接合箇所数 = 構造テンプレ定数(箱枠角8 + 脚-枠接合8 + 天板溶接 +
脚底板溶接4 等、実装時に構造から算定)。How much
で課金実態を確認して調整。
- 合計 = 材料 + 仕上げ + 加工。
RateMaster を拡張:
既存(steelKgYen/paintM2Yen/galvYen/holeYen/weldYen) を再利用 +
cutYen を追加。bendYen/openingYen
は架台では未使用。
6. 描画・部材表・PDF
- 3D(render/frameViewer3d.ts or viewer3d 拡張):
アングル材を押し出し(L断面 or MVP は簡易角材)で12本配置 +
天板(薄板)+ 脚底板4枚。取付穴は天板面に暗色マーカー(既存マーカー方式
+ ドラッグ移動を流用可)。OrbitControls 等は共通。
- 三面図(render/frameDrawingSvg.ts or drawing
分岐): 平面図(W×D、天板外形+取付穴) /
正面図(W×H、脚+天枠+地枠) /
側面図(D×H)。アングル材は線で表現、寸法線・表題欄(金額/納期/図番)は既存方式。mm基準viewBox=実寸印刷。
- 部材表(domain/frameBom.ts):
アングル材(部材名/断面/本数/長さ/総長/kg/m/重量)+
切断リスト(各材の必要長、製作用)+ 天板 +
脚底板。CSVダウンロード。
- PDF: 既存
exportPdf(印刷経路)をそのまま使用。三面図SVG(表題欄に金額/納期)を実寸印刷。
7. UI(ui/ 拡張)
- 製品種別セレクタ(プルボックス/架台)。
- 架台選択時の右ペイン:
外寸W/D/H、アングル断面ドロップダウン、天板厚、脚底板(サイズ/厚/アンカー穴
径・数)、取付穴エディタ(既存 featureEditor
流用、面=top固定)、仕上げ、単価マスタ(cutYen 追加)、納期。
- 入力反映は既存パネル同様
change イベント +
NaN/空文字ガード(MED-1/2 の知見を踏襲)。
- 検証エラー赤表示。
8.
検証ルール(domain/frameValidation.ts)
- 寸法 W/D/H > 0、板厚 > 0、アングル断面が一覧内。
- 取付穴が天板(W×D)内に収まる(中心±半径)。
- アンカー穴が脚底板(width×depth)内に収まる。
- 部材長が妥当(脚 H、枠材が W/D に整合)。
9.
既存資産の再利用とアーキ整合
- ドメインは種別別純関数(frameGeometry/frameEstimate/frameBom/frameDrawing/frameValidation)に分離。pullbox
既存関数は無改変、共通の入口(store/タブ/3D/PDF/JSON)だけ種別ディスパッチ化。
- 座標規約・1mm丸め・ドラッグ機構・finish
区分はプルボックスと統一して操作感を揃える。
- ファイルは種別ごとに分割し、1ファイル1責務を維持(既存方針継承)。
10. テスト方針・品質ゲート
- ドメイン純関数 TDD: frame
の重量(
4W+4D+4H × kg/m +
板重量)、見積内訳(材料/仕上げ/加工)、三面図データ、BOM/切断リスト、検証(寸法/穴の面内判定)。手検算可能な数値で固定。
- §14 Gate: dev-staff 実装 → reviewer Gate 1 → tester
Gate 2。
- Layer 4(Playwright 実機): web app 必須。製品切替
→ 架台入力 → 3D/三面図/見積/部材表/PDF/保存読込 + 取付穴ドラッグ
の動線を実機検証 + 手検算 sanity。
- 既存プルボックス・ドラッグ機能の回帰ゼロを維持。
11. スコープ外・後段で詰める
- カタログ実値(アングルサイズ一覧 +
kg/m、板厚レンジ、各単価): How much 鋼材単重シート + boss
確認で確定。設計段階は構造定義 +
暫定値(プルボックスが単価を後段確定したのと同方針)。
- 中段棚枠(②)/ 筋交い(④)/ アングル以外断面 / 部材別異断面:
次段拡張。
- 溶接・切断の課金実態(箇所別の細目): How much
確認で接合箇所数定数を調整。
12. 機密注意
- How much Excel と抽出生値は repo に commit
しない・外部送信しない(手元解析のみ)。確定単価のみ rateMaster/catalog
に反映、その可否も boss 判断。
- cad.octisle.com(パスワード無し公開)には暫定値版のみ。実単価を入れた版はパスワード保護側(shared.octisle.com)へ分離。