Commit Graph
113 Commits
Author SHA1 Message Date
ypshimandClaude Haiku 5.5 0e9d89951a feat(rebar): 확대기초 교각축 단면(길이 L) 탭 추가
- view/footing-section-l-svg.ts: 길이 방향 단면 (B1–B4 점, B5–B8 선, B9 세로선, B10-2 점·B10-1 선, B11 점, B12 선)
- 탭 전환: 교각축 직각 단면(폭 W) ↔ 교각축 단면(길이 L), 다리 배치 상세·B10 모서리는 다음 단계
- 테스트: 점·선 개수가 철근표 개수와 같음

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-27 13:56:05 +09:00
ypshimandClaude Haiku 5.5 d3c761dcd1 feat(rebar): 부재별 fck 초기값을 교각도 기준으로 설정 (기둥·코핑 40, 기초 27)
- 화면 초기 상태만 변경. 코어 기본값과 테스트는 그대로 (기존 프로젝트 파일의 값은 유지)
- 철근 강도 H = SD400(코핑), S = SD500(기둥·기초)은 기존 설정과 도면이 이미 일치

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-27 13:52:46 +09:00
ypshimandClaude Haiku 5.5 71fdb75c71 Reapply "feat(rebar): B1–B4와 B5–B8 방향 교환 (B1–B4는 W 방향, B5–B8은 L 방향)"
사용자 요청으로 방향 교환을 다시 적용 (99db6a1 되돌림). 격자 키 sL/sW, 3D·단면·철근표 역할과 테스트 기대값이 교환 기준으로 돌아감.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-27 09:51:04 +09:00
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 a026d52799 refactor(rebar): 확대기초 단면의 풍선 클릭 강조 기능 제거
- 풍선 클릭 리스너와 강조 함수 제거, 풍선은 라벨로만 표시
- 캡션에서 "풍선을 누르면" 문구 제거

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-27 09:44:08 +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 6c7a7ff781 feat(rebar): 확대기초 단면 삽도 2단계 (범례·선 스타일·치수선·다리 주석·기둥·말뚝·실제 비율·탭 4개)
- 선 스타일을 삽도에 맞춤: B5–B8 청록 실선, B1–B4 주황 점, B9 보라 세로선, B10 녹색 점, B11 회색 파선, B12 회색 점
- 범례 5항목 (선 모양별)
- 하단 치수선(피복 · 격자 e · n@s=G · e)과 우측 높이 치수선(상면 피복 · B10 단 · 하면 피복), 화살 끝 표시
- B6 다리 주석 "B6 다리 → B5 높이 (값)"
- 기둥 블록(상부)과 말뚝 머리(하부)를 맥락 그림으로 표시
- 높이 방향을 실제 비율로 그림 (축소 없음)
- 탭 4개 중 "교각축 직각 단면 (폭 W)"만 작동, 나머지는 다음 단계 자리로 비활성

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 18:02:51 +09:00
ypshimandClaude Haiku 5.5 c91fe74d9a feat(rebar): 확대기초 교각축 직각 단면(폭 W) 삽도 1단계
- view/footing-section-svg.ts: B5–B8 선, B1–B4 점, B9 행 선, B10-1 측면 점, B11 선, B12 점을 계산 함수 결과로 그림
- 치수: 폭 W, 격자(e · n@s=G · e), 피복, B10 단 수 @ s_v, 높이 방향 축소 표시
- 풍선(B1–B5, B11, B2–B4, B10-1)을 누르면 그 철근만 강조, 다시 누르면 해제
- 테스트: 점·선 개수가 철근표 개수와 같음 (B1·B2·B4, B9 행, B10-1, B11 단, B12)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 17:42:03 +09:00
ypshimandClaude Haiku 5.5 6957054f4c fix(rebar): 확대기초 n 라벨을 "B11·B12 연직간격 배수"로 변경 (FT02 메시지 포함)
- 변수 이름 n과 계산은 그대로 (조립 단 간격 = n·s_v)
- FT02 메시지도 같은 이름을 씀

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 17:39:23 +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 48e6811600 feat(rebar): 확대기초 패널 규칙 값 표시 (상면·2단, B2·B6 디리, B9, 조립 단 수) 및 "규칙" 표기
- footingRuleValues: 패널 표시값을 계산 함수에서 직접 읽음 (새 공식 없음)
- B2·B6 디리 두 값, 조립 단 수(3단) 표시
- "(고정)"은 Δ₂ 100에만 사용, 4s·2s·상면 2s는 "(규칙)"으로 표기
- 테스트: 기본값 P1에서 250 · 100 · 1723 · 500·250 · 500·3단 @400

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 17:23:57 +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 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 550b508e7a feat(rebar): 단면 삽도 순서 P3·P4·P5, 치수선·규격 표기·커플러 지시선
- 단면 순서와 문자를 삽도에 맞춤: A 일반(P3), B 확대기초 안(P4, 반원 2·커플러 2), C 단부(P5, 커플러 1)
- 각 단면에 지름 2000과 125 · 875 치수선 표시 (D, c, r1에서 계산)
- 규격과 간격 표기: P1·P2 S32 Div.46, P3·P4·P5 H19 @ 입력값
- 커플러는 띠철근 위 점에서 지시선을 따라 원 밖의 작은 원으로 표시
- P4 형상과 기본 간격은 문서 값 유지 (입력으로 삽도 값 @100 입력 가능)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:54:27 +09:00
ypshimandClaude Haiku 5.5 caadc2fe77 fix(rebar): 단면 A·B·C를 한 행에 배치
- 기둥 패널의 단면 세 그림을 flex 한 행(nowrap)으로 두고, 좁은 화면에서는 가로 스크롤

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:44:05 +09:00
ypshimandClaude Haiku 5.5 baaec9d7e2 feat(rebar): 기둥 단면 A·B·C (각 그룹 첫 단, 커플러 θ+Δθ/2, P6 현 4본)
- view/column-section-svg.ts: A 일반(P3, 커플러 없음), B 단부(P5, 커플러 1), C 확대기초 안(P4, 반원 2·커플러 2)
- P1·P2는 같은 각도에 r 875·843.2로 배치, 띠철근 둘레·겹침·반원 길이 표시
- P6은 P6 단이 그 높이에 있을 때만 중심을 지나는 현 4본 (0 · 46.96 · 90 · 133.04°)
- 기둥 패널에서 정면 ↔ 단면 A·B·C 전환 (단면 높이는 각 그룹의 첫 단, 새 계산 없음)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:42:50 +09:00
ypshimandClaude Haiku 5.5 c82aff3713 feat(rebar): 기둥 정면 삽도 (P 번호, 단부 배치구간·기초 안 깊이 계산값 표시)
- view/column-elevation-svg.ts: 기둥 정면 SVG. 띠철근 P3·P5·P4·P6, 주철근 P1·P2, 커플러를 계산 결과 그대로 그림
- 번호는 P1–P6 (승인), 간섭(B11–P4)은 표시하지 않음 (검토 제외)
- 단부 배치구간 l_e = max(l_e,min, n·s + s/2)와 기초 안 깊이(0.5·H_f → m4·s)는 기존 계산값을 그림과 캡션에 표시
- 기둥 입력 라벨 K → P 번호

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 16:37:36 +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 d2c5f90092 fix(rebar): 상면 단 가로 간격을 d(H29, 28.6 mm)로 수정
- 단마다 양끝이 안으로 들어가는 양을 2d에서 d로 변경
- 상면 단 길이 12744 / 12686.8 / 12629.6 (기존 12744 / 12629.6 / 12515.2)
- 3D 상면 주철근의 굽힘 시작점도 같은 값을 쓴다

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 15:45:51 +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 9c93a6aa01 feat(rebar): 코핑 배근 입력 12개 · CP01·CP02 검사 · 적용 버튼
- core/rebar/coping-settings.ts: 입력 정의, 기본값(코핑철근.md), 범위(코핑_입력범위_제안.md), 검사 함수
- 다리 수는 4·6·8 목록으로 두고 홀수는 CP02로 막음
- 값은 적용 버튼을 누를 때만 draft에 쓰고 다시 생성 (범위 밖이면 반영하지 않음)
- PierInput.copingRebar, 모델 copingRebar, 변경 추적 키 추가

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 15:26:20 +09:00
ypshimandClaude Haiku 5.5 ec402e22d7 feat(rebar): 단면·폐합 at two fixed stations side by side (단부 0.3 m, first column centre)
- The station input is removed. The section shows the 단부 (first shear
  station, from the 3D bar records) and the first column centre, side by side.
