@mlightcad/data-model 1.8.4 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -20
- package/dist/data-model.cjs +7 -7
- package/lib/base/AcDbDxfFiler.d.ts +1 -1
- package/lib/base/AcDbDxfFiler.d.ts.map +1 -1
- package/lib/base/AcDbObject.d.ts +1 -0
- package/lib/base/AcDbObject.d.ts.map +1 -1
- package/lib/base/AcDbObject.js +6 -0
- package/lib/base/AcDbObject.js.map +1 -1
- package/lib/converter/AcDbRegenerator.d.ts +1 -1
- package/lib/converter/AcDbRegenerator.d.ts.map +1 -1
- package/lib/converter/AcDbRegenerator.js.map +1 -1
- package/lib/converter/index.d.ts +0 -1
- package/lib/converter/index.d.ts.map +1 -1
- package/lib/converter/index.js +0 -1
- package/lib/converter/index.js.map +1 -1
- package/lib/database/AcDbBlockTable.d.ts +1 -1
- package/lib/database/AcDbBlockTable.d.ts.map +1 -1
- package/lib/database/AcDbBlockTableRecord.d.ts +1 -1
- package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.d.ts +2 -2
- package/lib/database/AcDbDatabase.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.js +7 -2
- package/lib/database/AcDbDatabase.js.map +1 -1
- package/lib/database/AcDbDatabaseConverter.d.ts +9 -9
- package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -1
- package/lib/database/AcDbDatabaseConverter.js +14 -2
- package/lib/database/AcDbDatabaseConverter.js.map +1 -1
- package/lib/database/AcDbDatabaseConverterManager.d.ts +0 -2
- package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -1
- package/lib/database/AcDbDatabaseConverterManager.js +0 -4
- package/lib/database/AcDbDatabaseConverterManager.js.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.d.ts +1 -1
- package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
- package/lib/database/AcDbLayerTableRecord.d.ts +1 -1
- package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbLinetypeTableRecord.d.ts +1 -1
- package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbRegAppTableRecord.d.ts +1 -1
- package/lib/database/AcDbRegAppTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbSymbolTableRecord.d.ts +1 -1
- package/lib/database/AcDbSymbolTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbSysVarManager.js +4 -1
- package/lib/database/AcDbSysVarManager.js.map +1 -1
- package/lib/database/AcDbTextStyleTable.js +1 -1
- package/lib/database/AcDbTextStyleTable.js.map +1 -1
- package/lib/database/AcDbTextStyleTableRecord.d.ts +1 -1
- package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbViewTableRecord.d.ts +1 -1
- package/lib/database/AcDbViewTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbViewportTableRecord.d.ts +1 -1
- package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -1
- package/lib/entity/AcDb2dPolyline.d.ts +4 -2
- package/lib/entity/AcDb2dPolyline.d.ts.map +1 -1
- package/lib/entity/AcDb2dPolyline.js +9 -1
- package/lib/entity/AcDb2dPolyline.js.map +1 -1
- package/lib/entity/AcDb2dVertex.d.ts +2 -2
- package/lib/entity/AcDb2dVertex.d.ts.map +1 -1
- package/lib/entity/AcDb2dVertex.js +1 -1
- package/lib/entity/AcDb2dVertex.js.map +1 -1
- package/lib/entity/AcDb3dPolyline.d.ts +4 -2
- package/lib/entity/AcDb3dPolyline.d.ts.map +1 -1
- package/lib/entity/AcDb3dPolyline.js +9 -1
- package/lib/entity/AcDb3dPolyline.js.map +1 -1
- package/lib/entity/AcDb3dVertex.d.ts +2 -2
- package/lib/entity/AcDb3dVertex.d.ts.map +1 -1
- package/lib/entity/AcDb3dVertex.js +1 -1
- package/lib/entity/AcDb3dVertex.js.map +1 -1
- package/lib/entity/AcDbArc.d.ts +4 -2
- package/lib/entity/AcDbArc.d.ts.map +1 -1
- package/lib/entity/AcDbArc.js +10 -2
- package/lib/entity/AcDbArc.js.map +1 -1
- package/lib/entity/AcDbAttribute.d.ts +1 -1
- package/lib/entity/AcDbAttribute.d.ts.map +1 -1
- package/lib/entity/AcDbAttributeDefinition.d.ts +1 -1
- package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
- package/lib/entity/AcDbBlockReference.d.ts +4 -2
- package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
- package/lib/entity/AcDbBlockReference.js +3 -1
- package/lib/entity/AcDbBlockReference.js.map +1 -1
- package/lib/entity/AcDbCircle.d.ts +4 -2
- package/lib/entity/AcDbCircle.d.ts.map +1 -1
- package/lib/entity/AcDbCircle.js +10 -2
- package/lib/entity/AcDbCircle.js.map +1 -1
- package/lib/entity/AcDbCurve.d.ts +5 -0
- package/lib/entity/AcDbCurve.d.ts.map +1 -1
- package/lib/entity/AcDbCurve.js.map +1 -1
- package/lib/entity/AcDbEllipse.d.ts +4 -2
- package/lib/entity/AcDbEllipse.d.ts.map +1 -1
- package/lib/entity/AcDbEllipse.js +10 -2
- package/lib/entity/AcDbEllipse.js.map +1 -1
- package/lib/entity/AcDbEntity.d.ts +2 -2
- package/lib/entity/AcDbEntity.d.ts.map +1 -1
- package/lib/entity/AcDbEntity.js +1 -1
- package/lib/entity/AcDbEntity.js.map +1 -1
- package/lib/entity/AcDbFace.d.ts +6 -2
- package/lib/entity/AcDbFace.d.ts.map +1 -1
- package/lib/entity/AcDbFace.js +22 -1
- package/lib/entity/AcDbFace.js.map +1 -1
- package/lib/entity/AcDbHatch.d.ts +6 -2
- package/lib/entity/AcDbHatch.d.ts.map +1 -1
- package/lib/entity/AcDbHatch.js +12 -2
- package/lib/entity/AcDbHatch.js.map +1 -1
- package/lib/entity/AcDbLeader.d.ts +4 -2
- package/lib/entity/AcDbLeader.d.ts.map +1 -1
- package/lib/entity/AcDbLeader.js +9 -1
- package/lib/entity/AcDbLeader.js.map +1 -1
- package/lib/entity/AcDbLine.d.ts +3 -1
- package/lib/entity/AcDbLine.d.ts.map +1 -1
- package/lib/entity/AcDbLine.js +8 -0
- package/lib/entity/AcDbLine.js.map +1 -1
- package/lib/entity/AcDbMLeader.d.ts +2 -2
- package/lib/entity/AcDbMLeader.d.ts.map +1 -1
- package/lib/entity/AcDbMLeader.js +4 -2
- package/lib/entity/AcDbMLeader.js.map +1 -1
- package/lib/entity/AcDbMLine.d.ts +2 -2
- package/lib/entity/AcDbMLine.d.ts.map +1 -1
- package/lib/entity/AcDbMLine.js +2 -2
- package/lib/entity/AcDbMLine.js.map +1 -1
- package/lib/entity/AcDbMText.d.ts +2 -2
- package/lib/entity/AcDbMText.d.ts.map +1 -1
- package/lib/entity/AcDbMText.js +1 -1
- package/lib/entity/AcDbMText.js.map +1 -1
- package/lib/entity/AcDbOsnapHelpers.d.ts +1 -1
- package/lib/entity/AcDbOsnapHelpers.d.ts.map +1 -1
- package/lib/entity/AcDbOsnapHelpers.js +1 -1
- package/lib/entity/AcDbOsnapHelpers.js.map +1 -1
- package/lib/entity/AcDbPoint.d.ts +2 -2
- package/lib/entity/AcDbPoint.d.ts.map +1 -1
- package/lib/entity/AcDbPoint.js +1 -1
- package/lib/entity/AcDbPoint.js.map +1 -1
- package/lib/entity/AcDbPolyFaceMesh.d.ts +4 -2
- package/lib/entity/AcDbPolyFaceMesh.d.ts.map +1 -1
- package/lib/entity/AcDbPolyFaceMesh.js +9 -1
- package/lib/entity/AcDbPolyFaceMesh.js.map +1 -1
- package/lib/entity/AcDbPolygonMesh.d.ts +4 -2
- package/lib/entity/AcDbPolygonMesh.d.ts.map +1 -1
- package/lib/entity/AcDbPolygonMesh.js +9 -1
- package/lib/entity/AcDbPolygonMesh.js.map +1 -1
- package/lib/entity/AcDbPolyline.d.ts +4 -2
- package/lib/entity/AcDbPolyline.d.ts.map +1 -1
- package/lib/entity/AcDbPolyline.js +9 -1
- package/lib/entity/AcDbPolyline.js.map +1 -1
- package/lib/entity/AcDbRasterImage.d.ts +3 -2
- package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
- package/lib/entity/AcDbRasterImage.js +1 -1
- package/lib/entity/AcDbRasterImage.js.map +1 -1
- package/lib/entity/AcDbRay.d.ts +4 -2
- package/lib/entity/AcDbRay.d.ts.map +1 -1
- package/lib/entity/AcDbRay.js +9 -1
- package/lib/entity/AcDbRay.js.map +1 -1
- package/lib/entity/AcDbShape.d.ts +2 -2
- package/lib/entity/AcDbShape.d.ts.map +1 -1
- package/lib/entity/AcDbShape.js +1 -1
- package/lib/entity/AcDbShape.js.map +1 -1
- package/lib/entity/AcDbSpline.d.ts +4 -2
- package/lib/entity/AcDbSpline.d.ts.map +1 -1
- package/lib/entity/AcDbSpline.js +9 -1
- package/lib/entity/AcDbSpline.js.map +1 -1
- package/lib/entity/AcDbTable.d.ts +1 -1
- package/lib/entity/AcDbTable.d.ts.map +1 -1
- package/lib/entity/AcDbText.d.ts +2 -2
- package/lib/entity/AcDbText.d.ts.map +1 -1
- package/lib/entity/AcDbText.js +1 -1
- package/lib/entity/AcDbText.js.map +1 -1
- package/lib/entity/AcDbTrace.d.ts +4 -2
- package/lib/entity/AcDbTrace.d.ts.map +1 -1
- package/lib/entity/AcDbTrace.js +9 -0
- package/lib/entity/AcDbTrace.js.map +1 -1
- package/lib/entity/AcDbViewport.d.ts +1 -1
- package/lib/entity/AcDbViewport.d.ts.map +1 -1
- package/lib/entity/AcDbWipeout.d.ts +1 -1
- package/lib/entity/AcDbWipeout.d.ts.map +1 -1
- package/lib/entity/AcDbXline.d.ts +4 -2
- package/lib/entity/AcDbXline.d.ts.map +1 -1
- package/lib/entity/AcDbXline.js +9 -1
- package/lib/entity/AcDbXline.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/misc/AcDbDataGenerator.d.ts +1 -1
- package/lib/misc/AcDbDataGenerator.d.ts.map +1 -1
- package/lib/misc/AcDbDataGenerator.js +7 -3
- package/lib/misc/AcDbDataGenerator.js.map +1 -1
- package/lib/misc/AcDbRenderingCache.d.ts +1 -1
- package/lib/misc/AcDbRenderingCache.d.ts.map +1 -1
- package/lib/misc/AcDbRenderingCache.js +1 -1
- package/lib/misc/AcDbRenderingCache.js.map +1 -1
- package/lib/object/AcDbMLeaderStyle.js +1 -1
- package/lib/object/AcDbMLeaderStyle.js.map +1 -1
- package/lib/object/layout/AcDbLayoutManager.d.ts.map +1 -1
- package/lib/object/layout/AcDbLayoutManager.js +2 -2
- package/lib/object/layout/AcDbLayoutManager.js.map +1 -1
- package/package.json +6 -9
- package/dist/dxf-parser-worker.js +0 -1794
- package/lib/converter/AcDbDxfConverter.d.ts +0 -277
- package/lib/converter/AcDbDxfConverter.d.ts.map +0 -1
- package/lib/converter/AcDbDxfConverter.js +0 -1076
- package/lib/converter/AcDbDxfConverter.js.map +0 -1
- package/lib/converter/AcDbDxfParser.d.ts +0 -23
- package/lib/converter/AcDbDxfParser.d.ts.map +0 -1
- package/lib/converter/AcDbDxfParser.js +0 -85
- package/lib/converter/AcDbDxfParser.js.map +0 -1
- package/lib/converter/AcDbEntitiyConverter.d.ts +0 -156
- package/lib/converter/AcDbEntitiyConverter.d.ts.map +0 -1
- package/lib/converter/AcDbEntitiyConverter.js +0 -1426
- package/lib/converter/AcDbEntitiyConverter.js.map +0 -1
- package/lib/converter/AcDbObjectConverter.d.ts +0 -68
- package/lib/converter/AcDbObjectConverter.d.ts.map +0 -1
- package/lib/converter/AcDbObjectConverter.js +0 -376
- package/lib/converter/AcDbObjectConverter.js.map +0 -1
- package/lib/converter/worker/AcDbDxfParserWorker.d.ts +0 -11
- package/lib/converter/worker/AcDbDxfParserWorker.d.ts.map +0 -1
- package/lib/converter/worker/AcDbDxfParserWorker.js +0 -75
- package/lib/converter/worker/AcDbDxfParserWorker.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# @mlightcad/data-model
|
|
2
2
|
|
|
3
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
|
+
[](https://www.npmjs.com/package/@mlightcad/data-model)
|
|
5
|
+
|
|
3
6
|
The data-model package provides the core classes for interacting with AutoCAD's database and entities. This package mimics AutoCAD ObjectARX's AcDb (Database) classes and implements the drawing database structure that AutoCAD developers are familiar with.
|
|
4
7
|
|
|
5
8
|
## Overview
|
|
@@ -10,7 +13,7 @@ This package contains the core classes for defining and manipulating AutoCAD ent
|
|
|
10
13
|
|
|
11
14
|
- **Database Management**: Complete AutoCAD database structure with tables and records
|
|
12
15
|
- **Entity Support**: All major AutoCAD entity types (lines, circles, polylines, blocks, etc.)
|
|
13
|
-
- **File Conversion**:
|
|
16
|
+
- **File Conversion**: Extensible converter registration system (`AcDbDatabaseConverterManager`); DXF/DWG readers live in separate packages
|
|
14
17
|
- **Symbol Tables**: Layer, linetype, text style, and dimension style management
|
|
15
18
|
- **Block Management**: Block table and block reference handling
|
|
16
19
|
- **Dimension Support**: Comprehensive dimension entity types
|
|
@@ -76,9 +79,10 @@ npm install @mlightcad/data-model
|
|
|
76
79
|
### File Conversion
|
|
77
80
|
- **AcDbDatabaseConverter**: Base class for file format converters
|
|
78
81
|
- **AcDbDatabaseConverterManager**: Manages registered file converters
|
|
79
|
-
- **AcDbDxfConverter**: DXF file converter
|
|
80
82
|
- **AcDbBatchProcessing**: Batch processing utilities
|
|
81
|
-
- **
|
|
83
|
+
- **AcDbBaseWorker**, **createWorkerApi**: Web Worker infrastructure for parsers
|
|
84
|
+
|
|
85
|
+
DXF import is provided by [@mlightcad/dxf-json-converter](../dxf-json-converter/README.md). DWG import is provided by converter packages such as [@mlightcad/libredwg-converter](../libredwg-converter/README.md). Register them with `AcDbDatabaseConverterManager` before calling `AcDbDatabase.read()`.
|
|
82
86
|
|
|
83
87
|
### Utilities
|
|
84
88
|
- **AcDbConstants**: Database constants
|
|
@@ -157,22 +161,37 @@ modelSpace.appendEntity(blockRef);
|
|
|
157
161
|
|
|
158
162
|
### File Conversion
|
|
159
163
|
```typescript
|
|
160
|
-
import {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
164
|
+
import {
|
|
165
|
+
AcDbDatabase,
|
|
166
|
+
AcDbDatabaseConverterManager,
|
|
167
|
+
AcDbFileType,
|
|
168
|
+
acdbHostApplicationServices,
|
|
169
|
+
AcDbOpenDatabaseOptions
|
|
170
|
+
} from '@mlightcad/data-model'
|
|
171
|
+
import { AcDbDxfConverter } from '@mlightcad/dxf-json-converter'
|
|
172
|
+
import { AcDbLibreDwgConverter } from '@mlightcad/libredwg-converter'
|
|
173
|
+
|
|
174
|
+
// Register converters (required before reading files)
|
|
175
|
+
AcDbDatabaseConverterManager.instance.register(
|
|
176
|
+
AcDbFileType.DXF,
|
|
177
|
+
new AcDbDxfConverter({
|
|
178
|
+
useWorker: true,
|
|
179
|
+
parserWorkerUrl: './assets/dxf-parser-worker.js'
|
|
180
|
+
})
|
|
181
|
+
)
|
|
182
|
+
AcDbDatabaseConverterManager.instance.register(
|
|
183
|
+
AcDbFileType.DWG,
|
|
184
|
+
new AcDbLibreDwgConverter({
|
|
185
|
+
useWorker: true,
|
|
186
|
+
parserWorkerUrl: './assets/libredwg-parser-worker.js'
|
|
187
|
+
})
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
// Read a file into the database
|
|
191
|
+
const database = new AcDbDatabase()
|
|
192
|
+
acdbHostApplicationServices().workingDatabase = database
|
|
193
|
+
const buffer = await file.arrayBuffer()
|
|
194
|
+
await database.read(buffer, { readOnly: true }, AcDbFileType.DXF)
|
|
176
195
|
```
|
|
177
196
|
|
|
178
197
|
### Dimension Creation
|
|
@@ -210,12 +229,14 @@ newLayout.setPlotCentered(true);
|
|
|
210
229
|
|
|
211
230
|
## Dependencies
|
|
212
231
|
|
|
213
|
-
- **@mlightcad/dxf-json**: For DXF file parsing
|
|
214
232
|
- **@mlightcad/common**: For common utilities (peer dependency)
|
|
215
233
|
- **@mlightcad/geometry-engine**: For geometric operations (peer dependency)
|
|
216
234
|
- **@mlightcad/graphic-interface**: For graphics interface (peer dependency)
|
|
235
|
+
- **iconv-lite**: For text encoding conversion
|
|
217
236
|
- **uid**: For unique ID generation
|
|
218
237
|
|
|
238
|
+
To read DXF files, also install [@mlightcad/dxf-json-converter](../dxf-json-converter/README.md) and register `AcDbDxfConverter`.
|
|
239
|
+
|
|
219
240
|
## API Documentation
|
|
220
241
|
|
|
221
242
|
For detailed API documentation, visit the [RealDWG-Web documentation](https://mlight-lee.github.io/realdwg-web/).
|