feat(view): solplate in the 3D model (2단계): wedges from the drawing's A, B, S; read the solplate table from DXF
Each bearing gets a solplate wedge: tapered along the 교축 with T1 on the 시점 side, underside at the bearing top (block top + h3). A, B come from the drawing's ELEVATION table, S and T1/T2 from the SOLPLATE table (NO, S(%), L, W, T, T1, T2), read by position. The 공통 규칙 (T 30, margin 100, h3 181) feed the plan; changing them regenerates the piers. A new "솔플레이트" part can be shown or hidden. A solplate table is read only when its S values are found; a missing S is reported. Also commits the option-1 test change (drawing EL.X minus Excel z). Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1d8746d533
commit
a50f4f5ee5
10 files changed
+579
-13
No files matched your search
@@ -40,3 +40,25 @@ describe('도면 받침 ELEVATION TABLE 읽기 (DXF 텍스트, 승인 2026-10-23
|
||||
expect(readDxfTexts(dxf)).toEqual([{ x: 100.5, y: 200.25, text: 'EL. "X"' }]);
|
||||
});
|
||||
});
|
||||
|
||||
import { parseSolplateTable } from '../src/core/dxf-table';
|
||||
import { SOLPLATE_REF } from '../src/core/bearing-ref';
|
||||
|
||||
describe('솔플레이트 TABLE 읽기 (승인 2026-10-23)', () => {
|
||||
const sp = JSON.parse(readFileSync(new URL('./fixtures/solplate-table-texts.json', import.meta.url), 'utf-8')) as DxfText[];
|
||||
|
||||
it('reads S, L, W, T, T1 and T2 for all ten bearings, and they equal the reference values', () => {
|
||||
const r = parseSolplateTable(sp);
|
||||
expect(r.errors).toEqual([]);
|
||||
expect(r.rows.map((x) => x.no)).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
||||
for (const ref of SOLPLATE_REF) {
|
||||
const got = r.rows.find((x) => x.no === ref.no)!;
|
||||
expect(got.S, `No ${ref.no} S`).toBeCloseTo(ref.s, 3);
|
||||
expect(got.L, `No ${ref.no} L`).toBe(ref.L);
|
||||
expect(got.W, `No ${ref.no} W`).toBe(ref.W);
|
||||
expect(got.T, `No ${ref.no} T`).toBe(30);
|
||||
expect(got.T1, `No ${ref.no} T1`).toBe(38);
|
||||
expect(got.T2, `No ${ref.no} T2`).toBe(22);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user