Commit Graph
33 Commits
Author SHA1 Message Date
ypshimandClaude Haiku 5.5 99db6a1f52 Revert "feat(rebar): B1–B4와 B5–B8 방향 교환 (B1–B4는 W 방향, B5–B8은 L 방향)"
이 교환은 9,350 방향이 L이라는 가정에서 적용됐으나, 단면 삽도(B5–B8 선, 교각축 직각 단면)와 재료표가 원래 배치(B1–B4 L 방향, B5–B8 W 방향)와 맞는 것으로 확인되어 되돌림.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-27 09:48:05 +09:00
ypshimandClaude Haiku 5.5 752de2fd9d feat(rebar): B1–B4와 B5–B8 방향 교환 (B1–B4는 W 방향, B5–B8은 L 방향)
- 재료표(B5–B8 9150 = 9350 − 2c, B1–B4 7600 = 7800 − 2c)와 같은 방향 배정으로 맞춤
- 격자 키를 물리 방향으로 정리: sL = L 방향 간격, sW = W 방향 간격 (기존 sAxis → sL, sPerp → sW)
- B1–B4: L 격자로 개수, 길이 W − 2c. B5–B8: W 격자로 개수, 길이 L − 2c
- B9: 열(L)은 sL, 행(W)은 sW 격자 (물리 격자 일치), 개수 불변
- B11은 L 방향 간격(sL), B12는 W 방향 간격(sW)
- 3D 확대기초 철근과 단면 그림의 역할을 교환 (B1–B4 선, B5–B8 점)
- 철근표 간격과 규칙 값, 설정 라벨을 방향 기준으로 수정
- 테스트 기대값 갱신 (B1–B4 40, B5–B8 31, B6 13646 분할 경고)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-27 09:36:20 +09:00
ypshimandClaude Haiku 5.5 0588ffe3f4 feat(rebar): B11·B12 수평간격을 배수 k 입력으로 (기본 k = 8, 방향은 문서 기준)
- 간격 = k·s: B11은 L 방향 격자(교각축 직각 s), B12는 W 방향 격자(교각축 s). 기본 k = 8 (1000 mm, s = 125)
- 개수는 격자 k칸마다, 조립 단 엇갈림 2칸 유지. 3D 철근도 같은 간격
- 기본 k = 8이므로 P1 기본값의 B11·B12 개수가 60 / 47 → 30 / 24로 바뀜 (k = 4이면 문서값 60 / 47을 재현, 테스트로 확인)
- 패널에 k 두 칸, 규칙 표시에 B11·B12 간격 (k·s)
- FT02를 n·kB11·kB12 정수 검사로 확장

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 17:34:51 +09:00
ypshimandClaude Haiku 5.5 ddd6d55a72 feat(rebar): 격자 실간격을 교각축(B1–B4·B9)과 교각축 직각(B5–B8·B11·B12)으로 나눠 입력
- footing-settings: s → sAxis(교각축) · sPerp(교각축 직각), 범위는 동일 (100–150)
- grid·gridPositions가 방향 키를 받음. B1–B4 grid는 sAxis, B5–B8 grid는 sPerp, B9 행·열은 sAxis, B11·B12는 sPerp
- 철근표 간격·실간격과 근거가 방향별 값을 씀 (B12는 교각축 직각 값, 승인 2026-10-26)
- 3D 확대기초 그림의 위치도 방향별 값을 씀
- 패널 입력 두 칸으로 분리

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 17:10:31 +09:00
ypshimandClaude Haiku 5.5 c40c58d27f feat(rebar): 확대기초 철근표 간격·실간격을 격자 실간격 s와 s_v에 연동
- B1–B8: 간격 2s, 실간격 s (cycle 2·4·6·8), 실간격 2s (B1·B3·B5·B7)
- B9: 간격 4s, 실간격 2s (엇갈림) · B11·B12: 간격 4s
- B10-1·B10-2: 간격·실간격 = s_v
- 근거: s 또는 s_v가 기본값과 다르면 '입력', 같으면 '기본값'

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 17:01:14 +09:00
ypshimandClaude Haiku 5.5 5a20a18185 feat(rebar): 확대기초 배근 입력 8개 (피복 3·여유·격자 s·s_v·e_top·n), FT01·FT02 검사
- core/rebar/footing-settings.ts: 입력 정의, 기본값(확대기초철근 (1).md), 범위(제안), 검사 (FT01 범위, FT02 n 정수)
- 확대기초 계산 함수가 설정을 인자로 받음 (기본값 = 기존 값, 기존 호출은 그대로)
- 3D 확대기초 그림의 125·100 하드코딩 제거, 철근표·3D·기둥 층 높이가 같은 설정을 씀
- 패널: 상면·측면·하면 피복을 칸 분리, s_v와 e_top 분리. 고정 규칙(k=2, Δ₂=100, 전단 4s·엇갈림 2s, cycle 교대)과
  B2·B6 디리는 읽기 전용으로 표시
