12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- # Created: 08.04.2018
- # Copyright (c) 2018, Manfred Moitzi
- # License: MIT-License
- from .dxfobjects import ExtendedTags, DXFAttr, DefSubclass, DXFAttributes
- from .dxfobjects import none_subclass, DXFObject
- _FIELD_CLS = """0
- CLASS
- 1
- FIELD
- 2
- AcDbField
- 3
- ObjectDBX Classes
- 90
- 1152
- 91
- 0
- 280
- 0
- 281
- 0
- """
- _FIELD_TPL = """0
- FIELD
- 5
- 0
- 102
- {ACAD_REACTORS
- 330
- 0
- 102
- }
- 330
- 0
- 100
- AcDbField
- 1
- _text
- 2
- 90
- 0
- """
- field_subclass = DefSubclass('AcDbField', {
- 'evaluator_id': DXFAttr(1),
- 'field_code': DXFAttr(2),
- 'field_code_overflow': DXFAttr(3), # Overflow of field code string
- 'n_child_fields': DXFAttr(90), # Number of child fields
- # 360: Child field ID (AcDbHardOwnershipId); repeats for number of children
- # 97: Number of object IDs used in the field code
- # 331: Object ID used in the field code (AcDbSoftPointerId); repeats for the number of object IDs used in the field code
- # 93: Number of the data set in the field
- # 6: Key string for the field data; a key-field pair is repeated for the number of data sets in the field
- # 7: Key string for the evaluated cache; this key is hard-coded as ACFD_FIELD_VALUE
- # 90: Data type of field value
- # 91: Long value (if data type of field value is long)
- # 140: Double value (if data type of field value is double)
- # 330: ID value, AcDbSoftPointerId (if data type of field value is ID)
- # 92: Binary data buffer size (if data type of field value is binary)
- # 310: Binary data (if data type of field value is binary)
- # 301: Format string
- # 9: Overflow of Format string
- # 98: Length of format string
- })
- class Field(DXFObject):
- __slots__ = ()
- # Requires AC1021/R2007
- TEMPLATE = ExtendedTags.from_text(_FIELD_TPL)
- CLASS = ExtendedTags.from_text(_FIELD_CLS)
- DXFATTRIBS = DXFAttributes(none_subclass, field_subclass)
|