@mlightcad/libredwg-converter 1.0.1
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/LICENSE +21 -0
- package/README.md +53 -0
- package/dist/libredwg-converter.js +537 -0
- package/dist/libredwg-converter.umd.cjs +1 -0
- package/lib/AcDbEntitiyConverter.d.ts +35 -0
- package/lib/AcDbEntitiyConverter.d.ts.map +1 -0
- package/lib/AcDbEntitiyConverter.js +477 -0
- package/lib/AcDbEntitiyConverter.js.map +1 -0
- package/lib/AcDbLibreDwgConverter.d.ts +46 -0
- package/lib/AcDbLibreDwgConverter.d.ts.map +1 -0
- package/lib/AcDbLibreDwgConverter.js +547 -0
- package/lib/AcDbLibreDwgConverter.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/package.json +44 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
import { AcDbEntity } from '@mlightcad/data-model';
|
2
|
+
import { DwgEntity } from '@mlightcad/libredwg-web';
|
3
|
+
export declare class AcDbEntityConverter {
|
4
|
+
convert(entity: DwgEntity): AcDbEntity | null;
|
5
|
+
/**
|
6
|
+
* Create the corresponding drawing database entity from data in dxf format
|
7
|
+
* @param entity Input entity data in dxf format
|
8
|
+
* @returns Return the converted drawing database entity
|
9
|
+
*/
|
10
|
+
private createEntity;
|
11
|
+
private convertArc;
|
12
|
+
private convertCirle;
|
13
|
+
private convertEllipse;
|
14
|
+
private convertLine;
|
15
|
+
private convertSpline;
|
16
|
+
private convertPoint;
|
17
|
+
private convertSolid;
|
18
|
+
private convertLWPolyline;
|
19
|
+
private convertPolyline;
|
20
|
+
private convertHatch;
|
21
|
+
private convertTable;
|
22
|
+
private convertText;
|
23
|
+
private convertMText;
|
24
|
+
private convertLeader;
|
25
|
+
private convertDimension;
|
26
|
+
private processImage;
|
27
|
+
private convertImage;
|
28
|
+
private convertViewport;
|
29
|
+
private convertRay;
|
30
|
+
private convertXline;
|
31
|
+
private convertBlockReference;
|
32
|
+
private processDimensionCommonAttrs;
|
33
|
+
private processCommonAttrs;
|
34
|
+
}
|
35
|
+
//# sourceMappingURL=AcDbEntitiyConverter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcDbEntitiyConverter.d.ts","sourceRoot":"","sources":["../src/AcDbEntitiyConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,UAAU,EAsCX,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAWL,SAAS,EAsBV,MAAM,yBAAyB,CAAA;AAEhC,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,IAAI;IAQ7C;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA+CpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,YAAY;IA0HpB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IAsDxB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,kBAAkB;CA6B3B"}
|
@@ -0,0 +1,477 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
import { AcDb3PointAngularDimension, AcDbAlignedDimension, AcDbArc, AcDbBlockReference, AcDbCircle, AcDbDiametricDimension, AcDbEllipse, AcDbHatch, AcDbLeader, AcDbLine, AcDbMText, AcDbOrdinateDimension, AcDbPoint, AcDbPolyline, AcDbRadialDimension, AcDbRasterImage, AcDbRay, AcDbSpline, AcDbTable, AcDbText, AcDbTrace, AcDbViewport, AcDbXline, AcGeCircArc2d, AcGeEllipseArc2d, AcGeLine2d, AcGeLoop2d, AcGePoint2d, AcGePoint3d, AcGePolyline2d, AcGeSpline3d, AcGeVector2d, AcGeVector3d } from '@mlightcad/data-model';
|
13
|
+
var AcDbEntityConverter = /** @class */ (function () {
|
14
|
+
function AcDbEntityConverter() {
|
15
|
+
}
|
16
|
+
AcDbEntityConverter.prototype.convert = function (entity) {
|
17
|
+
var dbEntity = this.createEntity(entity);
|
18
|
+
if (dbEntity) {
|
19
|
+
this.processCommonAttrs(entity, dbEntity);
|
20
|
+
}
|
21
|
+
return dbEntity;
|
22
|
+
};
|
23
|
+
/**
|
24
|
+
* Create the corresponding drawing database entity from data in dxf format
|
25
|
+
* @param entity Input entity data in dxf format
|
26
|
+
* @returns Return the converted drawing database entity
|
27
|
+
*/
|
28
|
+
AcDbEntityConverter.prototype.createEntity = function (entity) {
|
29
|
+
if (entity.type == 'ARC') {
|
30
|
+
return this.convertArc(entity);
|
31
|
+
}
|
32
|
+
else if (entity.type == 'CIRCLE') {
|
33
|
+
return this.convertCirle(entity);
|
34
|
+
}
|
35
|
+
else if (entity.type == 'DIMENSION') {
|
36
|
+
return this.convertDimension(entity);
|
37
|
+
}
|
38
|
+
else if (entity.type == 'ELLIPSE') {
|
39
|
+
return this.convertEllipse(entity);
|
40
|
+
}
|
41
|
+
else if (entity.type == 'HATCH') {
|
42
|
+
return this.convertHatch(entity);
|
43
|
+
}
|
44
|
+
else if (entity.type == 'IMAGE') {
|
45
|
+
return this.convertImage(entity);
|
46
|
+
}
|
47
|
+
else if (entity.type == 'LEADER') {
|
48
|
+
return this.convertLeader(entity);
|
49
|
+
}
|
50
|
+
else if (entity.type == 'LINE') {
|
51
|
+
return this.convertLine(entity);
|
52
|
+
}
|
53
|
+
else if (entity.type == 'LWPOLYLINE') {
|
54
|
+
return this.convertLWPolyline(entity);
|
55
|
+
}
|
56
|
+
else if (entity.type == 'MTEXT') {
|
57
|
+
return this.convertMText(entity);
|
58
|
+
}
|
59
|
+
else if (entity.type == 'POINT') {
|
60
|
+
return this.convertPoint(entity);
|
61
|
+
}
|
62
|
+
else if (entity.type == 'POLYLINE') {
|
63
|
+
return this.convertPolyline(entity);
|
64
|
+
}
|
65
|
+
else if (entity.type == 'RAY') {
|
66
|
+
return this.convertRay(entity);
|
67
|
+
}
|
68
|
+
else if (entity.type == 'SPLINE') {
|
69
|
+
return this.convertSpline(entity);
|
70
|
+
}
|
71
|
+
else if (entity.type == 'ACAD_TABLE') {
|
72
|
+
return this.convertTable(entity);
|
73
|
+
}
|
74
|
+
else if (entity.type == 'TEXT') {
|
75
|
+
return this.convertText(entity);
|
76
|
+
}
|
77
|
+
else if (entity.type == 'SOLID') {
|
78
|
+
return this.convertSolid(entity);
|
79
|
+
}
|
80
|
+
else if (entity.type == 'VIEWPORT') {
|
81
|
+
return this.convertViewport(entity);
|
82
|
+
// } else if (entity.type == 'WIPEOUT') {
|
83
|
+
// return this.convertWipeout(entity as WipeoutEntity)
|
84
|
+
}
|
85
|
+
else if (entity.type == 'XLINE') {
|
86
|
+
return this.convertXline(entity);
|
87
|
+
}
|
88
|
+
else if (entity.type == 'INSERT') {
|
89
|
+
return this.convertBlockReference(entity);
|
90
|
+
}
|
91
|
+
return null;
|
92
|
+
};
|
93
|
+
AcDbEntityConverter.prototype.convertArc = function (arc) {
|
94
|
+
var dbEntity = new AcDbArc(arc.center, arc.radius, arc.startAngle, arc.endAngle);
|
95
|
+
return dbEntity;
|
96
|
+
};
|
97
|
+
AcDbEntityConverter.prototype.convertCirle = function (circle) {
|
98
|
+
var dbEntity = new AcDbCircle(circle.center, circle.radius);
|
99
|
+
return dbEntity;
|
100
|
+
};
|
101
|
+
AcDbEntityConverter.prototype.convertEllipse = function (ellipse) {
|
102
|
+
var majorAxis = new AcGeVector3d(ellipse.majorAxisEndPoint);
|
103
|
+
var majorAxisRadius = majorAxis.length();
|
104
|
+
var dbEntity = new AcDbEllipse(ellipse.center, AcGeVector3d.Z_AXIS, majorAxis, majorAxisRadius, majorAxisRadius * ellipse.axisRatio, ellipse.startAngle, ellipse.endAngle);
|
105
|
+
return dbEntity;
|
106
|
+
};
|
107
|
+
AcDbEntityConverter.prototype.convertLine = function (line) {
|
108
|
+
var start = line.startPoint;
|
109
|
+
var end = line.endPoint;
|
110
|
+
var dbEntity = new AcDbLine(new AcGePoint3d(start.x, start.y, start.z), new AcGePoint3d(end.x, end.y, end.z));
|
111
|
+
return dbEntity;
|
112
|
+
};
|
113
|
+
AcDbEntityConverter.prototype.convertSpline = function (spline) {
|
114
|
+
if (spline.numberOfControlPoints > 0 && spline.numberOfKnots > 0) {
|
115
|
+
var dbEntity = new AcDbSpline(spline.controlPoints, spline.knots, spline.weights);
|
116
|
+
dbEntity.closed = !!(spline.flag & 0x01);
|
117
|
+
return dbEntity;
|
118
|
+
}
|
119
|
+
else if (spline.numberOfFitPoints > 0) {
|
120
|
+
var dbEntity = new AcDbSpline(spline.fitPoints, 'Uniform');
|
121
|
+
dbEntity.closed = !!(spline.flag & 0x01);
|
122
|
+
return dbEntity;
|
123
|
+
}
|
124
|
+
return null;
|
125
|
+
};
|
126
|
+
AcDbEntityConverter.prototype.convertPoint = function (point) {
|
127
|
+
var dbEntity = new AcDbPoint();
|
128
|
+
dbEntity.position = point.position;
|
129
|
+
return dbEntity;
|
130
|
+
};
|
131
|
+
AcDbEntityConverter.prototype.convertSolid = function (solid) {
|
132
|
+
var dbEntity = new AcDbTrace();
|
133
|
+
dbEntity.setPointAt(0, __assign(__assign({}, solid.corner1), { z: 0 }));
|
134
|
+
dbEntity.setPointAt(1, __assign(__assign({}, solid.corner2), { z: 0 }));
|
135
|
+
dbEntity.setPointAt(2, __assign(__assign({}, solid.corner3), { z: 0 }));
|
136
|
+
dbEntity.setPointAt(3, solid.corner4 ? __assign(__assign({}, solid.corner4), { z: 0 }) : __assign(__assign({}, solid.corner3), { z: 0 }));
|
137
|
+
dbEntity.thickness = solid.thickness;
|
138
|
+
return dbEntity;
|
139
|
+
};
|
140
|
+
AcDbEntityConverter.prototype.convertLWPolyline = function (polyline) {
|
141
|
+
// Libredwg changes meaning of the 'flag' field. '512' means closed.
|
142
|
+
var dbEntity = new AcDbPolyline();
|
143
|
+
dbEntity.closed = !!(polyline.flag & 0x200);
|
144
|
+
polyline.vertices.forEach(function (vertex, index) {
|
145
|
+
dbEntity.addVertexAt(index, new AcGePoint2d(vertex.x, vertex.y), vertex.bulge, vertex.startWidth, vertex.endWidth);
|
146
|
+
});
|
147
|
+
return dbEntity;
|
148
|
+
};
|
149
|
+
AcDbEntityConverter.prototype.convertPolyline = function (polyline) {
|
150
|
+
// Polyline flag (bit-coded; default = 0):
|
151
|
+
// https://help.autodesk.com/view/OARX/2023/ENU/?guid=GUID-ABF6B778-BE20-4B49-9B58-A94E64CEFFF3
|
152
|
+
//
|
153
|
+
// 1 = This is a closed polyline (or a polygon mesh closed in the M direction)
|
154
|
+
// 2 = Curve-fit vertices have been added
|
155
|
+
// 4 = Spline-fit vertices have been added
|
156
|
+
// 8 = This is a 3D polyline
|
157
|
+
// 16 = This is a 3D polygon mesh
|
158
|
+
// 32 = The polygon mesh is closed in the N direction
|
159
|
+
// 64 = The polyline is a polyface mesh
|
160
|
+
// 128 = The linetype pattern is generated continuously around the vertices of this polyline
|
161
|
+
var dbEntity = new AcDbPolyline();
|
162
|
+
dbEntity.closed = !!(polyline.flag & 0x01);
|
163
|
+
polyline.vertices.forEach(function (vertex, index) {
|
164
|
+
dbEntity.addVertexAt(index, new AcGePoint2d(vertex.x, vertex.y), vertex.bulge, vertex.startWidth, vertex.endWidth);
|
165
|
+
});
|
166
|
+
return dbEntity;
|
167
|
+
};
|
168
|
+
AcDbEntityConverter.prototype.convertHatch = function (hatch) {
|
169
|
+
var _a;
|
170
|
+
var dbEntity = new AcDbHatch();
|
171
|
+
(_a = hatch.definitionLines) === null || _a === void 0 ? void 0 : _a.forEach(function (item) {
|
172
|
+
dbEntity.definitionLines.push({
|
173
|
+
angle: item.angle,
|
174
|
+
origin: item.base,
|
175
|
+
delta: item.offset,
|
176
|
+
dashPattern: item.numberOfDashLengths > 0 ? item.dashLengths : []
|
177
|
+
});
|
178
|
+
});
|
179
|
+
dbEntity.hatchStyle = hatch.hatchStyle;
|
180
|
+
dbEntity.patternName = hatch.patternName;
|
181
|
+
dbEntity.patternType = hatch.patternType;
|
182
|
+
dbEntity.patternAngle = hatch.patternAngle == null ? 0 : hatch.patternAngle;
|
183
|
+
dbEntity.patternScale = hatch.patternScale == null ? 0 : hatch.patternScale;
|
184
|
+
var paths = hatch.boundaryPaths;
|
185
|
+
paths.forEach(function (path) {
|
186
|
+
var flag = path.boundaryPathTypeFlag;
|
187
|
+
// Check whether it is a polyline
|
188
|
+
if (flag & 0x02) {
|
189
|
+
var polylinePath = path;
|
190
|
+
var polyline_1 = new AcGePolyline2d();
|
191
|
+
polyline_1.closed = polylinePath.isClosed;
|
192
|
+
polylinePath.vertices.forEach(function (vertex, index) {
|
193
|
+
polyline_1.addVertexAt(index, {
|
194
|
+
x: vertex.x,
|
195
|
+
y: vertex.y,
|
196
|
+
bulge: vertex.bulge
|
197
|
+
});
|
198
|
+
});
|
199
|
+
dbEntity.add(polyline_1);
|
200
|
+
}
|
201
|
+
else {
|
202
|
+
var edgePath = path;
|
203
|
+
var loop_1 = new AcGeLoop2d();
|
204
|
+
edgePath.edges.forEach(function (edge) {
|
205
|
+
if (edge.type == 1) {
|
206
|
+
var line = edge;
|
207
|
+
loop_1.add(new AcGeLine2d(line.start, line.end));
|
208
|
+
}
|
209
|
+
else if (edge.type == 2) {
|
210
|
+
var arc = edge;
|
211
|
+
loop_1.add(new AcGeCircArc2d(arc.center, arc.radius, arc.startAngle, arc.endAngle, !arc.isCCW));
|
212
|
+
}
|
213
|
+
else if (edge.type == 3) {
|
214
|
+
var ellipse = edge;
|
215
|
+
var majorAxis = new AcGeVector2d();
|
216
|
+
majorAxis.subVectors(ellipse.end, ellipse.center);
|
217
|
+
var majorAxisRadius = Math.sqrt(Math.pow(ellipse.end.x, 2) + Math.pow(ellipse.end.y, 2));
|
218
|
+
// Property name 'lengthOfMinorAxis' is really confusing.
|
219
|
+
// Actually length of minor axis means percentage of major axis length.
|
220
|
+
var minorAxisRadius = majorAxisRadius * ellipse.lengthOfMinorAxis;
|
221
|
+
var startAngle = ellipse.startAngle;
|
222
|
+
var endAngle = ellipse.endAngle;
|
223
|
+
var rotation = Math.atan2(ellipse.end.y, ellipse.end.x);
|
224
|
+
if (!ellipse.isCCW) {
|
225
|
+
// when clockwise, need to handle start/end angles
|
226
|
+
startAngle = Math.PI * 2 - startAngle;
|
227
|
+
endAngle = Math.PI * 2 - endAngle;
|
228
|
+
}
|
229
|
+
loop_1.add(new AcGeEllipseArc2d(__assign(__assign({}, ellipse.center), { z: 0 }), majorAxisRadius, minorAxisRadius, startAngle, endAngle, !ellipse.isCCW, rotation));
|
230
|
+
}
|
231
|
+
else if (edge.type == 4) {
|
232
|
+
var spline = edge;
|
233
|
+
if (spline.numberOfControlPoints > 0 && spline.numberOfKnots > 0) {
|
234
|
+
var controlPoints = spline.controlPoints.map(function (item) {
|
235
|
+
return {
|
236
|
+
x: item.x,
|
237
|
+
y: item.y,
|
238
|
+
z: 0
|
239
|
+
};
|
240
|
+
});
|
241
|
+
var hasWeights_1 = true;
|
242
|
+
var weights = spline.controlPoints.map(function (item) {
|
243
|
+
if (item.weight == null)
|
244
|
+
hasWeights_1 = false;
|
245
|
+
return item.weight || 1;
|
246
|
+
});
|
247
|
+
loop_1.add(new AcGeSpline3d(controlPoints, spline.knots, hasWeights_1 ? weights : undefined));
|
248
|
+
}
|
249
|
+
else if (spline.numberOfFitData > 0) {
|
250
|
+
var fitPoints = spline.fitDatum.map(function (item) {
|
251
|
+
return {
|
252
|
+
x: item.x,
|
253
|
+
y: item.y,
|
254
|
+
z: 0
|
255
|
+
};
|
256
|
+
});
|
257
|
+
loop_1.add(new AcGeSpline3d(fitPoints, 'Uniform'));
|
258
|
+
}
|
259
|
+
}
|
260
|
+
});
|
261
|
+
dbEntity.add(loop_1);
|
262
|
+
}
|
263
|
+
});
|
264
|
+
return dbEntity;
|
265
|
+
};
|
266
|
+
AcDbEntityConverter.prototype.convertTable = function (table) {
|
267
|
+
var dbEntity = new AcDbTable(table.name, table.rowCount, table.columnCount);
|
268
|
+
dbEntity.attachmentPoint =
|
269
|
+
table.attachmentPoint;
|
270
|
+
dbEntity.position.copy(table.startPoint);
|
271
|
+
table.columnWidthArr.forEach(function (width, index) {
|
272
|
+
return dbEntity.setColumnWidth(index, width);
|
273
|
+
});
|
274
|
+
table.rowHeightArr.forEach(function (height, index) {
|
275
|
+
return dbEntity.setRowHeight(index, height);
|
276
|
+
});
|
277
|
+
table.cells.forEach(function (cell, index) {
|
278
|
+
dbEntity.setCell(index, cell);
|
279
|
+
});
|
280
|
+
return dbEntity;
|
281
|
+
};
|
282
|
+
AcDbEntityConverter.prototype.convertText = function (text) {
|
283
|
+
var _a, _b;
|
284
|
+
var dbEntity = new AcDbText();
|
285
|
+
dbEntity.textString = text.text;
|
286
|
+
dbEntity.styleName = text.styleName;
|
287
|
+
dbEntity.height = text.textHeight;
|
288
|
+
dbEntity.position.copy(text.startPoint);
|
289
|
+
dbEntity.rotation = text.rotation;
|
290
|
+
dbEntity.oblique = (_a = text.obliqueAngle) !== null && _a !== void 0 ? _a : 0;
|
291
|
+
dbEntity.thickness = text.thickness;
|
292
|
+
dbEntity.horizontalMode = text.halign;
|
293
|
+
dbEntity.verticalMode = text.valign;
|
294
|
+
dbEntity.widthFactor = (_b = text.xScale) !== null && _b !== void 0 ? _b : 1;
|
295
|
+
return dbEntity;
|
296
|
+
};
|
297
|
+
AcDbEntityConverter.prototype.convertMText = function (mtext) {
|
298
|
+
var dbEntity = new AcDbMText();
|
299
|
+
dbEntity.contents = mtext.text;
|
300
|
+
if (mtext.styleName != null) {
|
301
|
+
dbEntity.styleName = mtext.styleName;
|
302
|
+
}
|
303
|
+
dbEntity.height = mtext.textHeight;
|
304
|
+
dbEntity.width = mtext.rectWidth;
|
305
|
+
dbEntity.rotation = mtext.rotation || 0;
|
306
|
+
dbEntity.location = mtext.insertionPoint;
|
307
|
+
dbEntity.attachmentPoint =
|
308
|
+
mtext.attachmentPoint;
|
309
|
+
if (mtext.direction) {
|
310
|
+
dbEntity.direction = new AcGeVector3d(mtext.direction);
|
311
|
+
}
|
312
|
+
dbEntity.drawingDirection =
|
313
|
+
mtext.drawingDirection;
|
314
|
+
return dbEntity;
|
315
|
+
};
|
316
|
+
AcDbEntityConverter.prototype.convertLeader = function (leader) {
|
317
|
+
var dbEntity = new AcDbLeader();
|
318
|
+
leader.vertices.forEach(function (point) {
|
319
|
+
dbEntity.appendVertex(point);
|
320
|
+
});
|
321
|
+
dbEntity.hasArrowHead = leader.isArrowheadEnabled;
|
322
|
+
dbEntity.hasHookLine = leader.isHooklineExists;
|
323
|
+
dbEntity.isSplined = leader.isSpline;
|
324
|
+
dbEntity.dimensionStyle = leader.styleName;
|
325
|
+
dbEntity.annoType =
|
326
|
+
leader.leaderCreationFlag;
|
327
|
+
return dbEntity;
|
328
|
+
};
|
329
|
+
AcDbEntityConverter.prototype.convertDimension = function (dimension) {
|
330
|
+
if (dimension.subclassMarker == 'AcDbAlignedDimension' ||
|
331
|
+
dimension.subclassMarker == 'AcDbRotatedDimension') {
|
332
|
+
var entity = dimension;
|
333
|
+
var dbEntity = new AcDbAlignedDimension(entity.subDefinitionPoint1, entity.subDefinitionPoint2, entity.definitionPoint);
|
334
|
+
dbEntity.rotation = entity.rotationAngle;
|
335
|
+
this.processDimensionCommonAttrs(dimension, dbEntity);
|
336
|
+
return dbEntity;
|
337
|
+
}
|
338
|
+
else if (dimension.subclassMarker == 'AcDb3PointAngularDimension') {
|
339
|
+
var entity = dimension;
|
340
|
+
var dbEntity = new AcDb3PointAngularDimension(entity.centerPoint, entity.subDefinitionPoint1, entity.subDefinitionPoint2, entity.definitionPoint);
|
341
|
+
this.processDimensionCommonAttrs(dimension, dbEntity);
|
342
|
+
return dbEntity;
|
343
|
+
}
|
344
|
+
else if (dimension.subclassMarker == 'AcDbOrdinateDimension') {
|
345
|
+
var entity = dimension;
|
346
|
+
var dbEntity = new AcDbOrdinateDimension(entity.subDefinitionPoint1, entity.subDefinitionPoint2);
|
347
|
+
this.processDimensionCommonAttrs(dimension, dbEntity);
|
348
|
+
return dbEntity;
|
349
|
+
}
|
350
|
+
else if (dimension.subclassMarker == 'AcDbRadialDimension') {
|
351
|
+
var entity = dimension;
|
352
|
+
var dbEntity = new AcDbRadialDimension(entity.definitionPoint, entity.centerPoint, entity.leaderLength);
|
353
|
+
this.processDimensionCommonAttrs(dimension, dbEntity);
|
354
|
+
return dbEntity;
|
355
|
+
}
|
356
|
+
else if (dimension.subclassMarker == 'AcDbDiametricDimension') {
|
357
|
+
var entity = dimension;
|
358
|
+
var dbEntity = new AcDbDiametricDimension(entity.definitionPoint, entity.centerPoint, entity.leaderLength);
|
359
|
+
this.processDimensionCommonAttrs(dimension, dbEntity);
|
360
|
+
return dbEntity;
|
361
|
+
}
|
362
|
+
return null;
|
363
|
+
};
|
364
|
+
AcDbEntityConverter.prototype.processImage = function (image, dbImage) {
|
365
|
+
dbImage.position.copy(image.position);
|
366
|
+
dbImage.brightness = image.brightness;
|
367
|
+
dbImage.contrast = image.contrast;
|
368
|
+
dbImage.fade = image.fade;
|
369
|
+
dbImage.imageDefId = image.imageDefHandle.toString();
|
370
|
+
dbImage.isClipped = (image.flags | 0x0004) > 0;
|
371
|
+
dbImage.isImageShown = (image.flags | 0x0003) > 0;
|
372
|
+
dbImage.isImageTransparent = (image.flags | 0x0008) > 0;
|
373
|
+
image.clippingBoundaryPath.forEach(function (point) {
|
374
|
+
dbImage.clipBoundary.push(new AcGePoint2d(point));
|
375
|
+
});
|
376
|
+
dbImage.clipBoundaryType =
|
377
|
+
image.clippingBoundaryType;
|
378
|
+
// Calculate the scale factors
|
379
|
+
dbImage.width =
|
380
|
+
Math.sqrt(Math.pow(image.uPixel.x, 2) + Math.pow(image.uPixel.y, 2) + Math.pow(image.uPixel.z, 2)) * image.imageSize.x;
|
381
|
+
dbImage.height =
|
382
|
+
Math.sqrt(Math.pow(image.vPixel.x, 2) + Math.pow(image.vPixel.y, 2) + Math.pow(image.vPixel.z, 2)) * image.imageSize.y;
|
383
|
+
// Calculate the rotation angle
|
384
|
+
// Rotation is determined by the angle of the U-vector relative to the X-axis
|
385
|
+
dbImage.rotation = Math.atan2(image.uPixel.y, image.uPixel.x);
|
386
|
+
};
|
387
|
+
AcDbEntityConverter.prototype.convertImage = function (image) {
|
388
|
+
var dbImage = new AcDbRasterImage();
|
389
|
+
this.processImage(image, dbImage);
|
390
|
+
return dbImage;
|
391
|
+
};
|
392
|
+
// private convertWipeout(wipeout: WipeoutEntity) {
|
393
|
+
// const dbWipeout = new AcDbWipeout()
|
394
|
+
// this.processImage(wipeout, dbWipeout)
|
395
|
+
// return dbWipeout
|
396
|
+
// }
|
397
|
+
AcDbEntityConverter.prototype.convertViewport = function (viewport) {
|
398
|
+
var dbViewport = new AcDbViewport();
|
399
|
+
dbViewport.number = viewport.viewportId;
|
400
|
+
dbViewport.centerPoint.copy(viewport.viewportCenter);
|
401
|
+
dbViewport.height = viewport.height;
|
402
|
+
dbViewport.width = viewport.width;
|
403
|
+
dbViewport.viewCenter.copy(viewport.displayCenter);
|
404
|
+
dbViewport.viewHeight = viewport.viewHeight;
|
405
|
+
return dbViewport;
|
406
|
+
};
|
407
|
+
AcDbEntityConverter.prototype.convertRay = function (ray) {
|
408
|
+
var dbRay = new AcDbRay();
|
409
|
+
dbRay.basePoint.copy(ray.firstPoint);
|
410
|
+
dbRay.unitDir.copy(ray.unitDirection);
|
411
|
+
return dbRay;
|
412
|
+
};
|
413
|
+
AcDbEntityConverter.prototype.convertXline = function (xline) {
|
414
|
+
var dbXline = new AcDbXline();
|
415
|
+
dbXline.basePoint.copy(xline.firstPoint);
|
416
|
+
dbXline.unitDir.copy(xline.unitDirection);
|
417
|
+
return dbXline;
|
418
|
+
};
|
419
|
+
AcDbEntityConverter.prototype.convertBlockReference = function (blockReference) {
|
420
|
+
var dbBlockReference = new AcDbBlockReference(blockReference.name);
|
421
|
+
if (blockReference.insertionPoint)
|
422
|
+
dbBlockReference.position.copy(blockReference.insertionPoint);
|
423
|
+
dbBlockReference.scaleFactors.x = blockReference.xScale;
|
424
|
+
dbBlockReference.scaleFactors.y = blockReference.yScale;
|
425
|
+
dbBlockReference.scaleFactors.z = blockReference.zScale;
|
426
|
+
dbBlockReference.rotation = blockReference.rotation;
|
427
|
+
dbBlockReference.normal.copy(blockReference.extrusionDirection);
|
428
|
+
return dbBlockReference;
|
429
|
+
};
|
430
|
+
AcDbEntityConverter.prototype.processDimensionCommonAttrs = function (entity, dbEntity) {
|
431
|
+
dbEntity.dimBlockId = entity.name;
|
432
|
+
dbEntity.textPosition.copy(entity.textPoint);
|
433
|
+
dbEntity.textRotation = entity.textRotation || 0;
|
434
|
+
if (entity.textLineSpacingFactor) {
|
435
|
+
dbEntity.textLineSpacingFactor = entity.textLineSpacingFactor;
|
436
|
+
}
|
437
|
+
if (entity.textLineSpacingStyle) {
|
438
|
+
dbEntity.textLineSpacingStyle =
|
439
|
+
entity.textLineSpacingStyle;
|
440
|
+
}
|
441
|
+
dbEntity.dimensionStyleName = entity.styleName;
|
442
|
+
dbEntity.dimensionText = entity.text || '';
|
443
|
+
dbEntity.measurement = entity.measurement;
|
444
|
+
};
|
445
|
+
AcDbEntityConverter.prototype.processCommonAttrs = function (entity, dbEntity) {
|
446
|
+
dbEntity.layer = entity.layer;
|
447
|
+
dbEntity.objectId = entity.handle.toString();
|
448
|
+
dbEntity.ownerId = entity.ownerBlockRecordSoftId.toString();
|
449
|
+
if (entity.lineType != null) {
|
450
|
+
dbEntity.lineType = entity.lineType;
|
451
|
+
}
|
452
|
+
if (entity.lineweight != null) {
|
453
|
+
dbEntity.lineWeight = entity.lineweight;
|
454
|
+
}
|
455
|
+
if (entity.lineTypeScale != null) {
|
456
|
+
dbEntity.linetypeScale = entity.lineTypeScale;
|
457
|
+
}
|
458
|
+
if (entity.color != null) {
|
459
|
+
dbEntity.color.color = entity.color;
|
460
|
+
}
|
461
|
+
if (entity.colorIndex != null) {
|
462
|
+
dbEntity.color.colorIndex = entity.colorIndex;
|
463
|
+
}
|
464
|
+
if (entity.colorName != null) {
|
465
|
+
dbEntity.color.colorName = entity.colorName;
|
466
|
+
}
|
467
|
+
if (entity.isVisible != null) {
|
468
|
+
dbEntity.visibility = entity.isVisible;
|
469
|
+
}
|
470
|
+
if (entity.transparency != null) {
|
471
|
+
dbEntity.transparency = entity.transparency;
|
472
|
+
}
|
473
|
+
};
|
474
|
+
return AcDbEntityConverter;
|
475
|
+
}());
|
476
|
+
export { AcDbEntityConverter };
|
477
|
+
//# sourceMappingURL=AcDbEntitiyConverter.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcDbEntitiyConverter.js","sourceRoot":"","sources":["../src/AcDbEntitiyConverter.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import { AcDbConversionProgressCallback, AcDbDatabase, AcDbDatabaseConverter } from '@mlightcad/data-model';
|
2
|
+
import { DwgDatabase } from '@mlightcad/libredwg-web';
|
3
|
+
import { LibreDwgEx } from '@mlightcad/libredwg-web';
|
4
|
+
import { MainModule } from '@mlightcad/libredwg-web/wasm/libredwg-web';
|
5
|
+
/**
|
6
|
+
* Database converter for DWG files.
|
7
|
+
* @internal
|
8
|
+
*/
|
9
|
+
export declare class AcDbLibreDwgConverter extends AcDbDatabaseConverter<DwgDatabase> {
|
10
|
+
libredwg: LibreDwgEx;
|
11
|
+
constructor(instance: MainModule);
|
12
|
+
protected parse(data: string): DwgDatabase;
|
13
|
+
/**
|
14
|
+
* Gets all of fonts used by entities in model space and paper space
|
15
|
+
* @param dwg dwg database model
|
16
|
+
* @returns Returns all of fonts used by entities in model space and paper space
|
17
|
+
*/
|
18
|
+
protected getFonts(dwg: DwgDatabase): string[];
|
19
|
+
/**
|
20
|
+
* Iterate entities in model space to get fonts used by text, mtext and insert entities
|
21
|
+
*/
|
22
|
+
private getFontsInBlock;
|
23
|
+
protected processLineTypes(model: DwgDatabase, db: AcDbDatabase): void;
|
24
|
+
protected processTextStyles(model: DwgDatabase, db: AcDbDatabase): void;
|
25
|
+
protected processDimStyles(model: DwgDatabase, db: AcDbDatabase): void;
|
26
|
+
protected processLayers(model: DwgDatabase, db: AcDbDatabase): void;
|
27
|
+
protected processViewports(model: DwgDatabase, db: AcDbDatabase): void;
|
28
|
+
protected processBlockTables(model: DwgDatabase, db: AcDbDatabase): void;
|
29
|
+
protected processBlocks(_model: DwgDatabase, _db: AcDbDatabase): void;
|
30
|
+
private processEntitiesInBlock;
|
31
|
+
/**
|
32
|
+
* Breaks up the work into smaller chunks that are executed asynchronously. This is often referred to
|
33
|
+
* as "batch processing" or "cooperative multitasking," where the time-consuming task is broken into
|
34
|
+
* smaller pieces and executed in small intervals to allow the UI to remain responsive.
|
35
|
+
*/
|
36
|
+
protected processEntities(model: DwgDatabase, db: AcDbDatabase, minimumChunkSize: number, startPercentage: {
|
37
|
+
value: number;
|
38
|
+
}, progress?: AcDbConversionProgressCallback): Promise<void>;
|
39
|
+
protected processHeader(model: DwgDatabase, db: AcDbDatabase): void;
|
40
|
+
private processCommonTableEntryAttrs;
|
41
|
+
protected processObjects(model: DwgDatabase, db: AcDbDatabase): void;
|
42
|
+
private processLayouts;
|
43
|
+
private processImageDefs;
|
44
|
+
private processCommonObjectAttrs;
|
45
|
+
}
|
46
|
+
//# sourceMappingURL=AcDbLibreDwgConverter.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AcDbLibreDwgConverter.d.ts","sourceRoot":"","sources":["../src/AcDbLibreDwgConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,8BAA8B,EAC9B,YAAY,EACZ,qBAAqB,EAoBtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAIL,WAAW,EAKZ,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAA2B,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAA;AAItE;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB,CAAC,WAAW,CAAC;IAC3E,QAAQ,EAAE,UAAU,CAAA;gBAER,QAAQ,EAAE,UAAU;IAKhC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAe1C;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW;IAiCnC;;OAEG;IACH,OAAO,CAAC,eAAe;IA4BvB,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IAiB/D,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IAShE,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IA+E/D,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IAmB5D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IA0G/D,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IAyBjE,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY;YAIhD,sBAAsB;IAepC;;;;OAIG;cACa,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,YAAY,EAChB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAClC,QAAQ,CAAC,EAAE,8BAA8B;IAoC3C,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IAa5D,OAAO,CAAC,4BAA4B;IASpC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY;IAK7D,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,wBAAwB;CAOjC"}
|