feat(rebar): B10-1 최하단 단 삭제, 하면 1단 B2·B4가 모서리에서 대체

- B10-1 최하단(z = c_b)은 하면 1단 B2·B4와 같은 높이에서 모서리 간섭이 있어 삭제 (승인 2026-10-26)
- B10-1: 18 → 16본 (8단 × 2면), 길이는 그대로. B1–B4 개수·길이 불변, 새 철근 없음
- 표, 3D, 단면 그림이 같은 규칙을 씀
- 테스트 기대값 갱신 (B10-1 16)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
ypshimandClaude Haiku 5.5 committed 2026-10-26 18:17:00 +09:00
1 parent 3fe94fa0e1
commit 8860fb8231
6 files changed
+13 -10

No files matched your search

+3 -2
View File
@@ -109,10 +109,11 @@ export function footingSectionSvg(model: PierModel): string {
const b9 = b9Bars(L, W, [], 2000, fs);
for (const n of [...new Set(b9.bars.map((b) => b.n))]) parts.push(vline('b9', 'B9', x(n), y(z.B24), y(z.B5), COLOR.b9));
// B10-1: green points at both W faces, one per level (9 levels), at the side depth of the table.
// B10-1: green points at both W faces, one per level above the lowest (8 of 9 levels), at the side depth of the table.
const levels = b10Levels(H, fs);
const dB1 = sideDepth(NOMINAL_DIAMETER.S29, NOMINAL_DIAMETER.S19, fs);
for (let j = 0; j < levels; j++) {
// The lowest level is removed (승인 2026-10-26): the 하면 1단 B2·B4 take its place at the corner.
for (let j = 1; j < levels; j++) {
const zj = fs.cBottom + j * fs.sV;
parts.push(dot('b10', 'B10-1', x(-W / 2 + dB1), y(zj), COLOR.b10, 2.2));
parts.push(dot('b10', 'B10-1', x(W / 2 - dB1), y(zj), COLOR.b10, 2.2));
+2 -1
View File
@@ -466,7 +466,8 @@ export function buildRebar3D(m: PierModel, common: Material = DEFAULT_MATERIAL,
// B10-1: along s at the W faces, 19.1 above B10-2; its ends turn inward along n.
const np = sg * nEdge;
const zb = zj + dB10;
polyline('B10-1', [[f.s - sEdge, zb, np - sg * hookB10], [f.s - sEdge, zb, np], [f.s + sEdge, zb, np], [f.s + sEdge, zb, np - sg * hookB10]], NOMINAL_DIAMETER.S19);
// The lowest B10-1 level is removed (승인 2026-10-26): the 하면 1단 B2·B4 take its place at the corner.
if (j > 0) polyline('B10-1', [[f.s - sEdge, zb, np - sg * hookB10], [f.s - sEdge, zb, np], [f.s + sEdge, zb, np], [f.s + sEdge, zb, np - sg * hookB10]], NOMINAL_DIAMETER.S19);
}
}
// B11 (across W, spread along L) and B12 (along L, spread across W) at the assembly levels, 4s apart, 2s stagger per level.