task(CAD-1): associative dimensioning - DimStyles (ISO-25/50/Arch/Engineering), 5 dimension types (linear H/V, aligned, angular, radius, diameter), computed values, full primitives with arrows + extension lines

This commit is contained in:
Agent Zero
2026-08-29 09:58:45 +02:00
parent 17b62ee36a
commit 44a60fa718
5 changed files with 709 additions and 16 deletions
+7 -5
View File
@@ -113,14 +113,16 @@ describe('elementToPrimitives', () => {
expect(elementToPrimitives(el('x', 'definitely-unknown'))).toEqual([]);
});
it('dimension: Linie + Label aus value/text', () => {
it('dimension: komplette Bemassung (Extension+Masslinie+Pfeile+Text, CAD-1)', () => {
const prims = elementToPrimitives(el('d', 'dimension', {
x1: 0, y1: 0, x2: 100, y2: 0, value: '250 cm',
}, { x: 50, y: 0 }));
expect(prims.length).toBe(2);
expect(prims[0].kind).toBe('line');
const txt = prims[1];
if (txt.kind !== 'text') throw new Error('erwartete text');
// CAD-1: 2 Extension lines + 1 Masslinie + 2 Pfeilspitzen + 1 Text = 6
expect(prims.length).toBe(6);
expect(prims.filter((p) => p.kind === 'line').length).toBe(3);
expect(prims.filter((p) => p.kind === 'polyline').length).toBe(2);
const txt = prims.find((p) => p.kind === 'text');
if (!txt || txt.kind !== 'text') throw new Error('erwartete text');
expect(txt.text).toBe('250 cm');
});