@ifc-lite/drawing-2d 1.18.6 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/dxf/aci-colors.d.ts +17 -0
- package/dist/dxf/aci-colors.d.ts.map +1 -0
- package/dist/dxf/aci-colors.js +142 -0
- package/dist/dxf/aci-colors.js.map +1 -0
- package/dist/dxf/convert.d.ts +32 -0
- package/dist/dxf/convert.d.ts.map +1 -0
- package/dist/dxf/convert.js +382 -0
- package/dist/dxf/convert.js.map +1 -0
- package/dist/dxf/geom.d.ts +70 -0
- package/dist/dxf/geom.d.ts.map +1 -0
- package/dist/dxf/geom.js +194 -0
- package/dist/dxf/geom.js.map +1 -0
- package/dist/dxf/index.d.ts +13 -0
- package/dist/dxf/index.d.ts.map +1 -0
- package/dist/dxf/index.js +44 -0
- package/dist/dxf/index.js.map +1 -0
- package/dist/dxf/parser.d.ts +9 -0
- package/dist/dxf/parser.d.ts.map +1 -0
- package/dist/dxf/parser.js +903 -0
- package/dist/dxf/parser.js.map +1 -0
- package/dist/dxf/types.d.ts +255 -0
- package/dist/dxf/types.d.ts.map +1 -0
- package/dist/dxf/types.js +10 -0
- package/dist/dxf/types.js.map +1 -0
- package/dist/dxf/writer.d.ts +111 -0
- package/dist/dxf/writer.d.ts.map +1 -0
- package/dist/dxf/writer.js +338 -0
- package/dist/dxf/writer.js.map +1 -0
- package/dist/dxf-exporter.d.ts +66 -0
- package/dist/dxf-exporter.d.ts.map +1 -0
- package/dist/dxf-exporter.js +137 -0
- package/dist/dxf-exporter.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/svg-exporter.d.ts +23 -0
- package/dist/svg-exporter.d.ts.map +1 -1
- package/dist/svg-exporter.js +80 -1
- package/dist/svg-exporter.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/dxf/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DXF import types (issue #1782).
|
|
3
|
+
*
|
|
4
|
+
* Two layers of model:
|
|
5
|
+
* - the raw parsed document (`DxfDocument` + `DxfEntity` variants), a direct
|
|
6
|
+
* reading of the group-code stream, still in DXF drawing units, and
|
|
7
|
+
* - the converted reference underlay (`DxfUnderlay`), tessellated into the
|
|
8
|
+
* drawing-2d Point2D/Polygon2D vocabulary in WORLD plan coordinates:
|
|
9
|
+
* metres, IFC XY (+Y = north). DXF and IFC are both Z-up, so no axis
|
|
10
|
+
* swap happens here; consumers map world → drawing space themselves
|
|
11
|
+
* (plan drawing space is `(x, -y)` plus any render-frame origin shift).
|
|
12
|
+
*/
|
|
13
|
+
import type { Point2D, Polygon2D, Bounds2D } from '../types.js';
|
|
14
|
+
/** One group-code/value pair from an ASCII DXF file. */
|
|
15
|
+
export interface DxfPair {
|
|
16
|
+
code: number;
|
|
17
|
+
value: string;
|
|
18
|
+
}
|
|
19
|
+
/** Fields shared by every parsed DXF entity. */
|
|
20
|
+
export interface DxfEntityCommon {
|
|
21
|
+
/** Layer name (group 8); DXF defaults to layer "0". */
|
|
22
|
+
layer: string;
|
|
23
|
+
/** ACI colour number (group 62): 0 = BYBLOCK, 256 = BYLAYER. */
|
|
24
|
+
colorNumber: number;
|
|
25
|
+
/** 24-bit true colour (group 420); overrides `colorNumber` when present. */
|
|
26
|
+
trueColor?: number;
|
|
27
|
+
/** Linetype name (group 6); anything non-continuous renders dashed. */
|
|
28
|
+
linetype?: string;
|
|
29
|
+
/** Lineweight in mm (group 370 is 1/100 mm); undefined = BYLAYER/default. */
|
|
30
|
+
lineweightMm?: number;
|
|
31
|
+
/** Entity invisibility flag (group 60). */
|
|
32
|
+
invisible: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Z component of the OCS extrusion direction (group 230). Planar entities
|
|
35
|
+
* with extrusion (0,0,-1) have their X axis mirrored; other tilted
|
|
36
|
+
* extrusions are rare in 2D drawings and are treated as +Z.
|
|
37
|
+
*/
|
|
38
|
+
extrusionZ: number;
|
|
39
|
+
}
|
|
40
|
+
/** Polyline vertex; `bulge` is tan(sweep/4) of the arc to the next vertex. */
|
|
41
|
+
export interface DxfVertex {
|
|
42
|
+
x: number;
|
|
43
|
+
y: number;
|
|
44
|
+
bulge: number;
|
|
45
|
+
}
|
|
46
|
+
export interface DxfLineEntity extends DxfEntityCommon {
|
|
47
|
+
kind: 'line';
|
|
48
|
+
x1: number;
|
|
49
|
+
y1: number;
|
|
50
|
+
x2: number;
|
|
51
|
+
y2: number;
|
|
52
|
+
}
|
|
53
|
+
/** LWPOLYLINE and classic POLYLINE/VERTEX chains, unified. */
|
|
54
|
+
export interface DxfPolylineEntity extends DxfEntityCommon {
|
|
55
|
+
kind: 'polyline';
|
|
56
|
+
vertices: DxfVertex[];
|
|
57
|
+
closed: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface DxfCircleEntity extends DxfEntityCommon {
|
|
60
|
+
kind: 'circle';
|
|
61
|
+
cx: number;
|
|
62
|
+
cy: number;
|
|
63
|
+
r: number;
|
|
64
|
+
}
|
|
65
|
+
export interface DxfArcEntity extends DxfEntityCommon {
|
|
66
|
+
kind: 'arc';
|
|
67
|
+
cx: number;
|
|
68
|
+
cy: number;
|
|
69
|
+
r: number;
|
|
70
|
+
/** Start/end angles in degrees, counter-clockwise from +X. */
|
|
71
|
+
startDeg: number;
|
|
72
|
+
endDeg: number;
|
|
73
|
+
}
|
|
74
|
+
export interface DxfEllipseEntity extends DxfEntityCommon {
|
|
75
|
+
kind: 'ellipse';
|
|
76
|
+
cx: number;
|
|
77
|
+
cy: number;
|
|
78
|
+
/** Endpoint of the major axis relative to the centre. */
|
|
79
|
+
majorX: number;
|
|
80
|
+
majorY: number;
|
|
81
|
+
/** Minor-to-major axis ratio. */
|
|
82
|
+
ratio: number;
|
|
83
|
+
/** Start/end parameters in radians (0..2π = full ellipse). */
|
|
84
|
+
startParam: number;
|
|
85
|
+
endParam: number;
|
|
86
|
+
}
|
|
87
|
+
export interface DxfTextEntity extends DxfEntityCommon {
|
|
88
|
+
kind: 'text';
|
|
89
|
+
x: number;
|
|
90
|
+
y: number;
|
|
91
|
+
/** Text height in DXF drawing units. */
|
|
92
|
+
height: number;
|
|
93
|
+
/** Rotation in degrees, counter-clockwise. */
|
|
94
|
+
rotationDeg: number;
|
|
95
|
+
text: string;
|
|
96
|
+
hAlign: 'left' | 'center' | 'right';
|
|
97
|
+
vAlign: 'baseline' | 'bottom' | 'middle' | 'top';
|
|
98
|
+
}
|
|
99
|
+
/** SPLINE entity: clamped B-spline control net (or fit points). */
|
|
100
|
+
export interface DxfSplineEntity extends DxfEntityCommon {
|
|
101
|
+
kind: 'spline';
|
|
102
|
+
degree: number;
|
|
103
|
+
closed: boolean;
|
|
104
|
+
knots: number[];
|
|
105
|
+
controlPoints: Array<{
|
|
106
|
+
x: number;
|
|
107
|
+
y: number;
|
|
108
|
+
}>;
|
|
109
|
+
fitPoints: Array<{
|
|
110
|
+
x: number;
|
|
111
|
+
y: number;
|
|
112
|
+
}>;
|
|
113
|
+
}
|
|
114
|
+
/** SOLID/TRACE entity: a filled triangle or quad. Corners in draw order. */
|
|
115
|
+
export interface DxfSolidEntity extends DxfEntityCommon {
|
|
116
|
+
kind: 'solid';
|
|
117
|
+
corners: Array<{
|
|
118
|
+
x: number;
|
|
119
|
+
y: number;
|
|
120
|
+
}>;
|
|
121
|
+
}
|
|
122
|
+
export interface DxfInsertEntity extends DxfEntityCommon {
|
|
123
|
+
kind: 'insert';
|
|
124
|
+
blockName: string;
|
|
125
|
+
x: number;
|
|
126
|
+
y: number;
|
|
127
|
+
scaleX: number;
|
|
128
|
+
scaleY: number;
|
|
129
|
+
rotationDeg: number;
|
|
130
|
+
columnCount: number;
|
|
131
|
+
rowCount: number;
|
|
132
|
+
columnSpacing: number;
|
|
133
|
+
rowSpacing: number;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* DIMENSION entities carry a pre-rendered anonymous block (`*D…`, group 2)
|
|
137
|
+
* with the dimension's lines, arrows, and text in WCS coordinates; importing
|
|
138
|
+
* renders that block rather than re-deriving dimension geometry.
|
|
139
|
+
*/
|
|
140
|
+
export interface DxfDimensionEntity extends DxfEntityCommon {
|
|
141
|
+
kind: 'dimension';
|
|
142
|
+
blockName: string;
|
|
143
|
+
}
|
|
144
|
+
/** One HATCH boundary path, tessellated to a vertex loop at parse time. */
|
|
145
|
+
export interface DxfHatchPath {
|
|
146
|
+
vertices: DxfVertex[];
|
|
147
|
+
}
|
|
148
|
+
export interface DxfHatchEntity extends DxfEntityCommon {
|
|
149
|
+
kind: 'hatch';
|
|
150
|
+
/** True for SOLID fills (group 70 = 1); pattern hatches render translucent. */
|
|
151
|
+
solid: boolean;
|
|
152
|
+
paths: DxfHatchPath[];
|
|
153
|
+
}
|
|
154
|
+
export type DxfEntity = DxfLineEntity | DxfPolylineEntity | DxfCircleEntity | DxfArcEntity | DxfEllipseEntity | DxfTextEntity | DxfSplineEntity | DxfSolidEntity | DxfInsertEntity | DxfDimensionEntity | DxfHatchEntity;
|
|
155
|
+
/** LAYER table record. */
|
|
156
|
+
export interface DxfLayerInfo {
|
|
157
|
+
name: string;
|
|
158
|
+
/** ACI colour number (absolute value of group 62). */
|
|
159
|
+
colorNumber: number;
|
|
160
|
+
/** 24-bit true colour (group 420); wins over `colorNumber` when present. */
|
|
161
|
+
trueColor?: number;
|
|
162
|
+
/** False when the layer is off (negative group 62) or frozen (70 bit 1). */
|
|
163
|
+
visible: boolean;
|
|
164
|
+
linetype?: string;
|
|
165
|
+
/** Default lineweight in mm (group 370, 1/100 mm), if set. */
|
|
166
|
+
lineweightMm?: number;
|
|
167
|
+
}
|
|
168
|
+
/** BLOCK definition. */
|
|
169
|
+
export interface DxfBlockInfo {
|
|
170
|
+
name: string;
|
|
171
|
+
baseX: number;
|
|
172
|
+
baseY: number;
|
|
173
|
+
entities: DxfEntity[];
|
|
174
|
+
}
|
|
175
|
+
/** Parsed DXF document (drawing units, unscaled). */
|
|
176
|
+
export interface DxfDocument {
|
|
177
|
+
/** $INSUNITS header value (0 = unitless / absent). */
|
|
178
|
+
insunits: number;
|
|
179
|
+
layers: Map<string, DxfLayerInfo>;
|
|
180
|
+
blocks: Map<string, DxfBlockInfo>;
|
|
181
|
+
entities: DxfEntity[];
|
|
182
|
+
/** Entity types encountered but not supported, with occurrence counts. */
|
|
183
|
+
skipped: Record<string, number>;
|
|
184
|
+
warnings: string[];
|
|
185
|
+
}
|
|
186
|
+
/** Stroked path (already tessellated; arcs/circles become segments). */
|
|
187
|
+
export interface DxfUnderlayPath {
|
|
188
|
+
points: Point2D[];
|
|
189
|
+
closed: boolean;
|
|
190
|
+
/** CSS colour; set only when the entity overrides its layer colour. */
|
|
191
|
+
color?: string;
|
|
192
|
+
/** True when the entity's linetype is not continuous. */
|
|
193
|
+
dashed?: boolean;
|
|
194
|
+
/** Lineweight in mm on paper (entity or layer group 370), if set. */
|
|
195
|
+
widthMm?: number;
|
|
196
|
+
}
|
|
197
|
+
/** Filled region from a HATCH. */
|
|
198
|
+
export interface DxfUnderlayFill {
|
|
199
|
+
polygon: Polygon2D;
|
|
200
|
+
color?: string;
|
|
201
|
+
/** True for pattern (non-SOLID) hatches, rendered translucent. */
|
|
202
|
+
pattern: boolean;
|
|
203
|
+
}
|
|
204
|
+
/** Text label. Position and direction are in world plan coordinates. */
|
|
205
|
+
export interface DxfUnderlayText {
|
|
206
|
+
position: Point2D;
|
|
207
|
+
text: string;
|
|
208
|
+
/** Cap height in metres. */
|
|
209
|
+
height: number;
|
|
210
|
+
/** Baseline direction in world space (unit vector; +Y = north). */
|
|
211
|
+
dirX: number;
|
|
212
|
+
dirY: number;
|
|
213
|
+
align: 'left' | 'center' | 'right';
|
|
214
|
+
valign: 'baseline' | 'bottom' | 'middle' | 'top';
|
|
215
|
+
color?: string;
|
|
216
|
+
}
|
|
217
|
+
/** All converted content of one DXF layer. */
|
|
218
|
+
export interface DxfUnderlayLayer {
|
|
219
|
+
name: string;
|
|
220
|
+
/** Default CSS colour for entities on this layer. */
|
|
221
|
+
color: string;
|
|
222
|
+
/** Initial visibility from the DXF layer table (off/frozen start hidden). */
|
|
223
|
+
visible: boolean;
|
|
224
|
+
paths: DxfUnderlayPath[];
|
|
225
|
+
fills: DxfUnderlayFill[];
|
|
226
|
+
texts: DxfUnderlayText[];
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* A DXF file converted to a 2D reference underlay. Geometry is in world
|
|
230
|
+
* plan coordinates: metres, IFC XY, +Y = north (DXF and IFC are both
|
|
231
|
+
* Z-up). Mapping to a concrete drawing view (y-flip, render-frame origin
|
|
232
|
+
* shift, flipped-section mirror) is the consumer's job.
|
|
233
|
+
*/
|
|
234
|
+
export interface DxfUnderlay {
|
|
235
|
+
name: string;
|
|
236
|
+
layers: DxfUnderlayLayer[];
|
|
237
|
+
bounds: Bounds2D;
|
|
238
|
+
/** DXF drawing units → metres factor derived from $INSUNITS. */
|
|
239
|
+
unitScale: number;
|
|
240
|
+
/** Entity types skipped during import, with counts. */
|
|
241
|
+
skipped: Record<string, number>;
|
|
242
|
+
warnings: string[];
|
|
243
|
+
}
|
|
244
|
+
/** User placement of an underlay in drawing space. */
|
|
245
|
+
export interface DxfPlacement {
|
|
246
|
+
/** Offset in metres (drawing space). */
|
|
247
|
+
offsetX: number;
|
|
248
|
+
offsetY: number;
|
|
249
|
+
/** Rotation in degrees, counter-clockwise as seen on a plan view. */
|
|
250
|
+
rotationDeg: number;
|
|
251
|
+
/** Uniform scale multiplier on top of the unit conversion. */
|
|
252
|
+
scale: number;
|
|
253
|
+
}
|
|
254
|
+
export declare const DEFAULT_DXF_PLACEMENT: DxfPlacement;
|
|
255
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dxf/types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMhE,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;CAClD;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5C;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,eAAe,GACf,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,cAAc,CAAC;AAEnB,0BAA0B;AAC1B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,qBAAqB,EAAE,YAKnC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
export const DEFAULT_DXF_PLACEMENT = {
|
|
5
|
+
offsetX: 0,
|
|
6
|
+
offsetY: 0,
|
|
7
|
+
rotationDeg: 0,
|
|
8
|
+
scale: 1,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dxf/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAoS/D,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACd,KAAK,EAAE,CAAC;CACT,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { Point2D } from '../types.js';
|
|
2
|
+
/** Line style resolved to a DXF linetype. `dashed` maps to the `DASHED` LTYPE. */
|
|
3
|
+
export type DxfLinetype = 'CONTINUOUS' | 'DASHED';
|
|
4
|
+
/** Horizontal text justification (subset of DXF group 72). */
|
|
5
|
+
export type DxfTextHAlign = 'left' | 'center' | 'right';
|
|
6
|
+
/** Vertical text justification (subset of DXF group 73). */
|
|
7
|
+
export type DxfTextVAlign = 'baseline' | 'bottom' | 'middle' | 'top';
|
|
8
|
+
/**
|
|
9
|
+
* Sanitize a free-text label into a valid DXF R12 LAYER name: every
|
|
10
|
+
* character outside the R12 symbol-name set (`A-Z a-z 0-9 $ - _` — spaces,
|
|
11
|
+
* unicode and punctuation included) becomes `_`, runs of `_` produced by
|
|
12
|
+
* adjacent replacements are collapsed, the result is made non-empty, and
|
|
13
|
+
* truncated to the R12 31-character symbol-name limit.
|
|
14
|
+
*
|
|
15
|
+
* Distinct inputs can collide after this mapping (`Wände`/`Wønde` →
|
|
16
|
+
* `W_nde`); {@link DxfWriter.layer} disambiguates with a numeric suffix so
|
|
17
|
+
* two source layers never silently merge.
|
|
18
|
+
*/
|
|
19
|
+
export declare function sanitizeDxfLayerName(name: string): string;
|
|
20
|
+
export interface DxfWriterOptions {
|
|
21
|
+
/**
|
|
22
|
+
* `999` comment written at the very top of the file, before the HEADER
|
|
23
|
+
* section (valid DXF in every version; the conventional place to state
|
|
24
|
+
* metadata a reader should show a human but never needs to parse — here,
|
|
25
|
+
* the unit R12 can't declare via `$INSUNITS`). Defaults to a generic
|
|
26
|
+
* "units: metres" note; pass a longer string (e.g. including the
|
|
27
|
+
* `IfcProjectedCRS` name) for a georeferenced export.
|
|
28
|
+
*/
|
|
29
|
+
headerComment?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Accumulates DXF entities and layer definitions, then assembles the full
|
|
33
|
+
* ASCII DXF R12 (AC1009) document text. One writer instance == one DXF
|
|
34
|
+
* file; layers are registered on first use (`addPolyline`/`addLine`/
|
|
35
|
+
* `addText`) via a CSS colour, resolved to the nearest ACI with
|
|
36
|
+
* {@link cssToAci}.
|
|
37
|
+
*/
|
|
38
|
+
export declare class DxfWriter {
|
|
39
|
+
private readonly layers;
|
|
40
|
+
/** Raw (pre-sanitization) name → assigned safe name, for stable reuse + collision disambiguation. */
|
|
41
|
+
private readonly layerNameBySource;
|
|
42
|
+
private readonly entities;
|
|
43
|
+
private readonly headerComment;
|
|
44
|
+
private minX;
|
|
45
|
+
private minY;
|
|
46
|
+
private maxX;
|
|
47
|
+
private maxY;
|
|
48
|
+
/** One warning per document for non-finite input coordinates — see extend(). */
|
|
49
|
+
private warnedNonFinite;
|
|
50
|
+
constructor(options?: DxfWriterOptions);
|
|
51
|
+
private extend;
|
|
52
|
+
/**
|
|
53
|
+
* Register (or reuse) a layer. Returns the sanitized layer name to pass to
|
|
54
|
+
* `addPolyline`/`addLine`/`addText`. Re-registering the same source name
|
|
55
|
+
* with a different colour/linetype is a no-op (first registration wins) —
|
|
56
|
+
* callers should derive one style per logical layer. DIFFERENT source
|
|
57
|
+
* names whose sanitized forms collide (`Wände`/`Wønde` → `W_nde`) get a
|
|
58
|
+
* numeric suffix (`W_nde`, `W_nde_2`, …) instead of silently merging onto
|
|
59
|
+
* one layer.
|
|
60
|
+
*/
|
|
61
|
+
layer(name: string, cssColor: string, linetype?: DxfLinetype): string;
|
|
62
|
+
/** `62\n<aci>\n` when an entity overrides its layer's colour, else ''. */
|
|
63
|
+
private colorOverrideGroup;
|
|
64
|
+
/**
|
|
65
|
+
* Add a closed or open polyline (tessellated arcs/circles are pre-sampled
|
|
66
|
+
* by the caller), written as classic `POLYLINE` + `VERTEX`* + `SEQEND` —
|
|
67
|
+
* `LWPOLYLINE` does not exist before R14. `colorOverride` (CSS colour)
|
|
68
|
+
* emits a per-entity ACI (group 62) on the POLYLINE header instead of
|
|
69
|
+
* inheriting the layer colour — used when several IFC types share one
|
|
70
|
+
* category layer but render with distinct colours in the source drawing
|
|
71
|
+
* (matching the SVG exporter's per-entity fill/stroke).
|
|
72
|
+
*/
|
|
73
|
+
addPolyline(points: readonly Point2D[], layer: string, closed: boolean, colorOverride?: string): void;
|
|
74
|
+
/** Add a single straight segment. `colorOverride`: see {@link addPolyline}. */
|
|
75
|
+
addLine(start: Point2D, end: Point2D, layer: string, colorOverride?: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Add single-line text. Multiline callers (annotations/MTEXT) should split
|
|
78
|
+
* on `\n` and call this once per line, offsetting `position` themselves
|
|
79
|
+
* (matching the SVG exporter's tspan stacking) — DXF `TEXT` group 1 is a
|
|
80
|
+
* single line. `colorOverride`: see {@link addPolyline}.
|
|
81
|
+
*/
|
|
82
|
+
addText(position: Point2D, text: string, height: number, layer: string, options?: {
|
|
83
|
+
rotationDeg?: number;
|
|
84
|
+
hAlign?: DxfTextHAlign;
|
|
85
|
+
vAlign?: DxfTextVAlign;
|
|
86
|
+
colorOverride?: string;
|
|
87
|
+
}): void;
|
|
88
|
+
/** True once at least one finite point has been written (controls $EXTMIN/$EXTMAX). */
|
|
89
|
+
private hasExtents;
|
|
90
|
+
private buildHeader;
|
|
91
|
+
private buildLtypeTable;
|
|
92
|
+
/**
|
|
93
|
+
* STYLE table with the single `STANDARD` text style. Every TEXT entity
|
|
94
|
+
* this writer emits carries no group 7 and therefore implicitly
|
|
95
|
+
* references STANDARD; defining it keeps strict R12 readers from having
|
|
96
|
+
* to invent it. (Fixed-height 0, width factor 1, `txt` font — the
|
|
97
|
+
* classic defaults.)
|
|
98
|
+
*/
|
|
99
|
+
private buildStyleTable;
|
|
100
|
+
private buildLayerTable;
|
|
101
|
+
private buildTables;
|
|
102
|
+
private buildEntities;
|
|
103
|
+
/**
|
|
104
|
+
* Assemble the full ASCII DXF R12 document: a leading `999` comment
|
|
105
|
+
* (units — see class docs), then HEADER + TABLES + ENTITIES + EOF. No
|
|
106
|
+
* BLOCKS/OBJECTS sections and no BLOCK_RECORD table — R12 doesn't require
|
|
107
|
+
* them (unlike R13+, where their absence would make the file invalid).
|
|
108
|
+
*/
|
|
109
|
+
toString(): string;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/dxf/writer.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;AAElD,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACxD,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AA4CrE;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKzD;AAyBD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,qGAAqG;IACrG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,gFAAgF;IAChF,OAAO,CAAC,eAAe,CAAS;gBAEpB,OAAO,GAAE,gBAAqB;IAI1C,OAAO,CAAC,MAAM;IAsBd;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,WAA0B,GAAG,MAAM;IAcnF,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAI1B;;;;;;;;OAQG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBrG,+EAA+E;IAC/E,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAYlF;;;;;OAKG;IACH,OAAO,CACL,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACnB,GACL,IAAI;IA8BP,uFAAuF;IACvF,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAcvB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAOrB;;;;;OAKG;IACH,QAAQ,IAAI,MAAM;CAYnB"}
|