- 기본값에서 P1 결과 불변 (기존 테스트 통과)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:59:08 +09:00
ypshimandClaude Haiku 5.5 f619b9ea20 feat(rebar): 기둥 배근 입력 8개 (피복·띠철근 K3/K5/K4·K6·커플러·Δz·n_div), CL01·CL02 검사
- core/rebar/column-settings.ts: 입력 정의, 기본값(기둥철근 (1).md), 범위(제안), 검사 (CL01 범위, CL02 n_div 홀수)
- 주철근 하단 갈고리는 고정 (입력 없음)
- 기둥 탭 패널: 적용 버튼으로 반영, 계산 결과(K2 내측 r, 주철근·커플러 수량) 표시
- P1·P2 등분 수, P3·P5·P4·P6 간격, 커플러 간격·상승을 철근표 간격·비고와 근거(기본값/입력)에 연동
- 3D 주철근 개수도 n_div 입력을 사용 (COLUMN_P1 하드코딩 제거)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:22:47 +09:00
ypshimandClaude Haiku 5.5 496e0ea4e5 feat(rebar): 상면 주철근(C1–C6) 이음 무시/반영, 위치 기둥 중심/단부
- 기본 '이음 무시' (사양 결정). '반영'이면 정척(12000) 초과 철근을 l_s 겹침 2조각으로 나눔
- 위치: 기둥 중심 = 전체의 절반, 단부 = 정척 안에서 가장 끝 쪽 (짧은 조각 = 전체 + l_s − 12000, 긴 조각 = 12000)
- 철근표 조각 목록과 비고, 3D 두 조각(l_s 겹침)에 반영
- STANDARD_BAR를 common.ts로 옮겨 순환 import 방지

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:14:23 +09:00
ypshimandClaude Haiku 5.5 72053be420 feat(rebar): C15·C16 폭 간격을 2 × 주철근 기본간격에 연동
- stairBars가 pitch를 받는다 (기본 2 × 기본간격 = 250, P1 그대로)
- 3D와 철근표가 같은 pitch를 쓴다
- 철근표 간격·실간격: 2 × 기본간격, 근거는 기본값/입력

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:04:31 +09:00
ypshimandClaude Haiku 5.5 3cfbdf62f6 feat(rebar): 철근표 간격·실간격을 입력과 연동, 근거는 기본값/입력
- C1–C8: 간격 2 × 주철근 기본간격, 실간격 기본간격
- C9·C11 · C10 · C12·C13 · C14: 전단·측면·C14 간격 입력
- S1·S2: 블록 철근 간격 입력
- 근거: 관련 입력이 모두 기본값이면 '기본값', 하나라도 바뀌면 '입력'
- 입력이 없는 행(C15·C16, P3~P5, 커플러)은 기존 고정값 유지

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 15:54:47 +09:00
ypshimandClaude Haiku 5.5 1e6b8db7e9 feat(rebar): 주철근 기본간격·끝단 여유를 입력과 연동, CP04 홀수 개수 경고
- widthLayout이 코핑 배근 입력(mainSpacing, mainEndGap)을 받는다. 결과에 spacing 필드 추가
- 3D 주철근 위치의 125 하드코딩 제거 (철근표와 3D가 같은 간격을 씀)
- CP04: 주철근 개수 n+3이 홀수면 cycle-1·cycle-2 분할 불가 경고 (적용은 막지 않음)
- P1 기본값(125 · 80)에서는 결과와 경고 없음 (테스트로 확인)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 15:51:26 +09:00
ypshimandClaude Haiku 5.5 2acb427bab feat(rebar): 상면 주철근 단 간격(세로) 입력 100 mm, 가로는 2d 고정
- 세로 단 간격은 입력(기본 100, 범위 80–120)으로 상면 C1–C6, C14 상면, 기둥 C3 높이에 쓴다
- 가로 단 간격은 2d(H29, 57.2 mm)로 고정 (코핑철근.md의 s_lay 하나를 둘로 나눔)
- P1 기준 값 갱신: 상면 높이 43.284 / 43.184 / 43.084, C14 상면 43.208 / 43.108, P1 위 끝 zTop1 14776

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 15:42:40 +09:00
ypshimandClaude Haiku 5.5 e1497176ea feat(rebar): block rebar settings as input (S1·S2 spacing separate, S1 depth from the cover and bar diameters)
- PierInput.blockRebar (partial): cover top, side cover, first gap, spacing S1
  and S2 (separate), leg length. Defaults are the P1 values, so P1 is unchanged.