- The 상면 간격 label is removed.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 15:15:47 +09:00
ypshimandClaude Haiku 5.5 d5bf02e36b feat(rebar): 단면·폐합 section with the top-row and side-row chains and bar-group bubbles
- Top row (C1–C8) spacing along the 교축 from chainDims, between the coping's
  two long edges (±B/2).
- Side rows (C12·C13) along the EL, from the coping top EL down to the lowest
  side bar.
- One bubble per bar group cut at the station, with a leader to its bars.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 15:05:37 +09:00
ypshimandClaude Haiku 5.5 a18a15db7b feat(rebar): 정면 dimension chains computed from the 3D bar positions (기둥 중심 = 0)
- chainDims groups the repeated gaps (n@pitch = total) and writes a single gap as its length.
- Top chain: the 전단·띠 stations (C9 @250, C10 @300) from the coping ends.
- Lower chain: the upper C14 bars measured from the column centre (0), so
  the 10@1000 span starts at the column centre.
- Stations are the lowest s of their pieces; pieces within 160 mm are one station.
- P1 gives the 시안 values: 300 · 18@250=4500 · 8@300=2400 · 18@250=4500 · 300 and
  900 · 10@1000=10000 · 900.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 14:54:45 +09:00
ypshimandClaude Haiku 5.5 57f7c148ec feat(rebar): coping front view and 단면·폐합 section from the 3D bar records (승인 2026-10-26)
- rebar3d records every bar (name, stretch, local points, diameter) next to its
  mesh, so the 2D drawings use the same data as the 3D view.
