
    'jH                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ ddlT ddlmZ ddlmZ ddlmZ ddgZddeddfdZddedefdZ G d d          Z dS )    )Dict)Drawing)codepage)HeaderSection)ClassesSection)TablesSection)BlocksSection)EntitySection)ObjectsSection)AcDsDataSection   )*)
FileHeader)load_header_section)load_classes_sectionreadfileloadFfilenamereturnr   c                 f    t          | d                                          }t          ||          S )Nrb)openreadr   )r   	crc_checkdatas      Q/DATA/AppData/hermes/venv/lib/python3.11/site-packages/ezdxf/addons/dwg/loader.pyr   r      s-    $$$&&Di       r   c                 Z    t          | |          }|                                 |j        S N)r   )DwgDocumentr   doc)r   r   r!   s      r   r   r      s(    
di
0
0
0CHHJJJ7Nr   c                   Z    e Zd ZddefdZdefdZd ZddZd	e	fd
Z
ddZddZddZdS )r    Fr   c                     t          |          | _        || _        t          ||          | _        |                                 | _        t                      | _        d S r   )	
memoryviewr   r   r   specs
_setup_docr!   dictdxf_object_types)selfr   r   s      r   __init__zDwgDocument.__init__$   sO    t$$	"	:::
 OO--04r   r   c                 P   t          | j        j                  }| j        j        |_        t	          j                    |_        | j        j        |j        d<   | j        j        |j        d<   t          j	        | j        j                  |j        d<   t          |          |_        |S )N)
dxfversionz$ACADVERz$ACADMAINTVERz$DWGCODEPAGE)r   r%   versionencodingr   newheadermaintenance_release_versionr   
tocodepager   classes)r)   r!   s     r   r&   zDwgDocument._setup_doc,   s    !3444z*"&((
 "&!3
:&*j&L
?#%-%89L%M%M
>"$S)) 
r   c                     |                                   |                                  |                                  |                                  d S N)load_headerload_classesload_objectsstore_objectsr)   s    r   r   zDwgDocument.load>   sP    r   Nc                     t          | j        | j        | j                  }|                                }|                     |           d S r5   )r   r%   r   r   load_header_varsset_header_vars)r)   hdr_sectionhdr_varss      r   r6   zDwgDocument.load_headerD   sD    )$*diPP//11X&&&&&r   r?   c                     d S r5    )r)   r?   s     r   r=   zDwgDocument.set_header_varsI       r   c                     t          | j        | j        | j                  }|                                D ]8\  }}| j        j                            |           |j        j	        | j
        |<   9d S r5   )r   r%   r   r   r7   r!   r3   registerdxfnamer(   )r)   cls_section	class_numdxfclasss       r   r7   zDwgDocument.load_classesL   s|    *J	4>
 
 $/#;#;#=#= 	A 	AIxH%%h////7|/@D!),,	A 	Ar   c                     d S r5   rA   r:   s    r   r8   zDwgDocument.load_objectsT   rB   r   c                     d S r5   rA   r:   s    r   r9   zDwgDocument.store_objectsW   rB   r   F)r   N)__name__
__module____qualname__Bytesr*   r   r&   r   r6   r   r=   r7   r8   r9   rA   r   r   r    r    #   s        7 7U 7 7 7 7G    $  ' ' ' '
    A A A A        r   r    NrL   )!typingr   ezdxf.documentr   ezdxf.toolsr   ezdxf.sections.headerr   ezdxf.sections.classesr   ezdxf.sections.tablesr   ezdxf.sections.blocksr	   ezdxf.sections.entitiesr
   ezdxf.sections.objectsr   ezdxf.sections.acdsdatar   const
fileheaderr   header_sectionr   classes_sectionr   __all__strr   bytesr   r    rA   r   r   <module>rb      s         " " " " " "             / / / / / / 1 1 1 1 1 1 / / / / / / / / / / / / 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3     " " " " " " / / / / / / 1 1 1 1 1 1v
! !s !	 ! ! ! !
 u '    5 5 5 5 5 5 5 5 5 5r   