@mlightcad/libredwg-converter 3.15.14 → 3.15.15
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-converter.umd.cjs +1 -1
- package/dist/libredwg-parser-worker.js +18 -18
- package/lib/AcDbEntitiyConverter.d.ts.map +1 -1
- package/lib/AcDbEntitiyConverter.js +7 -0
- package/lib/AcDbEntitiyConverter.js.map +1 -1
- package/lib/AcDbLibreDwgConverter.d.ts +16 -0
- package/lib/AcDbLibreDwgConverter.d.ts.map +1 -1
- package/lib/AcDbLibreDwgConverter.js +359 -41
- package/lib/AcDbLibreDwgConverter.js.map +1 -1
- package/lib/AcDbLibreDwgConverterUtil.d.ts +2 -1
- package/lib/AcDbLibreDwgConverterUtil.d.ts.map +1 -1
- package/lib/AcDbLibreDwgConverterUtil.js +171 -0
- package/lib/AcDbLibreDwgConverterUtil.js.map +1 -1
- package/lib/AcDbObjectConverter.d.ts +99 -1
- package/lib/AcDbObjectConverter.d.ts.map +1 -1
- package/lib/AcDbObjectConverter.js +136 -1
- package/lib/AcDbObjectConverter.js.map +1 -1
- package/package.json +3 -3
|
@@ -60,7 +60,23 @@ var __values = (this && this.__values) || function(o) {
|
|
|
60
60
|
};
|
|
61
61
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
64
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
65
|
+
if (!m) return o;
|
|
66
|
+
var i = m.call(o), r, ar = [], e;
|
|
67
|
+
try {
|
|
68
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
69
|
+
}
|
|
70
|
+
catch (error) { e = { error: error }; }
|
|
71
|
+
finally {
|
|
72
|
+
try {
|
|
73
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
74
|
+
}
|
|
75
|
+
finally { if (e) throw e.error; }
|
|
76
|
+
}
|
|
77
|
+
return ar;
|
|
78
|
+
};
|
|
79
|
+
import { AcCmColor, AcDbBatchProcessing, AcDbBlockTableRecord, acdbCreateWorkerApi, AcDbDatabaseConverter, AcDbDictionary, AcDbDictionaryVar, AcDbDimStyleTableRecord, acdbHexStringsToBytes, acdbImportDynBlockMetadata, AcDbLayerTableRecord, AcDbLayout, AcDbLinetypeTableRecord, acdbNormalizeDimStyleColorNumber, acdbNormalizeExtensionDictionaryId, AcDbOpenDatabaseError, AcDbRasterImageDef, acdbReadLayerFilterTree, AcDbTextStyleTableRecord, AcDbViewportTableRecord, ByLayer, DEFAULT_MLEADER_STYLE, DEFAULT_TEXT_STYLE, VPORT_FALLBACK_CENTER_2D, VPORT_FALLBACK_LLC, VPORT_FALLBACK_URC, VPORT_FALLBACK_VIEW_DIR, VPORT_FALLBACK_VIEW_TARGET } from '@mlightcad/data-model';
|
|
64
80
|
import { AcDbEntityConverter } from './AcDbEntitiyConverter.js';
|
|
65
81
|
import { AcDbObjectConverter } from './AcDbObjectConverter.js';
|
|
66
82
|
var MODEL_SPACE = '*MODEL_SPACE';
|
|
@@ -146,6 +162,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
146
162
|
db.ensureTextStyleDefaults();
|
|
147
163
|
};
|
|
148
164
|
AcDbLibreDwgConverter.prototype.processDimStyles = function (model, db) {
|
|
165
|
+
var e_1, _a;
|
|
149
166
|
var _this = this;
|
|
150
167
|
var dimStyles = model.tables.DIMSTYLE.entries;
|
|
151
168
|
dimStyles.forEach(function (item) {
|
|
@@ -187,9 +204,12 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
187
204
|
dimsah: item.DIMSAH,
|
|
188
205
|
dimtix: item.DIMTIX,
|
|
189
206
|
dimsoxd: item.DIMSOXD,
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
207
|
+
// LibreDWG returns CMC objects / packed ints for these — normalize to
|
|
208
|
+
// plain ACI (0/1..255/256) or packed RGB so dim block builders never
|
|
209
|
+
// see NaN colorIndex when constructing MTEXT.
|
|
210
|
+
dimclrd: acdbNormalizeDimStyleColorNumber(item.DIMCLRD),
|
|
211
|
+
dimclre: acdbNormalizeDimStyleColorNumber(item.DIMCLRE),
|
|
212
|
+
dimclrt: acdbNormalizeDimStyleColorNumber(item.DIMCLRT),
|
|
193
213
|
dimadec: item.DIMADEC || 0,
|
|
194
214
|
dimunit: item.DIMUNIT || 2,
|
|
195
215
|
dimdec: item.DIMDEC,
|
|
@@ -211,7 +231,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
211
231
|
dimfit: item.DIMFIT || 0,
|
|
212
232
|
dimupt: item.DIMUPT,
|
|
213
233
|
dimatfit: item.DIMATFIT,
|
|
214
|
-
dimtxsty:
|
|
234
|
+
dimtxsty: _this.resolveDimTextStyleName(model, item.DIMTXSTY),
|
|
215
235
|
dimldrblk: '', // TODO: Set correct value
|
|
216
236
|
dimblk: item.DIMBLK || '', // TODO: Set correct value
|
|
217
237
|
dimblk1: item.DIMBLK1 || '', // TODO: Set correct value
|
|
@@ -223,6 +243,47 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
223
243
|
_this.processCommonTableEntryAttrs(item, record);
|
|
224
244
|
db.tables.dimStyleTable.add(record);
|
|
225
245
|
});
|
|
246
|
+
var scales = model.dimStyleAnnotationScales;
|
|
247
|
+
if (scales) {
|
|
248
|
+
try {
|
|
249
|
+
for (var _b = __values(Object.entries(scales)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
250
|
+
var _d = __read(_c.value, 2), name_1 = _d[0], factor = _d[1];
|
|
251
|
+
db.setDimStyleAnnotationScale(name_1, factor);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
255
|
+
finally {
|
|
256
|
+
try {
|
|
257
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
258
|
+
}
|
|
259
|
+
finally { if (e_1) throw e_1.error; }
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
/**
|
|
264
|
+
* DIMTXSTY is a hard pointer. LibreDWG exposes it as a numeric handle
|
|
265
|
+
* (for example 0x28D → 653) rather than the text style name.
|
|
266
|
+
*/
|
|
267
|
+
AcDbLibreDwgConverter.prototype.resolveDimTextStyleName = function (model, dimTxsty) {
|
|
268
|
+
if (typeof dimTxsty === 'string') {
|
|
269
|
+
var text_1 = dimTxsty.trim();
|
|
270
|
+
if (text_1 && !/^[0-9]+$/.test(text_1) && !/^[0-9A-F]+$/i.test(text_1)) {
|
|
271
|
+
return text_1;
|
|
272
|
+
}
|
|
273
|
+
if (text_1 && /[A-Z]/i.test(text_1)) {
|
|
274
|
+
var byHex = model.tables.STYLE.entries.find(function (entry) { return String(entry.handle).toUpperCase() === text_1.toUpperCase(); });
|
|
275
|
+
if (byHex === null || byHex === void 0 ? void 0 : byHex.name)
|
|
276
|
+
return byHex.name;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
var numeric = typeof dimTxsty === 'number' ? dimTxsty : Number(dimTxsty);
|
|
280
|
+
if (Number.isFinite(numeric) && numeric > 0) {
|
|
281
|
+
var hex_1 = Math.trunc(numeric).toString(16).toUpperCase();
|
|
282
|
+
var match = model.tables.STYLE.entries.find(function (entry) { return String(entry.handle).toUpperCase() === hex_1; });
|
|
283
|
+
if (match === null || match === void 0 ? void 0 : match.name)
|
|
284
|
+
return match.name;
|
|
285
|
+
}
|
|
286
|
+
return DEFAULT_TEXT_STYLE;
|
|
226
287
|
};
|
|
227
288
|
AcDbLibreDwgConverter.prototype.processLayers = function (model, db) {
|
|
228
289
|
var _this = this;
|
|
@@ -522,7 +583,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
522
583
|
}); });
|
|
523
584
|
};
|
|
524
585
|
AcDbLibreDwgConverter.prototype.processHeader = function (model, db) {
|
|
525
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
586
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
526
587
|
var thumbnail = model.thumbnailImage;
|
|
527
588
|
if (thumbnail === null || thumbnail === void 0 ? void 0 : thumbnail.length) {
|
|
528
589
|
db.thumbnailImage = thumbnail;
|
|
@@ -564,7 +625,13 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
564
625
|
db.pdmode = (_j = header.PDMODE) !== null && _j !== void 0 ? _j : 0;
|
|
565
626
|
db.pdsize = (_k = header.PDSIZE) !== null && _k !== void 0 ? _k : 0.0;
|
|
566
627
|
db.textstyle = (_l = header.TEXTSTYLE) !== null && _l !== void 0 ? _l : DEFAULT_TEXT_STYLE;
|
|
567
|
-
|
|
628
|
+
// Match DXF header reader: new dimensions must inherit $DIMSTYLE.
|
|
629
|
+
// Without this, DWG loads leave db.dimstyle as the constructor default
|
|
630
|
+
// ("Standard"), so dims pick imperial 0.18 text/arrow while the drawing's
|
|
631
|
+
// active style (e.g. metric "2-1" with dimtxt/dimasz=3) is ignored.
|
|
632
|
+
db.dimstyle =
|
|
633
|
+
(_m = this.normalizeHeaderStringValue(header.DIMSTYLE)) !== null && _m !== void 0 ? _m : DEFAULT_TEXT_STYLE;
|
|
634
|
+
var cmleaderStyle = (_o = this.normalizeHeaderStringValue(header.CMLEADERSTYLE)) !== null && _o !== void 0 ? _o : DEFAULT_MLEADER_STYLE;
|
|
568
635
|
db.cmleaderstyle = cmleaderStyle;
|
|
569
636
|
};
|
|
570
637
|
AcDbLibreDwgConverter.prototype.processCommonTableEntryAttrs = function (entry, dbEntry) {
|
|
@@ -580,6 +647,13 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
580
647
|
this.processScales(model, db);
|
|
581
648
|
this.processDictionaryVars(model, db);
|
|
582
649
|
this.processMTextObjectContextData(model, db);
|
|
650
|
+
this.processTextObjectContextData(model, db);
|
|
651
|
+
this.processDimensionObjectContextData(model, db);
|
|
652
|
+
this.processHatchScaleContextData(model, db);
|
|
653
|
+
this.processBlkRefObjectContextData(model, db);
|
|
654
|
+
this.processLeaderObjectContextData(model, db);
|
|
655
|
+
this.processMLeaderObjectContextData(model, db);
|
|
656
|
+
this.processMTextAttributeObjectContextData(model, db);
|
|
583
657
|
this.processXRecords(model, db);
|
|
584
658
|
this.processLayouts(model, db);
|
|
585
659
|
this.processImageDefs(model, db);
|
|
@@ -589,6 +663,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
589
663
|
this.processMLeaderStyles(model, db);
|
|
590
664
|
this.processDynBlockMetadata(model, db);
|
|
591
665
|
this.finishCannoscale(model, db);
|
|
666
|
+
this.finishAnnoallvisible(model, db);
|
|
592
667
|
};
|
|
593
668
|
/**
|
|
594
669
|
* Imports extension dictionaries and (when present) representation pointers
|
|
@@ -601,7 +676,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
601
676
|
* placeholder is created by {@link acdbImportDynBlockMetadata}.
|
|
602
677
|
*/
|
|
603
678
|
AcDbLibreDwgConverter.prototype.processDynBlockMetadata = function (model, db) {
|
|
604
|
-
var
|
|
679
|
+
var e_2, _a;
|
|
605
680
|
var _b, _c;
|
|
606
681
|
var normalize = function (handle) {
|
|
607
682
|
return handle == null || handle === '' || handle === 0
|
|
@@ -622,12 +697,12 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
622
697
|
}
|
|
623
698
|
}
|
|
624
699
|
}
|
|
625
|
-
catch (
|
|
700
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
626
701
|
finally {
|
|
627
702
|
try {
|
|
628
703
|
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
629
704
|
}
|
|
630
|
-
finally { if (
|
|
705
|
+
finally { if (e_2) throw e_2.error; }
|
|
631
706
|
}
|
|
632
707
|
var dictObjects = model.objects.DICTIONARY;
|
|
633
708
|
if (!(dictObjects === null || dictObjects === void 0 ? void 0 : dictObjects.length))
|
|
@@ -636,10 +711,10 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
636
711
|
var _a;
|
|
637
712
|
var entries = [];
|
|
638
713
|
var src = (_a = dict.entries) !== null && _a !== void 0 ? _a : {};
|
|
639
|
-
for (var
|
|
640
|
-
var target = src[
|
|
641
|
-
if (
|
|
642
|
-
entries.push({ name:
|
|
714
|
+
for (var name_2 in src) {
|
|
715
|
+
var target = src[name_2];
|
|
716
|
+
if (name_2 && target) {
|
|
717
|
+
entries.push({ name: name_2, handle: normalize(String(target)) });
|
|
643
718
|
}
|
|
644
719
|
}
|
|
645
720
|
return {
|
|
@@ -679,10 +754,10 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
679
754
|
var _a;
|
|
680
755
|
var entries = {};
|
|
681
756
|
var src = (_a = dict.entries) !== null && _a !== void 0 ? _a : {};
|
|
682
|
-
for (var
|
|
683
|
-
var target = src[
|
|
684
|
-
if (
|
|
685
|
-
entries[
|
|
757
|
+
for (var name_3 in src) {
|
|
758
|
+
var target = src[name_3];
|
|
759
|
+
if (name_3 && target) {
|
|
760
|
+
entries[name_3] = normalize(String(target));
|
|
686
761
|
}
|
|
687
762
|
}
|
|
688
763
|
dictionaries.set(normalize(dict.handle), {
|
|
@@ -714,7 +789,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
714
789
|
var layoutDict = db.objects.layout;
|
|
715
790
|
var layouts = model.objects.LAYOUT;
|
|
716
791
|
layouts.forEach(function (layout) {
|
|
717
|
-
var
|
|
792
|
+
var e_3, _a;
|
|
718
793
|
var dbLayout = new AcDbLayout();
|
|
719
794
|
dbLayout.layoutName = layout.layoutName;
|
|
720
795
|
dbLayout.tabOrder = layout.tabOrder;
|
|
@@ -734,12 +809,12 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
734
809
|
}
|
|
735
810
|
}
|
|
736
811
|
}
|
|
737
|
-
catch (
|
|
812
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
738
813
|
finally {
|
|
739
814
|
try {
|
|
740
815
|
if (btrs_1_1 && !btrs_1_1.done && (_a = btrs_1.return)) _a.call(btrs_1);
|
|
741
816
|
}
|
|
742
|
-
finally { if (
|
|
817
|
+
finally { if (e_3) throw e_3.error; }
|
|
743
818
|
}
|
|
744
819
|
// If the layout is not found in the block table due to some unknow reason,
|
|
745
820
|
// let's set the model space block table record id.
|
|
@@ -804,7 +879,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
804
879
|
});
|
|
805
880
|
};
|
|
806
881
|
AcDbLibreDwgConverter.prototype.processScales = function (model, db) {
|
|
807
|
-
var
|
|
882
|
+
var e_4, _a;
|
|
808
883
|
var scales = this.optionalObjectArray(model, 'SCALE');
|
|
809
884
|
if (!(scales === null || scales === void 0 ? void 0 : scales.length))
|
|
810
885
|
return;
|
|
@@ -819,16 +894,16 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
819
894
|
scaleDict.setAt(key, dbScale);
|
|
820
895
|
}
|
|
821
896
|
}
|
|
822
|
-
catch (
|
|
897
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
823
898
|
finally {
|
|
824
899
|
try {
|
|
825
900
|
if (scales_1_1 && !scales_1_1.done && (_a = scales_1.return)) _a.call(scales_1);
|
|
826
901
|
}
|
|
827
|
-
finally { if (
|
|
902
|
+
finally { if (e_4) throw e_4.error; }
|
|
828
903
|
}
|
|
829
904
|
};
|
|
830
905
|
AcDbLibreDwgConverter.prototype.processDictionaryVars = function (model, db) {
|
|
831
|
-
var
|
|
906
|
+
var e_5, _a;
|
|
832
907
|
var dictVars = this.optionalObjectArray(model, 'DICTIONARYVAR');
|
|
833
908
|
if (!(dictVars === null || dictVars === void 0 ? void 0 : dictVars.length))
|
|
834
909
|
return;
|
|
@@ -842,16 +917,16 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
842
917
|
dictVarDict.setAt(dbVar.objectId, dbVar);
|
|
843
918
|
}
|
|
844
919
|
}
|
|
845
|
-
catch (
|
|
920
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
846
921
|
finally {
|
|
847
922
|
try {
|
|
848
923
|
if (dictVars_1_1 && !dictVars_1_1.done && (_a = dictVars_1.return)) _a.call(dictVars_1);
|
|
849
924
|
}
|
|
850
|
-
finally { if (
|
|
925
|
+
finally { if (e_5) throw e_5.error; }
|
|
851
926
|
}
|
|
852
927
|
};
|
|
853
928
|
AcDbLibreDwgConverter.prototype.processMTextObjectContextData = function (model, db) {
|
|
854
|
-
var
|
|
929
|
+
var e_6, _a;
|
|
855
930
|
var _b;
|
|
856
931
|
var contexts = (_b = this.optionalObjectArray(model, 'MTEXTOBJECTCONTEXTDATA')) !== null && _b !== void 0 ? _b : this.optionalObjectArray(model, 'ACDB_MTEXTOBJECTCONTEXTDATA_CLASS');
|
|
857
932
|
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
@@ -866,16 +941,214 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
866
941
|
contextDict.setAt(dbContext.objectId, dbContext);
|
|
867
942
|
}
|
|
868
943
|
}
|
|
869
|
-
catch (
|
|
944
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
870
945
|
finally {
|
|
871
946
|
try {
|
|
872
947
|
if (contexts_1_1 && !contexts_1_1.done && (_a = contexts_1.return)) _a.call(contexts_1);
|
|
873
948
|
}
|
|
874
|
-
finally { if (
|
|
949
|
+
finally { if (e_6) throw e_6.error; }
|
|
950
|
+
}
|
|
951
|
+
};
|
|
952
|
+
AcDbLibreDwgConverter.prototype.processDimensionObjectContextData = function (model, db) {
|
|
953
|
+
var e_7, _a, e_8, _b;
|
|
954
|
+
var keys = [
|
|
955
|
+
'ALDIMOBJECTCONTEXTDATA',
|
|
956
|
+
'ACDB_ALDIMOBJECTCONTEXTDATA_CLASS',
|
|
957
|
+
'ANGDIMOBJECTCONTEXTDATA',
|
|
958
|
+
'ACDB_ANGDIMOBJECTCONTEXTDATA_CLASS',
|
|
959
|
+
'ARCDIMOBJECTCONTEXTDATA',
|
|
960
|
+
'ACDB_ARCDIMOBJECTCONTEXTDATA_CLASS',
|
|
961
|
+
'DMDIMOBJECTCONTEXTDATA',
|
|
962
|
+
'ACDB_DMDIMOBJECTCONTEXTDATA_CLASS',
|
|
963
|
+
'ORDDIMOBJECTCONTEXTDATA',
|
|
964
|
+
'ACDB_ORDDIMOBJECTCONTEXTDATA_CLASS',
|
|
965
|
+
'RADDIMOBJECTCONTEXTDATA',
|
|
966
|
+
'ACDB_RADDIMOBJECTCONTEXTDATA_CLASS',
|
|
967
|
+
'RADIMOBJECTCONTEXTDATA',
|
|
968
|
+
'ACDB_RADIMOBJECTCONTEXTDATA_CLASS',
|
|
969
|
+
'RADDIMLGCOBJECTCONTEXTDATA',
|
|
970
|
+
'ACDB_RADDIMLGCOBJECTCONTEXTDATA_CLASS'
|
|
971
|
+
];
|
|
972
|
+
var objectConverter = new AcDbObjectConverter();
|
|
973
|
+
var contextDict = db.objects.objectContextData;
|
|
974
|
+
try {
|
|
975
|
+
for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
|
|
976
|
+
var key = keys_1_1.value;
|
|
977
|
+
var contexts = this.optionalObjectArray(model, key);
|
|
978
|
+
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
979
|
+
continue;
|
|
980
|
+
try {
|
|
981
|
+
for (var contexts_2 = (e_8 = void 0, __values(contexts)), contexts_2_1 = contexts_2.next(); !contexts_2_1.done; contexts_2_1 = contexts_2.next()) {
|
|
982
|
+
var context = contexts_2_1.value;
|
|
983
|
+
var dbContext = objectConverter.convertDimensionObjectContextData(context);
|
|
984
|
+
if (dbContext.objectId) {
|
|
985
|
+
contextDict.setAt(dbContext.objectId, dbContext);
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
990
|
+
finally {
|
|
991
|
+
try {
|
|
992
|
+
if (contexts_2_1 && !contexts_2_1.done && (_b = contexts_2.return)) _b.call(contexts_2);
|
|
993
|
+
}
|
|
994
|
+
finally { if (e_8) throw e_8.error; }
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
999
|
+
finally {
|
|
1000
|
+
try {
|
|
1001
|
+
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
1002
|
+
}
|
|
1003
|
+
finally { if (e_7) throw e_7.error; }
|
|
1004
|
+
}
|
|
1005
|
+
};
|
|
1006
|
+
AcDbLibreDwgConverter.prototype.processTextObjectContextData = function (model, db) {
|
|
1007
|
+
var e_9, _a;
|
|
1008
|
+
var _b;
|
|
1009
|
+
var contexts = (_b = this.optionalObjectArray(model, 'TEXTOBJECTCONTEXTDATA')) !== null && _b !== void 0 ? _b : this.optionalObjectArray(model, 'ACDB_TEXTOBJECTCONTEXTDATA_CLASS');
|
|
1010
|
+
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
1011
|
+
return;
|
|
1012
|
+
var contextDict = db.objects.objectContextData;
|
|
1013
|
+
var objectConverter = new AcDbObjectConverter();
|
|
1014
|
+
try {
|
|
1015
|
+
for (var contexts_3 = __values(contexts), contexts_3_1 = contexts_3.next(); !contexts_3_1.done; contexts_3_1 = contexts_3.next()) {
|
|
1016
|
+
var context = contexts_3_1.value;
|
|
1017
|
+
var dbContext = objectConverter.convertTextObjectContextData(context);
|
|
1018
|
+
if (dbContext.objectId)
|
|
1019
|
+
contextDict.setAt(dbContext.objectId, dbContext);
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
1023
|
+
finally {
|
|
1024
|
+
try {
|
|
1025
|
+
if (contexts_3_1 && !contexts_3_1.done && (_a = contexts_3.return)) _a.call(contexts_3);
|
|
1026
|
+
}
|
|
1027
|
+
finally { if (e_9) throw e_9.error; }
|
|
1028
|
+
}
|
|
1029
|
+
};
|
|
1030
|
+
AcDbLibreDwgConverter.prototype.processHatchScaleContextData = function (model, db) {
|
|
1031
|
+
var e_10, _a;
|
|
1032
|
+
var _b;
|
|
1033
|
+
var contexts = (_b = this.optionalObjectArray(model, 'HATCHSCALECONTEXTDATA')) !== null && _b !== void 0 ? _b : this.optionalObjectArray(model, 'ACDB_HATCHSCALECONTEXTDATA_CLASS');
|
|
1034
|
+
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
1035
|
+
return;
|
|
1036
|
+
var contextDict = db.objects.objectContextData;
|
|
1037
|
+
var objectConverter = new AcDbObjectConverter();
|
|
1038
|
+
try {
|
|
1039
|
+
for (var contexts_4 = __values(contexts), contexts_4_1 = contexts_4.next(); !contexts_4_1.done; contexts_4_1 = contexts_4.next()) {
|
|
1040
|
+
var context = contexts_4_1.value;
|
|
1041
|
+
var dbContext = objectConverter.convertHatchScaleContextData(context);
|
|
1042
|
+
if (dbContext.objectId)
|
|
1043
|
+
contextDict.setAt(dbContext.objectId, dbContext);
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
1047
|
+
finally {
|
|
1048
|
+
try {
|
|
1049
|
+
if (contexts_4_1 && !contexts_4_1.done && (_a = contexts_4.return)) _a.call(contexts_4);
|
|
1050
|
+
}
|
|
1051
|
+
finally { if (e_10) throw e_10.error; }
|
|
1052
|
+
}
|
|
1053
|
+
};
|
|
1054
|
+
AcDbLibreDwgConverter.prototype.processBlkRefObjectContextData = function (model, db) {
|
|
1055
|
+
var e_11, _a;
|
|
1056
|
+
var _b;
|
|
1057
|
+
var contexts = (_b = this.optionalObjectArray(model, 'BLKREFOBJECTCONTEXTDATA')) !== null && _b !== void 0 ? _b : this.optionalObjectArray(model, 'ACDB_BLKREFOBJECTCONTEXTDATA_CLASS');
|
|
1058
|
+
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
1059
|
+
return;
|
|
1060
|
+
var contextDict = db.objects.objectContextData;
|
|
1061
|
+
var objectConverter = new AcDbObjectConverter();
|
|
1062
|
+
try {
|
|
1063
|
+
for (var contexts_5 = __values(contexts), contexts_5_1 = contexts_5.next(); !contexts_5_1.done; contexts_5_1 = contexts_5.next()) {
|
|
1064
|
+
var context = contexts_5_1.value;
|
|
1065
|
+
var dbContext = objectConverter.convertBlkRefObjectContextData(context);
|
|
1066
|
+
if (dbContext.objectId)
|
|
1067
|
+
contextDict.setAt(dbContext.objectId, dbContext);
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
1071
|
+
finally {
|
|
1072
|
+
try {
|
|
1073
|
+
if (contexts_5_1 && !contexts_5_1.done && (_a = contexts_5.return)) _a.call(contexts_5);
|
|
1074
|
+
}
|
|
1075
|
+
finally { if (e_11) throw e_11.error; }
|
|
1076
|
+
}
|
|
1077
|
+
};
|
|
1078
|
+
AcDbLibreDwgConverter.prototype.processLeaderObjectContextData = function (model, db) {
|
|
1079
|
+
var e_12, _a;
|
|
1080
|
+
var _b;
|
|
1081
|
+
var contexts = (_b = this.optionalObjectArray(model, 'LEADEROBJECTCONTEXTDATA')) !== null && _b !== void 0 ? _b : this.optionalObjectArray(model, 'ACDB_LEADEROBJECTCONTEXTDATA_CLASS');
|
|
1082
|
+
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
1083
|
+
return;
|
|
1084
|
+
var contextDict = db.objects.objectContextData;
|
|
1085
|
+
var objectConverter = new AcDbObjectConverter();
|
|
1086
|
+
try {
|
|
1087
|
+
for (var contexts_6 = __values(contexts), contexts_6_1 = contexts_6.next(); !contexts_6_1.done; contexts_6_1 = contexts_6.next()) {
|
|
1088
|
+
var context = contexts_6_1.value;
|
|
1089
|
+
var dbContext = objectConverter.convertLeaderObjectContextData(context);
|
|
1090
|
+
if (dbContext.objectId)
|
|
1091
|
+
contextDict.setAt(dbContext.objectId, dbContext);
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
1095
|
+
finally {
|
|
1096
|
+
try {
|
|
1097
|
+
if (contexts_6_1 && !contexts_6_1.done && (_a = contexts_6.return)) _a.call(contexts_6);
|
|
1098
|
+
}
|
|
1099
|
+
finally { if (e_12) throw e_12.error; }
|
|
1100
|
+
}
|
|
1101
|
+
};
|
|
1102
|
+
AcDbLibreDwgConverter.prototype.processMLeaderObjectContextData = function (model, db) {
|
|
1103
|
+
var e_13, _a;
|
|
1104
|
+
var _b;
|
|
1105
|
+
var contexts = (_b = this.optionalObjectArray(model, 'MLEADEROBJECTCONTEXTDATA')) !== null && _b !== void 0 ? _b : this.optionalObjectArray(model, 'ACDB_MLEADEROBJECTCONTEXTDATA_CLASS');
|
|
1106
|
+
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
1107
|
+
return;
|
|
1108
|
+
var contextDict = db.objects.objectContextData;
|
|
1109
|
+
var objectConverter = new AcDbObjectConverter();
|
|
1110
|
+
try {
|
|
1111
|
+
for (var contexts_7 = __values(contexts), contexts_7_1 = contexts_7.next(); !contexts_7_1.done; contexts_7_1 = contexts_7.next()) {
|
|
1112
|
+
var context = contexts_7_1.value;
|
|
1113
|
+
var dbContext = objectConverter.convertMLeaderObjectContextData(context);
|
|
1114
|
+
if (dbContext.objectId)
|
|
1115
|
+
contextDict.setAt(dbContext.objectId, dbContext);
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
catch (e_13_1) { e_13 = { error: e_13_1 }; }
|
|
1119
|
+
finally {
|
|
1120
|
+
try {
|
|
1121
|
+
if (contexts_7_1 && !contexts_7_1.done && (_a = contexts_7.return)) _a.call(contexts_7);
|
|
1122
|
+
}
|
|
1123
|
+
finally { if (e_13) throw e_13.error; }
|
|
1124
|
+
}
|
|
1125
|
+
};
|
|
1126
|
+
AcDbLibreDwgConverter.prototype.processMTextAttributeObjectContextData = function (model, db) {
|
|
1127
|
+
var e_14, _a;
|
|
1128
|
+
var _b;
|
|
1129
|
+
var contexts = (_b = this.optionalObjectArray(model, 'MTEXTATTRIBUTEOBJECTCONTEXTDATA')) !== null && _b !== void 0 ? _b : this.optionalObjectArray(model, 'ACDB_MTEXTATTRIBUTEOBJECTCONTEXTDATA_CLASS');
|
|
1130
|
+
if (!(contexts === null || contexts === void 0 ? void 0 : contexts.length))
|
|
1131
|
+
return;
|
|
1132
|
+
var contextDict = db.objects.objectContextData;
|
|
1133
|
+
var objectConverter = new AcDbObjectConverter();
|
|
1134
|
+
try {
|
|
1135
|
+
for (var contexts_8 = __values(contexts), contexts_8_1 = contexts_8.next(); !contexts_8_1.done; contexts_8_1 = contexts_8.next()) {
|
|
1136
|
+
var context = contexts_8_1.value;
|
|
1137
|
+
var dbContext = objectConverter.convertMTextAttributeObjectContextData(context);
|
|
1138
|
+
if (dbContext.objectId)
|
|
1139
|
+
contextDict.setAt(dbContext.objectId, dbContext);
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
catch (e_14_1) { e_14 = { error: e_14_1 }; }
|
|
1143
|
+
finally {
|
|
1144
|
+
try {
|
|
1145
|
+
if (contexts_8_1 && !contexts_8_1.done && (_a = contexts_8.return)) _a.call(contexts_8);
|
|
1146
|
+
}
|
|
1147
|
+
finally { if (e_14) throw e_14.error; }
|
|
875
1148
|
}
|
|
876
1149
|
};
|
|
877
1150
|
AcDbLibreDwgConverter.prototype.processXRecords = function (model, db) {
|
|
878
|
-
var
|
|
1151
|
+
var e_15, _a;
|
|
879
1152
|
var xrecords = model.objects.XRECORD;
|
|
880
1153
|
if (!(xrecords === null || xrecords === void 0 ? void 0 : xrecords.length))
|
|
881
1154
|
return;
|
|
@@ -889,12 +1162,12 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
889
1162
|
xrecordDict.setAt(dbXrecord.objectId, dbXrecord);
|
|
890
1163
|
}
|
|
891
1164
|
}
|
|
892
|
-
catch (
|
|
1165
|
+
catch (e_15_1) { e_15 = { error: e_15_1 }; }
|
|
893
1166
|
finally {
|
|
894
1167
|
try {
|
|
895
1168
|
if (xrecords_1_1 && !xrecords_1_1.done && (_a = xrecords_1.return)) _a.call(xrecords_1);
|
|
896
1169
|
}
|
|
897
|
-
finally { if (
|
|
1170
|
+
finally { if (e_15) throw e_15.error; }
|
|
898
1171
|
}
|
|
899
1172
|
};
|
|
900
1173
|
/**
|
|
@@ -902,7 +1175,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
902
1175
|
* dictionaries have been materialized.
|
|
903
1176
|
*/
|
|
904
1177
|
AcDbLibreDwgConverter.prototype.finishCannoscale = function (model, db) {
|
|
905
|
-
var
|
|
1178
|
+
var e_16, _a;
|
|
906
1179
|
var _b, _c;
|
|
907
1180
|
var tryRead = function (variableDict) {
|
|
908
1181
|
var cannoscaleVar = variableDict.getAt('CANNOSCALE');
|
|
@@ -943,12 +1216,57 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
943
1216
|
return;
|
|
944
1217
|
}
|
|
945
1218
|
}
|
|
946
|
-
catch (
|
|
1219
|
+
catch (e_16_1) { e_16 = { error: e_16_1 }; }
|
|
947
1220
|
finally {
|
|
948
1221
|
try {
|
|
949
1222
|
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
950
1223
|
}
|
|
951
|
-
finally { if (
|
|
1224
|
+
finally { if (e_16) throw e_16.error; }
|
|
1225
|
+
}
|
|
1226
|
+
};
|
|
1227
|
+
/**
|
|
1228
|
+
* Reads ANNOALLVISIBLE from AcDbVariableDictionary → DICTIONARYVAR.
|
|
1229
|
+
*/
|
|
1230
|
+
AcDbLibreDwgConverter.prototype.finishAnnoallvisible = function (model, db) {
|
|
1231
|
+
var e_17, _a;
|
|
1232
|
+
var _b, _c;
|
|
1233
|
+
var tryRead = function (variableDict) {
|
|
1234
|
+
var annoVar = variableDict.getAt('ANNOALLVISIBLE');
|
|
1235
|
+
if (!(annoVar instanceof AcDbDictionaryVar) || annoVar.value == null) {
|
|
1236
|
+
return false;
|
|
1237
|
+
}
|
|
1238
|
+
var raw = String(annoVar.value).trim();
|
|
1239
|
+
db.annoallvisible = raw !== '0' && raw.toLowerCase() !== 'false';
|
|
1240
|
+
return true;
|
|
1241
|
+
};
|
|
1242
|
+
var fromRoot = db.objects.dictionary.getAt('AcDbVariableDictionary');
|
|
1243
|
+
if (fromRoot instanceof AcDbDictionary && tryRead(fromRoot))
|
|
1244
|
+
return;
|
|
1245
|
+
var normalize = function (handle) {
|
|
1246
|
+
return handle == null || handle === '' || handle === 0
|
|
1247
|
+
? ''
|
|
1248
|
+
: String(handle).trim().toUpperCase();
|
|
1249
|
+
};
|
|
1250
|
+
try {
|
|
1251
|
+
for (var _d = __values((_b = model.objects.DICTIONARY) !== null && _b !== void 0 ? _b : []), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
1252
|
+
var dict = _e.value;
|
|
1253
|
+
var entries = (_c = dict.entries) !== null && _c !== void 0 ? _c : {};
|
|
1254
|
+
var childHandle = entries['AcDbVariableDictionary'];
|
|
1255
|
+
if (!childHandle)
|
|
1256
|
+
continue;
|
|
1257
|
+
var variableDict = db.getObjectById(normalize(childHandle));
|
|
1258
|
+
if (!(variableDict instanceof AcDbDictionary))
|
|
1259
|
+
continue;
|
|
1260
|
+
if (tryRead(variableDict))
|
|
1261
|
+
return;
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
catch (e_17_1) { e_17 = { error: e_17_1 }; }
|
|
1265
|
+
finally {
|
|
1266
|
+
try {
|
|
1267
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
1268
|
+
}
|
|
1269
|
+
finally { if (e_17) throw e_17.error; }
|
|
952
1270
|
}
|
|
953
1271
|
};
|
|
954
1272
|
/** Reads optional object arrays that newer libredwg-web builds may expose. */
|
|
@@ -977,7 +1295,7 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
977
1295
|
* @returns A new array of entities grouped by their `type` property.
|
|
978
1296
|
*/
|
|
979
1297
|
AcDbLibreDwgConverter.prototype.groupAndFlattenByType = function (entities) {
|
|
980
|
-
var
|
|
1298
|
+
var e_18, _a, e_19, _b;
|
|
981
1299
|
var groups = {};
|
|
982
1300
|
var order = [];
|
|
983
1301
|
try {
|
|
@@ -990,12 +1308,12 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
990
1308
|
groups[entity.type].push(entity);
|
|
991
1309
|
}
|
|
992
1310
|
}
|
|
993
|
-
catch (
|
|
1311
|
+
catch (e_18_1) { e_18 = { error: e_18_1 }; }
|
|
994
1312
|
finally {
|
|
995
1313
|
try {
|
|
996
1314
|
if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
|
|
997
1315
|
}
|
|
998
|
-
finally { if (
|
|
1316
|
+
finally { if (e_18) throw e_18.error; }
|
|
999
1317
|
}
|
|
1000
1318
|
var result = [];
|
|
1001
1319
|
try {
|
|
@@ -1008,12 +1326,12 @@ var AcDbLibreDwgConverter = /** @class */ (function (_super) {
|
|
|
1008
1326
|
}
|
|
1009
1327
|
}
|
|
1010
1328
|
}
|
|
1011
|
-
catch (
|
|
1329
|
+
catch (e_19_1) { e_19 = { error: e_19_1 }; }
|
|
1012
1330
|
finally {
|
|
1013
1331
|
try {
|
|
1014
1332
|
if (order_1_1 && !order_1_1.done && (_b = order_1.return)) _b.call(order_1);
|
|
1015
1333
|
}
|
|
1016
|
-
finally { if (
|
|
1334
|
+
finally { if (e_19) throw e_19.error; }
|
|
1017
1335
|
}
|
|
1018
1336
|
return result;
|
|
1019
1337
|
};
|