- view/coping-rebar-svg.ts: the 정면 (along the coping length, EL vertical) and
  the 단면·폐합 at a chosen station (the bars crossing it, C9–C11 loops included).
- ③ coping tab: 정면 / 단면·폐합 toggle and the station input.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 14:27:03 +09:00
ypshimandClaude Haiku 5.5 dd590b899c feat(rebar): plan view of the block rebar with the 단면/평면 switch (승인 2026-10-26)
- view/block-rebar-plan-svg.ts: the selected pair from above — S2 lines along the
  교각축 (spaced at S2 across the 교축), S1 lines along the 교축 (spaced at S1),
  each end a dot (leg); the bar sets carry the row numbers only (S1, S2).
- The ③ card switches between the C–C section and the plan.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 14:18:37 +09:00
ypshimandClaude Haiku 5.5 521979b437 fix(rebar): cut the C–C section through the selected pair only
- The section was drawing every bearing on the same 교축 line, so the blocks and
  dimension text stacked on top of each other. It now cuts through the selected
  pair (①·⑥ …), which the ③ card also shows as chips, shared with ②.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 14:14:31 +09:00
ypshimandClaude Haiku 5.5 38bb26eda5 feat(rebar): block rebar settings card and C–C section on the ③ bearing tab
- Six inputs with their ranges and P1 defaults; a change regenerates the pier.
- The 적용 블럭 line shows the blocks (분리 n개 or 일체 n쌍, 전체).
- view/block-rebar-svg.ts: the section C–C along the 교축 with the S2 dots, the
  S1 lines and legs, and the dimensions (block widths, the S2 layout).
