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
@@ -31,14 +31,16 @@ describe('교량받침 reference (도면값, 읽기 전용, 1단계)', () => {
|
||||
}
|
||||
});
|
||||
|
||||
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)', () => {
|
||||
it('Excel z is EL.X (option 1): the model keeps z; the drawing EL.X minus Excel z is +64 mm (전열) and −11 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.h1 + r.h2) / 1000);
|
||||
const front = m.blocks.filter((b) => b.row === '전열');
|
||||
BEARING_ELEVATION_REF.forEach((r) => {
|
||||
const z = r.row === '전열' ? front[r.no - 1].padTop : back[r.no - 6].padTop;
|
||||
const diffMm = (r.elx - z) * 1000; // 도면 − 엑셀
|
||||
// About +64 mm on the front row and −11 mm on the back row (varies by a millimetre or two per bearing).
|
||||
expect(Math.abs(diffMm - (r.row === '전열' ? 64 : -11)), `No ${r.no}`).toBeLessThan(2);
|
||||
});
|
||||
for (const d of diffs) expect(Math.abs(d)).toBeLessThan(0.002);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user