123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- # Created: 08.04.2018
- # Copyright (c) 2018, Manfred Moitzi
- # License: MIT-License
- from .dxfobjects import DXFObject, DefSubclass, DXFAttributes, DXFAttr, none_subclass, ExtendedTags
- _DATATABLE_CLS = """0
- CLASS
- 1
- DATATABLE
- 2
- AcDbDataTable
- 3
- ObjectDBX Classes
- 90
- 0
- 91
- 0
- 280
- 0
- 281
- 0
- """
- _DATATABLE_TPL = """0
- DATATABLE
- 5
- 0
- 102
- {ACAD_REACTORS
- 330
- 0
- 102
- }
- 330
- 0
- 100
- AcDbDataTable
- 70
- 2
- 90
- 1
- 91
- 1
- 1
- TableName
- 92
- 1
- 2
- Column1
- 93
- 0
- """
- class DataTable(DXFObject):
- """
- Data storage (non-graphical entity), organized as column, rows table.
- Requires DXF version AC1021/R2007
- each column start with
- 93 >>> start first column
- column type
- 2
- column name
- column type >>> first row of first column
- value
- ... >>> rows-times
- ...
- 93
- column type >>> second column
- 2
- column name
- column type >>> first row of second column
- value
- ... >>> rows-times
- ...
- column types:
- -------------
- undocumented, got info from existing DXF files
- 1 entries are integer values (93)
- 3 entries are string values (3)
- data types:
- -----------
- 71 boolean values
- 93 integer value
- 40 double value
- 3 string value
- 10, 20 30 2d point (30?)
- 11, 21, 31 3d point
- 331 soft-pointer ID/handle to object value
- 360 hard-pointer ownership ID
- 340 hard-pointer ID/handle
- 330 soft-pointer ID/handle
- """
- __slots__ = ()
- TEMPLATE = ExtendedTags.from_text(_DATATABLE_TPL)
- CLASS = ExtendedTags.from_text(_DATATABLE_CLS)
- DXFATTRIBS = DXFAttributes(
- none_subclass,
- DefSubclass('AcDbDataTable', {
- 'version': DXFAttr(70),
- 'columns': DXFAttr(90),
- 'rows': DXFAttr(91),
- 'table_name': DXFAttr(1),
- }),
- )
|