- 받침블럭 철근 설정 is tracked for changes (defaults vs the current draft).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 14:12:36 +09:00
ypshimandClaude Haiku 5.5 2f67efd449 fix(bearing): C4 and C5 are the 교각축 distances from the bearing to the block edges (승인 2026-10-26)
- bearingEdgeDistances measures along the 교각축: 분리 600 / 600; 일체 from the
  pair block centred on the mean 교각축 position (P1 outer margins 557).
- Table headings updated; C1 · C2 · C3 on the plan are measured on the 교축 from the drawn positions.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 13:17:50 +09:00
ypshimandClaude Haiku 5.5 0b847e7547 feat(bearing): section and solplate detail drawings with the drawing values overlaid (승인 2026-10-26)
- view/bearing-section-svg.ts: the pair's elevation — blocks (일체: one stepped
  outline), mortar, bearing body and solplate per bearing from the model; the
  drawing heights overlaid dashed. EL.X at the mortar top, E = h1 + h2 + h3 + h4.
- view/solplate-svg.ts: per bearing, the plan L × W and the taper T1 · T2
  (S %), with the drawing values dashed.
- ② bearing card: section figure and the two solplate figures under the plan.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 12:33:05 +09:00
ypshimandClaude Haiku 5.5 0708aa1354 fix(bearing): show only the outer block margins as C4 and C5
- A 일체 pair's inner sides face the other bearing, so they are not C4 or C5:
  they are null and shown as "—" in the 배치 규칙 table.
- The table headings now describe the 교축 margins (bearing to the outer block edge).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 12:30:21 +09:00
ypshimandClaude Haiku 5.5 b3a62850ab feat(bearing): plan of a pair with block outline and overlaid drawing values (승인 2026-10-26)
- C4·C5 measured across the coping width (교각축 직각): the two coping edges
  at ±B/2 to the bearing centre. The former along-the-axis definition is replaced.
- view/bearing-plan-svg.ts: the plan of one pair with the model's solplates
  and the block outline(s) (일체: one 2500 × 1200; 분리: two 1200 × 1200), and
  the drawing A/B overlaid as dashed outlines.
- ② bearing card: 상세 보기 pair chips (①·⑥ …) and the overlay toggle.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 12:19:14 +09:00
ypshimandClaude Haiku 5.5 2af5cfb144 feat(bearing): 일체 choice gated by the pair eccentricity rule (승인 2026-10-26)
- PierInput.bearingLayout: 분리 (default) or 일체, tracked for changes.
- 일체 is selectable only when there is at least one pair and every pair is
  within 100 mm; otherwise the chip is disabled with the reason.
- Validation: B01 (info) when 일체 is chosen and allowed, the block shape is
  still the 분리 shape; B02 (warning) when it is not allowed and the model
  falls back to 분리.
- The 일체 block shape (2500 × 1200) is not modelled yet.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 11:56:26 +09:00
ypshimandClaude Haiku 5.5 cd18665d6a feat(bearing): model C4/C5 and the front–back pair eccentricity (승인 2026-10-26)
- C4/C5 = distance from the coping edge to the bearing centre along the
  coping length, from the model; the drawing value is for comparison only.
- A pair is a front and back bearing of the same order within their row. A
  pair with an eccentricity above 100 mm forbids 일체 (분리 first).
- ② bearing card: read-only table of C4/C5 and the pair eccentricities.
- The 일체 block model is not built yet.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 11:49:27 +09:00
ypshimandClaude Haiku 5.5 d77f2bfd17 feat(bearing): 받침 종류·용량 as a text input (default 탄성받침)
- PierInput.bearingType: text, absent = 탄성받침. Tracked for changes, so it
  can be reverted. Saved in the project; no rule yet, so it does not change the model.
