Merge origin/master with current Pierzainer development

Preserve local abutment, cast-in-place rebar and compact header features alongside remote drawing, ground-link and quantity workspaces. Adapt drawing and takeoff consumers to generated solplate plans, retain current P1 regression coverage, and resolve bearing-detail annotation collisions.

Validation: 122 test files / 975 tests passed; production build passed; 10 browser integration checks passed.
This commit is contained in:
ypshim committed 2026-11-06 17:10:33 +09:00
commit f51865c57b
2645 files changed
+64918 -4910

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
import {it,expect} from 'vitest';
import {bearingDimensions} from './bearing-dimensions';
import type {PierModel} from '../src/core/geometry';
it('받침 본체는 3D 형상의 솔플레이트 여유와 양측 100mm 공제를 동일하게 적용한다',()=>{
const m={blocks:[{plan:{L:800,W:740}}]} as PierModel;
expect(bearingDimensions(m).length).toBeCloseTo(.6);expect(bearingDimensions(m).width).toBeCloseTo(.54);
});
it('서로 다른 받침 치수나 형상 미생성은 단일 받침 치수로 추정하지 않는다',()=>{
expect(bearingDimensions({blocks:[{},{}]} as PierModel)).toEqual({length:null,width:null});
expect(bearingDimensions({blocks:[{plan:{L:800,W:740}},{plan:{L:900,W:740}}]} as PierModel)).toEqual({length:null,width:.54});
});