123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- # Created: 25.03.2011
- # Copyright (c) 2011-2018, Manfred Moitzi
- # License: MIT License
- from ezdxf.lldxf.const import LAYOUT_NAMES
- from .graphics import GraphicEntity, ExtendedTags, make_attribs, DXFAttr, DXFAttributes, DefSubclass, XType
- _BLOCK_TPL = """0
- BLOCK
- 5
- 0
- 8
- 0
- 2
- BLOCKNAME
- 3
- BLOCKNAME
- 70
- 0
- 10
- 0.0
- 20
- 0.0
- 30
- 0.0
- 1
- """
- class Block(GraphicEntity):
- __slots__ = ()
- TEMPLATE = ExtendedTags.from_text(_BLOCK_TPL)
- DXFATTRIBS = make_attribs({
- 'name': DXFAttr(2),
- 'name2': DXFAttr(3),
- 'flags': DXFAttr(70),
- 'base_point': DXFAttr(10, xtype=XType.any_point),
- 'xref_path': DXFAttr(1),
- })
- # block entity flags
- # This is an anonymous block generated by hatching, associative dimensioning,
- # other internal operations, or an application
- ANONYMOUS = 1
- # This block has non-constant attribute definitions (this bit is not set if the block has
- # any attribute definitions that are constant, or has no attribute definitions at all)
- NON_CONSTANT_ATTRIBUTES = 2
- XREF = 4 # This block is an external reference (xref)
- XREF_OVERLAY = 8 # This block is an xref overlay
- EXTERNAL = 16 # This block is externally dependent
- RESOLVED = 32 # This is a resolved external reference, or dependent of an external reference (ignored on input)
- REFERENCED = 64 # This definition is a referenced external reference (ignored on input)
- @property
- def is_layout_block(self) -> bool:
- """
- True if block is a model space or paper space block definition.
- """
- name = self.dxf.name.lower()
- return any(name.startswith(layout_name) for layout_name in LAYOUT_NAMES)
- class EndBlk(GraphicEntity):
- __slots__ = ()
- TEMPLATE = ExtendedTags.from_text(" 0\nENDBLK\n 5\n0\n")
- DXFATTRIBS = DXFAttributes(DefSubclass(None, {'handle': DXFAttr(5)}))
|