@mlightcad/libredwg-web 0.7.3 → 0.7.5
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/dist/libredwg-web.js +1347 -5023
- package/dist/libredwg-web.umd.cjs +1347 -5026
- package/lib/converter/converter.d.ts +2 -0
- package/lib/converter/converter.js +272 -348
- package/lib/converter/dwgColorToMLeaderRawColor.d.ts +10 -0
- package/lib/converter/dwgColorToMLeaderRawColor.js +55 -0
- package/lib/converter/entityConverter.d.ts +3 -1
- package/lib/converter/entityConverter.js +679 -562
- package/lib/converter/index.d.ts +1 -0
- package/lib/converter/index.js +1 -0
- package/lib/database/database.d.ts +2 -1
- package/lib/database/entities/index.d.ts +2 -0
- package/lib/database/entities/index.js +2 -0
- package/lib/database/entities/multileader.d.ts +190 -0
- package/lib/database/entities/multileader.js +2 -0
- package/lib/database/entities/shape.d.ts +50 -0
- package/lib/database/entities/shape.js +2 -0
- package/lib/database/objects/index.d.ts +1 -0
- package/lib/database/objects/index.js +1 -0
- package/lib/database/objects/mleaderStyle.d.ts +101 -0
- package/lib/database/objects/mleaderStyle.js +2 -0
- package/lib/libredwg.d.ts +61 -0
- package/lib/libredwg.js +127 -21
- package/lib/types/enums.d.ts +17 -0
- package/lib/types/enums.js +18 -0
- package/package.json +11 -4
- package/wasm/libredwg-web.d.ts +24 -0
- package/wasm/libredwg-web.js +1 -1
- package/wasm/libredwg-web.wasm +0 -0
- package/lib/converter/stringConverter.d.ts +0 -3
- package/lib/converter/stringConverter.js +0 -7
- package/lib/database/entities/unknown.d.ts +0 -7
- package/lib/database/entities/unknown.js +0 -2
- package/lib/database/objects/unknown.d.ts +0 -7
- package/lib/database/objects/unknown.js +0 -2
- package/lib/debug.d.ts +0 -13
- package/lib/debug.js +0 -48
- package/lib/libredwg-web.d.ts +0 -3
- package/lib/libredwg-web.js +0 -2313
- package/lib/utils/common.d.ts +0 -4
- package/lib/utils/common.js +0 -12
- package/lib/utils/index.d.ts +0 -2
- package/lib/utils/index.js +0 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HEADER_VARIABLES } from '../database';
|
|
2
|
-
import { Dwg_Object_Type } from '../types';
|
|
2
|
+
import { Dwg_Object_Supertype, Dwg_Object_Type } from '../types';
|
|
3
|
+
import { dwgColorToMLeaderRawColor } from './dwgColorToMLeaderRawColor';
|
|
3
4
|
import { LibreEntityConverter } from './entityConverter';
|
|
4
5
|
import { idToString, isModelSpace, isPaperSpace } from './utils';
|
|
5
6
|
/**
|
|
@@ -42,6 +43,7 @@ export class LibreDwgConverter {
|
|
|
42
43
|
DICTIONARY: [],
|
|
43
44
|
IMAGEDEF: [],
|
|
44
45
|
LAYOUT: [],
|
|
46
|
+
MLEADERSTYLE: [],
|
|
45
47
|
SPATIAL_FILTER: []
|
|
46
48
|
},
|
|
47
49
|
header: {},
|
|
@@ -56,7 +58,7 @@ export class LibreDwgConverter {
|
|
|
56
58
|
for (let i = 0; i < num_objects; i++) {
|
|
57
59
|
const obj = libredwg.dwg_get_object(data, i);
|
|
58
60
|
if (obj) {
|
|
59
|
-
const tio =
|
|
61
|
+
const tio = this.safeObjectTio(obj);
|
|
60
62
|
if (tio) {
|
|
61
63
|
const fixedtype = libredwg.dwg_object_get_fixedtype(obj);
|
|
62
64
|
switch (fixedtype) {
|
|
@@ -83,7 +85,7 @@ export class LibreDwgConverter {
|
|
|
83
85
|
for (let i = 0; i < num_objects; i++) {
|
|
84
86
|
const obj = libredwg.dwg_get_object(data, i);
|
|
85
87
|
if (obj) {
|
|
86
|
-
const tio =
|
|
88
|
+
const tio = this.safeObjectTio(obj);
|
|
87
89
|
if (tio) {
|
|
88
90
|
const fixedtype = libredwg.dwg_object_get_fixedtype(obj);
|
|
89
91
|
switch (fixedtype) {
|
|
@@ -128,6 +130,9 @@ export class LibreDwgConverter {
|
|
|
128
130
|
case Dwg_Object_Type.DWG_TYPE_LAYOUT:
|
|
129
131
|
db.objects.LAYOUT.push(this.convertLayout(tio, obj));
|
|
130
132
|
break;
|
|
133
|
+
case Dwg_Object_Type.DWG_TYPE_MLEADERSTYLE:
|
|
134
|
+
db.objects.MLEADERSTYLE.push(this.convertMLeaderStyle(tio, obj));
|
|
135
|
+
break;
|
|
131
136
|
case Dwg_Object_Type.DWG_TYPE_SPATIAL_FILTER:
|
|
132
137
|
db.objects.SPATIAL_FILTER.push(this.convertSpatialFilter(tio, obj));
|
|
133
138
|
break;
|
|
@@ -156,6 +161,20 @@ export class LibreDwgConverter {
|
|
|
156
161
|
unknownEntityCount: this.entityConverter.unknownEntityCount
|
|
157
162
|
};
|
|
158
163
|
}
|
|
164
|
+
safeObjectTio(obj) {
|
|
165
|
+
const libredwg = this.libredwg;
|
|
166
|
+
try {
|
|
167
|
+
if (libredwg.dwg_object_get_supertype(obj) !=
|
|
168
|
+
Dwg_Object_Supertype.DWG_SUPERTYPE_OBJECT) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
const tio = libredwg.dwg_object_to_object_tio(obj);
|
|
172
|
+
return tio ? tio : null;
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
159
178
|
convertHeader(data, header) {
|
|
160
179
|
const libredwg = this.libredwg;
|
|
161
180
|
HEADER_VARIABLES.forEach(name => {
|
|
@@ -163,7 +182,7 @@ export class LibreDwgConverter {
|
|
|
163
182
|
if (name == 'DIMBLK' || name == 'DIMBLK1' || name == 'DIMBLK2') {
|
|
164
183
|
var_name = var_name + '_T';
|
|
165
184
|
}
|
|
166
|
-
let value = libredwg.
|
|
185
|
+
let value = libredwg.dwg_dynapi_header_data(data, var_name);
|
|
167
186
|
// Get object name if the 'value' is one Dwg_Object_Ref instance.
|
|
168
187
|
// TODO: handle 'CMLSTYLE' correctly
|
|
169
188
|
if (name == 'CELTYPE' ||
|
|
@@ -172,10 +191,10 @@ export class LibreDwgConverter {
|
|
|
172
191
|
name == 'DIMSTYLE' ||
|
|
173
192
|
name == 'DIMTXSTY' ||
|
|
174
193
|
name == 'TEXTSTYLE') {
|
|
175
|
-
value =
|
|
194
|
+
value = value ? libredwg.dwg_ref_get_object_name(value) : '';
|
|
176
195
|
}
|
|
177
196
|
else if (name == 'DRAGVS') {
|
|
178
|
-
value =
|
|
197
|
+
value = value ? (libredwg.dwg_ref_get_absref(value) ?? 2) : 2;
|
|
179
198
|
}
|
|
180
199
|
// @ts-expect-error header variable name
|
|
181
200
|
header[name] = value;
|
|
@@ -201,8 +220,8 @@ export class LibreDwgConverter {
|
|
|
201
220
|
}
|
|
202
221
|
convertAppId(item) {
|
|
203
222
|
const libredwg = this.libredwg;
|
|
204
|
-
const name = libredwg.
|
|
205
|
-
const flag = libredwg.
|
|
223
|
+
const name = libredwg.dwg_dynapi_entity_data(item, 'name');
|
|
224
|
+
const flag = libredwg.dwg_dynapi_entity_data(item, 'flag');
|
|
206
225
|
return {
|
|
207
226
|
name: name,
|
|
208
227
|
standardFlag: flag
|
|
@@ -218,21 +237,15 @@ export class LibreDwgConverter {
|
|
|
218
237
|
commonAttrs.name = block.name;
|
|
219
238
|
}
|
|
220
239
|
// The number of entities
|
|
221
|
-
const num_owned = libredwg.
|
|
222
|
-
|
|
223
|
-
const
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
const
|
|
229
|
-
const
|
|
230
|
-
.data;
|
|
231
|
-
const scalability = libredwg.dwg_dynapi_entity_value(item, 'block_scaling')
|
|
232
|
-
.data;
|
|
233
|
-
const layout_ptr = libredwg.dwg_dynapi_entity_value(item, 'layout')
|
|
234
|
-
.data;
|
|
235
|
-
const layout = idToString(libredwg.dwg_ref_get_absref(layout_ptr));
|
|
240
|
+
const num_owned = libredwg.dwg_dynapi_entity_data(item, 'num_owned');
|
|
241
|
+
const flags = libredwg.dwg_dynapi_entity_data(item, 'flag');
|
|
242
|
+
const description = libredwg.dwg_dynapi_entity_data(item, 'description');
|
|
243
|
+
const basePoint = libredwg.dwg_dynapi_entity_data(item, 'base_pt');
|
|
244
|
+
const insertionUnits = libredwg.dwg_dynapi_entity_data(item, 'insert_units');
|
|
245
|
+
const explodability = libredwg.dwg_dynapi_entity_data(item, 'explodable');
|
|
246
|
+
const scalability = libredwg.dwg_dynapi_entity_data(item, 'block_scaling');
|
|
247
|
+
const layout_ptr = libredwg.dwg_dynapi_entity_data(item, 'layout');
|
|
248
|
+
const layout = (libredwg.dwg_ref_get_id(layout_ptr) ?? '');
|
|
236
249
|
let bmpPreview = '';
|
|
237
250
|
const uint8ArrayToHexString = (bytes) => {
|
|
238
251
|
const hexChars = new Array(bytes.length);
|
|
@@ -251,8 +264,7 @@ export class LibreDwgConverter {
|
|
|
251
264
|
let entities = this.convertEntities(obj, commonAttrs.handle);
|
|
252
265
|
if (!entities || entities.length == 0) {
|
|
253
266
|
entities = [];
|
|
254
|
-
const entities_ptr = libredwg.
|
|
255
|
-
.data;
|
|
267
|
+
const entities_ptr = libredwg.dwg_dynapi_entity_data(item, 'entities');
|
|
256
268
|
if (entities_ptr) {
|
|
257
269
|
const object_ref_ptr_array = libredwg.dwg_ptr_to_object_ref_ptr_array(entities_ptr, num_owned);
|
|
258
270
|
const converter = this.entityConverter;
|
|
@@ -297,165 +309,88 @@ export class LibreDwgConverter {
|
|
|
297
309
|
convertDimStyle(item, obj) {
|
|
298
310
|
const libredwg = this.libredwg;
|
|
299
311
|
const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
|
|
300
|
-
const DIMTOL = libredwg.
|
|
301
|
-
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
const
|
|
311
|
-
|
|
312
|
-
const
|
|
313
|
-
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
const
|
|
319
|
-
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
const
|
|
325
|
-
|
|
326
|
-
const
|
|
327
|
-
|
|
328
|
-
const
|
|
329
|
-
|
|
330
|
-
const
|
|
331
|
-
|
|
332
|
-
const
|
|
333
|
-
|
|
334
|
-
const
|
|
335
|
-
|
|
336
|
-
const
|
|
337
|
-
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
const
|
|
341
|
-
|
|
342
|
-
const
|
|
343
|
-
|
|
344
|
-
const
|
|
345
|
-
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
const
|
|
349
|
-
|
|
350
|
-
const
|
|
351
|
-
|
|
352
|
-
const
|
|
353
|
-
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
const
|
|
357
|
-
|
|
358
|
-
const
|
|
359
|
-
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
const
|
|
365
|
-
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
const
|
|
369
|
-
|
|
370
|
-
const
|
|
371
|
-
|
|
372
|
-
const
|
|
373
|
-
const
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
const
|
|
377
|
-
|
|
378
|
-
const
|
|
379
|
-
|
|
380
|
-
const
|
|
381
|
-
|
|
382
|
-
const DIMAZIN = libredwg.dwg_dynapi_entity_value(item, 'DIMAZIN')
|
|
383
|
-
.data;
|
|
384
|
-
const DIMARCSYM = libredwg.dwg_dynapi_entity_value(item, 'DIMARCSYM')
|
|
385
|
-
.data;
|
|
386
|
-
const DIMTXT = libredwg.dwg_dynapi_entity_value(item, 'DIMTXT')
|
|
387
|
-
.data;
|
|
388
|
-
const DIMCEN = libredwg.dwg_dynapi_entity_value(item, 'DIMCEN')
|
|
389
|
-
.data;
|
|
390
|
-
const DIMTSZ = libredwg.dwg_dynapi_entity_value(item, 'DIMTSZ')
|
|
391
|
-
.data;
|
|
392
|
-
const DIMALTF = libredwg.dwg_dynapi_entity_value(item, 'DIMALTF')
|
|
393
|
-
.data;
|
|
394
|
-
const DIMLFAC = libredwg.dwg_dynapi_entity_value(item, 'DIMLFAC')
|
|
395
|
-
.data;
|
|
396
|
-
const DIMTVP = libredwg.dwg_dynapi_entity_value(item, 'DIMTVP')
|
|
397
|
-
.data;
|
|
398
|
-
const DIMTFAC = libredwg.dwg_dynapi_entity_value(item, 'DIMTFAC')
|
|
399
|
-
.data;
|
|
400
|
-
const DIMGAP = libredwg.dwg_dynapi_entity_value(item, 'DIMGAP')
|
|
401
|
-
.data;
|
|
402
|
-
const DIMPOST = libredwg.dwg_dynapi_entity_value(item, 'DIMPOST')
|
|
403
|
-
.data;
|
|
404
|
-
const DIMAPOST = libredwg.dwg_dynapi_entity_value(item, 'DIMAPOST')
|
|
405
|
-
.data;
|
|
406
|
-
const DIMBLK_T = libredwg.dwg_dynapi_entity_value(item, 'DIMBLK_T')
|
|
407
|
-
.data;
|
|
408
|
-
const DIMBLK1_T = libredwg.dwg_dynapi_entity_value(item, 'DIMBLK1_T')
|
|
409
|
-
.data;
|
|
410
|
-
const DIMBLK2_T = libredwg.dwg_dynapi_entity_value(item, 'DIMBLK2_T')
|
|
411
|
-
.data;
|
|
412
|
-
const DIMALTRND = libredwg.dwg_dynapi_entity_value(item, 'DIMALTRND')
|
|
413
|
-
.data;
|
|
414
|
-
const DIMCLRD_N = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRD_N')
|
|
415
|
-
.data;
|
|
416
|
-
const DIMCLRE_N = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRE_N')
|
|
417
|
-
.data;
|
|
418
|
-
const DIMCLRT_N = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRT_N')
|
|
419
|
-
.data;
|
|
420
|
-
const DIMCLRD = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRD')
|
|
421
|
-
.data;
|
|
422
|
-
const DIMCLRE = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRE')
|
|
423
|
-
.data;
|
|
424
|
-
const DIMCLRT = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRT')
|
|
425
|
-
.data;
|
|
426
|
-
const DIMADEC = libredwg.dwg_dynapi_entity_value(item, 'DIMADEC')
|
|
427
|
-
.data;
|
|
428
|
-
const DIMFRAC = libredwg.dwg_dynapi_entity_value(item, 'DIMFRAC')
|
|
429
|
-
.data;
|
|
430
|
-
const DIMLUNIT = libredwg.dwg_dynapi_entity_value(item, 'DIMLUNIT')
|
|
431
|
-
.data;
|
|
432
|
-
const DIMDSEP = libredwg.dwg_dynapi_entity_value(item, 'DIMDSEP')
|
|
433
|
-
.data;
|
|
434
|
-
const DIMTMOVE = libredwg.dwg_dynapi_entity_value(item, 'DIMTMOVE')
|
|
435
|
-
.data;
|
|
436
|
-
const DIMATFIT = libredwg.dwg_dynapi_entity_value(item, 'DIMATFIT')
|
|
437
|
-
.data;
|
|
438
|
-
const DIMFXLON = libredwg.dwg_dynapi_entity_value(item, 'DIMFXLON')
|
|
439
|
-
.data;
|
|
440
|
-
const DIMTXTDIRECTION = libredwg.dwg_dynapi_entity_value(item, 'DIMTXTDIRECTION').data;
|
|
441
|
-
const DIMALTMZF = libredwg.dwg_dynapi_entity_value(item, 'DIMALTMZF')
|
|
442
|
-
.data;
|
|
443
|
-
const DIMALTMZS = libredwg.dwg_dynapi_entity_value(item, 'DIMALTMZS')
|
|
444
|
-
.data;
|
|
445
|
-
const DIMMZF = libredwg.dwg_dynapi_entity_value(item, 'DIMMZF')
|
|
446
|
-
.data;
|
|
447
|
-
const DIMMZS = libredwg.dwg_dynapi_entity_value(item, 'DIMMZS')
|
|
448
|
-
.data;
|
|
449
|
-
const DIMLWD = libredwg.dwg_dynapi_entity_value(item, 'DIMLWD')
|
|
450
|
-
.data;
|
|
451
|
-
const DIMLWE = libredwg.dwg_dynapi_entity_value(item, 'DIMLWE')
|
|
452
|
-
.data;
|
|
453
|
-
const DIMTXSTY_Ptr = libredwg.dwg_dynapi_entity_value(item, 'DIMTXSTY')
|
|
454
|
-
.data;
|
|
455
|
-
const DIMTXSTY = libredwg.dwg_ref_get_absref(DIMTXSTY_Ptr);
|
|
456
|
-
const DIMLDRBLK_Ptr = libredwg.dwg_dynapi_entity_value(item, 'DIMLDRBLK')
|
|
457
|
-
.data;
|
|
458
|
-
const DIMLDRBLK = libredwg.dwg_ref_get_absref(DIMLDRBLK_Ptr);
|
|
312
|
+
const DIMTOL = libredwg.dwg_dynapi_entity_data(item, 'DIMTOL');
|
|
313
|
+
const DIMLIM = libredwg.dwg_dynapi_entity_data(item, 'DIMLIM');
|
|
314
|
+
const DIMTIH = libredwg.dwg_dynapi_entity_data(item, 'DIMTIH');
|
|
315
|
+
const DIMTOH = libredwg.dwg_dynapi_entity_data(item, 'DIMTOH');
|
|
316
|
+
const DIMSE1 = libredwg.dwg_dynapi_entity_data(item, 'DIMSE1');
|
|
317
|
+
const DIMSE2 = libredwg.dwg_dynapi_entity_data(item, 'DIMSE2');
|
|
318
|
+
const DIMALT = libredwg.dwg_dynapi_entity_data(item, 'DIMALT');
|
|
319
|
+
const DIMTOFL = libredwg.dwg_dynapi_entity_data(item, 'DIMTOFL');
|
|
320
|
+
const DIMSAH = libredwg.dwg_dynapi_entity_data(item, 'DIMSAH');
|
|
321
|
+
const DIMTIX = libredwg.dwg_dynapi_entity_data(item, 'DIMTIX');
|
|
322
|
+
const DIMSOXD = libredwg.dwg_dynapi_entity_data(item, 'DIMSOXD');
|
|
323
|
+
const DIMALTD = libredwg.dwg_dynapi_entity_data(item, 'DIMALTD');
|
|
324
|
+
const DIMZIN = libredwg.dwg_dynapi_entity_data(item, 'DIMZIN');
|
|
325
|
+
const DIMSD1 = libredwg.dwg_dynapi_entity_data(item, 'DIMSD1');
|
|
326
|
+
const DIMSD2 = libredwg.dwg_dynapi_entity_data(item, 'DIMSD2');
|
|
327
|
+
const DIMTOLJ = libredwg.dwg_dynapi_entity_data(item, 'DIMTOLJ');
|
|
328
|
+
const DIMJUST = libredwg.dwg_dynapi_entity_data(item, 'DIMJUST');
|
|
329
|
+
const DIMFIT = libredwg.dwg_dynapi_entity_data(item, 'DIMFIT');
|
|
330
|
+
const DIMUPT = libredwg.dwg_dynapi_entity_data(item, 'DIMUPT');
|
|
331
|
+
const DIMTZIN = libredwg.dwg_dynapi_entity_data(item, 'DIMTZIN');
|
|
332
|
+
const DIMALTZ = libredwg.dwg_dynapi_entity_data(item, 'DIMALTZ');
|
|
333
|
+
const DIMALTTZ = libredwg.dwg_dynapi_entity_data(item, 'DIMALTTZ');
|
|
334
|
+
const DIMTAD = libredwg.dwg_dynapi_entity_data(item, 'DIMTAD');
|
|
335
|
+
const DIMUNIT = libredwg.dwg_dynapi_entity_data(item, 'DIMUNIT');
|
|
336
|
+
const DIMAUNIT = libredwg.dwg_dynapi_entity_data(item, 'DIMAUNIT');
|
|
337
|
+
const DIMDEC = libredwg.dwg_dynapi_entity_data(item, 'DIMDEC');
|
|
338
|
+
const DIMTDEC = libredwg.dwg_dynapi_entity_data(item, 'DIMTDEC');
|
|
339
|
+
const DIMALTU = libredwg.dwg_dynapi_entity_data(item, 'DIMALTU');
|
|
340
|
+
const DIMALTTD = libredwg.dwg_dynapi_entity_data(item, 'DIMALTTD');
|
|
341
|
+
const DIMSCALE = libredwg.dwg_dynapi_entity_data(item, 'DIMSCALE');
|
|
342
|
+
const DIMASZ = libredwg.dwg_dynapi_entity_data(item, 'DIMASZ');
|
|
343
|
+
const DIMEXO = libredwg.dwg_dynapi_entity_data(item, 'DIMEXO');
|
|
344
|
+
const DIMDLI = libredwg.dwg_dynapi_entity_data(item, 'DIMDLI');
|
|
345
|
+
const DIMEXE = libredwg.dwg_dynapi_entity_data(item, 'DIMEXE');
|
|
346
|
+
const DIMRND = libredwg.dwg_dynapi_entity_data(item, 'DIMRND');
|
|
347
|
+
const DIMDLE = libredwg.dwg_dynapi_entity_data(item, 'DIMDLE');
|
|
348
|
+
const DIMTP = libredwg.dwg_dynapi_entity_data(item, 'DIMTP');
|
|
349
|
+
const DIMTM = libredwg.dwg_dynapi_entity_data(item, 'DIMTM');
|
|
350
|
+
const DIMFXL = libredwg.dwg_dynapi_entity_data(item, 'DIMFXL');
|
|
351
|
+
const DIMJOGANG = libredwg.dwg_dynapi_entity_data(item, 'DIMJOGANG');
|
|
352
|
+
const DIMTFILL = libredwg.dwg_dynapi_entity_data(item, 'DIMTFILL');
|
|
353
|
+
const DIMTFILLCLR = libredwg.dwg_dynapi_entity_data(item, 'DIMTFILLCLR');
|
|
354
|
+
const DIMAZIN = libredwg.dwg_dynapi_entity_data(item, 'DIMAZIN');
|
|
355
|
+
const DIMARCSYM = libredwg.dwg_dynapi_entity_data(item, 'DIMARCSYM');
|
|
356
|
+
const DIMTXT = libredwg.dwg_dynapi_entity_data(item, 'DIMTXT');
|
|
357
|
+
const DIMCEN = libredwg.dwg_dynapi_entity_data(item, 'DIMCEN');
|
|
358
|
+
const DIMTSZ = libredwg.dwg_dynapi_entity_data(item, 'DIMTSZ');
|
|
359
|
+
const DIMALTF = libredwg.dwg_dynapi_entity_data(item, 'DIMALTF');
|
|
360
|
+
const DIMLFAC = libredwg.dwg_dynapi_entity_data(item, 'DIMLFAC');
|
|
361
|
+
const DIMTVP = libredwg.dwg_dynapi_entity_data(item, 'DIMTVP');
|
|
362
|
+
const DIMTFAC = libredwg.dwg_dynapi_entity_data(item, 'DIMTFAC');
|
|
363
|
+
const DIMGAP = libredwg.dwg_dynapi_entity_data(item, 'DIMGAP');
|
|
364
|
+
const DIMPOST = libredwg.dwg_dynapi_entity_data(item, 'DIMPOST');
|
|
365
|
+
const DIMAPOST = libredwg.dwg_dynapi_entity_data(item, 'DIMAPOST');
|
|
366
|
+
const DIMBLK_T = libredwg.dwg_dynapi_entity_data(item, 'DIMBLK_T');
|
|
367
|
+
const DIMBLK1_T = libredwg.dwg_dynapi_entity_data(item, 'DIMBLK1_T');
|
|
368
|
+
const DIMBLK2_T = libredwg.dwg_dynapi_entity_data(item, 'DIMBLK2_T');
|
|
369
|
+
const DIMALTRND = libredwg.dwg_dynapi_entity_data(item, 'DIMALTRND');
|
|
370
|
+
const DIMCLRD_N = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRD_N');
|
|
371
|
+
const DIMCLRE_N = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRE_N');
|
|
372
|
+
const DIMCLRT_N = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRT_N');
|
|
373
|
+
const DIMCLRD = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRD');
|
|
374
|
+
const DIMCLRE = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRE');
|
|
375
|
+
const DIMCLRT = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRT');
|
|
376
|
+
const DIMADEC = libredwg.dwg_dynapi_entity_data(item, 'DIMADEC');
|
|
377
|
+
const DIMFRAC = libredwg.dwg_dynapi_entity_data(item, 'DIMFRAC');
|
|
378
|
+
const DIMLUNIT = libredwg.dwg_dynapi_entity_data(item, 'DIMLUNIT');
|
|
379
|
+
const DIMDSEP = libredwg.dwg_dynapi_entity_data(item, 'DIMDSEP');
|
|
380
|
+
const DIMTMOVE = libredwg.dwg_dynapi_entity_data(item, 'DIMTMOVE');
|
|
381
|
+
const DIMATFIT = libredwg.dwg_dynapi_entity_data(item, 'DIMATFIT');
|
|
382
|
+
const DIMFXLON = libredwg.dwg_dynapi_entity_data(item, 'DIMFXLON');
|
|
383
|
+
const DIMTXTDIRECTION = libredwg.dwg_dynapi_entity_data(item, 'DIMTXTDIRECTION');
|
|
384
|
+
const DIMALTMZF = libredwg.dwg_dynapi_entity_data(item, 'DIMALTMZF');
|
|
385
|
+
const DIMALTMZS = libredwg.dwg_dynapi_entity_data(item, 'DIMALTMZS');
|
|
386
|
+
const DIMMZF = libredwg.dwg_dynapi_entity_data(item, 'DIMMZF');
|
|
387
|
+
const DIMMZS = libredwg.dwg_dynapi_entity_data(item, 'DIMMZS');
|
|
388
|
+
const DIMLWD = libredwg.dwg_dynapi_entity_data(item, 'DIMLWD');
|
|
389
|
+
const DIMLWE = libredwg.dwg_dynapi_entity_data(item, 'DIMLWE');
|
|
390
|
+
const DIMTXSTY_Ptr = libredwg.dwg_dynapi_entity_data(item, 'DIMTXSTY');
|
|
391
|
+
const DIMTXSTY = libredwg.dwg_ref_get_absref(DIMTXSTY_Ptr) ?? undefined;
|
|
392
|
+
const DIMLDRBLK_Ptr = libredwg.dwg_dynapi_entity_data(item, 'DIMLDRBLK');
|
|
393
|
+
const DIMLDRBLK = libredwg.dwg_ref_get_absref(DIMLDRBLK_Ptr) ?? undefined;
|
|
459
394
|
return {
|
|
460
395
|
...commonAttrs,
|
|
461
396
|
DIMPOST: DIMPOST,
|
|
@@ -543,22 +478,15 @@ export class LibreDwgConverter {
|
|
|
543
478
|
convertLayer(item, obj) {
|
|
544
479
|
const libredwg = this.libredwg;
|
|
545
480
|
const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
|
|
546
|
-
const flag = libredwg.
|
|
547
|
-
const frozen = libredwg.
|
|
548
|
-
|
|
549
|
-
const
|
|
550
|
-
const
|
|
551
|
-
|
|
552
|
-
const
|
|
553
|
-
|
|
554
|
-
const
|
|
555
|
-
.data;
|
|
556
|
-
const linewt = libredwg.dwg_dynapi_entity_value(item, 'linewt')
|
|
557
|
-
.data;
|
|
558
|
-
const color = libredwg.dwg_dynapi_entity_value(item, 'color')
|
|
559
|
-
.data;
|
|
560
|
-
const ltypeRef = libredwg.dwg_dynapi_entity_value(item, 'ltype')
|
|
561
|
-
.data;
|
|
481
|
+
const flag = libredwg.dwg_dynapi_entity_data(item, 'flag');
|
|
482
|
+
const frozen = libredwg.dwg_dynapi_entity_data(item, 'frozen');
|
|
483
|
+
const off = libredwg.dwg_dynapi_entity_data(item, 'off');
|
|
484
|
+
const frozenInNew = libredwg.dwg_dynapi_entity_data(item, 'frozen_in_new');
|
|
485
|
+
const locked = libredwg.dwg_dynapi_entity_data(item, 'plotflockedlag');
|
|
486
|
+
const plotFlag = libredwg.dwg_dynapi_entity_data(item, 'plotflag');
|
|
487
|
+
const linewt = libredwg.dwg_dynapi_entity_data(item, 'linewt');
|
|
488
|
+
const color = libredwg.dwg_dynapi_entity_data(item, 'color');
|
|
489
|
+
const ltypeRef = libredwg.dwg_dynapi_entity_data(item, 'ltype');
|
|
562
490
|
let ltypeName = 'Continuous';
|
|
563
491
|
if (ltypeRef) {
|
|
564
492
|
try {
|
|
@@ -609,15 +537,11 @@ export class LibreDwgConverter {
|
|
|
609
537
|
convertLineType(item, obj) {
|
|
610
538
|
const libredwg = this.libredwg;
|
|
611
539
|
const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
|
|
612
|
-
const flag = libredwg.
|
|
613
|
-
const description = libredwg.
|
|
614
|
-
|
|
615
|
-
const
|
|
616
|
-
|
|
617
|
-
const patternLen = libredwg.dwg_dynapi_entity_value(item, 'pattern_len')
|
|
618
|
-
.data;
|
|
619
|
-
const dashes = libredwg.dwg_dynapi_entity_value(item, 'dashes')
|
|
620
|
-
.data;
|
|
540
|
+
const flag = libredwg.dwg_dynapi_entity_data(item, 'flag');
|
|
541
|
+
const description = libredwg.dwg_dynapi_entity_data(item, 'description');
|
|
542
|
+
const numDashes = libredwg.dwg_dynapi_entity_data(item, 'numdashes');
|
|
543
|
+
const patternLen = libredwg.dwg_dynapi_entity_data(item, 'pattern_len');
|
|
544
|
+
const dashes = libredwg.dwg_dynapi_entity_data(item, 'dashes');
|
|
621
545
|
const dashArray = dashes
|
|
622
546
|
? libredwg.dwg_ptr_to_ltype_dash_array(dashes, numDashes)
|
|
623
547
|
: [];
|
|
@@ -651,19 +575,13 @@ export class LibreDwgConverter {
|
|
|
651
575
|
convertStyle(item, obj) {
|
|
652
576
|
const libredwg = this.libredwg;
|
|
653
577
|
const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
|
|
654
|
-
const standardFlag = libredwg.
|
|
655
|
-
|
|
656
|
-
const
|
|
657
|
-
|
|
658
|
-
const
|
|
659
|
-
|
|
660
|
-
const
|
|
661
|
-
const lastHeight = libredwg.dwg_dynapi_entity_value(item, 'last_height')
|
|
662
|
-
.data;
|
|
663
|
-
const font = libredwg.dwg_dynapi_entity_value(item, 'font_file')
|
|
664
|
-
.data;
|
|
665
|
-
const bigFont = libredwg.dwg_dynapi_entity_value(item, 'bigfont_file')
|
|
666
|
-
.data;
|
|
578
|
+
const standardFlag = libredwg.dwg_dynapi_entity_data(item, 'flag');
|
|
579
|
+
const widthFactor = libredwg.dwg_dynapi_entity_data(item, 'width_factor');
|
|
580
|
+
const obliqueAngle = libredwg.dwg_dynapi_entity_data(item, 'oblique_angle');
|
|
581
|
+
const textGenerationFlag = libredwg.dwg_dynapi_entity_data(item, 'generation');
|
|
582
|
+
const lastHeight = libredwg.dwg_dynapi_entity_data(item, 'last_height');
|
|
583
|
+
const font = libredwg.dwg_dynapi_entity_data(item, 'font_file');
|
|
584
|
+
const bigFont = libredwg.dwg_dynapi_entity_data(item, 'bigfont_file');
|
|
667
585
|
return {
|
|
668
586
|
...commonAttrs,
|
|
669
587
|
standardFlag: standardFlag,
|
|
@@ -679,73 +597,47 @@ export class LibreDwgConverter {
|
|
|
679
597
|
convertViewport(item, obj) {
|
|
680
598
|
const libredwg = this.libredwg;
|
|
681
599
|
const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
|
|
682
|
-
const standardFlag = libredwg.
|
|
683
|
-
|
|
684
|
-
const
|
|
685
|
-
|
|
686
|
-
const
|
|
687
|
-
|
|
688
|
-
const
|
|
689
|
-
|
|
690
|
-
const
|
|
691
|
-
|
|
692
|
-
const
|
|
693
|
-
const
|
|
694
|
-
|
|
695
|
-
const
|
|
696
|
-
|
|
697
|
-
const
|
|
698
|
-
const
|
|
699
|
-
const viewMode = libredwg.dwg_dynapi_entity_value(item, 'VIEWMODE')
|
|
700
|
-
.data;
|
|
701
|
-
const renderMode = libredwg.dwg_dynapi_entity_value(item, 'render_mode')
|
|
702
|
-
.data;
|
|
703
|
-
const isDefaultLightingOn = libredwg.dwg_dynapi_entity_value(item, 'use_default_lights')
|
|
704
|
-
.data != 0;
|
|
705
|
-
const defaultLightningType = libredwg.dwg_dynapi_entity_value(item, 'default_lightning_type').data;
|
|
706
|
-
const brightness = libredwg.dwg_dynapi_entity_value(item, 'brightness')
|
|
707
|
-
.data;
|
|
708
|
-
const contrast = libredwg.dwg_dynapi_entity_value(item, 'contrast')
|
|
709
|
-
.data;
|
|
710
|
-
const ambient_color = libredwg.dwg_dynapi_entity_value(item, 'ambient_color').data;
|
|
600
|
+
const standardFlag = libredwg.dwg_dynapi_entity_data(item, 'flag');
|
|
601
|
+
const viewHeight = libredwg.dwg_dynapi_entity_data(item, 'VIEWSIZE');
|
|
602
|
+
const aspectRatio = libredwg.dwg_dynapi_entity_data(item, 'aspect_ratio');
|
|
603
|
+
const center = libredwg.dwg_dynapi_entity_data(item, 'VIEWCTR');
|
|
604
|
+
const viewTarget = libredwg.dwg_dynapi_entity_data(item, 'view_target');
|
|
605
|
+
const viewDirectionFromTarget = libredwg.dwg_dynapi_entity_data(item, 'VIEWDIR');
|
|
606
|
+
const viewTwistAngle = libredwg.dwg_dynapi_entity_data(item, 'view_twist');
|
|
607
|
+
const lensLength = libredwg.dwg_dynapi_entity_data(item, 'lens_length');
|
|
608
|
+
const frontClippingPlane = libredwg.dwg_dynapi_entity_data(item, 'front_clip_z');
|
|
609
|
+
const backClippingPlane = libredwg.dwg_dynapi_entity_data(item, 'back_clip_z');
|
|
610
|
+
const viewMode = libredwg.dwg_dynapi_entity_data(item, 'VIEWMODE');
|
|
611
|
+
const renderMode = libredwg.dwg_dynapi_entity_data(item, 'render_mode');
|
|
612
|
+
const isDefaultLightingOn = libredwg.dwg_dynapi_entity_data(item, 'use_default_lights') != 0;
|
|
613
|
+
const defaultLightningType = libredwg.dwg_dynapi_entity_data(item, 'default_lightning_type');
|
|
614
|
+
const brightness = libredwg.dwg_dynapi_entity_data(item, 'brightness');
|
|
615
|
+
const contrast = libredwg.dwg_dynapi_entity_data(item, 'contrast');
|
|
616
|
+
const ambient_color = libredwg.dwg_dynapi_entity_data(item, 'ambient_color');
|
|
711
617
|
// ViewportTableRecord
|
|
712
|
-
const lowerLeftCorner = libredwg.
|
|
713
|
-
|
|
714
|
-
const upperRightCorner = libredwg.dwg_dynapi_entity_value(item, 'upper_right').data;
|
|
618
|
+
const lowerLeftCorner = libredwg.dwg_dynapi_entity_data(item, 'lower_left');
|
|
619
|
+
const upperRightCorner = libredwg.dwg_dynapi_entity_data(item, 'upper_right');
|
|
715
620
|
// TODO: Not sure whether 'circleSides' is equal to 'circle_zoom'
|
|
716
|
-
const circleSides = libredwg.
|
|
717
|
-
|
|
718
|
-
const ucsIconSetting = libredwg.dwg_dynapi_entity_value(item, 'UCSICON')
|
|
719
|
-
.data;
|
|
621
|
+
const circleSides = libredwg.dwg_dynapi_entity_data(item, 'circle_zoom');
|
|
622
|
+
const ucsIconSetting = libredwg.dwg_dynapi_entity_data(item, 'UCSICON');
|
|
720
623
|
// TODO: Not sure whether 'gridSpacing' is equal to 'GRIDUNIT'
|
|
721
|
-
const gridSpacing = libredwg.
|
|
722
|
-
|
|
723
|
-
const
|
|
724
|
-
.data;
|
|
725
|
-
const snapBasePoint = libredwg.dwg_dynapi_entity_value(item, 'SNAPBASE')
|
|
726
|
-
.data;
|
|
624
|
+
const gridSpacing = libredwg.dwg_dynapi_entity_data(item, 'GRIDUNIT');
|
|
625
|
+
const snapRotationAngle = libredwg.dwg_dynapi_entity_data(item, 'SNAPANG');
|
|
626
|
+
const snapBasePoint = libredwg.dwg_dynapi_entity_data(item, 'SNAPBASE');
|
|
727
627
|
// TODO: Not sure whether 'snapSpacing' is equal to 'SNAPUNIT'
|
|
728
|
-
const snapSpacing = libredwg.
|
|
729
|
-
|
|
730
|
-
const
|
|
731
|
-
|
|
732
|
-
const
|
|
733
|
-
|
|
734
|
-
const
|
|
735
|
-
.data;
|
|
736
|
-
const elevation = libredwg.dwg_dynapi_entity_value(item, 'ucs_elevation')
|
|
737
|
-
.data;
|
|
738
|
-
const majorGridLines = libredwg.dwg_dynapi_entity_value(item, 'grid_major')
|
|
739
|
-
.data;
|
|
740
|
-
const background = libredwg.dwg_dynapi_entity_value(item, 'background')
|
|
741
|
-
.data;
|
|
628
|
+
const snapSpacing = libredwg.dwg_dynapi_entity_data(item, 'SNAPUNIT');
|
|
629
|
+
const ucsOrigin = libredwg.dwg_dynapi_entity_data(item, 'ucsorg');
|
|
630
|
+
const ucsXAxis = libredwg.dwg_dynapi_entity_data(item, 'ucsxdir');
|
|
631
|
+
const ucsYAxis = libredwg.dwg_dynapi_entity_data(item, 'ucsydir');
|
|
632
|
+
const elevation = libredwg.dwg_dynapi_entity_data(item, 'ucs_elevation');
|
|
633
|
+
const majorGridLines = libredwg.dwg_dynapi_entity_data(item, 'grid_major');
|
|
634
|
+
const background = libredwg.dwg_dynapi_entity_data(item, 'background');
|
|
742
635
|
const backgroundObjectId = background
|
|
743
|
-
?
|
|
636
|
+
? (libredwg.dwg_ref_get_id(background) ?? '')
|
|
744
637
|
: undefined;
|
|
745
|
-
const visualstyle = libredwg.
|
|
746
|
-
.data;
|
|
638
|
+
const visualstyle = libredwg.dwg_dynapi_entity_data(item, 'visualstyle');
|
|
747
639
|
const visualStyleObjectId = visualstyle
|
|
748
|
-
?
|
|
640
|
+
? (libredwg.dwg_ref_get_id(visualstyle) ?? '')
|
|
749
641
|
: undefined;
|
|
750
642
|
// BITCODE_B UCSFOLLOW;
|
|
751
643
|
// BITCODE_B FASTZOOM;
|
|
@@ -810,19 +702,16 @@ export class LibreDwgConverter {
|
|
|
810
702
|
return {
|
|
811
703
|
handle: idToString(handle.value),
|
|
812
704
|
ownerHandle: idToString(ownerhandle.absolute_ref),
|
|
813
|
-
name: libredwg.
|
|
705
|
+
name: libredwg.dwg_dynapi_entity_data(tio, 'name')
|
|
814
706
|
};
|
|
815
707
|
}
|
|
816
708
|
convertDictionary(item, obj) {
|
|
817
709
|
const libredwg = this.libredwg;
|
|
818
710
|
const commonAttrs = this.getCommonObjectAttrs(obj);
|
|
819
|
-
const isHardOwner = libredwg.
|
|
820
|
-
|
|
821
|
-
const
|
|
822
|
-
|
|
823
|
-
const numitems = libredwg.dwg_dynapi_entity_value(item, 'numitems')
|
|
824
|
-
.data;
|
|
825
|
-
const itemhandles_ptr = libredwg.dwg_dynapi_entity_value(item, 'itemhandles').data;
|
|
711
|
+
const isHardOwner = libredwg.dwg_dynapi_entity_data(item, 'is_hardowner');
|
|
712
|
+
const cloningFlag = libredwg.dwg_dynapi_entity_data(item, 'cloning');
|
|
713
|
+
const numitems = libredwg.dwg_dynapi_entity_data(item, 'numitems');
|
|
714
|
+
const itemhandles_ptr = libredwg.dwg_dynapi_entity_data(item, 'itemhandles');
|
|
826
715
|
const itemhandles = libredwg.dwg_ptr_to_object_ref_array(itemhandles_ptr, numitems);
|
|
827
716
|
const texts = libredwg.dwg_object_dictionary_get_texts(obj);
|
|
828
717
|
const entries = {};
|
|
@@ -837,17 +726,12 @@ export class LibreDwgConverter {
|
|
|
837
726
|
convertImageDef(item, obj) {
|
|
838
727
|
const libredwg = this.libredwg;
|
|
839
728
|
const commonAttrs = this.getCommonObjectAttrs(obj);
|
|
840
|
-
// const classVersion = libredwg.
|
|
841
|
-
const size = libredwg.
|
|
842
|
-
|
|
843
|
-
const
|
|
844
|
-
|
|
845
|
-
const
|
|
846
|
-
.data;
|
|
847
|
-
const sizeOfOnePixel = libredwg.dwg_dynapi_entity_value(item, 'pixel_size')
|
|
848
|
-
.data;
|
|
849
|
-
const resolutionUnits = libredwg.dwg_dynapi_entity_value(item, 'resunits')
|
|
850
|
-
.data;
|
|
729
|
+
// const classVersion = libredwg.dwg_dynapi_entity_data<number>(item, 'class_version')
|
|
730
|
+
const size = libredwg.dwg_dynapi_entity_data(item, 'image_size');
|
|
731
|
+
const fileName = libredwg.dwg_dynapi_entity_data(item, 'file_path');
|
|
732
|
+
const isLoaded = libredwg.dwg_dynapi_entity_data(item, 'is_loaded');
|
|
733
|
+
const sizeOfOnePixel = libredwg.dwg_dynapi_entity_data(item, 'pixel_size');
|
|
734
|
+
const resolutionUnits = libredwg.dwg_dynapi_entity_data(item, 'resunits');
|
|
851
735
|
return {
|
|
852
736
|
...commonAttrs,
|
|
853
737
|
fileName: fileName,
|
|
@@ -861,39 +745,26 @@ export class LibreDwgConverter {
|
|
|
861
745
|
const libredwg = this.libredwg;
|
|
862
746
|
const commonAttrs = this.getCommonObjectAttrs(obj);
|
|
863
747
|
// AcDbLayout
|
|
864
|
-
const layoutName = libredwg.
|
|
865
|
-
|
|
866
|
-
const
|
|
867
|
-
|
|
868
|
-
const
|
|
869
|
-
|
|
870
|
-
const
|
|
871
|
-
|
|
872
|
-
const
|
|
873
|
-
|
|
874
|
-
const
|
|
875
|
-
|
|
876
|
-
const
|
|
877
|
-
|
|
878
|
-
const
|
|
879
|
-
|
|
880
|
-
const
|
|
881
|
-
|
|
882
|
-
const
|
|
883
|
-
|
|
884
|
-
.data;
|
|
885
|
-
const maxExtent = libredwg.dwg_dynapi_entity_value(item, 'EXTMAX')
|
|
886
|
-
.data;
|
|
887
|
-
const elevation = libredwg.dwg_dynapi_entity_value(item, 'ucs_elevation')
|
|
888
|
-
.data;
|
|
889
|
-
const block_header_ref = libredwg.dwg_dynapi_entity_value(item, 'block_header').data;
|
|
890
|
-
const paperSpaceTableId = idToString(libredwg.dwg_ref_get_absref(block_header_ref));
|
|
891
|
-
const active_viewport_ref = libredwg.dwg_dynapi_entity_value(item, 'active_viewport').data;
|
|
892
|
-
const viewportId = idToString(libredwg.dwg_ref_get_absref(active_viewport_ref));
|
|
893
|
-
const named_ucs_ref = libredwg.dwg_dynapi_entity_value(item, 'named_ucs')
|
|
894
|
-
.data;
|
|
895
|
-
const namedUcsId = !!named_ucs_ref
|
|
896
|
-
? idToString(libredwg.dwg_ref_get_absref(named_ucs_ref))
|
|
748
|
+
const layoutName = libredwg.dwg_dynapi_entity_data(item, 'layout_name');
|
|
749
|
+
const tabOrder = libredwg.dwg_dynapi_entity_data(item, 'tab_order');
|
|
750
|
+
const controlFlag = libredwg.dwg_dynapi_entity_data(item, 'layout_flags');
|
|
751
|
+
const insertionPoint = libredwg.dwg_dynapi_entity_data(item, 'INSBASE');
|
|
752
|
+
const minLimit = libredwg.dwg_dynapi_entity_data(item, 'LIMMIN');
|
|
753
|
+
const maxLimit = libredwg.dwg_dynapi_entity_data(item, 'LIMMAX');
|
|
754
|
+
const ucsOrigin = libredwg.dwg_dynapi_entity_data(item, 'UCSORG');
|
|
755
|
+
const ucsXAxis = libredwg.dwg_dynapi_entity_data(item, 'UCSXDIR');
|
|
756
|
+
const ucsYAxis = libredwg.dwg_dynapi_entity_data(item, 'UCSYDIR');
|
|
757
|
+
const orthographicType = libredwg.dwg_dynapi_entity_data(item, 'UCSORTHOVIEW');
|
|
758
|
+
const minExtent = libredwg.dwg_dynapi_entity_data(item, 'EXTMIN');
|
|
759
|
+
const maxExtent = libredwg.dwg_dynapi_entity_data(item, 'EXTMAX');
|
|
760
|
+
const elevation = libredwg.dwg_dynapi_entity_data(item, 'ucs_elevation');
|
|
761
|
+
const block_header_ref = libredwg.dwg_dynapi_entity_data(item, 'block_header');
|
|
762
|
+
const paperSpaceTableId = (libredwg.dwg_ref_get_id(block_header_ref) ?? '');
|
|
763
|
+
const active_viewport_ref = libredwg.dwg_dynapi_entity_data(item, 'active_viewport');
|
|
764
|
+
const viewportId = (libredwg.dwg_ref_get_id(active_viewport_ref) ?? '');
|
|
765
|
+
const named_ucs_ref = libredwg.dwg_dynapi_entity_data(item, 'named_ucs');
|
|
766
|
+
const namedUcsId = named_ucs_ref
|
|
767
|
+
? (libredwg.dwg_ref_get_id(named_ucs_ref) ?? '')
|
|
897
768
|
: undefined;
|
|
898
769
|
// BITCODE_H base_ucs;
|
|
899
770
|
// BITCODE_BL num_viewports; // r2004+
|
|
@@ -920,25 +791,78 @@ export class LibreDwgConverter {
|
|
|
920
791
|
shadePlotId: '' // TODO: Set the correct value
|
|
921
792
|
};
|
|
922
793
|
}
|
|
794
|
+
convertMLeaderStyle(item, obj) {
|
|
795
|
+
const libredwg = this.libredwg;
|
|
796
|
+
const commonAttrs = this.getCommonObjectAttrs(obj);
|
|
797
|
+
const objectVal = (field) => libredwg.dwg_dynapi_entity_data(item, field);
|
|
798
|
+
const refToId = (ref) => libredwg.dwg_ref_get_id(ref);
|
|
799
|
+
const asBool = (value) => value > 0;
|
|
800
|
+
const mleaderColor = (color) => color != null ? dwgColorToMLeaderRawColor(color) : undefined;
|
|
801
|
+
return {
|
|
802
|
+
...commonAttrs,
|
|
803
|
+
subclassMarker: 'AcDbMLeaderStyle',
|
|
804
|
+
unknown1: objectVal('class_version'),
|
|
805
|
+
contentType: objectVal('content_type'),
|
|
806
|
+
drawMLeaderOrderType: objectVal('mleader_order'),
|
|
807
|
+
drawLeaderOrderType: objectVal('leader_order'),
|
|
808
|
+
maxLeaderSegmentPoints: objectVal('max_points'),
|
|
809
|
+
firstSegmentAngleConstraint: objectVal('first_seg_angle'),
|
|
810
|
+
secondSegmentAngleConstraint: objectVal('second_seg_angle'),
|
|
811
|
+
leaderLineType: objectVal('type'),
|
|
812
|
+
leaderLineColor: mleaderColor(objectVal('line_color')),
|
|
813
|
+
leaderLineTypeId: refToId(objectVal('line_type')),
|
|
814
|
+
leaderLineWeight: objectVal('linewt'),
|
|
815
|
+
landingEnabled: asBool(objectVal('has_landing')),
|
|
816
|
+
landingGap: objectVal('landing_gap'),
|
|
817
|
+
doglegEnabled: asBool(objectVal('has_dogleg')),
|
|
818
|
+
doglegLength: objectVal('landing_dist'),
|
|
819
|
+
description: objectVal('description'),
|
|
820
|
+
arrowheadId: refToId(objectVal('arrow_head')),
|
|
821
|
+
arrowheadSize: objectVal('arrow_head_size'),
|
|
822
|
+
defaultMTextContents: objectVal('text_default'),
|
|
823
|
+
textStyleId: refToId(objectVal('text_style')),
|
|
824
|
+
textLeftAttachmentType: objectVal('attach_left'),
|
|
825
|
+
textAngleType: objectVal('text_angle_type'),
|
|
826
|
+
textAlignmentType: objectVal('text_align_type'),
|
|
827
|
+
textRightAttachmentType: objectVal('attach_right'),
|
|
828
|
+
textColor: mleaderColor(objectVal('text_color')),
|
|
829
|
+
textHeight: objectVal('text_height'),
|
|
830
|
+
textFrameEnabled: asBool(objectVal('has_text_frame')),
|
|
831
|
+
textAlignAlwaysLeft: asBool(objectVal('text_always_left')),
|
|
832
|
+
alignSpace: objectVal('align_space'),
|
|
833
|
+
blockContentId: refToId(objectVal('block')),
|
|
834
|
+
blockContentColor: mleaderColor(objectVal('block_color')),
|
|
835
|
+
blockContentScale: objectVal('block_scale'),
|
|
836
|
+
blockContentScaleEnabled: asBool(objectVal('use_block_scale')),
|
|
837
|
+
blockContentRotation: objectVal('block_rotation'),
|
|
838
|
+
blockContentRotationEnabled: asBool(objectVal('use_block_rotation')),
|
|
839
|
+
blockContentConnectionType: objectVal('block_connection'),
|
|
840
|
+
scale: objectVal('scale'),
|
|
841
|
+
overwritePropertyValue: asBool(objectVal('is_changed')),
|
|
842
|
+
annotative: asBool(objectVal('is_annotative')),
|
|
843
|
+
breakGapSize: objectVal('break_size'),
|
|
844
|
+
textAttachmentDirection: objectVal('attach_dir'),
|
|
845
|
+
bottomTextAttachmentDirection: objectVal('attach_bottom'),
|
|
846
|
+
topTextAttachmentDirection: objectVal('attach_top'),
|
|
847
|
+
unknown2: asBool(objectVal('text_extended'))
|
|
848
|
+
};
|
|
849
|
+
}
|
|
923
850
|
convertSpatialFilter(item, obj) {
|
|
924
851
|
const libredwg = this.libredwg;
|
|
925
852
|
const commonAttrs = this.getCommonObjectAttrs(obj);
|
|
926
|
-
const origin = libredwg.
|
|
927
|
-
|
|
928
|
-
const
|
|
929
|
-
const clip_verts_ptr = libredwg.dwg_dynapi_entity_value(item, 'clip_verts')
|
|
930
|
-
.data;
|
|
853
|
+
const origin = libredwg.dwg_dynapi_entity_data(item, 'origin');
|
|
854
|
+
const numberOfPointsOnClipBoundary = libredwg.dwg_dynapi_entity_data(item, 'num_clip_verts');
|
|
855
|
+
const clip_verts_ptr = libredwg.dwg_dynapi_entity_data(item, 'clip_verts');
|
|
931
856
|
const vertices = libredwg.dwg_ptr_to_point2d_array(clip_verts_ptr, numberOfPointsOnClipBoundary);
|
|
932
|
-
const extrusionDirection = libredwg.
|
|
933
|
-
const clipBoundaryVisible = libredwg.
|
|
934
|
-
const frontClippingPlaneFlag = libredwg.
|
|
935
|
-
const frontClippingPlaneDistance = libredwg.
|
|
936
|
-
const backClippingPlaneFlag = libredwg.
|
|
937
|
-
const backClippingPlaneDistance = libredwg.
|
|
938
|
-
const transform_ptr = libredwg.
|
|
939
|
-
.data;
|
|
857
|
+
const extrusionDirection = libredwg.dwg_dynapi_entity_data(item, 'extrusion');
|
|
858
|
+
const clipBoundaryVisible = libredwg.dwg_dynapi_entity_data(item, 'display_boundary_on');
|
|
859
|
+
const frontClippingPlaneFlag = libredwg.dwg_dynapi_entity_data(item, 'front_clip_on');
|
|
860
|
+
const frontClippingPlaneDistance = libredwg.dwg_dynapi_entity_data(item, 'front_clip_z');
|
|
861
|
+
const backClippingPlaneFlag = libredwg.dwg_dynapi_entity_data(item, 'back_clip_on');
|
|
862
|
+
const backClippingPlaneDistance = libredwg.dwg_dynapi_entity_data(item, 'back_clip_z');
|
|
863
|
+
const transform_ptr = libredwg.dwg_dynapi_entity_data(item, 'transform');
|
|
940
864
|
const matrix = libredwg.dwg_ptr_to_double_array(transform_ptr, 12);
|
|
941
|
-
const inverse_transform_ptr = libredwg.
|
|
865
|
+
const inverse_transform_ptr = libredwg.dwg_dynapi_entity_data(item, 'inverse_transform');
|
|
942
866
|
const invertBlockMatrix = libredwg.dwg_ptr_to_double_array(inverse_transform_ptr, 12);
|
|
943
867
|
return {
|
|
944
868
|
...commonAttrs,
|