
    OgH                         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 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 y)    )Dict)Drawing)codepage)HeaderSection)ClassesSection)TablesSection)BlocksSection)EntitySection)ObjectsSection)AcDsDataSection   )*)
FileHeader)load_header_section)load_classes_sectionreadfileloadfilenamereturnr   c                 N    t        | d      j                         }t        ||      S )Nrb)openreadr   )r   	crc_checkdatas      \/var/www/html/public_html/myphp/venv/lib/python3.12/site-packages/ezdxf/addons/dwg/loader.pyr   r      s$    $$$&Di      r   c                 T    t        | |      }|j                          |j                  S N)r   )DwgDocumentr   doc)r   r   r!   s      r   r   r      s     
di
0CHHJ77Nr   c                   X    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y)r    r   c                     t        |      | _        || _        t        ||      | _        | j                         | _        t               | _        y r   )	
memoryviewr   r   r   specs
_setup_docr!   dictdxf_object_types)selfr   r   s      r   __init__zDwgDocument.__init__$   s;    t$	"	:
 OO-04r   r   c                    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!34zz**"&&(
 "&!3!3

:&*jj&L&L

?#%-%8%89L9L%M

>"$S) 
r   c                     | j                          | j                          | j                          | j                          y N)load_headerload_classesload_objectsstore_objectsr)   s    r   r   zDwgDocument.load>   s2    r   Nc                     t        | j                  | j                  | j                        }|j	                         }| j                  |       y r5   )r   r%   r   r   load_header_varsset_header_vars)r)   hdr_sectionhdr_varss      r   r6   zDwgDocument.load_headerD   s8    )$**diiP//1X&r   r?   c                      y r5    )r)   r?   s     r   r=   zDwgDocument.set_header_varsI       r   c                    t        | j                  | j                  | j                        }|j	                         D ]M  \  }}| j
                  j                  j                  |       |j                  j                  | j                  |<   O y r5   )r   r%   r   r   r7   r!   r3   registerdxfnamer(   )r)   cls_section	class_numdxfclasss       r   r7   zDwgDocument.load_classesL   sr    *JJ		4>>
 $/#;#;#= 	AIxHH%%h//7||/@/@D!!),	Ar   c                      y r5   rA   r:   s    r   r8   zDwgDocument.load_objectsT   rB   r   c                      y 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@    7U 7G $'
 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      sk     "   / 1 / / 1 1 3  " / 1v
!s !	 !
u ' 5 5r   