feat(core): lengths for coping, column and the B2 split (추천안)

- Coping: C9/C10 lower U = 1740 + 2h with h linear along the slope and 2300 on
  the Level (3522 / 6098 / 6249 / 6340 from the document); C12 (3717–10183),
  C13 11746, C14 3447.5, C15 3852, C16 4070.
- Column: P3 = C_t + 1.3·l_d(H19) lap (추천안 for Q-C6, lap 1146.6), P5 = C_t.
- Footing: B2 13646 is split into two pieces at a splice with 1.3·l_d(S25,
  SD500) (추천안 for Q-B6), piece ≈ 7776 each.
- Not done: C9/C11 cap (삿갓) lengths (Q-K5 open), P1/P2 per-line pieces.
- Tests against the document values; P1 summary updated.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-22 11:37:08 +09:00
1 parent 73bff19aba
commit 5641bbe265
6 files changed
+105 -24

No files matched your search

+10
View File
@@ -62,3 +62,13 @@ export function hookLength(kind: HookKind, db: number): number {
}
return 2.5 * db * ((3 * Math.PI) / 4) + 6 * db;
}
/**
* Splice of a long bar into two pieces (추천안 for Q-B6): each piece is half the total plus half the lap,
* and the lap is l_s = 1.3·l_d. Used only when the bar is longer than the standard bar length.
*/
export function splitPieces(total: number, db: number, fy: number, fck: number, standard: number): { pieces: number; pieceLength: number; lap: number } | null {
if (total <= standard) return null;
const lap = spliceLength(db, fy, fck);
return { pieces: 2, pieceLength: total / 2 + lap / 2, lap };
}