- S2 depth = top cover; S1 depth = top cover + S1/2 + S2/2 (H19: 69.1 at the default).
- The model carries the settings; the bearing-block rebar, the 3D bars, and the
  summary use them.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 14:08:58 +09:00
ypshimandClaude Haiku 5.5 f37a0bf9ce fix(rebar): column heights Hc and h_cop from the model (Level underside, step top) instead of P1 constants
Hc = Level underside − footing top, and h_cop = step top at the column centre − Level underside. P1 gives 12703 and 2644,
unchanged. With taper h2 = 3000 the Level underside moves down, so Hc = 11203 and the P2 top (Level underside + l_d)
moves to 13039, while the P1 top stays at the step top (15147). The 3D and the 철근표 use the same heights.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 13:10:51 +09:00
ypshimandClaude Haiku 5.5 df6aeb5c46 fix(rebar): side rows on the 250 grid up to the 400 mm top margin, not a fixed count of seven
C12 and C13 come from one grid from the Level underside + 127 at 250 mm, up to top − 400 mm (상면 여유). The fixed count of
seven rows is kept only for callers that give no top. P1 is unchanged (C12 5, C13 2); a taper of 3000 mm now gives C12 11
and C13 2, and the C13 first row is always the last C12 row plus 250.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 12:31:58 +09:00
ypshimandClaude Haiku 5.5 7ff2f7b53f docs(rebar): note on the C12 row that the drawing's bottom 6th row is C7·C8 (no added bars)
The 250 grid runs from the Level underside + 127 for C12 and C13 together. The drawing's sixth C12 row at the bottom is the
bottom bar C7·C8 (코핑철근.md §6.1), so no bars are added and the counts stay the same.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 12:16:48 +09:00
ypshimandClaude Haiku 5.5 355bf4ea75 feat(rebar): C12 in the taper band (h2) and C13 in the end band (h1), from the coping geometry
The split between C12 and C13 follows the end underside, not a fixed level: C12 rows lie between the Level underside and
the end underside (taper height h2), C13 rows between the end underside and the top (end height h1). The break is the end
underside + 127 mm, the taper line's start at the end face. P1 is unchanged (C12 41.288–42.288, C13 42.538–42.788). Tests
check the band rule for h1 and h2 changes.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 12:03:24 +09:00
ypshimandClaude Haiku 5.5 0a5edfb152 feat(rebar,view): coping end height h1, taper h2 and Level width as inputs on ② (1단계)
The three values are inputs on the coping card, with the P1 values (1000 · 1500 · 2100) when absent, and they are tracked
like the other shape inputs. The geometry and the coping rebar read them from one CopingGeom: the U heights follow the
closed form (h1 − 2c) + h2·min(x_s, x_L0)/x_L0, which reproduces the P1 values. The side rows are assumed to keep their
position relative to the Level underside (명세 확인 필요). P1 results are unchanged; the full suite passes.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 11:44:44 +09:00
ypshimandClaude Haiku 5.5 e999b11a21 feat(rebar): piece lengths for C9–C13 and P1·P2 so the 재료표 has no missing bars
A row can now carry pieces (length, count). C9, C10, C11 and C9·C11 사이 have U and 삿갓 pieces per position (3 loops each);
C12 and C13 have 일자 and ㄷ pieces per bar; P1 and P2 have their splice pieces, each counting all the bars. The
재료표 totals from the pieces, so no bar is left out. 개수 stays the 철근표 count; the piece count is kept beside it. The
삿갓 length h − 100 is an assumption (Q-K5) and is noted on the ④ screen.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 10:27:17 +09:00
ypshimandClaude Haiku 5.5 b3533b69df feat(rebar): rebar strength per 규격 prefix as inputs on ③ (D SD300, H SD400, S SD500)
fyH and fyS become a grade per prefix (D · H · S), chosen from SD300 · SD400 · SD500. The defaults are the P1 values, so
the P1 results do not change. Each bar takes its grade from its 규격 (fyOf). The 철근표 has a 강도 column. Older files
that stored fyH / fyS are read into the grade map. Only fck is still an assumed value (I02). Approved 2026-10-23.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 09:51:36 +09:00
ypshimandClaude Haiku 5.5 7cf5835689 feat(rebar): per-member fck on ② for column, coping and footing
Each member can take its own fck on its ② card. A member without one uses the ③ 공통 fck, and fy stays common.
The rebar table and the 3D model both read the resolved value. The I02 note stays until every fck member has its
own value. The project file stores the values as optional fckByMember and refuses a bad value on open.
Changing the fck is not a shape change, so it is not counted in the pending changes.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 08:53:39 +09:00
ypshimandClaude Haiku 5.5 d8fd6adcf0 fix(rebar): pass the ③ material to C15/C16, coping bottom and column bars
The stair bars in the 철근표 and the 3D model, and the 3D bottom and column bars, were built with the default fck,
so a changed fck did not reach them. buildRebar3D now takes the material, and a material change rebuilds the scene.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 08:52:13 +09:00
ypshim b35f5ff0ed feat(rebar): add 3D coupler modeling for P1/P2 (368) and P4/P5 (35) with separate summary table rows 2026-10-22 18:00:28 +09:00
ypshim a2317caf6c feat(rebar): add downward 90° hooks (135 mm) to P6 crossties in 3D rebar model 2026-10-22 17:45:22 +09:00
ypshimandClaude Haiku 5.5 13318e9393 feat(core): rebar for 2·3주형 — shear bars per column, column bars per column (plan)
- Coping §9: C10 at each column centre (@300, k_max as for one column), C9 / C11
  outside, and the gaps between columns filled @250 from both C10 groups with the
  remaining length shared evenly (추천안, Q-K2). One column gives the T형 result.
