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>
This commit is contained in:
1 parent
2acb427bab
commit
d2c5f90092
5 files changed
+8
-8
No files matched your search
@@ -11,8 +11,8 @@ export const MAIN = {
|
||||
/** 기본 간격 s_m and minimum end gap g_min. */
|
||||
spacing: 125,
|
||||
endGapMin: 80,
|
||||
/** 상면 단 가로 간격 = 2d (H29, mm). Fixed; the vertical step is the 상면 주철근 단 간격 input. */
|
||||
layHorizontal: 2 * NOMINAL_DIAMETER.H29,
|
||||
/** 상면 단 가로 간격 = d (H29, mm). Fixed; the vertical step is the 상면 주철근 단 간격 input. */
|
||||
layHorizontal: NOMINAL_DIAMETER.H29,
|
||||
/** 90° 갈고리 l_h (mm, as in the document). */
|
||||
hook: 472,
|
||||
/** 하면 경사 구간 수평 길이 (mm, each side) and Level width. */
|
||||
|
||||
@@ -9,7 +9,7 @@ export interface CopingRebarSettings {
|
||||
mainSpacing: number;
|
||||
/** 주철근 끝단 최소 여유 (mm). */
|
||||
mainEndGap: number;
|
||||
/** 상면 주철근 단 간격 · 세로 (mm). The horizontal step is fixed at 2d (H29, 57.2 mm). */
|
||||
/** 상면 주철근 단 간격 · 세로 (mm). The horizontal step is fixed at d (H29, 28.6 mm). */
|
||||
mainLayerGap: number;
|
||||
/** 첫 전단철근 최소 여유 (피복 다음, mm). */
|
||||
firstShearGap: number;
|
||||
|
||||
+1
-1
@@ -1079,7 +1079,7 @@ const COPING_REBAR_FIELDS: { key: keyof CopingRebarSettings; label: string }[] =
|
||||
{ key: 'cover', label: '피복 (철근 중심, mm)' },
|
||||
{ key: 'mainSpacing', label: '주철근 기본간격 (mm)' },
|
||||
{ key: 'mainEndGap', label: '주철근 끝단 최소 여유 (mm)' },
|
||||
{ key: 'mainLayerGap', label: '상면 주철근 단 간격 · 세로 (mm, 가로는 2d 고정)' },
|
||||
{ key: 'mainLayerGap', label: '상면 주철근 단 간격 · 세로 (mm, 가로는 d 고정)' },
|
||||
{ key: 'firstShearGap', label: '첫 전단철근 최소 여유 (피복 다음, mm)' },
|
||||
{ key: 'shearLegs', label: '전단철근 다리 수' },
|
||||
{ key: 'spacingS', label: '전단철근 간격 · 경사 (mm)' },
|
||||
|
||||
+1
-1
@@ -146,7 +146,7 @@ export function buildRebar3D(m: PierModel, common: Material = DEFAULT_MATERIAL,
|
||||
const cover = 0.1;
|
||||
// Top rows C1–C6 (코핑철근.md §5.1, §5.3): counted from the left, the even (1-based) positions are cycle 1 (C1–C3),
|
||||
// the odd cycle 2 (C4–C6). In 0-based j that is odd j → cycle 1. Each row turns down 472 at both ends, and the
|
||||
// k-th row's ends sit (k − 1)·57.2 further in.
|
||||
// k-th row's ends sit (k − 1)·d (H29, 28.6) further in.
|
||||
const topEl = m.copingRefTop;
|
||||
const hookTop = MAIN.hook / 1000;
|
||||
for (let k = 1; k <= 3; k++) {
|
||||
|
||||
@@ -25,10 +25,10 @@ describe('C1–C8 상·하면 주철근 (코핑철근.md §5, plan C3)', () => {
|
||||
expect(topRowEl(43.284, 3)).toBe(43.084);
|
||||
});
|
||||
|
||||
it('top bar lengths 12744 / 12629.6 / 12515.2 (path + 2 × 472 hook)', () => {
|
||||
it('top bar lengths 12744 / 12686.8 / 12629.6 (path + 2 × 472 hook, 가로 단 간격 d = 28.6)', () => {
|
||||
expect(topBarLength(12000, 1)).toBeCloseTo(12744, 0);
|
||||
expect(topBarLength(12000, 2)).toBeCloseTo(12629.6, 0);
|
||||
expect(topBarLength(12000, 3)).toBeCloseTo(12515.2, 0);
|
||||
expect(topBarLength(12000, 2)).toBeCloseTo(12686.8, 1);
|
||||
expect(topBarLength(12000, 3)).toBeCloseTo(12629.6, 1);
|
||||
});
|
||||
|
||||
it('bottom piece ≈ 7448 with l_s = 1717.6 (1.3 × l_d of H29 at fck 27) — the document shows 1717', () => {
|
||||
|
||||
Reference in new issue
Block a user