
    Og "                       d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZ dd	lmZmZmZ dd
lm Z  d dl!m"Z"m#Z# erd dl$m%Z% d dl&m'Z' d dl(m)Z) ddgZ* ed e
ddejV                         e
dd dejX                  e      d      Z- ee-      Z. ed e
dej^                         e
dded       e
dd        e
d ej`                  e!       e
dd      d"      Z1 ee1      Z2 ee.e2      Z3 ejh                         Z5 ejh                         Z6 ejh                         Z7 ejh                         Z8e  G d# de             Z9 ed$i       Z:e  G d% de             Z;y&)'    )annotations)TYPE_CHECKINGOptional)Self)	validator)DXFAttrDXFAttributesDefSubclassXTypeRETURN_DEFAULTgroup_code_mappingmerge_group_code_mappings)SUBCLASS_MARKERDXF12DXF2000MODEL_SPACE_R12PAPER_SPACE_R12MODEL_SPACE_R2000PAPER_SPACE_R2000)NULLVEC   )
base_classSubclassProcessor	DXFEntity)register_entity)Auditor
AuditError)DXFNamespace)AbstractTagWriter)xrefBlockEndBlk
AcDbEntity   0)defaultr   C   T)r&   optionalr   fixer)layer
paperspaceAcDbBlockBegin       )r&   
dxfversionr(   F   )r&   
   )xtyper&   )namedescriptionflags
base_point	xref_pathc                       e Zd ZdZdZ eeee      Z	dZ
dZdZdZdZdZd	Z	 d	 	 	 d fd
Zd fdZedd       Zedd       Zedd       Zedd       ZddZd fdZ xZS )r!   zDXF BLOCK entityBLOCKr   r-   r.   r$          @   c                    t         |   |      }||S |j                  |t               |j                  rW|j
                  d|_        |j
                  j                         }|t        k(  rt        |_        |S |t        k(  rt        |_        |S )!Loading interface. (internal API)r/   )superload_dxf_attribssimple_dxfattribs_loadermerged_block_begin_group_codesr12r4   lowerMODEL_SPACE_R12_LOWERr   PAPER_SPACE_R12_LOWERr   )self	processordxfr4   	__class__s       Y/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/entities/block.pyrA   zBlock.load_dxf_attribsy   s     g&y1J**30NO==xx88>>#D,,, 
 ..,
    c                   t         |   |       |j                  t        kD  r$|j	                  t
        t        j                         | j                  j                  d      r|j	                  dd       | j                  j                  |d       |j                  t        kD  r$|j	                  t
        t        j                         | j                  j                  }|j                  t        k(  r;|j                         t        k(  rt        }n|j                         t        k(  rt         }|j	                  d|       | j                  j                  |ddg       |j	                  d|       | j                  j                  |d	d
g       y)(Export entity specific data as DXF tags.r+   r'   r   r*   r-   r6   r7      r8   r5   N)r@   export_entityr0   r   
write_tag2r   acdb_entityr4   rJ   hasattrexport_dxf_attribsacdb_block_beginrE   MODEL_SPACE_R2000_LOWERr   PAPER_SPACE_R2000_LOWERr   )rH   	tagwriterr4   rK   s      rL   rQ   zBlock.export_entity   s$   i(%'  +2B2BC88L)  Q'##Iw7%'  2B2G2GHxx}}5(zz|66&!88&Q%##I/FGQ%##I]/KLrM   c                    | j                   j                  j                         }|j                  d      xs |j                  d      S )zReturns ``True`` if this is a :class:`~ezdxf.layouts.Modelspace` or
        :class:`~ezdxf.layouts.Paperspace` block definition.
        z*model_spacez*paper_space)rJ   r4   rE   
startswith)rH   r4   s     rL   is_layout_blockzBlock.is_layout_block   s7    
 xx}}""$~.Q$//.2QQrM   c                @    | j                  t        j                        S )zReturns ``True`` if this is an anonymous block generated by
        hatching, associative dimensioning, other internal operations, or an
        application.

        )get_flag_stater!   	ANONYMOUSrH   s    rL   is_anonymouszBlock.is_anonymous   s     ""5??33rM   c                @    | j                  t        j                        S )z8Returns ``True`` if bock is an external referenced file.)r^   r!   XREFr`   s    rL   is_xrefzBlock.is_xref   s     ""5::..rM   c                @    | j                  t        j                        S )z@Returns ``True`` if bock is an external referenced overlay file.)r^   r!   XREF_OVERLAYr`   s    rL   is_xref_overlayzBlock.is_xref_overlay   s     ""5#5#566rM   c                   | j                   j                  d      }|y |j                  j                  |      }|y |j                   j                  dd      j                         }| j                   j                  dd      j                         }||k7  r?|j	                  t
        j                  t        |        d| dt        |       d| d       y y )Nownerr4   r/   z name 'z' and z
' mismatch)rJ   getentitydbupper	add_errorr   BLOCK_NAME_MISMATCHstr)rH   auditorowner_handleri   
owner_name
block_names         rL   auditzBlock.audit   s    xx||G,  $$\2=YY]]62.446
XX\\&"-335
#..t9+WZLs5zl'*U_` $rM   c                    t        |t              sJ t        |   ||       |j	                  | j
                  j                        |j
                  _        y)z3Translate resources from self to the copied entity.N)
