From 64795e0a19f7bfa525da253ba5a7c715be9b786a Mon Sep 17 00:00:00 2001 From: ypshim Date: Fri, 23 Oct 2026 14:10:23 +0900 Subject: [PATCH] =?UTF-8?q?fix(view):=20solplate=20reference=20shows=20cen?= =?UTF-8?q?tre=20T=20=3D=2030=20with=20the=20(=E2=88=92)=20and=20(+)=20sid?= =?UTF-8?q?e=20thicknesses=20(taper=20along=20the=20axis)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The solplate tapers along the bridge axis. T is the centre thickness (30), T1 the thickness on the 교각축 직각 (−) side (38) and T2 on the (+) side (22); T1 + T2 = 2T. The table's T column had shown the (−) side value, so T is now 30 on every row. A test checks T1 + T2 = 2T. Co-Authored-By: Claude Haiku 5.5 --- src/core/bearing-ref.ts | 26 ++++++++++++++------------ src/main.ts | 2 +- tests/bearing-ref.test.ts | 8 ++++++++ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/core/bearing-ref.ts b/src/core/bearing-ref.ts index ad4ed44..1b70e5e 100644 --- a/src/core/bearing-ref.ts +++ b/src/core/bearing-ref.ts @@ -34,9 +34,11 @@ export interface SolplateRefRow { s: number; L: number; W: number; - /** 솔플레이트 T (mm). */ + /** 중심 두께 T (mm). The solplate tapers along the bridge axis. */ T: number; + /** 두께 at the 교각축 직각 (−) side (mm). */ T1: number; + /** 두께 at the 교각축 직각 (+) side (mm). */ T2: number; } @@ -57,19 +59,19 @@ export const BEARING_ELEVATION_REF: BearingRefRow[] = [ ]; export const SOLPLATE_REF: SolplateRefRow[] = [ - { no: 1, s: -1.910, L: 800, W: 740, T: 38, T1: 38, T2: 22 }, - { no: 2, s: -1.907, L: 800, W: 740, T: 38, T1: 38, T2: 22 }, - { no: 3, s: -1.905, L: 800, W: 890, T: 38, T1: 38, T2: 22 }, - { no: 4, s: -1.903, L: 800, W: 740, T: 38, T1: 38, T2: 22 }, - { no: 5, s: -1.901, L: 800, W: 740, T: 38, T1: 38, T2: 22 }, - { no: 6, s: -1.910, L: 800, W: 640, T: 38, T1: 38, T2: 22 }, - { no: 7, s: -1.907, L: 800, W: 640, T: 38, T1: 38, T2: 22 }, - { no: 8, s: -1.905, L: 800, W: 750, T: 38, T1: 38, T2: 22 }, - { no: 9, s: -1.903, L: 800, W: 640, T: 38, T1: 38, T2: 22 }, - { no: 10, s: -1.901, L: 800, W: 640, T: 38, T1: 38, T2: 22 }, + { no: 1, s: -1.910, L: 800, W: 740, T: 30, T1: 38, T2: 22 }, + { no: 2, s: -1.907, L: 800, W: 740, T: 30, T1: 38, T2: 22 }, + { no: 3, s: -1.905, L: 800, W: 890, T: 30, T1: 38, T2: 22 }, + { no: 4, s: -1.903, L: 800, W: 740, T: 30, T1: 38, T2: 22 }, + { no: 5, s: -1.901, L: 800, W: 740, T: 30, T1: 38, T2: 22 }, + { no: 6, s: -1.910, L: 800, W: 640, T: 30, T1: 38, T2: 22 }, + { no: 7, s: -1.907, L: 800, W: 640, T: 30, T1: 38, T2: 22 }, + { no: 8, s: -1.905, L: 800, W: 750, T: 30, T1: 38, T2: 22 }, + { no: 9, s: -1.903, L: 800, W: 640, T: 30, T1: 38, T2: 22 }, + { no: 10, s: -1.901, L: 800, W: 640, T: 30, T1: 38, T2: 22 }, ]; -/** 솔플레이트 T of the 공통 규칙 (30 mm). T1 and T2 are computed from this value, not from the table's T column. */ +/** 중심 두께 T of the 공통 규칙 (30 mm). T1 = T + L·|S|/2 (−측), T2 = T − L·|S|/2 (+측), so T1 + T2 = 2T. */ export const SOLPLATE_T_RULE = 30; /** T1 / T2 by the drawing's rule: T ± L·|S|/2, rounded to mm (S in %). */ diff --git a/src/main.ts b/src/main.ts index 030b20d..427d232 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1280,7 +1280,7 @@ function renderBearingRef(box: HTMLDivElement, pier: Pier): void { const st = el('table', undefined, 'grid-table rebar-table'); const sh = el('thead'); const shr = el('tr'); - for (const h of ['No', 'S (%)', 'L', 'W', 'T', 'T1', 'T2', '식 검산']) shr.appendChild(el('th', h)); + for (const h of ['No', 'S (%)', 'L', 'W', 'T (중심)', 'T1 (−측)', 'T2 (+측)', '식 검산']) shr.appendChild(el('th', h)); sh.appendChild(shr); st.appendChild(sh); const sb = el('tbody'); diff --git a/tests/bearing-ref.test.ts b/tests/bearing-ref.test.ts index 841fcf0..58fe925 100644 --- a/tests/bearing-ref.test.ts +++ b/tests/bearing-ref.test.ts @@ -23,6 +23,14 @@ describe('교량받침 reference (도면값, 읽기 전용, 1단계)', () => { } }); + it('the solplate tapers along the axis: T1 (−측) + T2 (+측) = 2·T, with T = 30 at the centre', () => { + for (const r of SOLPLATE_REF) { + expect(r.T, `No ${r.no}`).toBe(SOLPLATE_T_RULE); + expect(r.T1 + r.T2, `No ${r.no}`).toBe(2 * r.T); + expect(r.T1, `No ${r.no}`).toBeGreaterThan(r.T2); + } + }); + it('the drawing EL.X − E sits a constant 0.211 m below the model coping top on all ten bearings (Q16 diagnostic)', () => { const m = buildPier(loadP1()); const back = m.blocks.filter((b) => b.row === '후열');