fix(view): EL.X = block top including the 50 mm mortar; coping top = EL.X − h1 − h2 (matches the model)
With this definition the drawing's coping top matches the model's coping top to within 1 mm on all ten bearings. The earlier 0.211 m offset came from reading EL.X as the solplate top, which was wrong. The reference table now uses EL.X − h1 − h2, and the check tests the match. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
553c696638
commit
802a1eab97
2 files changed
+7
-6
No files matched your search
+4
-3
@@ -1302,18 +1302,19 @@ function renderBearingRef(box: HTMLDivElement, pier: Pier): void {
|
||||
ct.appendChild(cb);
|
||||
wrap.appendChild(el('div', undefined, 'table-scroll')).appendChild(ct);
|
||||
wrap.appendChild(el('p', '교량받침 ELEVATION TABLE (도면값 · 읽기 전용, mm · EL m)', 'lbl'));
|
||||
wrap.appendChild(el('p', '도면값은 모델에 쓰지 않습니다(Q16). 아래 "차이"는 도면과 모델의 코핑 상면 차이입니다.', 'muted small'));
|
||||
wrap.appendChild(el('p', 'EL.X = 몰탈 50 mm를 포함한 받침블럭 상면. 도면값은 모델에 쓰지 않으며, 차이는 도면과 모델의 코핑 상면 차이입니다.', 'muted small'));
|
||||
const front = m?.segments ?? [];
|
||||
const backBlocks = m?.blocks.filter((b) => b.row === '후열') ?? [];
|
||||
const et = el('table', undefined, 'grid-table rebar-table');
|
||||
const eh = el('thead');
|
||||
const ehr = el('tr');
|
||||
for (const h of ['No', '열', 'EL.X', 'E', 'A', 'B', 'C1', 'S1', '도면 상면 (EL.X − E)', '모델 코핑 상면', '차이 (m)']) ehr.appendChild(el('th', h));
|
||||
for (const h of ['No', '열', 'EL.X', 'E', 'A', 'B', 'C1', 'S1', '코핑 상면 = EL.X − h1 − h2', '모델 코핑 상면', '차이 (m)']) ehr.appendChild(el('th', h));
|
||||
eh.appendChild(ehr);
|
||||
et.appendChild(eh);
|
||||
const eb = el('tbody');
|
||||
for (const r of BEARING_ELEVATION_REF) {
|
||||
const drawingTop = r.elx - r.E / 1000;
|
||||
// EL.X is the block top including the 50 mm mortar: coping top = EL.X − h1 − h2 (승인 2026-10-23).
|
||||
const drawingTop = r.elx - (r.h1 + r.h2) / 1000;
|
||||
const modelTop = r.row === '전열' ? front[r.no - 1]?.top : backBlocks[r.no - 6]?.bottom;
|
||||
const diff = modelTop === undefined ? NaN : modelTop - drawingTop;
|
||||
eb.appendChild(el('tr')).append(
|
||||
|
||||
@@ -31,14 +31,14 @@ describe('교량받침 reference (도면값, 읽기 전용, 1단계)', () => {
|
||||
}
|
||||
});
|
||||
|
||||
it('the drawing EL.X − E sits a constant 0.211 m below the model coping top on all ten bearings (Q16 diagnostic)', () => {
|
||||
it('EL.X = block top incl. the 50 mm mortar: coping top = EL.X − h1 − h2 matches the model on all ten bearings (within 2 mm)', () => {
|
||||
const m = buildPier(loadP1());
|
||||
const back = m.blocks.filter((b) => b.row === '후열');
|
||||
const diffs = BEARING_ELEVATION_REF.map((r) => {
|
||||
const modelTop = r.row === '전열' ? m.segments[r.no - 1].top : back[r.no - 6].bottom;
|
||||
return modelTop - (r.elx - r.E / 1000);
|
||||
return modelTop - (r.elx - (r.h1 + r.h2) / 1000);
|
||||
});
|
||||
for (const d of diffs) expect(d).toBeCloseTo(0.211, 2);
|
||||
for (const d of diffs) expect(Math.abs(d)).toBeLessThan(0.002);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user