- Column bars and couplers repeat per column (P1 230 × 2 for 2주형, × 3 for 3주형).
- Footings: each footing's bars are summed per name; the longest length governs.
- C14 is kept as the T형 layout with an RB-M01 note (per-column rule open, Q-K11).
- Tests: counts for 2주형 and 3주형; T형 unchanged; too-close columns refused.
- Not yet: the ③ shear-segment table for multi columns (still single column), the
  C14 per column, and a drawing for multi columns. Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 12:20:49 +09:00
ypshimandClaude Haiku 5.5 488b65af31 fix(view): alert [보기] highlights the bar it is about (시안 ③, spec §6.1)
[보기] only switched the member tab. The alert now names its bar (RB-F08 → B2),
and [보기] switches to the member, highlights that row, and scrolls to it.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 12:13:03 +09:00
ypshimandClaude Haiku 5.5 cdc0e5ac9c feat(view): ③ screen follows the 시안 — table columns, basis badges, alert buttons
- 철근표 columns as in the 시안: 구분 · 번호 · 규격 · 간격 · 실간격 · 위치 · 방향 ·
  형상 · 길이 · 개수 · 근거 · 비고. Metadata per bar from the rebar documents.
- 근거 badges: 입력 / 기본값 / 계산 / 가정 (the 가정 badge is italic amber).
- 번호 click highlights that row.
- 알림: [보기] opens the member tab; I02 [입력] focuses the fck input.
- Member tabs show the warning count.
- 공통 설정 moved to the right column (알림 → 검토 필요 → 공통 설정), as in the 시안.
- The 시안's "fck를 입력해야 생성" blocker is not used: the defaults are assumed
  values (I02), as decided on 2026-10-22.