- Shown on the ② bearing card above the 공통 규칙.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 11:39:28 +09:00
ypshimandClaude Haiku 5.5 b6e7f36091 feat(ground): 해상 selectable with MSL levels, 고조위·저조위, and checks
- Rules confirmed (승인 2026-10-26): datum MSL; 고조위 HWL and 저조위 LWL as
  two levels; 세굴 깊이 as for 하상; 파랑과 선박 하중 excluded from this scope.
- Checks: G13 levels missing, G10 해저면 not below 고조위, G11 저조위 not
  below 고조위, G14 pile wall at or below the corrosion allowance reference.
- CORROSION_ALLOWANCE_MM = 1 is a PLACEHOLDER reference (not in the RAG
  documents); the card and G14 mark it as to be confirmed.
- Card: the 해상 inputs; the section draws 고조위 (solid), 저조위 (dashed),
  and labels the ground line 해저면 EL.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 11:11:31 +09:00
ypshimandClaude Haiku 5.5 26a5aff517 feat(ground): 하상 selectable; 설계홍수위 and 세굴 깊이 for 하상
- shape-options: a per-option "confirmed" flag; 하상 is confirmed, 해상 is not.
- The 위치 chips store the choice in the pier's draft; 선택 shows it.
- 하상: the groundwater inputs give way to 설계홍수위 DHWL (floodLevelEl) and
  세굴 깊이 (scourDepthM). The groundwater value is kept (남겨두기).
- Checks: G07 DHWL missing, G08 DHWL below the 지반고, G09 scour negative or
  the scour line below the footing bottom. The groundwater check is skipped for 하상.
- Section: the DHWL as a solid line and the 세굴선 dashed.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 11:06:10 +09:00
ypshimandClaude Haiku 5.5 7b5517e312 feat(ground): N value per layer row (text, blow count or 타수/관입량 mm)
- StrataRow.nValue: text. "23" is a blow count (0–100), "50/5" a refusal
  (50 blows for 5 mm, 1–300 mm). Empty means not known yet.
- G06 (warning): a malformed N value. Strict, because the values will feed the
  bearing-capacity and liquefaction checks.
- The layer table has an N값 column; the project file checks that the rows
  are well formed.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 10:48:37 +09:00
ypshimandClaude Haiku 5.5 7dd59dfc6c fix(ground): one 위치 control on the card and clearer layer labels
- The 위치 buttons duplicated the 형상 옵션 chips above the card. The chips
  stay the one place for 위치 (only the default is selectable until Q6).
- The water-level row lays out as a flex row, so its label and input do not
  overlap.
- The 연암 상면 caption sits just under the line instead of over the band label.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 10:41:21 +09:00
ypshimandClaude Haiku 5.5 325c841733 feat(ground): pile-tip embedment check and soil layers from the ground model
- ground.ts: G04 when a pile tip is above the 연암 상면 minus 1.0 × D; G05
  (info) when layers are entered but there is no 연암 row. No message while
  no layers are entered at all.
- ground-model.ts: reads the Python soil.layers as strata rows; the project
  file keeps and checks them.
- ② card: a button fills the layer rows from the ground model for the pier.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 10:35:41 +09:00
ypshimandClaude Haiku 5.5 16ab317094 feat(ground): 지반·지층 card inputs, layer rows, water level, section drawing
- types/ground.ts: 위치 (육상·하상·해상), 지하수위 고려 and EL, 지층 행
  (name and 하단 EL, from the top down). Checks G01 (layer order), G02 (water
  level range), G03 (layer name).
- The 지반고 still feeds the soil cover check; the layer rows and water level
  are inputs and do not change the 3D model.
- view/ground-svg.ts: the 삽도 drawn from the inputs and the generated
  footings and piles on one EL scale.
- 일괄 적용 copies 위치 and 지하수위 to the checked piers (속성 복사 item,
  off by default). Changes list shows arrays and booleans as text.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-26 10:11:42 +09:00
