feat(core): B9 shear bars of the footing (plan C5)
- B9 (확대기초철근 (1).md §9): H16 with the 135° stirrup hook, on the odd grid (i_W = 1, 5, …), 16 rows, 20 per row (even rows start at i_L 1, odd at 3), 320 bars, length l_v 1750 + 2 × 189 ≈ 2128. - The rebar summary now lists B9; the alert about B9 is gone. Positions and hooks are the document's proposed rules (Q-B18, Q-B19), noted on the row. - Tests: the document's B9 values; P1 summary has 320 and only the splice alert. - Not verified in a browser. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3af8729e9f
commit
73bff19aba
4 files changed
+35
-6
No files matched your search
@@ -145,3 +145,23 @@ export function assemblyBars(L: number, W: number): FootingBar[] {
|
||||
{ name: 'B12', size: 'S16', count: b12, length: L - 2 * 139.75 + 2 * hook },
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* B9 전단철근 (확대기초철근 (1).md §9). Wraps B5 (top outer) and B2·B4 (bottom outer), H16 @500 staggered.
|
||||
* Plane positions and hooks are proposed rules (Q-B18, Q-B19).
|
||||
*/
|
||||
export function shearB9(L: number, W: number, H: number): { rows: number; perRow: number[]; count: number; length: number } {
|
||||
const nW = grid(W).n; // 61
|
||||
const nL = grid(L).n; // 79
|
||||
const rowIndices: number[] = [];
|
||||
for (let i = 1; i <= nW; i += 4) rowIndices.push(i);
|
||||
// Even-numbered rows start at i_L = 1, odd-numbered rows at i_L = 3 (2s stagger).
|
||||
const perRow = rowIndices.map((_, r) => {
|
||||
const start = r % 2 === 0 ? 1 : 3;
|
||||
return Math.floor((nL - start) / 4) + 1;
|
||||
});
|
||||
const count = perRow.reduce((a, b) => a + b, 0);
|
||||
const lv = layers(H).B5 - layers(H).B24; // 1750
|
||||
const lh = hookLength('stirrup135', d('H16'));
|
||||
return { rows: rowIndices.length, perRow, count, length: lv + 2 * lh };
|
||||
}
|
||||
Reference in new issue
Block a user