- Not in this step: the drawings and the 정면·단면 연동 (시안 도면 뷰어).
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 12:08:21 +09:00
ypshimandClaude Haiku 5.5 9ba7b55eab feat(core,view): ③ 공통 설정 — fck and fy as inputs (spec §6.2)
- Material {fck, fyH, fyS}, defaults 27 / 400 / 500 as assumed values (I02).
  The rebar calculations take the material: the C7/C8 splice, the P2 development
  length, the P3 lap, and the B2 split use it instead of fixed numbers.
- ③ screen: 공통 설정 inputs with a note that the defaults are assumed (I02).
- Project file stores the material as an optional field; older files open with
  the defaults.
- Tests: fck 27 → 35 shortens the laps by √(27/35); the C7 piece follows fck;
  a non-default fy drops I02; the file round trip.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 12:06:11 +09:00
ypshimandClaude Haiku 5.5 02d740d8ca fix(view): left-align the rebar table text and clarify the C14 note
- The 번호·규격 and 비고 columns of the ③ table read left to right; the note
  wraps instead of stretching the table.
- C14 note: "위 2줄 11본씩, 아래 5 · 6 · 3 · 2 (합 38)".

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 11:48:18 +09:00
ypshimandClaude Haiku 5.5 1c6194cd48 feat(core): cap bars of C9–C11 and piece count (추천안 for Q-K5)
- Recommended l_cap = h − 100 (top cover), so l_cap stays below h (RB-K04).
  Cap length = 1740 + 2·l_cap. The shear rows show U and cap ranges.
- Piece count 6 per position (3 closed stirrups × U + cap): C9 + C10 + C11 gives
  270 pieces, as in the document.
- P1/P2 per-line pieces are shown from the document (기둥철근.md §3.2).
- Tests: cap length and the 270 check.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 11:38:28 +09:00
ypshimandClaude Haiku 5.5 5641bbe265 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>
2026-10-22 11:37:08 +09:00
ypshimandClaude Haiku 5.5 73bff19aba 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>
2026-10-22 11:34:56 +09:00
ypshimandClaude Haiku 5.5 3af8729e9f feat(core,view): footing rebar B1–B12 (plan C5) and the ③ rebar screen v1
- Footing (확대기초철근 (1).md): grid counts from W and L, layer heights,
  B1–B4 and B5–B8 counts and lengths (B2 13646, B6 11396), B10-1/B10-2,
  B11 (60) and B12 (47) with their lengths. B9 is not computed yet.
- rebarSummary: one 철근표 per pier from the model (bearing, coping, column,
  footing), with alerts: RB-F08 (B2 needs a splice, Q-B6), RB-F09 (B9 not
  computed).
- ③ screen v1: stage nav button, member tabs (받침블럭 · 코핑 · 기둥 · 확대기초),
  rebar table with 번호 · 규격 · 개수 · 길이 · 비고, alert list, and the open
  questions (Q-B5, Q-B6, Q-C9). Drawings and the 강조 연동 are not in v1.
- Tests: footing values from the document; P1 summary totals; warnings.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 11:33:47 +09:00