@mlightcad/data-model 1.15.21 → 1.15.22
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/data-model.cjs +16 -16
- package/lib/base/AcDbDxfFiler.d.ts +27 -0
- package/lib/base/AcDbDxfFiler.d.ts.map +1 -1
- package/lib/base/AcDbDxfFiler.js +85 -9
- package/lib/base/AcDbDxfFiler.js.map +1 -1
- package/lib/base/AcDbObject.d.ts +10 -0
- package/lib/base/AcDbObject.d.ts.map +1 -1
- package/lib/base/AcDbObject.js +38 -1
- package/lib/base/AcDbObject.js.map +1 -1
- package/lib/database/AcDbBlockTableRecord.d.ts +11 -0
- package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbBlockTableRecord.js +22 -1
- package/lib/database/AcDbBlockTableRecord.js.map +1 -1
- package/lib/database/AcDbDatabase.d.ts +60 -0
- package/lib/database/AcDbDatabase.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.js +647 -157
- package/lib/database/AcDbDatabase.js.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
- package/lib/dxf/AcDbDxfDocumentReader.d.ts +19 -1
- package/lib/dxf/AcDbDxfDocumentReader.d.ts.map +1 -1
- package/lib/dxf/AcDbDxfDocumentReader.js +92 -12
- package/lib/dxf/AcDbDxfDocumentReader.js.map +1 -1
- package/lib/dxf/AcDbDxfEntityFactory.d.ts.map +1 -1
- package/lib/dxf/AcDbDxfEntityFactory.js +20 -1
- package/lib/dxf/AcDbDxfEntityFactory.js.map +1 -1
- package/lib/dxf/AcDbDxfHeaderReader.d.ts.map +1 -1
- package/lib/dxf/AcDbDxfHeaderReader.js +76 -7
- package/lib/dxf/AcDbDxfHeaderReader.js.map +1 -1
- package/lib/dxf/AcDbDxfObjectRecordName.d.ts +13 -0
- package/lib/dxf/AcDbDxfObjectRecordName.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfObjectRecordName.js +98 -0
- package/lib/dxf/AcDbDxfObjectRecordName.js.map +1 -0
- package/lib/dxf/AcDbDxfObjectsReader.d.ts +15 -2
- package/lib/dxf/AcDbDxfObjectsReader.d.ts.map +1 -1
- package/lib/dxf/AcDbDxfObjectsReader.js +226 -110
- package/lib/dxf/AcDbDxfObjectsReader.js.map +1 -1
- package/lib/dxf/AcDbDxfRawTags.d.ts +50 -0
- package/lib/dxf/AcDbDxfRawTags.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfRawTags.js +116 -0
- package/lib/dxf/AcDbDxfRawTags.js.map +1 -0
- package/lib/entity/AcDb2dPolyline.d.ts.map +1 -1
- package/lib/entity/AcDb2dPolyline.js +53 -1
- package/lib/entity/AcDb2dPolyline.js.map +1 -1
- package/lib/entity/AcDb2dVertex.d.ts +5 -0
- package/lib/entity/AcDb2dVertex.d.ts.map +1 -1
- package/lib/entity/AcDb2dVertex.js +98 -0
- package/lib/entity/AcDb2dVertex.js.map +1 -1
- package/lib/entity/AcDb3dPolyline.d.ts.map +1 -1
- package/lib/entity/AcDb3dPolyline.js +20 -1
- package/lib/entity/AcDb3dPolyline.js.map +1 -1
- package/lib/entity/AcDb3dSolid.d.ts +5 -0
- package/lib/entity/AcDb3dSolid.d.ts.map +1 -1
- package/lib/entity/AcDb3dSolid.js +70 -0
- package/lib/entity/AcDb3dSolid.js.map +1 -1
- package/lib/entity/AcDb3dVertex.d.ts +5 -0
- package/lib/entity/AcDb3dVertex.d.ts.map +1 -1
- package/lib/entity/AcDb3dVertex.js +65 -0
- package/lib/entity/AcDb3dVertex.js.map +1 -1
- package/lib/entity/AcDbArc.d.ts.map +1 -1
- package/lib/entity/AcDbArc.js +11 -0
- package/lib/entity/AcDbArc.js.map +1 -1
- package/lib/entity/AcDbArcAlignedText.d.ts.map +1 -1
- package/lib/entity/AcDbArcAlignedText.js +254 -0
- package/lib/entity/AcDbArcAlignedText.js.map +1 -1
- package/lib/entity/AcDbAttribute.d.ts +5 -0
- package/lib/entity/AcDbAttribute.d.ts.map +1 -1
- package/lib/entity/AcDbAttribute.js +156 -0
- package/lib/entity/AcDbAttribute.js.map +1 -1
- package/lib/entity/AcDbAttributeDefinition.d.ts +5 -0
- package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
- package/lib/entity/AcDbAttributeDefinition.js +167 -0
- package/lib/entity/AcDbAttributeDefinition.js.map +1 -1
- package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
- package/lib/entity/AcDbBlockReference.js +57 -3
- package/lib/entity/AcDbBlockReference.js.map +1 -1
- package/lib/entity/AcDbCircle.d.ts.map +1 -1
- package/lib/entity/AcDbCircle.js +11 -0
- package/lib/entity/AcDbCircle.js.map +1 -1
- package/lib/entity/AcDbEntity.d.ts +9 -0
- package/lib/entity/AcDbEntity.d.ts.map +1 -1
- package/lib/entity/AcDbEntity.js +54 -1
- package/lib/entity/AcDbEntity.js.map +1 -1
- package/lib/entity/AcDbFace.d.ts +7 -0
- package/lib/entity/AcDbFace.d.ts.map +1 -1
- package/lib/entity/AcDbFace.js +99 -0
- package/lib/entity/AcDbFace.js.map +1 -1
- package/lib/entity/AcDbFcf.d.ts.map +1 -1
- package/lib/entity/AcDbFcf.js +66 -0
- package/lib/entity/AcDbFcf.js.map +1 -1
- package/lib/entity/AcDbHatch.d.ts.map +1 -1
- package/lib/entity/AcDbHatch.js +187 -0
- package/lib/entity/AcDbHatch.js.map +1 -1
- package/lib/entity/AcDbLine.d.ts.map +1 -1
- package/lib/entity/AcDbLine.js +44 -0
- package/lib/entity/AcDbLine.js.map +1 -1
- package/lib/entity/AcDbMLeader.d.ts.map +1 -1
- package/lib/entity/AcDbMLeader.js +320 -0
- package/lib/entity/AcDbMLeader.js.map +1 -1
- package/lib/entity/AcDbMLine.d.ts.map +1 -1
- package/lib/entity/AcDbMLine.js +119 -1
- package/lib/entity/AcDbMLine.js.map +1 -1
- package/lib/entity/AcDbMText.d.ts +40 -8
- package/lib/entity/AcDbMText.d.ts.map +1 -1
- package/lib/entity/AcDbMText.js +395 -22
- package/lib/entity/AcDbMText.js.map +1 -1
- package/lib/entity/AcDbPoint.d.ts.map +1 -1
- package/lib/entity/AcDbPoint.js +55 -0
- package/lib/entity/AcDbPoint.js.map +1 -1
- package/lib/entity/AcDbPolyline.d.ts.map +1 -1
- package/lib/entity/AcDbPolyline.js +46 -2
- package/lib/entity/AcDbPolyline.js.map +1 -1
- package/lib/entity/AcDbProxyEntity.d.ts +5 -0
- package/lib/entity/AcDbProxyEntity.d.ts.map +1 -1
- package/lib/entity/AcDbProxyEntity.js +77 -0
- package/lib/entity/AcDbProxyEntity.js.map +1 -1
- package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
- package/lib/entity/AcDbRasterImage.js +99 -0
- package/lib/entity/AcDbRasterImage.js.map +1 -1
- package/lib/entity/AcDbShape.d.ts.map +1 -1
- package/lib/entity/AcDbShape.js +63 -0
- package/lib/entity/AcDbShape.js.map +1 -1
- package/lib/entity/AcDbSpline.d.ts +6 -0
- package/lib/entity/AcDbSpline.d.ts.map +1 -1
- package/lib/entity/AcDbSpline.js +182 -0
- package/lib/entity/AcDbSpline.js.map +1 -1
- package/lib/entity/AcDbTable.d.ts.map +1 -1
- package/lib/entity/AcDbTable.js +24 -2
- package/lib/entity/AcDbTable.js.map +1 -1
- package/lib/entity/AcDbText.d.ts +4 -0
- package/lib/entity/AcDbText.d.ts.map +1 -1
- package/lib/entity/AcDbText.js +254 -119
- package/lib/entity/AcDbText.js.map +1 -1
- package/lib/entity/AcDbTextExtentsHelpers.d.ts +14 -1
- package/lib/entity/AcDbTextExtentsHelpers.d.ts.map +1 -1
- package/lib/entity/AcDbTextExtentsHelpers.js +28 -5
- package/lib/entity/AcDbTextExtentsHelpers.js.map +1 -1
- package/lib/entity/AcDbTrace.d.ts +6 -0
- package/lib/entity/AcDbTrace.d.ts.map +1 -1
- package/lib/entity/AcDbTrace.js +117 -0
- package/lib/entity/AcDbTrace.js.map +1 -1
- package/lib/entity/AcDbUnknownEntity.d.ts +46 -0
- package/lib/entity/AcDbUnknownEntity.d.ts.map +1 -0
- package/lib/entity/AcDbUnknownEntity.js +210 -0
- package/lib/entity/AcDbUnknownEntity.js.map +1 -0
- package/lib/entity/AcDbViewport.d.ts +5 -0
- package/lib/entity/AcDbViewport.d.ts.map +1 -1
- package/lib/entity/AcDbViewport.js +307 -0
- package/lib/entity/AcDbViewport.js.map +1 -1
- package/lib/entity/AcDbWipeout.d.ts.map +1 -1
- package/lib/entity/AcDbWipeout.js +12 -1
- package/lib/entity/AcDbWipeout.js.map +1 -1
- package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbDimension.js +22 -2
- package/lib/entity/dimension/AcDbDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbOrdinateDimension.js +5 -1
- package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -1
- package/lib/entity/index.d.ts +1 -0
- package/lib/entity/index.d.ts.map +1 -1
- package/lib/entity/index.js +1 -0
- package/lib/entity/index.js.map +1 -1
- package/lib/ly/AcLyLayerFilterIO.d.ts +2 -0
- package/lib/ly/AcLyLayerFilterIO.d.ts.map +1 -1
- package/lib/ly/AcLyLayerFilterIO.js.map +1 -1
- package/lib/object/AcDbDictionary.d.ts +16 -0
- package/lib/object/AcDbDictionary.d.ts.map +1 -1
- package/lib/object/AcDbDictionary.js +37 -1
- package/lib/object/AcDbDictionary.js.map +1 -1
- package/lib/object/AcDbObjectContextData.d.ts +21 -0
- package/lib/object/AcDbObjectContextData.d.ts.map +1 -1
- package/lib/object/AcDbObjectContextData.js +49 -0
- package/lib/object/AcDbObjectContextData.js.map +1 -1
- package/lib/object/AcDbUnknownObject.d.ts +24 -0
- package/lib/object/AcDbUnknownObject.d.ts.map +1 -0
- package/lib/object/AcDbUnknownObject.js +97 -0
- package/lib/object/AcDbUnknownObject.js.map +1 -0
- package/lib/object/index.d.ts +1 -0
- package/lib/object/index.d.ts.map +1 -1
- package/lib/object/index.js +1 -0
- package/lib/object/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -103,7 +103,9 @@ import { AcDbObject, TEMP_OBJECT_ID_PREFIX, acdbAssignWorkingDatabase } from '..
|
|
|
103
103
|
import { AcDbOpenMode } from '../base/AcDbOpenMode.js';
|
|
104
104
|
import { AcDbRegenerator } from '../converter/AcDbRegenerator.js';
|
|
105
105
|
import { AcDbDatabaseConverterManager, AcDbFileType } from './AcDbDatabaseConverterManager.js';
|
|
106
|
+
import { AcDbEntity } from '../entity/AcDbEntity.js';
|
|
106
107
|
import { AcDbPolyline } from '../entity/AcDbPolyline.js';
|
|
108
|
+
import { AcDbUnknownEntity } from '../entity/AcDbUnknownEntity.js';
|
|
107
109
|
import { ACAD_APPID, ACDB_COMPAREHATCH_DEFAULT, ACDB_COMPAREHATCH_MAX, ACDB_COMPAREHATCH_MIN, ACDB_COMPARERCMARGIN_DEFAULT, ACDB_COMPARERCMARGIN_MAX, ACDB_COMPARERCMARGIN_MIN, ACDB_COMPARETEXT_DEFAULT, ACDB_COMPARETEXT_MAX, ACDB_COMPARETEXT_MIN, ACDB_COMPARETOLERANCE_DEFAULT, ACDB_COMPARETOLERANCE_MAX, ACDB_COMPARETOLERANCE_MIN, acdbCoerceIntegerSysVar, ACTIVE_VPORT_NAME, ByBlock, ByLayer, DEFAULT_MLEADER_STYLE, DEFAULT_MLINE_STYLE, DEFAULT_LINE_TYPE, DEFAULT_TEXT_STYLE, MLIGHTCAD_APPID } from '../misc/AcDbConstants.js';
|
|
108
110
|
import { AcDbAngleUnits } from '../misc/AcDbAngleUnits.js';
|
|
109
111
|
import { AcDbDataGenerator } from '../misc/AcDbDataGenerator.js';
|
|
@@ -112,6 +114,7 @@ import { AcDbFormatter } from '../misc/AcDbFormatter.js';
|
|
|
112
114
|
import { AcDbLinearUnits } from '../misc/AcDbLinearUnits.js';
|
|
113
115
|
import { AcDbUnitsValue } from '../misc/AcDbUnitsValue.js';
|
|
114
116
|
import { AcDbDictionary } from '../object/AcDbDictionary.js';
|
|
117
|
+
import { AcDbGroup } from '../object/AcDbGroup.js';
|
|
115
118
|
import { AcDbMLeaderStyle } from '../object/AcDbMLeaderStyle.js';
|
|
116
119
|
import { AcDbMlineStyle } from '../object/AcDbMlineStyle.js';
|
|
117
120
|
import { AcDbXrecord } from '../object/AcDbXrecord.js';
|
|
@@ -144,6 +147,50 @@ import { AcDbLayout } from '../object/layout/AcDbLayout.js';
|
|
|
144
147
|
import { AcDbLayoutDictionary } from '../object/layout/AcDbLayoutDictionary.js';
|
|
145
148
|
import { AcDbSymbolTable } from './AcDbSymbolTable.js';
|
|
146
149
|
import { AcDbDatabaseTransactionManager } from './transaction/AcDbDatabaseTransactionManager.js';
|
|
150
|
+
import { acdbDxfObjectRecordName } from '../dxf/AcDbDxfObjectRecordName.js';
|
|
151
|
+
/**
|
|
152
|
+
* HEADER variables {@link AcDbDatabase.dxfOut} writes from the live model.
|
|
153
|
+
* Verbatim copies preserved from the source file are never written for these.
|
|
154
|
+
*/
|
|
155
|
+
var DXF_HEADER_NATIVE_VARS = new Set([
|
|
156
|
+
'$ACADVER',
|
|
157
|
+
'$HANDSEED',
|
|
158
|
+
'$DWGCODEPAGE',
|
|
159
|
+
'$INSUNITS',
|
|
160
|
+
'$LUNITS',
|
|
161
|
+
'$LUPREC',
|
|
162
|
+
'$UNITMODE',
|
|
163
|
+
'$MEASUREMENT',
|
|
164
|
+
'$LTSCALE',
|
|
165
|
+
'$LWDISPLAY',
|
|
166
|
+
'$CELTSCALE',
|
|
167
|
+
'$CELWEIGHT',
|
|
168
|
+
'$CECOLOR',
|
|
169
|
+
'$TILEMODE',
|
|
170
|
+
'$PSLTSCALE',
|
|
171
|
+
'$CLAYER',
|
|
172
|
+
'$CELTYPE',
|
|
173
|
+
'$CETRANSPARENCY',
|
|
174
|
+
'$CMLSTYLE',
|
|
175
|
+
'$CMLSCALE',
|
|
176
|
+
'$CMLEADERSTYLE',
|
|
177
|
+
'$HPCOLOR',
|
|
178
|
+
'$HPBACKGROUNDCOLOR',
|
|
179
|
+
'$HPLAYER',
|
|
180
|
+
'$HPTRANSPARENCY',
|
|
181
|
+
'$TEXTSTYLE',
|
|
182
|
+
'$DIMSTYLE',
|
|
183
|
+
'$ANGBASE',
|
|
184
|
+
'$ANGDIR',
|
|
185
|
+
'$AUNITS',
|
|
186
|
+
'$AUPREC',
|
|
187
|
+
'$EXTMIN',
|
|
188
|
+
'$EXTMAX',
|
|
189
|
+
'$PDMODE',
|
|
190
|
+
'$PDSIZE',
|
|
191
|
+
'$OSMODE',
|
|
192
|
+
'$ORTHOMODE'
|
|
193
|
+
]);
|
|
147
194
|
/**
|
|
148
195
|
* The AcDbDatabase class represents an AutoCAD drawing file.
|
|
149
196
|
*
|
|
@@ -183,6 +230,18 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
183
230
|
* Set from {@link AcDbOpenDatabaseOptions.circleSides} when opening a database.
|
|
184
231
|
*/
|
|
185
232
|
_this._drawCircleSides = ACDB_DRAW_CIRCLE_SIDES_DRAFT;
|
|
233
|
+
/**
|
|
234
|
+
* DXF HEADER variables without a native model, kept verbatim in file order
|
|
235
|
+
* and re-emitted by {@link dxfOut} (ezdxf keeps the whole HEADER section).
|
|
236
|
+
*/
|
|
237
|
+
_this._dxfHeaderExtras = [];
|
|
238
|
+
/** DWG version value of the file {@link _dxfHeaderExtras} came from. */
|
|
239
|
+
_this._dxfHeaderExtrasVersion = 0;
|
|
240
|
+
/**
|
|
241
|
+
* OBJECTS-section records without a native class, kept verbatim
|
|
242
|
+
* ({@link AcDbUnknownObject}) and re-emitted by {@link dxfOut}.
|
|
243
|
+
*/
|
|
244
|
+
_this._dxfUnknownObjects = [];
|
|
186
245
|
_this._eventBatchDepth = 0;
|
|
187
246
|
_this._pendingEntityAppended = [];
|
|
188
247
|
_this._pendingEntityErased = [];
|
|
@@ -1583,7 +1642,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
1583
1642
|
_this._dwgname = nextValue;
|
|
1584
1643
|
});
|
|
1585
1644
|
};
|
|
1586
|
-
Object.defineProperty(AcDbDatabase.prototype, "
|
|
1645
|
+
Object.defineProperty(AcDbDatabase.prototype, "dxfHeaderExtras", {
|
|
1587
1646
|
/**
|
|
1588
1647
|
* Gets or sets the drawing thumbnail preview image.
|
|
1589
1648
|
*
|
|
@@ -1593,6 +1652,48 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
1593
1652
|
*
|
|
1594
1653
|
* @returns Thumbnail image bytes, or `undefined` when none exist.
|
|
1595
1654
|
*/
|
|
1655
|
+
/**
|
|
1656
|
+
* HEADER variables read from DXF that have no native model, in file order.
|
|
1657
|
+
* @internal
|
|
1658
|
+
*/
|
|
1659
|
+
get: function () {
|
|
1660
|
+
return this._dxfHeaderExtras;
|
|
1661
|
+
},
|
|
1662
|
+
enumerable: false,
|
|
1663
|
+
configurable: true
|
|
1664
|
+
});
|
|
1665
|
+
/** @internal Used by the DXF HEADER reader. */
|
|
1666
|
+
AcDbDatabase.prototype.addDxfHeaderExtra = function (name, pairs) {
|
|
1667
|
+
var index = this._dxfHeaderExtras.findIndex(function (v) { return v.name === name; });
|
|
1668
|
+
if (index >= 0) {
|
|
1669
|
+
this._dxfHeaderExtras[index] = { name: name, pairs: pairs };
|
|
1670
|
+
}
|
|
1671
|
+
else {
|
|
1672
|
+
this._dxfHeaderExtras.push({ name: name, pairs: pairs });
|
|
1673
|
+
}
|
|
1674
|
+
this._dxfHeaderExtrasVersion = this._version.value;
|
|
1675
|
+
};
|
|
1676
|
+
Object.defineProperty(AcDbDatabase.prototype, "dxfUnknownObjects", {
|
|
1677
|
+
/**
|
|
1678
|
+
* OBJECTS records read from DXF without a native class.
|
|
1679
|
+
* @internal
|
|
1680
|
+
*/
|
|
1681
|
+
get: function () {
|
|
1682
|
+
return this._dxfUnknownObjects;
|
|
1683
|
+
},
|
|
1684
|
+
enumerable: false,
|
|
1685
|
+
configurable: true
|
|
1686
|
+
});
|
|
1687
|
+
/** @internal Used by the DXF OBJECTS reader. */
|
|
1688
|
+
AcDbDatabase.prototype.addDxfUnknownObject = function (object) {
|
|
1689
|
+
this._dxfUnknownObjects.push(object);
|
|
1690
|
+
};
|
|
1691
|
+
/** @internal Used by the DXF HEADER reader. */
|
|
1692
|
+
AcDbDatabase.prototype.clearDxfHeaderExtras = function () {
|
|
1693
|
+
this._dxfHeaderExtras = [];
|
|
1694
|
+
this._dxfHeaderExtrasVersion = 0;
|
|
1695
|
+
};
|
|
1696
|
+
Object.defineProperty(AcDbDatabase.prototype, "thumbnailImage", {
|
|
1596
1697
|
get: function () {
|
|
1597
1698
|
return this._thumbnailImage;
|
|
1598
1699
|
},
|
|
@@ -2416,7 +2517,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
2416
2517
|
* @returns ASCII DXF string, or `Uint8Array` when format is `'binary'`.
|
|
2417
2518
|
*/
|
|
2418
2519
|
AcDbDatabase.prototype.dxfOut = function (_fileName, precision, version, optionsOrThumbnail) {
|
|
2419
|
-
var _a, _b;
|
|
2520
|
+
var _a, _b, _c;
|
|
2420
2521
|
if (precision === void 0) { precision = 16; }
|
|
2421
2522
|
if (version === void 0) { version = this.version.name; }
|
|
2422
2523
|
if (optionsOrThumbnail === void 0) { optionsOrThumbnail = false; }
|
|
@@ -2441,12 +2542,17 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
2441
2542
|
version: outVersion,
|
|
2442
2543
|
outputFormat: options.format
|
|
2443
2544
|
});
|
|
2545
|
+
var objectsPlan = filer.capabilities.supportsObjectsSection
|
|
2546
|
+
? this.planDxfObjectsSection(filer)
|
|
2547
|
+
: undefined;
|
|
2548
|
+
filer.writtenObjectIds = (_c = objectsPlan === null || objectsPlan === void 0 ? void 0 : objectsPlan.writtenObjectIds) !== null && _c !== void 0 ? _c : new Set();
|
|
2549
|
+
this.ensureXDataAppIds(objectsPlan);
|
|
2444
2550
|
this.writeDxfHeaderSection(filer);
|
|
2445
2551
|
this.writeDxfClassesSection(filer);
|
|
2446
2552
|
this.writeDxfTablesSection(filer, outVersion);
|
|
2447
2553
|
this.writeDxfBlocksSection(filer);
|
|
2448
2554
|
this.writeDxfEntitiesSection(filer);
|
|
2449
|
-
this.writeDxfObjectsSection(filer);
|
|
2555
|
+
this.writeDxfObjectsSection(filer, objectsPlan);
|
|
2450
2556
|
this.writeDxfThumbnailImageSection(filer, options.saveThumbnailImage);
|
|
2451
2557
|
filer.writeStart('EOF');
|
|
2452
2558
|
// `$HANDSEED` is written early in HEADER; patch it now that every handle
|
|
@@ -2916,8 +3022,38 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
2916
3022
|
filer.writeInt32(70, this.osmode);
|
|
2917
3023
|
filer.writeString(9, '$ORTHOMODE');
|
|
2918
3024
|
filer.writeInt16(70, this.orthomode);
|
|
3025
|
+
this.writeDxfHeaderExtras(filer);
|
|
2919
3026
|
filer.endSection();
|
|
2920
3027
|
};
|
|
3028
|
+
/**
|
|
3029
|
+
* Re-emits HEADER variables preserved verbatim from the source DXF.
|
|
3030
|
+
*
|
|
3031
|
+
* Skipped when exporting to an older version than the source, since newer
|
|
3032
|
+
* variables (and their value encodings) may be invalid there.
|
|
3033
|
+
*/
|
|
3034
|
+
AcDbDatabase.prototype.writeDxfHeaderExtras = function (filer) {
|
|
3035
|
+
var e_14, _a;
|
|
3036
|
+
var _b, _c;
|
|
3037
|
+
var target = (_c = (_b = filer.version) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : this.version.value;
|
|
3038
|
+
if (target < this._dxfHeaderExtrasVersion)
|
|
3039
|
+
return;
|
|
3040
|
+
try {
|
|
3041
|
+
for (var _d = __values(this._dxfHeaderExtras), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
3042
|
+
var _f = _e.value, name_5 = _f.name, pairs = _f.pairs;
|
|
3043
|
+
if (DXF_HEADER_NATIVE_VARS.has(name_5))
|
|
3044
|
+
continue;
|
|
3045
|
+
filer.writeString(9, name_5);
|
|
3046
|
+
filer.writeRawPairs(pairs);
|
|
3047
|
+
}
|
|
3048
|
+
}
|
|
3049
|
+
catch (e_14_1) { e_14 = { error: e_14_1 }; }
|
|
3050
|
+
finally {
|
|
3051
|
+
try {
|
|
3052
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
3053
|
+
}
|
|
3054
|
+
finally { if (e_14) throw e_14.error; }
|
|
3055
|
+
}
|
|
3056
|
+
};
|
|
2921
3057
|
/**
|
|
2922
3058
|
* Writes `$EXTMIN` / `$EXTMAX`. Empty drawings use AutoCAD's 1e20 / -1e20
|
|
2923
3059
|
* convention; otherwise extents are taken from the database box, refreshed
|
|
@@ -2941,7 +3077,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
2941
3077
|
};
|
|
2942
3078
|
/** Expands {@link _extents} from model-space entity geometry when possible. */
|
|
2943
3079
|
AcDbDatabase.prototype.refreshExtentsFromModelSpace = function () {
|
|
2944
|
-
var
|
|
3080
|
+
var e_15, _a;
|
|
2945
3081
|
try {
|
|
2946
3082
|
for (var _b = __values(this.tables.blockTable.modelSpace.newIterator()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
2947
3083
|
var entity = _c.value;
|
|
@@ -2956,12 +3092,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
2956
3092
|
}
|
|
2957
3093
|
}
|
|
2958
3094
|
}
|
|
2959
|
-
catch (
|
|
3095
|
+
catch (e_15_1) { e_15 = { error: e_15_1 }; }
|
|
2960
3096
|
finally {
|
|
2961
3097
|
try {
|
|
2962
3098
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
2963
3099
|
}
|
|
2964
|
-
finally { if (
|
|
3100
|
+
finally { if (e_15) throw e_15.error; }
|
|
2965
3101
|
}
|
|
2966
3102
|
};
|
|
2967
3103
|
/**
|
|
@@ -2973,7 +3109,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
2973
3109
|
* @param filer - DXF output writer.
|
|
2974
3110
|
*/
|
|
2975
3111
|
AcDbDatabase.prototype.writeDxfClassesSection = function (filer) {
|
|
2976
|
-
var
|
|
3112
|
+
var e_16, _a;
|
|
2977
3113
|
if (!filer.capabilities.supportsClassesSection ||
|
|
2978
3114
|
this._classes.length === 0) {
|
|
2979
3115
|
return;
|
|
@@ -2992,12 +3128,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
2992
3128
|
filer.writeInt8(281, dxfClass.isEntity ? 1 : 0);
|
|
2993
3129
|
}
|
|
2994
3130
|
}
|
|
2995
|
-
catch (
|
|
3131
|
+
catch (e_16_1) { e_16 = { error: e_16_1 }; }
|
|
2996
3132
|
finally {
|
|
2997
3133
|
try {
|
|
2998
3134
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
2999
3135
|
}
|
|
3000
|
-
finally { if (
|
|
3136
|
+
finally { if (e_16) throw e_16.error; }
|
|
3001
3137
|
}
|
|
3002
3138
|
filer.endSection();
|
|
3003
3139
|
};
|
|
@@ -3028,7 +3164,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3028
3164
|
* @param filer - DXF output writer.
|
|
3029
3165
|
*/
|
|
3030
3166
|
AcDbDatabase.prototype.writeDxfBlocksSection = function (filer) {
|
|
3031
|
-
var
|
|
3167
|
+
var e_17, _a, e_18, _b;
|
|
3032
3168
|
filer.startSection('BLOCKS');
|
|
3033
3169
|
try {
|
|
3034
3170
|
for (var _c = __values(this.tables.blockTable.newIterator()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
@@ -3036,28 +3172,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3036
3172
|
btr.dxfOutBlockBegin(filer);
|
|
3037
3173
|
if (!btr.isModelSapce && !btr.isPaperSapce) {
|
|
3038
3174
|
try {
|
|
3039
|
-
for (var _e = (
|
|
3175
|
+
for (var _e = (e_18 = void 0, __values(btr.newIterator())), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
3040
3176
|
var entity = _f.value;
|
|
3041
3177
|
this.writeDxfEntity(filer, entity);
|
|
3042
3178
|
}
|
|
3043
3179
|
}
|
|
3044
|
-
catch (
|
|
3180
|
+
catch (e_18_1) { e_18 = { error: e_18_1 }; }
|
|
3045
3181
|
finally {
|
|
3046
3182
|
try {
|
|
3047
3183
|
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
3048
3184
|
}
|
|
3049
|
-
finally { if (
|
|
3185
|
+
finally { if (e_18) throw e_18.error; }
|
|
3050
3186
|
}
|
|
3051
3187
|
}
|
|
3052
3188
|
btr.dxfOutBlockEnd(filer);
|
|
3053
3189
|
}
|
|
3054
3190
|
}
|
|
3055
|
-
catch (
|
|
3191
|
+
catch (e_17_1) { e_17 = { error: e_17_1 }; }
|
|
3056
3192
|
finally {
|
|
3057
3193
|
try {
|
|
3058
3194
|
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
3059
3195
|
}
|
|
3060
|
-
finally { if (
|
|
3196
|
+
finally { if (e_17) throw e_17.error; }
|
|
3061
3197
|
}
|
|
3062
3198
|
filer.endSection();
|
|
3063
3199
|
};
|
|
@@ -3067,7 +3203,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3067
3203
|
* @param filer - DXF output writer.
|
|
3068
3204
|
*/
|
|
3069
3205
|
AcDbDatabase.prototype.writeDxfEntitiesSection = function (filer) {
|
|
3070
|
-
var
|
|
3206
|
+
var e_19, _a, e_20, _b;
|
|
3071
3207
|
filer.startSection('ENTITIES');
|
|
3072
3208
|
try {
|
|
3073
3209
|
for (var _c = __values(this.tables.blockTable.newIterator()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
@@ -3075,47 +3211,48 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3075
3211
|
if (!btr.isModelSapce && !btr.isPaperSapce)
|
|
3076
3212
|
continue;
|
|
3077
3213
|
try {
|
|
3078
|
-
for (var _e = (
|
|
3214
|
+
for (var _e = (e_20 = void 0, __values(btr.newIterator())), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
3079
3215
|
var entity = _f.value;
|
|
3080
3216
|
this.writeDxfEntity(filer, entity);
|
|
3081
3217
|
}
|
|
3082
3218
|
}
|
|
3083
|
-
catch (
|
|
3219
|
+
catch (e_20_1) { e_20 = { error: e_20_1 }; }
|
|
3084
3220
|
finally {
|
|
3085
3221
|
try {
|
|
3086
3222
|
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
3087
3223
|
}
|
|
3088
|
-
finally { if (
|
|
3224
|
+
finally { if (e_20) throw e_20.error; }
|
|
3089
3225
|
}
|
|
3090
3226
|
}
|
|
3091
3227
|
}
|
|
3092
|
-
catch (
|
|
3228
|
+
catch (e_19_1) { e_19 = { error: e_19_1 }; }
|
|
3093
3229
|
finally {
|
|
3094
3230
|
try {
|
|
3095
3231
|
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
3096
3232
|
}
|
|
3097
|
-
finally { if (
|
|
3233
|
+
finally { if (e_19) throw e_19.error; }
|
|
3098
3234
|
}
|
|
3099
3235
|
filer.endSection();
|
|
3100
3236
|
};
|
|
3101
3237
|
/**
|
|
3102
|
-
*
|
|
3238
|
+
* Decides which OBJECTS-section records a DXF export writes.
|
|
3103
3239
|
*
|
|
3104
|
-
*
|
|
3240
|
+
* Like ezdxf / ODA, every record reachable from the named object dictionary
|
|
3241
|
+
* and from extension dictionaries (of tables, table records, entities and
|
|
3242
|
+
* objects) is written, including records preserved verbatim
|
|
3243
|
+
* ({@link AcDbUnknownObject}, context data). Only records that are actually
|
|
3244
|
+
* written are listed in their dictionaries, so the output never carries
|
|
3245
|
+
* dangling 350/360 handles.
|
|
3246
|
+
*
|
|
3247
|
+
* Must run before any section is written: {@link AcDbObject} consults the
|
|
3248
|
+
* resulting handle set when it emits extension-dictionary pointers.
|
|
3105
3249
|
*/
|
|
3106
|
-
AcDbDatabase.prototype.
|
|
3107
|
-
var
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
}
|
|
3111
|
-
filer.startSection('OBJECTS');
|
|
3250
|
+
AcDbDatabase.prototype.planDxfObjectsSection = function (filer) {
|
|
3251
|
+
var e_21, _a, e_22, _b, e_23, _c, e_24, _d, e_25, _e, e_26, _f, e_27, _g, e_28, _h, e_29, _j, e_30, _k, e_31, _l;
|
|
3252
|
+
var _this = this;
|
|
3253
|
+
var _m, _o;
|
|
3112
3254
|
var rootDict = this.objects.dictionary;
|
|
3113
3255
|
rootDict.ownerId = '0';
|
|
3114
|
-
var writeDictionary = function (dict) {
|
|
3115
|
-
// Dictionary entries (3/350 pairs) are embedded in the DICTIONARY object.
|
|
3116
|
-
filer.writeStart('DICTIONARY');
|
|
3117
|
-
dict.dxfOut(filer, true);
|
|
3118
|
-
};
|
|
3119
3256
|
var ensureRootEntry = function (key, dict) {
|
|
3120
3257
|
if (rootDict.getAt(key) !== dict) {
|
|
3121
3258
|
rootDict.setAt(key, dict);
|
|
@@ -3159,164 +3296,480 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3159
3296
|
else {
|
|
3160
3297
|
dropRootEntry('ISM_RASTER_IMAGE_DICT');
|
|
3161
3298
|
}
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3299
|
+
var norm = function (id) { return (id !== null && id !== void 0 ? id : '').trim().toUpperCase(); };
|
|
3300
|
+
var classNames = new Set(this._classes.map(function (item) { var _a; return ((_a = item.name) !== null && _a !== void 0 ? _a : '').toUpperCase(); }));
|
|
3301
|
+
var records = new Map();
|
|
3302
|
+
// Records replaced by freshly generated ones (Layer Manager filter tree):
|
|
3303
|
+
// neither written nor collected into MLIGHT_XRECORD.
|
|
3304
|
+
var superseded = new Set();
|
|
3305
|
+
var xrecordContainer = this.objects.xrecord;
|
|
3306
|
+
var queue = [];
|
|
3307
|
+
var visit = function (object) {
|
|
3308
|
+
if (!object || object === xrecordContainer)
|
|
3309
|
+
return;
|
|
3310
|
+
var key = norm(object.objectId);
|
|
3311
|
+
if (!key || records.has(key) || superseded.has(key))
|
|
3312
|
+
return;
|
|
3313
|
+
var type = acdbDxfObjectRecordName(object, classNames);
|
|
3314
|
+
if (!type)
|
|
3315
|
+
return;
|
|
3316
|
+
records.set(key, { object: object, type: type });
|
|
3317
|
+
queue.push(object);
|
|
3318
|
+
};
|
|
3319
|
+
var visitExtensionDictionary = function (owner) {
|
|
3320
|
+
var id = owner.extensionDictionary;
|
|
3321
|
+
if (id)
|
|
3322
|
+
visit(_this.getObjectById(id));
|
|
3323
|
+
};
|
|
3324
|
+
var next = 0;
|
|
3325
|
+
var drain = function () {
|
|
3326
|
+
var e_32, _a;
|
|
3327
|
+
while (next < queue.length) {
|
|
3328
|
+
var object = queue[next++];
|
|
3329
|
+
visitExtensionDictionary(object);
|
|
3330
|
+
if (object instanceof AcDbDictionary) {
|
|
3331
|
+
try {
|
|
3332
|
+
for (var _b = (e_32 = void 0, __values(object.entries())), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
3333
|
+
var _d = __read(_c.value, 2), entry = _d[1];
|
|
3334
|
+
visit(entry);
|
|
3335
|
+
}
|
|
3336
|
+
}
|
|
3337
|
+
catch (e_32_1) { e_32 = { error: e_32_1 }; }
|
|
3338
|
+
finally {
|
|
3339
|
+
try {
|
|
3340
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
3341
|
+
}
|
|
3342
|
+
finally { if (e_32) throw e_32.error; }
|
|
3343
|
+
}
|
|
3344
|
+
if (object.defaultId)
|
|
3345
|
+
visit(_this.getObjectById(object.defaultId));
|
|
3346
|
+
}
|
|
3347
|
+
}
|
|
3348
|
+
};
|
|
3349
|
+
var markSuperseded = function (object) {
|
|
3350
|
+
var e_33, _a;
|
|
3351
|
+
if (!object)
|
|
3352
|
+
return;
|
|
3353
|
+
var key = norm(object.objectId);
|
|
3354
|
+
if (!key || superseded.has(key))
|
|
3355
|
+
return;
|
|
3356
|
+
superseded.add(key);
|
|
3357
|
+
if (object.extensionDictionary) {
|
|
3358
|
+
markSuperseded(_this.getObjectById(object.extensionDictionary));
|
|
3359
|
+
}
|
|
3360
|
+
if (object instanceof AcDbDictionary) {
|
|
3361
|
+
try {
|
|
3362
|
+
for (var _b = __values(object.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
3363
|
+
var _d = __read(_c.value, 2), entry = _d[1];
|
|
3364
|
+
markSuperseded(entry);
|
|
3365
|
+
}
|
|
3366
|
+
}
|
|
3367
|
+
catch (e_33_1) { e_33 = { error: e_33_1 }; }
|
|
3368
|
+
finally {
|
|
3369
|
+
try {
|
|
3370
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
3371
|
+
}
|
|
3372
|
+
finally { if (e_33) throw e_33.error; }
|
|
3373
|
+
}
|
|
3374
|
+
}
|
|
3375
|
+
};
|
|
3376
|
+
// The named object dictionary must be the first record of OBJECTS.
|
|
3377
|
+
visit(rootDict);
|
|
3378
|
+
drain();
|
|
3379
|
+
// The Layer Manager filter tree is regenerated by
|
|
3380
|
+
// writeAcLyLayerFilterObjects, which also writes the layer table's
|
|
3381
|
+
// extension dictionary. Keep its other entries.
|
|
3382
|
+
var layerTable = this.tables.layerTable;
|
|
3383
|
+
var writesLayerFilters = this._layerFilters.root.getNestedFilters().length > 0;
|
|
3384
|
+
if (writesLayerFilters && layerTable.extensionDictionary) {
|
|
3385
|
+
var layerExtId = layerTable.extensionDictionary;
|
|
3386
|
+
var layerExt = this.getObjectById(layerExtId);
|
|
3387
|
+
superseded.add(norm(layerExtId));
|
|
3388
|
+
if (layerExt instanceof AcDbDictionary) {
|
|
3389
|
+
try {
|
|
3390
|
+
for (var _p = __values(layerExt.entries()), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
3391
|
+
var _r = __read(_q.value, 2), key = _r[0], entry = _r[1];
|
|
3392
|
+
if (key === ACLY_DICTIONARY_NAME || key === ACAD_LAYERFILTERS_NAME) {
|
|
3393
|
+
markSuperseded(entry);
|
|
3394
|
+
}
|
|
3395
|
+
else {
|
|
3396
|
+
visit(entry);
|
|
3397
|
+
}
|
|
3398
|
+
}
|
|
3399
|
+
}
|
|
3400
|
+
catch (e_21_1) { e_21 = { error: e_21_1 }; }
|
|
3401
|
+
finally {
|
|
3402
|
+
try {
|
|
3403
|
+
if (_q && !_q.done && (_a = _p.return)) _a.call(_p);
|
|
3404
|
+
}
|
|
3405
|
+
finally { if (e_21) throw e_21.error; }
|
|
3406
|
+
}
|
|
3407
|
+
}
|
|
3185
3408
|
}
|
|
3186
3409
|
try {
|
|
3187
|
-
for (var
|
|
3188
|
-
var
|
|
3189
|
-
|
|
3190
|
-
|
|
3410
|
+
for (var _s = __values(Object.values(this.tables)), _t = _s.next(); !_t.done; _t = _s.next()) {
|
|
3411
|
+
var table = _t.value;
|
|
3412
|
+
visitExtensionDictionary(table);
|
|
3413
|
+
try {
|
|
3414
|
+
for (var _u = (e_23 = void 0, __values(table.newIterator())), _v = _u.next(); !_v.done; _v = _u.next()) {
|
|
3415
|
+
var record = _v.value;
|
|
3416
|
+
visitExtensionDictionary(record);
|
|
3417
|
+
}
|
|
3418
|
+
}
|
|
3419
|
+
catch (e_23_1) { e_23 = { error: e_23_1 }; }
|
|
3420
|
+
finally {
|
|
3421
|
+
try {
|
|
3422
|
+
if (_v && !_v.done && (_c = _u.return)) _c.call(_u);
|
|
3423
|
+
}
|
|
3424
|
+
finally { if (e_23) throw e_23.error; }
|
|
3425
|
+
}
|
|
3191
3426
|
}
|
|
3192
3427
|
}
|
|
3193
|
-
catch (
|
|
3428
|
+
catch (e_22_1) { e_22 = { error: e_22_1 }; }
|
|
3194
3429
|
finally {
|
|
3195
3430
|
try {
|
|
3196
|
-
if (
|
|
3431
|
+
if (_t && !_t.done && (_b = _s.return)) _b.call(_s);
|
|
3197
3432
|
}
|
|
3198
|
-
finally { if (
|
|
3433
|
+
finally { if (e_22) throw e_22.error; }
|
|
3199
3434
|
}
|
|
3200
3435
|
try {
|
|
3201
|
-
for (var
|
|
3202
|
-
var
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3436
|
+
for (var _w = __values(this.tables.blockTable.newIterator()), _x = _w.next(); !_x.done; _x = _w.next()) {
|
|
3437
|
+
var btr = _x.value;
|
|
3438
|
+
try {
|
|
3439
|
+
for (var _y = (e_25 = void 0, __values(btr.newIterator())), _z = _y.next(); !_z.done; _z = _y.next()) {
|
|
3440
|
+
var entity = _z.value;
|
|
3441
|
+
visitExtensionDictionary(entity);
|
|
3442
|
+
var attributes = (_o = (_m = entity).attributeIterator) === null || _o === void 0 ? void 0 : _o.call(_m);
|
|
3443
|
+
if (attributes) {
|
|
3444
|
+
try {
|
|
3445
|
+
for (var attributes_1 = (e_26 = void 0, __values(attributes)), attributes_1_1 = attributes_1.next(); !attributes_1_1.done; attributes_1_1 = attributes_1.next()) {
|
|
3446
|
+
var attribute = attributes_1_1.value;
|
|
3447
|
+
visitExtensionDictionary(attribute);
|
|
3448
|
+
}
|
|
3449
|
+
}
|
|
3450
|
+
catch (e_26_1) { e_26 = { error: e_26_1 }; }
|
|
3451
|
+
finally {
|
|
3452
|
+
try {
|
|
3453
|
+
if (attributes_1_1 && !attributes_1_1.done && (_f = attributes_1.return)) _f.call(attributes_1);
|
|
3454
|
+
}
|
|
3455
|
+
finally { if (e_26) throw e_26.error; }
|
|
3456
|
+
}
|
|
3457
|
+
}
|
|
3458
|
+
}
|
|
3459
|
+
}
|
|
3460
|
+
catch (e_25_1) { e_25 = { error: e_25_1 }; }
|
|
3461
|
+
finally {
|
|
3462
|
+
try {
|
|
3463
|
+
if (_z && !_z.done && (_e = _y.return)) _e.call(_y);
|
|
3464
|
+
}
|
|
3465
|
+
finally { if (e_25) throw e_25.error; }
|
|
3466
|
+
}
|
|
3207
3467
|
}
|
|
3208
3468
|
}
|
|
3209
|
-
catch (
|
|
3469
|
+
catch (e_24_1) { e_24 = { error: e_24_1 }; }
|
|
3210
3470
|
finally {
|
|
3211
3471
|
try {
|
|
3212
|
-
if (
|
|
3472
|
+
if (_x && !_x.done && (_d = _w.return)) _d.call(_w);
|
|
3213
3473
|
}
|
|
3214
|
-
finally { if (
|
|
3474
|
+
finally { if (e_24) throw e_24.error; }
|
|
3215
3475
|
}
|
|
3476
|
+
drain();
|
|
3216
3477
|
try {
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3478
|
+
// Index objects are not dictionary entries; written as before.
|
|
3479
|
+
for (var _0 = __values(this.objects.layerFilter.entries()), _1 = _0.next(); !_1.done; _1 = _0.next()) {
|
|
3480
|
+
var _2 = __read(_1.value, 2), layerFilter = _2[1];
|
|
3481
|
+
visit(layerFilter);
|
|
3221
3482
|
}
|
|
3222
3483
|
}
|
|
3223
|
-
catch (
|
|
3484
|
+
catch (e_27_1) { e_27 = { error: e_27_1 }; }
|
|
3224
3485
|
finally {
|
|
3225
3486
|
try {
|
|
3226
|
-
if (
|
|
3487
|
+
if (_1 && !_1.done && (_g = _0.return)) _g.call(_0);
|
|
3227
3488
|
}
|
|
3228
|
-
finally { if (
|
|
3489
|
+
finally { if (e_27) throw e_27.error; }
|
|
3229
3490
|
}
|
|
3230
3491
|
try {
|
|
3231
|
-
for (var
|
|
3232
|
-
var
|
|
3233
|
-
|
|
3234
|
-
imageDef.dxfOut(filer, true);
|
|
3492
|
+
for (var _3 = __values(this.objects.layerIndex.entries()), _4 = _3.next(); !_4.done; _4 = _3.next()) {
|
|
3493
|
+
var _5 = __read(_4.value, 2), layerIndex = _5[1];
|
|
3494
|
+
visit(layerIndex);
|
|
3235
3495
|
}
|
|
3236
3496
|
}
|
|
3237
|
-
catch (
|
|
3497
|
+
catch (e_28_1) { e_28 = { error: e_28_1 }; }
|
|
3238
3498
|
finally {
|
|
3239
3499
|
try {
|
|
3240
|
-
if (
|
|
3500
|
+
if (_4 && !_4.done && (_h = _3.return)) _h.call(_3);
|
|
3241
3501
|
}
|
|
3242
|
-
finally { if (
|
|
3502
|
+
finally { if (e_28) throw e_28.error; }
|
|
3243
3503
|
}
|
|
3244
3504
|
try {
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3505
|
+
// Preserved records owned by an entity or object rather than a
|
|
3506
|
+
// dictionary (e.g. IMAGEDEF_REACTOR) — kept while their owner exists.
|
|
3507
|
+
for (var _6 = __values(this._dxfUnknownObjects), _7 = _6.next(); !_7.done; _7 = _6.next()) {
|
|
3508
|
+
var object = _7.value;
|
|
3509
|
+
var owner = this.getObjectById(object.ownerId);
|
|
3510
|
+
// Kept while the owner is exported; a removed dictionary entry is not.
|
|
3511
|
+
if (owner instanceof AcDbEntity ||
|
|
3512
|
+
(owner &&
|
|
3513
|
+
!(owner instanceof AcDbDictionary) &&
|
|
3514
|
+
records.has(norm(owner.objectId)))) {
|
|
3515
|
+
visit(object);
|
|
3516
|
+
}
|
|
3249
3517
|
}
|
|
3250
3518
|
}
|
|
3251
|
-
catch (
|
|
3519
|
+
catch (e_29_1) { e_29 = { error: e_29_1 }; }
|
|
3252
3520
|
finally {
|
|
3253
3521
|
try {
|
|
3254
|
-
if (
|
|
3522
|
+
if (_7 && !_7.done && (_j = _6.return)) _j.call(_6);
|
|
3255
3523
|
}
|
|
3256
|
-
finally { if (
|
|
3524
|
+
finally { if (e_29) throw e_29.error; }
|
|
3257
3525
|
}
|
|
3526
|
+
drain();
|
|
3527
|
+
// XRecords not owned by any written dictionary go to MLIGHT_XRECORD.
|
|
3528
|
+
var looseXrecords = [];
|
|
3258
3529
|
try {
|
|
3259
|
-
for (var
|
|
3260
|
-
var
|
|
3261
|
-
|
|
3262
|
-
|
|
3530
|
+
for (var _8 = __values(xrecordContainer.entries()), _9 = _8.next(); !_9.done; _9 = _8.next()) {
|
|
3531
|
+
var _10 = __read(_9.value, 2), xrecord = _10[1];
|
|
3532
|
+
var key = norm(xrecord.objectId);
|
|
3533
|
+
if (!key || records.has(key) || superseded.has(key))
|
|
3534
|
+
continue;
|
|
3535
|
+
looseXrecords.push(xrecord);
|
|
3263
3536
|
}
|
|
3264
3537
|
}
|
|
3265
|
-
catch (
|
|
3538
|
+
catch (e_30_1) { e_30 = { error: e_30_1 }; }
|
|
3266
3539
|
finally {
|
|
3267
3540
|
try {
|
|
3268
|
-
if (
|
|
3541
|
+
if (_9 && !_9.done && (_k = _8.return)) _k.call(_8);
|
|
3269
3542
|
}
|
|
3270
|
-
finally { if (
|
|
3543
|
+
finally { if (e_30) throw e_30.error; }
|
|
3271
3544
|
}
|
|
3272
|
-
if (
|
|
3545
|
+
if (looseXrecords.length > 0) {
|
|
3546
|
+
ensureRootEntry('MLIGHT_XRECORD', xrecordContainer);
|
|
3547
|
+
}
|
|
3548
|
+
else {
|
|
3549
|
+
dropRootEntry('MLIGHT_XRECORD');
|
|
3550
|
+
}
|
|
3551
|
+
var writtenObjectIds = new Set(records.keys());
|
|
3552
|
+
if (looseXrecords.length > 0) {
|
|
3553
|
+
writtenObjectIds.add(norm(xrecordContainer.objectId));
|
|
3273
3554
|
try {
|
|
3274
|
-
for (var
|
|
3275
|
-
var
|
|
3276
|
-
|
|
3277
|
-
mleaderStyle.dxfOut(filer, true);
|
|
3555
|
+
for (var looseXrecords_1 = __values(looseXrecords), looseXrecords_1_1 = looseXrecords_1.next(); !looseXrecords_1_1.done; looseXrecords_1_1 = looseXrecords_1.next()) {
|
|
3556
|
+
var xrecord = looseXrecords_1_1.value;
|
|
3557
|
+
writtenObjectIds.add(norm(xrecord.objectId));
|
|
3278
3558
|
}
|
|
3279
3559
|
}
|
|
3280
|
-
catch (
|
|
3560
|
+
catch (e_31_1) { e_31 = { error: e_31_1 }; }
|
|
3281
3561
|
finally {
|
|
3282
3562
|
try {
|
|
3283
|
-
if (
|
|
3563
|
+
if (looseXrecords_1_1 && !looseXrecords_1_1.done && (_l = looseXrecords_1.return)) _l.call(looseXrecords_1);
|
|
3284
3564
|
}
|
|
3285
|
-
finally { if (
|
|
3565
|
+
finally { if (e_31) throw e_31.error; }
|
|
3286
3566
|
}
|
|
3287
3567
|
}
|
|
3568
|
+
if (writesLayerFilters && layerTable.extensionDictionary) {
|
|
3569
|
+
writtenObjectIds.add(norm(layerTable.extensionDictionary));
|
|
3570
|
+
}
|
|
3571
|
+
return {
|
|
3572
|
+
records: __spreadArray([], __read(records.values()), false),
|
|
3573
|
+
looseXrecords: looseXrecords,
|
|
3574
|
+
writtenObjectIds: writtenObjectIds,
|
|
3575
|
+
restoreMLeaderRoot: restoreMLeaderRoot
|
|
3576
|
+
};
|
|
3577
|
+
};
|
|
3578
|
+
/**
|
|
3579
|
+
* Registers an APPID record for every application whose XData is about to
|
|
3580
|
+
* be written. AutoCAD rejects a DXF whose XData names an unregistered
|
|
3581
|
+
* application (ezdxf's auditor adds the missing records the same way).
|
|
3582
|
+
*/
|
|
3583
|
+
AcDbDatabase.prototype.ensureXDataAppIds = function (plan) {
|
|
3584
|
+
var e_34, _a, e_35, _b, e_36, _c, e_37, _d, e_38, _e, e_39, _f, e_40, _g;
|
|
3585
|
+
var _h, _j;
|
|
3586
|
+
var appIdTable = this.tables.appIdTable;
|
|
3587
|
+
var register = function (object) {
|
|
3588
|
+
var e_41, _a;
|
|
3589
|
+
try {
|
|
3590
|
+
for (var _b = __values(object.xDataAppIds()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
3591
|
+
var appId = _c.value;
|
|
3592
|
+
if (appId && !appIdTable.has(appId)) {
|
|
3593
|
+
appIdTable.add(new AcDbRegAppTableRecord(appId));
|
|
3594
|
+
}
|
|
3595
|
+
}
|
|
3596
|
+
}
|
|
3597
|
+
catch (e_41_1) { e_41 = { error: e_41_1 }; }
|
|
3598
|
+
finally {
|
|
3599
|
+
try {
|
|
3600
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
3601
|
+
}
|
|
3602
|
+
finally { if (e_41) throw e_41.error; }
|
|
3603
|
+
}
|
|
3604
|
+
};
|
|
3288
3605
|
try {
|
|
3289
|
-
for (var
|
|
3290
|
-
var
|
|
3291
|
-
|
|
3292
|
-
|
|
3606
|
+
for (var _k = __values(Object.values(this.tables)), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
3607
|
+
var table = _l.value;
|
|
3608
|
+
try {
|
|
3609
|
+
for (var _m = (e_35 = void 0, __values(table.newIterator())), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
3610
|
+
var record = _o.value;
|
|
3611
|
+
register(record);
|
|
3612
|
+
}
|
|
3613
|
+
}
|
|
3614
|
+
catch (e_35_1) { e_35 = { error: e_35_1 }; }
|
|
3615
|
+
finally {
|
|
3616
|
+
try {
|
|
3617
|
+
if (_o && !_o.done && (_b = _m.return)) _b.call(_m);
|
|
3618
|
+
}
|
|
3619
|
+
finally { if (e_35) throw e_35.error; }
|
|
3620
|
+
}
|
|
3293
3621
|
}
|
|
3294
3622
|
}
|
|
3295
|
-
catch (
|
|
3623
|
+
catch (e_34_1) { e_34 = { error: e_34_1 }; }
|
|
3296
3624
|
finally {
|
|
3297
3625
|
try {
|
|
3298
|
-
if (
|
|
3626
|
+
if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
|
|
3299
3627
|
}
|
|
3300
|
-
finally { if (
|
|
3628
|
+
finally { if (e_34) throw e_34.error; }
|
|
3301
3629
|
}
|
|
3302
3630
|
try {
|
|
3303
|
-
for (var
|
|
3304
|
-
var
|
|
3305
|
-
|
|
3306
|
-
|
|
3631
|
+
for (var _p = __values(this.tables.blockTable.newIterator()), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
3632
|
+
var btr = _q.value;
|
|
3633
|
+
try {
|
|
3634
|
+
for (var _r = (e_37 = void 0, __values(btr.newIterator())), _s = _r.next(); !_s.done; _s = _r.next()) {
|
|
3635
|
+
var entity = _s.value;
|
|
3636
|
+
register(entity);
|
|
3637
|
+
var attributes = (_j = (_h = entity).attributeIterator) === null || _j === void 0 ? void 0 : _j.call(_h);
|
|
3638
|
+
if (attributes) {
|
|
3639
|
+
try {
|
|
3640
|
+
for (var attributes_2 = (e_38 = void 0, __values(attributes)), attributes_2_1 = attributes_2.next(); !attributes_2_1.done; attributes_2_1 = attributes_2.next()) {
|
|
3641
|
+
var attribute = attributes_2_1.value;
|
|
3642
|
+
register(attribute);
|
|
3643
|
+
}
|
|
3644
|
+
}
|
|
3645
|
+
catch (e_38_1) { e_38 = { error: e_38_1 }; }
|
|
3646
|
+
finally {
|
|
3647
|
+
try {
|
|
3648
|
+
if (attributes_2_1 && !attributes_2_1.done && (_e = attributes_2.return)) _e.call(attributes_2);
|
|
3649
|
+
}
|
|
3650
|
+
finally { if (e_38) throw e_38.error; }
|
|
3651
|
+
}
|
|
3652
|
+
}
|
|
3653
|
+
}
|
|
3654
|
+
}
|
|
3655
|
+
catch (e_37_1) { e_37 = { error: e_37_1 }; }
|
|
3656
|
+
finally {
|
|
3657
|
+
try {
|
|
3658
|
+
if (_s && !_s.done && (_d = _r.return)) _d.call(_r);
|
|
3659
|
+
}
|
|
3660
|
+
finally { if (e_37) throw e_37.error; }
|
|
3661
|
+
}
|
|
3307
3662
|
}
|
|
3308
3663
|
}
|
|
3309
|
-
catch (
|
|
3664
|
+
catch (e_36_1) { e_36 = { error: e_36_1 }; }
|
|
3310
3665
|
finally {
|
|
3311
3666
|
try {
|
|
3312
|
-
if (
|
|
3667
|
+
if (_q && !_q.done && (_c = _p.return)) _c.call(_p);
|
|
3668
|
+
}
|
|
3669
|
+
finally { if (e_36) throw e_36.error; }
|
|
3670
|
+
}
|
|
3671
|
+
if (plan) {
|
|
3672
|
+
try {
|
|
3673
|
+
for (var _t = __values(plan.records), _u = _t.next(); !_u.done; _u = _t.next()) {
|
|
3674
|
+
var object = _u.value.object;
|
|
3675
|
+
register(object);
|
|
3676
|
+
}
|
|
3677
|
+
}
|
|
3678
|
+
catch (e_39_1) { e_39 = { error: e_39_1 }; }
|
|
3679
|
+
finally {
|
|
3680
|
+
try {
|
|
3681
|
+
if (_u && !_u.done && (_f = _t.return)) _f.call(_t);
|
|
3682
|
+
}
|
|
3683
|
+
finally { if (e_39) throw e_39.error; }
|
|
3684
|
+
}
|
|
3685
|
+
try {
|
|
3686
|
+
for (var _v = __values(plan.looseXrecords), _w = _v.next(); !_w.done; _w = _v.next()) {
|
|
3687
|
+
var xrecord = _w.value;
|
|
3688
|
+
register(xrecord);
|
|
3689
|
+
}
|
|
3690
|
+
}
|
|
3691
|
+
catch (e_40_1) { e_40 = { error: e_40_1 }; }
|
|
3692
|
+
finally {
|
|
3693
|
+
try {
|
|
3694
|
+
if (_w && !_w.done && (_g = _v.return)) _g.call(_v);
|
|
3695
|
+
}
|
|
3696
|
+
finally { if (e_40) throw e_40.error; }
|
|
3697
|
+
}
|
|
3698
|
+
}
|
|
3699
|
+
};
|
|
3700
|
+
/**
|
|
3701
|
+
* Writes the OBJECTS section for the DXF export.
|
|
3702
|
+
*
|
|
3703
|
+
* @param filer - DXF output writer.
|
|
3704
|
+
* @param plan - Records chosen by {@link planDxfObjectsSection}.
|
|
3705
|
+
*/
|
|
3706
|
+
AcDbDatabase.prototype.writeDxfObjectsSection = function (filer, plan) {
|
|
3707
|
+
var e_42, _a, e_43, _b, e_44, _c;
|
|
3708
|
+
if (!plan)
|
|
3709
|
+
return;
|
|
3710
|
+
filer.startSection('OBJECTS');
|
|
3711
|
+
var isWritten = function (object) { var _a; return plan.writtenObjectIds.has(((_a = object.objectId) !== null && _a !== void 0 ? _a : '').trim().toUpperCase()); };
|
|
3712
|
+
try {
|
|
3713
|
+
for (var _d = __values(plan.records), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
3714
|
+
var _f = _e.value, object = _f.object, type = _f.type;
|
|
3715
|
+
if (object instanceof AcDbDictionary) {
|
|
3716
|
+
filer.writeStart(type);
|
|
3717
|
+
object.dxfOutFiltered(filer, isWritten);
|
|
3718
|
+
continue;
|
|
3719
|
+
}
|
|
3720
|
+
if (object instanceof AcDbGroup && !object.name) {
|
|
3721
|
+
try {
|
|
3722
|
+
// Keep the group name in sync with its ACAD_GROUP key.
|
|
3723
|
+
for (var _g = (e_43 = void 0, __values(this.objects.group.entries())), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
3724
|
+
var _j = __read(_h.value, 2), key = _j[0], group = _j[1];
|
|
3725
|
+
if (group === object)
|
|
3726
|
+
object.name = key;
|
|
3727
|
+
}
|
|
3728
|
+
}
|
|
3729
|
+
catch (e_43_1) { e_43 = { error: e_43_1 }; }
|
|
3730
|
+
finally {
|
|
3731
|
+
try {
|
|
3732
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
3733
|
+
}
|
|
3734
|
+
finally { if (e_43) throw e_43.error; }
|
|
3735
|
+
}
|
|
3736
|
+
}
|
|
3737
|
+
filer.writeStart(type);
|
|
3738
|
+
object.dxfOut(filer, true);
|
|
3739
|
+
}
|
|
3740
|
+
}
|
|
3741
|
+
catch (e_42_1) { e_42 = { error: e_42_1 }; }
|
|
3742
|
+
finally {
|
|
3743
|
+
try {
|
|
3744
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
3745
|
+
}
|
|
3746
|
+
finally { if (e_42) throw e_42.error; }
|
|
3747
|
+
}
|
|
3748
|
+
if (plan.looseXrecords.length > 0) {
|
|
3749
|
+
var container = this.objects.xrecord;
|
|
3750
|
+
container.ownerId = this.objects.dictionary.objectId;
|
|
3751
|
+
filer.writeStart('DICTIONARY');
|
|
3752
|
+
container.dxfOutFiltered(filer, isWritten);
|
|
3753
|
+
try {
|
|
3754
|
+
for (var _k = __values(plan.looseXrecords), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
3755
|
+
var xrecord = _l.value;
|
|
3756
|
+
xrecord.ownerId = container.objectId;
|
|
3757
|
+
filer.writeStart('XRECORD');
|
|
3758
|
+
xrecord.dxfOut(filer, true);
|
|
3759
|
+
}
|
|
3760
|
+
}
|
|
3761
|
+
catch (e_44_1) { e_44 = { error: e_44_1 }; }
|
|
3762
|
+
finally {
|
|
3763
|
+
try {
|
|
3764
|
+
if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
|
|
3765
|
+
}
|
|
3766
|
+
finally { if (e_44) throw e_44.error; }
|
|
3313
3767
|
}
|
|
3314
|
-
finally { if (e_28) throw e_28.error; }
|
|
3315
3768
|
}
|
|
3316
3769
|
this.writeAcLyLayerFilterObjects(filer);
|
|
3317
3770
|
filer.endSection();
|
|
3318
|
-
if (restoreMLeaderRoot) {
|
|
3319
|
-
|
|
3771
|
+
if (plan.restoreMLeaderRoot) {
|
|
3772
|
+
this.objects.dictionary.setAt('ACAD_MLEADERSTYLE', this.objects.mleaderStyle);
|
|
3320
3773
|
}
|
|
3321
3774
|
};
|
|
3322
3775
|
/**
|
|
@@ -3327,9 +3780,9 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3327
3780
|
* @param filer - DXF output writer.
|
|
3328
3781
|
*/
|
|
3329
3782
|
AcDbDatabase.prototype.writeAcLyLayerFilterObjects = function (filer) {
|
|
3330
|
-
var
|
|
3783
|
+
var e_45, _a, e_46, _b, e_47, _c, e_48, _d, e_49, _e, e_50, _f, e_51, _g;
|
|
3331
3784
|
var _this = this;
|
|
3332
|
-
var
|
|
3785
|
+
var _h;
|
|
3333
3786
|
var serialized = acdbSerializeLayerFilterTree(this._layerFilters);
|
|
3334
3787
|
if (serialized.nodes.length === 0) {
|
|
3335
3788
|
return;
|
|
@@ -3337,14 +3790,14 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3337
3790
|
var dicts = [];
|
|
3338
3791
|
var xrecs = [];
|
|
3339
3792
|
var layerTable = this.tables.layerTable;
|
|
3340
|
-
var layerExtHandle = (
|
|
3793
|
+
var layerExtHandle = (_h = layerTable.extensionDictionary) !== null && _h !== void 0 ? _h : this.generateHandle();
|
|
3341
3794
|
layerTable.extensionDictionary = layerExtHandle;
|
|
3342
3795
|
var aclyHandle = this.generateHandle();
|
|
3343
3796
|
var acadHandle = this.generateHandle();
|
|
3344
3797
|
var rootAclyEntries = [];
|
|
3345
3798
|
var rootAcadEntries = [];
|
|
3346
3799
|
var emit = function (node, parentAclyHandle, addToLegacy) {
|
|
3347
|
-
var
|
|
3800
|
+
var e_52, _a;
|
|
3348
3801
|
var xHandle = _this.generateHandle();
|
|
3349
3802
|
var extensionDictionaryId;
|
|
3350
3803
|
if (node.children.length > 0) {
|
|
@@ -3360,12 +3813,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3360
3813
|
});
|
|
3361
3814
|
}
|
|
3362
3815
|
}
|
|
3363
|
-
catch (
|
|
3816
|
+
catch (e_52_1) { e_52 = { error: e_52_1 }; }
|
|
3364
3817
|
finally {
|
|
3365
3818
|
try {
|
|
3366
3819
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
3367
3820
|
}
|
|
3368
|
-
finally { if (
|
|
3821
|
+
finally { if (e_52) throw e_52.error; }
|
|
3369
3822
|
}
|
|
3370
3823
|
dicts.push({
|
|
3371
3824
|
handle: extHandle,
|
|
@@ -3391,36 +3844,36 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3391
3844
|
return xHandle;
|
|
3392
3845
|
};
|
|
3393
3846
|
try {
|
|
3394
|
-
for (var
|
|
3395
|
-
var node =
|
|
3847
|
+
for (var _j = __values(serialized.nodes), _k = _j.next(); !_k.done; _k = _j.next()) {
|
|
3848
|
+
var node = _k.value;
|
|
3396
3849
|
rootAclyEntries.push({
|
|
3397
3850
|
name: node.key,
|
|
3398
3851
|
id: emit(node, aclyHandle, true)
|
|
3399
3852
|
});
|
|
3400
3853
|
}
|
|
3401
3854
|
}
|
|
3402
|
-
catch (
|
|
3855
|
+
catch (e_45_1) { e_45 = { error: e_45_1 }; }
|
|
3403
3856
|
finally {
|
|
3404
3857
|
try {
|
|
3405
|
-
if (
|
|
3858
|
+
if (_k && !_k.done && (_a = _j.return)) _a.call(_j);
|
|
3406
3859
|
}
|
|
3407
|
-
finally { if (
|
|
3860
|
+
finally { if (e_45) throw e_45.error; }
|
|
3408
3861
|
}
|
|
3409
3862
|
var layerExtEntries = new Map();
|
|
3410
3863
|
var existingLayerExt = this.getObjectById(layerExtHandle);
|
|
3411
3864
|
if (existingLayerExt instanceof AcDbDictionary) {
|
|
3412
3865
|
try {
|
|
3413
|
-
for (var
|
|
3414
|
-
var
|
|
3866
|
+
for (var _l = __values(existingLayerExt.entries()), _m = _l.next(); !_m.done; _m = _l.next()) {
|
|
3867
|
+
var _o = __read(_m.value, 2), key = _o[0], value = _o[1];
|
|
3415
3868
|
layerExtEntries.set(key, value.objectId);
|
|
3416
3869
|
}
|
|
3417
3870
|
}
|
|
3418
|
-
catch (
|
|
3871
|
+
catch (e_46_1) { e_46 = { error: e_46_1 }; }
|
|
3419
3872
|
finally {
|
|
3420
3873
|
try {
|
|
3421
|
-
if (
|
|
3874
|
+
if (_m && !_m.done && (_b = _l.return)) _b.call(_l);
|
|
3422
3875
|
}
|
|
3423
|
-
finally { if (
|
|
3876
|
+
finally { if (e_46) throw e_46.error; }
|
|
3424
3877
|
}
|
|
3425
3878
|
}
|
|
3426
3879
|
layerExtEntries.set(ACLY_DICTIONARY_NAME, aclyHandle);
|
|
@@ -3442,8 +3895,36 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3442
3895
|
entries: rootAcadEntries
|
|
3443
3896
|
});
|
|
3444
3897
|
try {
|
|
3898
|
+
// Generated here, after planning: register them so the extension
|
|
3899
|
+
// dictionary pointers of the filter XRecords are written.
|
|
3445
3900
|
for (var dicts_1 = __values(dicts), dicts_1_1 = dicts_1.next(); !dicts_1_1.done; dicts_1_1 = dicts_1.next()) {
|
|
3446
3901
|
var dict = dicts_1_1.value;
|
|
3902
|
+
filer.markObjectIdWritten(dict.handle);
|
|
3903
|
+
}
|
|
3904
|
+
}
|
|
3905
|
+
catch (e_47_1) { e_47 = { error: e_47_1 }; }
|
|
3906
|
+
finally {
|
|
3907
|
+
try {
|
|
3908
|
+
if (dicts_1_1 && !dicts_1_1.done && (_c = dicts_1.return)) _c.call(dicts_1);
|
|
3909
|
+
}
|
|
3910
|
+
finally { if (e_47) throw e_47.error; }
|
|
3911
|
+
}
|
|
3912
|
+
try {
|
|
3913
|
+
for (var xrecs_1 = __values(xrecs), xrecs_1_1 = xrecs_1.next(); !xrecs_1_1.done; xrecs_1_1 = xrecs_1.next()) {
|
|
3914
|
+
var item = xrecs_1_1.value;
|
|
3915
|
+
filer.markObjectIdWritten(item.handle);
|
|
3916
|
+
}
|
|
3917
|
+
}
|
|
3918
|
+
catch (e_48_1) { e_48 = { error: e_48_1 }; }
|
|
3919
|
+
finally {
|
|
3920
|
+
try {
|
|
3921
|
+
if (xrecs_1_1 && !xrecs_1_1.done && (_d = xrecs_1.return)) _d.call(xrecs_1);
|
|
3922
|
+
}
|
|
3923
|
+
finally { if (e_48) throw e_48.error; }
|
|
3924
|
+
}
|
|
3925
|
+
try {
|
|
3926
|
+
for (var dicts_2 = __values(dicts), dicts_2_1 = dicts_2.next(); !dicts_2_1.done; dicts_2_1 = dicts_2.next()) {
|
|
3927
|
+
var dict = dicts_2_1.value;
|
|
3447
3928
|
filer.writeStart('DICTIONARY');
|
|
3448
3929
|
filer.writeHandle(5, dict.handle);
|
|
3449
3930
|
filer.writeObjectId(330, dict.ownerId);
|
|
@@ -3451,31 +3932,31 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3451
3932
|
filer.writeInt16(280, 1);
|
|
3452
3933
|
filer.writeInt16(281, 1);
|
|
3453
3934
|
try {
|
|
3454
|
-
for (var
|
|
3455
|
-
var entry =
|
|
3935
|
+
for (var _p = (e_50 = void 0, __values(dict.entries)), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
3936
|
+
var entry = _q.value;
|
|
3456
3937
|
filer.writeString(3, entry.name);
|
|
3457
3938
|
filer.writeObjectId(350, entry.id);
|
|
3458
3939
|
}
|
|
3459
3940
|
}
|
|
3460
|
-
catch (
|
|
3941
|
+
catch (e_50_1) { e_50 = { error: e_50_1 }; }
|
|
3461
3942
|
finally {
|
|
3462
3943
|
try {
|
|
3463
|
-
if (
|
|
3944
|
+
if (_q && !_q.done && (_f = _p.return)) _f.call(_p);
|
|
3464
3945
|
}
|
|
3465
|
-
finally { if (
|
|
3946
|
+
finally { if (e_50) throw e_50.error; }
|
|
3466
3947
|
}
|
|
3467
3948
|
}
|
|
3468
3949
|
}
|
|
3469
|
-
catch (
|
|
3950
|
+
catch (e_49_1) { e_49 = { error: e_49_1 }; }
|
|
3470
3951
|
finally {
|
|
3471
3952
|
try {
|
|
3472
|
-
if (
|
|
3953
|
+
if (dicts_2_1 && !dicts_2_1.done && (_e = dicts_2.return)) _e.call(dicts_2);
|
|
3473
3954
|
}
|
|
3474
|
-
finally { if (
|
|
3955
|
+
finally { if (e_49) throw e_49.error; }
|
|
3475
3956
|
}
|
|
3476
3957
|
try {
|
|
3477
|
-
for (var
|
|
3478
|
-
var item =
|
|
3958
|
+
for (var xrecs_2 = __values(xrecs), xrecs_2_1 = xrecs_2.next(); !xrecs_2_1.done; xrecs_2_1 = xrecs_2.next()) {
|
|
3959
|
+
var item = xrecs_2_1.value;
|
|
3479
3960
|
var xrecord = new AcDbXrecord();
|
|
3480
3961
|
xrecord.objectId = item.handle;
|
|
3481
3962
|
xrecord.ownerId = item.ownerId;
|
|
@@ -3487,12 +3968,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3487
3968
|
xrecord.dxfOut(filer);
|
|
3488
3969
|
}
|
|
3489
3970
|
}
|
|
3490
|
-
catch (
|
|
3971
|
+
catch (e_51_1) { e_51 = { error: e_51_1 }; }
|
|
3491
3972
|
finally {
|
|
3492
3973
|
try {
|
|
3493
|
-
if (
|
|
3974
|
+
if (xrecs_2_1 && !xrecs_2_1.done && (_g = xrecs_2.return)) _g.call(xrecs_2);
|
|
3494
3975
|
}
|
|
3495
|
-
finally { if (
|
|
3976
|
+
finally { if (e_51) throw e_51.error; }
|
|
3496
3977
|
}
|
|
3497
3978
|
};
|
|
3498
3979
|
/**
|
|
@@ -3505,7 +3986,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3505
3986
|
* @param recordType - DXF record type name for each table record.
|
|
3506
3987
|
*/
|
|
3507
3988
|
AcDbDatabase.prototype.writeDxfTable = function (filer, tableName, table, records, recordType) {
|
|
3508
|
-
var
|
|
3989
|
+
var e_53, _a;
|
|
3509
3990
|
var items = __spreadArray([], __read(records), false);
|
|
3510
3991
|
filer.startTable(tableName);
|
|
3511
3992
|
table.dxfOut(filer);
|
|
@@ -3521,12 +4002,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3521
4002
|
record.dxfOut(filer, true);
|
|
3522
4003
|
}
|
|
3523
4004
|
}
|
|
3524
|
-
catch (
|
|
4005
|
+
catch (e_53_1) { e_53 = { error: e_53_1 }; }
|
|
3525
4006
|
finally {
|
|
3526
4007
|
try {
|
|
3527
4008
|
if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
|
|
3528
4009
|
}
|
|
3529
|
-
finally { if (
|
|
4010
|
+
finally { if (e_53) throw e_53.error; }
|
|
3530
4011
|
}
|
|
3531
4012
|
filer.endTable();
|
|
3532
4013
|
};
|
|
@@ -3541,6 +4022,13 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3541
4022
|
* @param entity - Entity to serialize.
|
|
3542
4023
|
*/
|
|
3543
4024
|
AcDbDatabase.prototype.writeDxfEntity = function (filer, entity) {
|
|
4025
|
+
// Preserved tags only fit the layout they were read in: R13+ tags (with
|
|
4026
|
+
// subclass markers) cannot go to R12 and vice versa; ezdxf drops such
|
|
4027
|
+
// entities as well.
|
|
4028
|
+
if (entity instanceof AcDbUnknownEntity &&
|
|
4029
|
+
entity.hasSubclassData !== filer.capabilities.supportsSubclassMarkers) {
|
|
4030
|
+
return;
|
|
4031
|
+
}
|
|
3544
4032
|
if (entity instanceof AcDbPolyline &&
|
|
3545
4033
|
!filer.capabilities.supportsLwPolyline) {
|
|
3546
4034
|
filer.writeStart('POLYLINE');
|
|
@@ -3587,6 +4075,8 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
3587
4075
|
this.transactionManager.clearUndoStack();
|
|
3588
4076
|
// Clear all tables and dictionaries
|
|
3589
4077
|
this._classes = [];
|
|
4078
|
+
this.clearDxfHeaderExtras();
|
|
4079
|
+
this._dxfUnknownObjects = [];
|
|
3590
4080
|
this._tables.blockTable.removeAll();
|
|
3591
4081
|
this._tables.dimStyleTable.removeAll();
|
|
3592
4082
|
this._tables.linetypeTable.removeAll();
|