isinstancer!   r@   map_resourcesget_block_namerJ   r4   )rH   clonemappingrK   s      rL   rw   zBlock.map_resources   s@    %'''eW- //>		rM   NrI   zOptional[SubclassProcessor]returnr   rY   r   r}   None)r}   bool)rp   r   )ry   r   rz   zxref.ResourceMapperr}   r   )__name__
__module____qualname____doc__DXFTYPEr	   r   rS   rV   
DXFATTRIBSr_   NON_CONSTANT_ATTRIBUTESrc   rf   EXTERNALRESOLVED
REFERENCEDrA   rQ   propertyr\   ra   rd   rg   rt   rw   __classcell__rK   s   @rL   r!   r!   Y   s    Gz;8HIJ
 I
   D L H H J 8<4	$M2 R R 4 4 / / 7 7? ?rM   AcDbBlockEndc                  R     e Zd ZdZdZ eeee      Z		 d	 	 	 d fdZ
d fdZ xZS )r"   zDXF ENDBLK entityENDBLKc                V    t         |   |      }|r|j                  |t               |S )r?   )r@   rA   rB   acdb_entity_group_codes)rH   rI   rJ   rK   s      rL   rA   zEndBlk.load_dxf_attribs   s-     g&y1..s4KL
rM   c                   t         |   |       |j                  t        kD  r$|j	                  t
        t        j                         | j                  j                  d      r|j	                  dd       | j                  j                  |d       |j                  t        kD  r%|j	                  t
        t        j                         yy)rO   r+   r'   r   r*   N)r@   rQ   r0   r   rR   r   rS   r4   rJ   rT   rU   acdb_block_end)rH   rY   rK   s     rL   rQ   zEndBlk.export_entity   s    i(%'  +2B2BC88L)  Q'##Iw7%'  .2E2EF (rM   r{   r|   r~   )r   r   r   r   r   r	   r   rS   r   r   rA   rQ   r   r   s   @rL   r"   r"      s?    Gz;GJ 8<4	
G 
GrM   N)<
__future__r   typingr   r   typing_extensionsr   ezdxf.lldxfr   ezdxf.lldxf.attributesr   r	   r
   r   r   r   r   ezdxf.lldxf.constr   r   r   r   r   r   r   
ezdxf.mathr   	dxfentityr   r   r   factoryr   ezdxf.auditr   r   ezdxf.entitiesr   ezdxf.lldxf.tagwriterr   ezdxfr    __all__is_valid_layer_nameis_integer_boolrS   r   is_valid_block_name	any_pointrV   acdb_block_begin_group_codesrC   rE   rW   rF   rX   rG   r!   r   r"    rM   rL   <module>r      s   # * " !      ? ? $ ++7H
 C93P3PQ// 

 -[9 Y%B%BC q"4P Q'bIQ+) 2  22BC !:9"  2+113 ---/ 1+113 ---/  x?I x? x?v ^R0 GY G GrM   