이 교환은 9,350 방향이 L이라는 가정에서 적용됐으나, 단면 삽도(B5–B8 선, 교각축 직각 단면)와 재료표가 원래 배치(B1–B4 L 방향, B5–B8 W 방향)와 맞는 것으로 확인되어 되돌림.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- 재료표(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>
- B10-2 최하단(z = c_b)도 하면 1단 B2·B4와 같은 높이에서 간섭하므로 삭제 (승인 2026-10-26)
- B10-2: 18 → 16본 (8단 × 2면). 표와 3D가 같은 규칙
- 단면 그림의 측면 B2 다리선을 굵은 주황 실선으로 그려 모서리 연결을 드러냄
- 테스트 기대값 갱신 (B10-2 16)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- assemblyEvenStart: 짝수 시작칸 중 양끝 여유 차이가 가장 작은 값 선택
- B12(W 방향, n 61)는 시작칸이 1(홀수)이던 것을 2(짝수)로 바꿔 B9 행선과 겹치지 않게 함
- 개수(B11 30, B12 24)와 가운데 정렬(차이 ≤ 1칸)은 그대로, 엇갈림 2칸 유지
- 테스트: 조립 철근 인덱스가 모두 짝수
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- 간격 = 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>
- 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>
- 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>
- 기본 '이음 무시' (사양 결정). '반영'이면 정척(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>
- 단마다 양끝이 안으로 들어가는 양을 2d에서 d로 변경
- 상면 단 길이 12744 / 12686.8 / 12629.6 (기존 12744 / 12629.6 / 12515.2)
- 3D 상면 주철근의 굽힘 시작점도 같은 값을 쓴다
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- 세로 단 간격은 입력(기본 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>
- 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>
- RB01 a setting outside its range (cover 50–100, side cover 50–100, first gap
0–150, spacing S1/S2 100–200, leg 500–1000); RB02 S1 depth at or above the
block height; RB03 the legs do not reach into the coping.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- 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>
- integrated-block.ts: per pair (전열 k · 후열 k) one block centred on the
pair midpoint, 2500 across the 교축 and 1200 along the 교각축, with a
stepped top (each half to its own bearing row top). Only when 일체 is chosen
and every pair is within 100 mm; otherwise 분리 is kept (B02).
- Rebar: S2 19 bars at 125 across the 2500 (10 front half, 9 back half), each
leg from its half's top; S1 8 bars across the 1200, 3800 long, depth from
the lower top. Totals per pier: S1 40, S2 95 (분리: 80 / 80).
- Scene and 3D rebar draw the stepped blocks instead of the per-bearing blocks.
- The per-bearing blocks stay for the solplate, the pads, and the body.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Single-piece lengths such as the B9 and C7 pieces showed long unrounded decimals (2128.1174619702915). They are rounded to
0.1 mm for display and in the Excel rows; the totals are unchanged.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
D is an input on the column card (default 2000 mm). The 3D column, the piles of a cast-in pier and the column rebar follow it;
n_div stays 46. Three checks run on each regenerate and appear in 알림: D below the Level width (2100), D + 2c within the
coping width, and the 주철근 arc spacing ≥ max(1.5·d_b, 40). Spec §5.2 records the rule (approved 2026-10-23).
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
The coping middle level is (Level underside + step top)/2. P3's top and P6's upper limit are this level, and e_top is the
step top minus it (P1: 1322, replacing the 1623 reverse-engineered value). On P1 P3 goes from 38 to 39 ties and P6 stays at
8 levels. With taper h2 = 3000 the middle level is 13275: P3 37 ties, P6 8 levels (32 bars), e_top 2072.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
e_P1 is no longer an input: P1 top = C3 (lowest coping top − 127 − 2·57.2 = 43.170) − 100 = 43.070, so e_P1 = step top −
43.070 = 485 mm. The P1 top moves from 15147 to 14862 mm; the top piece shortens by 285 mm. Couplers are placed at k·3000
with at least 2500 mm below the P1 top (a value to confirm). On P1 the coupler count stays at four (3, 6, 9, 12 m). P2 and
the tie top do not change.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
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>
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>
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>
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>
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>
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>
The quantity table sits below the 철근표 for the whole pier. Lines group by grade and nominal diameter, with
subtotals, unit weight 0.00617·d² (kg/m), the total in kg and ton, and a 할증 total. 할증 is an input in 공통 설정,
default 0 as an assumption. Couplers are counted, not weighed. Bars with no length yet (C9, C10, C11, C12, P1, P2) are
listed as missing and kept out of the totals. The table exports to Excel with SheetJS.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Bars drawn through several points are one tube each, with every bend rounded by R·tan(φ/2) at the centre-line radius
(inner factor × d + d/2). The inside-radius factors (D16 and below, D19–D25, D29–D35, D38 and above) are inputs in 공통
설정, with KDS-based defaults 2 / 3 / 4 / 5. The size-class limits sit in one place (SIZE_CLASS), which also fixes
D25 (25.4) being read as the D29–D35 class in hookLength. The helper bendDeduction gives the centre-line deduction for
the length option, which is not yet applied to the 철근표 lengths.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
The three 폐합 of one position were drawn at the same x, so their U bars overlapped. Loop i now sits at x + i·2d and its
삿갓 one bar (d) beside its U, so no U meets another loop's U or 삿갓. The 철근표 counts and lengths are unchanged.
The rule is geometry only; the spec (§4.3) needs the stacking note.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
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>
Role colours stay the default (spec §6.7). A control on ③ switches to diameter (nominal size, H and S of one size
share a colour, Okabe–Ito palette) or member (받침블럭 · 코핑 · 기둥 · 확대기초). The legend lists only the items
the model has. Highlighting and the state colours are unchanged. Approved 2026-10-23.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
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>
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>
The segment table lists each column's Level and the segments between columns
(추천안, Q-K2), so a 2주형 shows 좌 경사 3, Level 1 9, Level 2 9, 기둥 사이 1 18,
우 경사 3. One column is unchanged.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- 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>
- Segments of C9 (좌 경사), C10 (Level), C11 (우 경사): first and last bar in
metres, spacing, count, and bar number. From the bar positions (코핑철근.md §3).
- Test: 0.300–4.550 (18 @250), 4.800–7.200 (9 @300), 7.450–11.700 (18 @250).
- Not verified in a browser.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
[보기] 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>
- 철근표 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>
- 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>
- A P4 is deleted when |z_P4 − z_bar| < (d_P4 + d_bar)/2 against B5 and B1
(the 확대기초 top layer, from the 상면). B11/B12 are not checked (Q-C9 무시).
- The P6 crossties start from the first kept P4.
- Tests: the document's example keeps all 8; B5 moved to −70 deletes the P4 at
−60; a P4 just outside the limit is kept.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>