@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.
Files changed (217) hide show
  1. package/README.md +41 -20
  2. package/dist/data-model.cjs +7 -7
  3. package/lib/base/AcDbDxfFiler.d.ts +1 -1
  4. package/lib/base/AcDbDxfFiler.d.ts.map +1 -1
  5. package/lib/base/AcDbObject.d.ts +1 -0
  6. package/lib/base/AcDbObject.d.ts.map +1 -1
  7. package/lib/base/AcDbObject.js +6 -0
  8. package/lib/base/AcDbObject.js.map +1 -1
  9. package/lib/converter/AcDbRegenerator.d.ts +1 -1
  10. package/lib/converter/AcDbRegenerator.d.ts.map +1 -1
  11. package/lib/converter/AcDbRegenerator.js.map +1 -1
  12. package/lib/converter/index.d.ts +0 -1
  13. package/lib/converter/index.d.ts.map +1 -1
  14. package/lib/converter/index.js +0 -1
  15. package/lib/converter/index.js.map +1 -1
  16. package/lib/database/AcDbBlockTable.d.ts +1 -1
  17. package/lib/database/AcDbBlockTable.d.ts.map +1 -1
  18. package/lib/database/AcDbBlockTableRecord.d.ts +1 -1
  19. package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
  20. package/lib/database/AcDbDatabase.d.ts +2 -2
  21. package/lib/database/AcDbDatabase.d.ts.map +1 -1
  22. package/lib/database/AcDbDatabase.js +7 -2
  23. package/lib/database/AcDbDatabase.js.map +1 -1
  24. package/lib/database/AcDbDatabaseConverter.d.ts +9 -9
  25. package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -1
  26. package/lib/database/AcDbDatabaseConverter.js +14 -2
  27. package/lib/database/AcDbDatabaseConverter.js.map +1 -1
  28. package/lib/database/AcDbDatabaseConverterManager.d.ts +0 -2
  29. package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -1
  30. package/lib/database/AcDbDatabaseConverterManager.js +0 -4
  31. package/lib/database/AcDbDatabaseConverterManager.js.map +1 -1
  32. package/lib/database/AcDbDimStyleTableRecord.d.ts +1 -1
  33. package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -1
  34. package/lib/database/AcDbDimStyleTableRecord.js +1 -1
  35. package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
  36. package/lib/database/AcDbLayerTableRecord.d.ts +1 -1
  37. package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -1
  38. package/lib/database/AcDbLinetypeTableRecord.d.ts +1 -1
  39. package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -1
  40. package/lib/database/AcDbRegAppTableRecord.d.ts +1 -1
  41. package/lib/database/AcDbRegAppTableRecord.d.ts.map +1 -1
  42. package/lib/database/AcDbSymbolTableRecord.d.ts +1 -1
  43. package/lib/database/AcDbSymbolTableRecord.d.ts.map +1 -1
  44. package/lib/database/AcDbSysVarManager.js +4 -1
  45. package/lib/database/AcDbSysVarManager.js.map +1 -1
  46. package/lib/database/AcDbTextStyleTable.js +1 -1
  47. package/lib/database/AcDbTextStyleTable.js.map +1 -1
  48. package/lib/database/AcDbTextStyleTableRecord.d.ts +1 -1
  49. package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -1
  50. package/lib/database/AcDbViewTableRecord.d.ts +1 -1
  51. package/lib/database/AcDbViewTableRecord.d.ts.map +1 -1
  52. package/lib/database/AcDbViewportTableRecord.d.ts +1 -1
  53. package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -1
  54. package/lib/entity/AcDb2dPolyline.d.ts +4 -2
  55. package/lib/entity/AcDb2dPolyline.d.ts.map +1 -1
  56. package/lib/entity/AcDb2dPolyline.js +9 -1
  57. package/lib/entity/AcDb2dPolyline.js.map +1 -1
  58. package/lib/entity/AcDb2dVertex.d.ts +2 -2
  59. package/lib/entity/AcDb2dVertex.d.ts.map +1 -1
  60. package/lib/entity/AcDb2dVertex.js +1 -1
  61. package/lib/entity/AcDb2dVertex.js.map +1 -1
  62. package/lib/entity/AcDb3dPolyline.d.ts +4 -2
  63. package/lib/entity/AcDb3dPolyline.d.ts.map +1 -1
  64. package/lib/entity/AcDb3dPolyline.js +9 -1
  65. package/lib/entity/AcDb3dPolyline.js.map +1 -1
  66. package/lib/entity/AcDb3dVertex.d.ts +2 -2
  67. package/lib/entity/AcDb3dVertex.d.ts.map +1 -1
  68. package/lib/entity/AcDb3dVertex.js +1 -1
  69. package/lib/entity/AcDb3dVertex.js.map +1 -1
  70. package/lib/entity/AcDbArc.d.ts +4 -2
  71. package/lib/entity/AcDbArc.d.ts.map +1 -1
  72. package/lib/entity/AcDbArc.js +10 -2
  73. package/lib/entity/AcDbArc.js.map +1 -1
  74. package/lib/entity/AcDbAttribute.d.ts +1 -1
  75. package/lib/entity/AcDbAttribute.d.ts.map +1 -1
  76. package/lib/entity/AcDbAttributeDefinition.d.ts +1 -1
  77. package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
  78. package/lib/entity/AcDbBlockReference.d.ts +4 -2
  79. package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
  80. package/lib/entity/AcDbBlockReference.js +3 -1
  81. package/lib/entity/AcDbBlockReference.js.map +1 -1
  82. package/lib/entity/AcDbCircle.d.ts +4 -2
  83. package/lib/entity/AcDbCircle.d.ts.map +1 -1
  84. package/lib/entity/AcDbCircle.js +10 -2
  85. package/lib/entity/AcDbCircle.js.map +1 -1
  86. package/lib/entity/AcDbCurve.d.ts +5 -0
  87. package/lib/entity/AcDbCurve.d.ts.map +1 -1
  88. package/lib/entity/AcDbCurve.js.map +1 -1
  89. package/lib/entity/AcDbEllipse.d.ts +4 -2
  90. package/lib/entity/AcDbEllipse.d.ts.map +1 -1
  91. package/lib/entity/AcDbEllipse.js +10 -2
  92. package/lib/entity/AcDbEllipse.js.map +1 -1
  93. package/lib/entity/AcDbEntity.d.ts +2 -2
  94. package/lib/entity/AcDbEntity.d.ts.map +1 -1
  95. package/lib/entity/AcDbEntity.js +1 -1
  96. package/lib/entity/AcDbEntity.js.map +1 -1
  97. package/lib/entity/AcDbFace.d.ts +6 -2
  98. package/lib/entity/AcDbFace.d.ts.map +1 -1
  99. package/lib/entity/AcDbFace.js +22 -1
  100. package/lib/entity/AcDbFace.js.map +1 -1
  101. package/lib/entity/AcDbHatch.d.ts +6 -2
  102. package/lib/entity/AcDbHatch.d.ts.map +1 -1
  103. package/lib/entity/AcDbHatch.js +12 -2
  104. package/lib/entity/AcDbHatch.js.map +1 -1
  105. package/lib/entity/AcDbLeader.d.ts +4 -2
  106. package/lib/entity/AcDbLeader.d.ts.map +1 -1
  107. package/lib/entity/AcDbLeader.js +9 -1
  108. package/lib/entity/AcDbLeader.js.map +1 -1
  109. package/lib/entity/AcDbLine.d.ts +3 -1
  110. package/lib/entity/AcDbLine.d.ts.map +1 -1
  111. package/lib/entity/AcDbLine.js +8 -0
  112. package/lib/entity/AcDbLine.js.map +1 -1
  113. package/lib/entity/AcDbMLeader.d.ts +2 -2
  114. package/lib/entity/AcDbMLeader.d.ts.map +1 -1
  115. package/lib/entity/AcDbMLeader.js +4 -2
  116. package/lib/entity/AcDbMLeader.js.map +1 -1
  117. package/lib/entity/AcDbMLine.d.ts +2 -2
  118. package/lib/entity/AcDbMLine.d.ts.map +1 -1
  119. package/lib/entity/AcDbMLine.js +2 -2
  120. package/lib/entity/AcDbMLine.js.map +1 -1
  121. package/lib/entity/AcDbMText.d.ts +2 -2
  122. package/lib/entity/AcDbMText.d.ts.map +1 -1
  123. package/lib/entity/AcDbMText.js +1 -1
  124. package/lib/entity/AcDbMText.js.map +1 -1
  125. package/lib/entity/AcDbOsnapHelpers.d.ts +1 -1
  126. package/lib/entity/AcDbOsnapHelpers.d.ts.map +1 -1
  127. package/lib/entity/AcDbOsnapHelpers.js +1 -1
  128. package/lib/entity/AcDbOsnapHelpers.js.map +1 -1
  129. package/lib/entity/AcDbPoint.d.ts +2 -2
  130. package/lib/entity/AcDbPoint.d.ts.map +1 -1
  131. package/lib/entity/AcDbPoint.js +1 -1
  132. package/lib/entity/AcDbPoint.js.map +1 -1
  133. package/lib/entity/AcDbPolyFaceMesh.d.ts +4 -2
  134. package/lib/entity/AcDbPolyFaceMesh.d.ts.map +1 -1
  135. package/lib/entity/AcDbPolyFaceMesh.js +9 -1
  136. package/lib/entity/AcDbPolyFaceMesh.js.map +1 -1
  137. package/lib/entity/AcDbPolygonMesh.d.ts +4 -2
  138. package/lib/entity/AcDbPolygonMesh.d.ts.map +1 -1
  139. package/lib/entity/AcDbPolygonMesh.js +9 -1
  140. package/lib/entity/AcDbPolygonMesh.js.map +1 -1
  141. package/lib/entity/AcDbPolyline.d.ts +4 -2
  142. package/lib/entity/AcDbPolyline.d.ts.map +1 -1
  143. package/lib/entity/AcDbPolyline.js +9 -1
  144. package/lib/entity/AcDbPolyline.js.map +1 -1
  145. package/lib/entity/AcDbRasterImage.d.ts +3 -2
  146. package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
  147. package/lib/entity/AcDbRasterImage.js +1 -1
  148. package/lib/entity/AcDbRasterImage.js.map +1 -1
  149. package/lib/entity/AcDbRay.d.ts +4 -2
  150. package/lib/entity/AcDbRay.d.ts.map +1 -1
  151. package/lib/entity/AcDbRay.js +9 -1
  152. package/lib/entity/AcDbRay.js.map +1 -1
  153. package/lib/entity/AcDbShape.d.ts +2 -2
  154. package/lib/entity/AcDbShape.d.ts.map +1 -1
  155. package/lib/entity/AcDbShape.js +1 -1
  156. package/lib/entity/AcDbShape.js.map +1 -1
  157. package/lib/entity/AcDbSpline.d.ts +4 -2
  158. package/lib/entity/AcDbSpline.d.ts.map +1 -1
  159. package/lib/entity/AcDbSpline.js +9 -1
  160. package/lib/entity/AcDbSpline.js.map +1 -1
  161. package/lib/entity/AcDbTable.d.ts +1 -1
  162. package/lib/entity/AcDbTable.d.ts.map +1 -1
  163. package/lib/entity/AcDbText.d.ts +2 -2
  164. package/lib/entity/AcDbText.d.ts.map +1 -1
  165. package/lib/entity/AcDbText.js +1 -1
  166. package/lib/entity/AcDbText.js.map +1 -1
  167. package/lib/entity/AcDbTrace.d.ts +4 -2
  168. package/lib/entity/AcDbTrace.d.ts.map +1 -1
  169. package/lib/entity/AcDbTrace.js +9 -0
  170. package/lib/entity/AcDbTrace.js.map +1 -1
  171. package/lib/entity/AcDbViewport.d.ts +1 -1
  172. package/lib/entity/AcDbViewport.d.ts.map +1 -1
  173. package/lib/entity/AcDbWipeout.d.ts +1 -1
  174. package/lib/entity/AcDbWipeout.d.ts.map +1 -1
  175. package/lib/entity/AcDbXline.d.ts +4 -2
  176. package/lib/entity/AcDbXline.d.ts.map +1 -1
  177. package/lib/entity/AcDbXline.js +9 -1
  178. package/lib/entity/AcDbXline.js.map +1 -1
  179. package/lib/index.d.ts +1 -1
  180. package/lib/index.d.ts.map +1 -1
  181. package/lib/index.js +1 -1
  182. package/lib/index.js.map +1 -1
  183. package/lib/misc/AcDbDataGenerator.d.ts +1 -1
  184. package/lib/misc/AcDbDataGenerator.d.ts.map +1 -1
  185. package/lib/misc/AcDbDataGenerator.js +7 -3
  186. package/lib/misc/AcDbDataGenerator.js.map +1 -1
  187. package/lib/misc/AcDbRenderingCache.d.ts +1 -1
  188. package/lib/misc/AcDbRenderingCache.d.ts.map +1 -1
  189. package/lib/misc/AcDbRenderingCache.js +1 -1
  190. package/lib/misc/AcDbRenderingCache.js.map +1 -1
  191. package/lib/object/AcDbMLeaderStyle.js +1 -1
  192. package/lib/object/AcDbMLeaderStyle.js.map +1 -1
  193. package/lib/object/layout/AcDbLayoutManager.d.ts.map +1 -1
  194. package/lib/object/layout/AcDbLayoutManager.js +2 -2
  195. package/lib/object/layout/AcDbLayoutManager.js.map +1 -1
  196. package/package.json +6 -9
  197. package/dist/dxf-parser-worker.js +0 -1794
  198. package/lib/converter/AcDbDxfConverter.d.ts +0 -277
  199. package/lib/converter/AcDbDxfConverter.d.ts.map +0 -1
  200. package/lib/converter/AcDbDxfConverter.js +0 -1076
  201. package/lib/converter/AcDbDxfConverter.js.map +0 -1
  202. package/lib/converter/AcDbDxfParser.d.ts +0 -23
  203. package/lib/converter/AcDbDxfParser.d.ts.map +0 -1
  204. package/lib/converter/AcDbDxfParser.js +0 -85
  205. package/lib/converter/AcDbDxfParser.js.map +0 -1
  206. package/lib/converter/AcDbEntitiyConverter.d.ts +0 -156
  207. package/lib/converter/AcDbEntitiyConverter.d.ts.map +0 -1
  208. package/lib/converter/AcDbEntitiyConverter.js +0 -1426
  209. package/lib/converter/AcDbEntitiyConverter.js.map +0 -1
  210. package/lib/converter/AcDbObjectConverter.d.ts +0 -68
  211. package/lib/converter/AcDbObjectConverter.d.ts.map +0 -1
  212. package/lib/converter/AcDbObjectConverter.js +0 -376
  213. package/lib/converter/AcDbObjectConverter.js.map +0 -1
  214. package/lib/converter/worker/AcDbDxfParserWorker.d.ts +0 -11
  215. package/lib/converter/worker/AcDbDxfParserWorker.d.ts.map +0 -1
  216. package/lib/converter/worker/AcDbDxfParserWorker.js +0 -75
  217. 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
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+ [![npm version](https://img.shields.io/npm/v/@mlightcad/data-model.svg)](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**: Support for reading DXF and DWG files with extensible converter system
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
- - **AcDbObjectConverter**: Object conversion utilities
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 { AcDbDatabaseConverterManager, AcDbFileType } from '@mlightcad/data-model';
161
-
162
- // Get the DXF converter
163
- const converter = AcDbDatabaseConverterManager.instance.get(AcDbFileType.DXF);
164
-
165
- // Read a DXF file
166
- const database = await converter.read('drawing.dxf');
167
-
168
- // Register a custom converter
169
- class MyDwgConverter extends AcDbDatabaseConverter {
170
- async read(filePath: string): Promise<AcDbDatabase> {
171
- // Custom DWG reading logic
172
- }
173
- }
174
-
175
- AcDbDatabaseConverterManager.instance.register(AcDbFileType.DWG, new MyDwgConverter());
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/).