ypshimandClaude Haiku 5.5 bfd41d7c8d feat(ground): draw the terrain grid around the piers in the 3D view
- ground-model.ts: read schema 2 terrain_grid (origin, step, nx, ny, z),
  checked the same way as the stored project form; schema 1 is still read.
- view/terrain.ts: the grid as a mesh in pier-scene coordinates
  (x = E − pivot E, z = −(N − pivot N), y = EL), same as the pier frame.
  Cells with a missing corner are not drawn.
- scene.ts: draws the terrain in place of the 60 m plane when the model has a
  grid; the camera fits the members, not the terrain.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 17:57:30 +09:00
ypshimandClaude Haiku 5.5 c3606011b5 feat(ground): load ground_model.json and apply the pier-centre ground EL
- ground-model.ts: read and check schema 1 of the Python ground model.
- ② 지반·지층 card: import the json, show the DTM value beside the excel
  value, and apply it only when the user presses the button (tracked as an
  override, revertible).
- groundEl becomes an editable, tracked input; the project file keeps the
  imported model and checks it on open.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 16:48:27 +09:00
ypshim 304b350481 Revert "fix(rebar): warn when the pile spacing along a 열 is above the 2250 mm maximum"
This reverts commit d61e5d082f.
2026-10-23 16:20:44 +09:00
ypshimandClaude Haiku 5.5 d61e5d082f fix(rebar): warn when the pile spacing along a 열 is above the 2250 mm maximum
The card only checked the minimum spacing. A 12000 mm footing with 5 piles per 열 gives 2650 mm, above the maximum. The card
now marks such a row ("최대 2250 mm를 넘습니다. 본수를 늘리세요") and the alert list gets a warning (P02). Tests check 5 and 6
piles on a 12000 mm footing.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 16:20:37 +09:00
ypshimandClaude Haiku 5.5 a2e4648f7b feat(view): side view (정면) to the right of the footing plan on one scale; 본수 card, plan and side in one row
Plan and side use the same scale (22 px per m) and share their horizontal extent, so the footing lines up. The side view breaks
the column (3 m above the footing) and the piles (4 m below it) so its height stays near the plan's. The row is three columns
from 1100 px, the side view drops to its own row between 800 and 1100 px, and it stacks below 800 px.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 16:10:14 +09:00
ypshimandClaude Haiku 5.5 4477bbe52c feat(view): the 열별 본수 card sits beside the footing plan on ② (grid, stacks on narrow screens)
The pile-count card (−/+ and the 20본 total) is on the left and the plan on the right, in one row; the side view is below.
Changing a count is now seen on the plan next to it. The layout stacks below 800 px.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 16:07:52 +09:00
ypshimandClaude Haiku 5.5 675f8124ca feat(view): 확대기초·말뚝 plan and side drawings on ② (2단계), drawn from the model
The footing card shows a plan (footing rectangle, pile circles, column, pier axis, mm labels) and an elevation (footing,
piles to their tips, column, h1 and pile length). The drawings are SVG strings built from the model, so they follow the
inputs. θ is noted as not yet applied. Tests check the pile count, the mm labels and the width input.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 16:02:37 +09:00
ypshimandClaude Haiku 5.5 df19cc47e9 feat(view): 확대기초·말뚝 inputs on ② (입력만): footing L, W, h1, blinding margin and thickness, steel and PHC pile lists
The footing card takes L, W, h1 (default 2000), the blinding margin on each side (100) and thickness (100). The pile is picked
from the 강관 or PHC list by outer diameter and wall; the inner diameter, area and weight are read from the list. Defaults are
the 1단계 constants, so P1 is unchanged. The model reads them (footing width, height, blinding, pile diameter; the footing
length for grouping). 복합 말뚝 and the rule-pending items stay disabled; the footing rebar is not yet tied to these
inputs (1·2단계 후).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-23 16:01:02 +09:00