Ë
    þ�j  ã                   ón  — d Z ddlZddlZddlZddlZddlZ ej                  d«       ddlm	Z
 ddlmZ ddlmZmZ dD ],  Z ed„ ej"                  j$                  D «       «      sŒ'eed<    n d	ed
<   ddlZddlZddlmZmZmZmZmZmZ  e«       \  ZZ ee«      Z ee«      Zej@                  Z!ddl"Z# e#jH                  e%«      Z&ed   D ]S  Z'e!jQ                  e'd   jS                  dd«      «      Z*e*sŒ*e&e*jW                  «          jY                  e'd   e'd   f«       ŒU  e#jZ                  d„ e&D «       «      Z.i Z/e&ja                  «       D ]3  \  Z1Z2e2D � cg c]  } e. e3| d   «         dk  sŒ| ‘Œ c} Z4e4xs e2d   e/e1<   Œ5 d„ Z5dd„Z6d„ Z7d„ Z8e9dk(  r—ejt                  dd D ]„  Z;e;jy                  d«      \  Z=Z>e>j                  «       jy                  d«      D �cg c]
  } e@|«      ‘Œ c}\  ZAZB e8e=eAeBej†                  j‰                  ede=jS                  dd«      z  «      «       Œ† yyc c} w c c}w )ui  Pass 10: 'ë�„ë©´ ê·¸ë¦¼' ê³¼ 'ë§Œë“¤ì–´ì§„ OBJ' ë¥¼ ë‚˜ëž€ížˆ ë†“ì�€ ë¹„êµ� PNG ë¥¼ ë§Œë“ ë‹¤.
   ëˆˆìœ¼ë¡œ ëŒ€ì¡°í•´ì•¼ ì§„ì§œ ë§žëŠ”ì§€ ì•Œ ìˆ˜ ìžˆë‹¤(ì œ5ì¡° â€” í™”ë©´ìœ¼ë¡œ í™•ì�¸).
   ì‚¬ìš©: python pass10_compare.py 2110DN-0004-001:2656x250 ...
        (ë�„ë²ˆ:ë�„ë©´ìƒ� ë¶€ìž¬ í�¬ê¸°WxH â€” ê·¸ í�¬ê¸°ì�˜ ë�©ì–´ë¦¬ë¥¼ ì°¾ì•„ ê·¸ ì˜�ì—­ì�„ ë Œë�”í•œë‹¤)
é    NÚAgg)ÚPoly3DCollection)Úfont_managerÚrcParams)zMalgun GothicÚGulimÚBatangc              #   óB   K  — | ]  }t         |j                  k(  –— Œ y ­w©N)ÚfÚname)Ú.0Úxs     úpass10_compare.pyÚ	<genexpr>r      s   è ø€ Ð
AÑ @˜1Œ1�—‘�;Ñ @ùs   ‚zfont.familyFzaxes.unicode_minus)ÚSCRÚFABÚ
load_indexÚbuild_segmentsÚ
componentsÚdist_to_boxÚtextsé   Ú Ú é   é   c              #   óT   K  — | ]   }t         |   D ]  \  }}t        |«      –— Œ Œ" y ­wr
   )Ú_locÚround)r   Úpr   Úys       r   r   r   #   s%   è ø€ Ð<¡4˜a´D¸´G©D¨A¨q”�q—°G�¡4ùs   ‚&(é   c                 ó  — t         |    \  }}d }t        t        «      D ]`  \  }}t        |d   |z
  «      |z  dkD  s!t        |d   |z
  «      t	        |d«      z  dkD  rŒ?t        |||d   «      }|�	||d   k  sŒZ||d   f}Œb |r|d   S d S )NÚwg{®Gáz”?Úhé   Úbboxr   )ÚcalloutsÚ	enumerateÚcompsÚabsÚmaxr   )	ÚpnÚWÚHÚpxÚpyÚbestÚciÚcÚdds	            r   Úfind_boxr6   *   s¡   € Ü�b‰\�F€BˆØ€DÜœ5Ö!‰ˆˆAÜˆq�‰v�a‰x‹=˜‰?˜TÒ!¤S¨¨3©°©£]´3°q¸!³9Ñ%<¸tÒ%CØÜ˜˜R  6¡Ó+ˆØˆ<˜2  Q¡›<Ø˜˜&™	�?‰Dð "ñ ˆ4�‰7Ð$ Ð$ó    c           
      óÜ  ‡‡‡‡— |\  }}}}||z
  |z  dz   ||z
  |z  dz   }}||z
  ||z   ||z
  ||z   f\  ŠŠŠŠˆˆˆˆfd„}	t         d   D ]G  }
 |	|
d   |
d   «      s |	|
d   |
d   «      sŒ"| j                  |
d   |
d   g|
d   |
d   gdd	d
¬«       ŒI t         d   D ]¤  } |	|d   |d   «      sŒ|d   |d   }}||k  r|dz  }t        j                  t        j                  ||d«      «      }| j                  |d   |d   t        j
                  |«      z  z   |d   |d   t        j                  |«      z  z   dd	d
¬«       Œ¦ t        d   D ]F  } |	|d   |d   «      sŒ| j                  t        j                  |d   |d   f|d   dd	d
¬«      «       ŒH | j                  ‰‰«       | j                  ‰‰«       | j                  d«       | j                  g «       | j                  g «       y )Né   c                 óH   •— ‰| cxk  xr ‰k  nc xr ‰|cxk  xr ‰k  S c S r
   © )r   r!   ÚX0ÚX1ÚY0ÚY1s     €€€€r   Úinwzdraw_dwg.<locals>.inw;   s#   ø€ Ø�QŽ}˜"Œ}Ò.  q¦¨B¡Ð.¡Ð.r7   Úlinesr   r&   r   r   Ú-z#1a1a1agš™™™™™é?)ÚcolorÚlwÚarcsr   ih  é(   ÚcirclesF)ÚfillrC   rD   Úequal)Úd2ÚplotÚnpÚradiansÚlinspaceÚcosÚsinÚd1Ú	add_patchÚpltÚCircleÚset_xlimÚset_ylimÚ
set_aspectÚ
set_xticksÚ
set_yticks)ÚaxÚbbÚpadÚx0Úy0Úx1Úy1ÚmxÚmyr@   ÚlÚaÚsÚeÚtr4   r<   r=   r>   r?   s                   @@@@r   Údraw_dwgrh   6   sî  û€ Ø�N€BˆˆB�Ø�‰e�S‰[˜2Ñ  2¡ s™{¨RÑ/ˆ€BØ˜‘U˜B˜r™E 2 b¡5¨"¨R©%Ð/�N€BˆˆB�÷/ä�Œ[ˆÙˆq�‰t�Q�q‘TŒ?™c ! A¡$¨¨!©�oØ�G‰G�Q�q‘T˜1˜Q™4�L 1 Q¡4¨¨1© ,°¸9ÈˆGÕMð ô �ŒZˆÙˆq�‰t�Q�q‘T�?Ø�Q‘4˜˜1™ˆqˆAØ�1Šu�a˜3‘h�aÜ—
‘
œ2Ÿ;™; q¨!¨RÓ0Ó1ˆAØ�G‰G�A�a‘D˜˜1™œbŸf™f Q›i™Ñ'¨¨1©¨a°©d´2·6±6¸!³9©nÑ)<¸cÈÐWZˆGÕ[ð ô �	Œ]ˆÙˆq�‰t�Q�q‘T�?Ø�L‰LœŸ™ Q q¡T¨1¨Q©4 L°!°A±$¸UÈ)ÐX[Ô\Õ]ð ð ‡K�K��BÔ˜Ÿ™ R¨Ô,¨b¯m©m¸GÔ.DØ‡M�M�"Ô�r—}‘} RÕ(r7   c                 óŠ  — |j                   |j                  }}||   }t        |dddd¬«      }| j                  |«       |j                  }|j                  d«      }t        |d   |d   z
  j                  «       «      dz  d	z  }| j                  |d   |z
  |d   |z   «       | j                  |d   |z
  |d   |z   «       | j                  |d   |z
  |d   |z   «       | j                  d
d¬«       | j                  g «       | j                  g «       | j                  g «       | j                  d«       y # t         $ r Y y w xY w)Nz#5b9bd5z#20415fg¸…ëQ¸¾?g      ð?)Ú	facecolorÚ	edgecolorÚ
linewidthsÚalphar   r&   r   gÍÌÌÌÌÌð?é   iÆÿÿÿ)ÚelevÚazim)r&   r&   r&   )ÚverticesÚfacesr   Úadd_collection3dÚboundsÚmeanÚfloatr,   rU   rV   Úset_zlimÚ	view_initrX   rY   Ú
set_zticksÚset_box_aspectÚ	Exception)	rZ   ÚmeshÚvr   ÚtriÚpcÚbr4   Úrs	            r   Údraw_objr‚   M   s#  € Ø�=‰=˜$Ÿ*™*€q€AØ
ˆA‰$€CÜ	˜#¨¸iÐTXÐ`cÔ	d€BØ×Ñ˜ÔØ�‰€A˜Ÿ™ ›�Q¬¨q°©t°A°a±D©y¯o©oÓ.?Ó(@ÀÑ(BÀTÑ(I AØ‡K�K��!‘�Q‘˜˜!™˜Q™Ô §¡¨Q¨q©T°!©V°Q°q±T¸!±VÔ!<¸b¿k¹kÈ!ÈAÉ$ÈqÉ&ÐRSÐTUÑRVÐWXÑRXÔ>YØ‡L�L�b˜s€LÔ#Ø‡M�M�"Ô�r—}‘} RÔ(¨"¯-©-¸Ô*;Ø	×	Ñ	˜9Õ	%øÜÒ‘dÐús   Ä$D6 Ä6	EÅEc           
      ó  — t        | ||«      }|€t        d| ||fz  «       y t        dz   t        j                  z   d| j                  d«      d   dz   | j                  d«      d   z   z  z   }t        j                  |«      }t        j                  d¬	«      }|j                  ddd«      }t        ||«       |j                  d
| ||fz  d¬«       |j                  dddd¬«      }	t        |	|«       |j                  }
|	j                  d|
d   |
d   |
d   |j                  t!        |j"                  «      fz  d¬«       t        j$                  «        t        j&                  |d¬«       t        j(                  |«       t        d|«       |S )Nu$     [!] %s: %gx%g ë�©ì–´ë¦¬ ëª» ì°¾ì�ŒÚ\z%s.objrB   r&   Ú_r   )é   é   )Úfigsizeu-   ë�„ë©´ ê·¸ë¦¼  %s  (ë�„ë©´ìƒ� %.1f x %.1f mm)é   )ÚfontsizeÚ3d)Ú
projectionu:   ë§Œë“  OBJ  %.1f x %.1f x %.1f mm  watertight=%s  faces=%dr   én   )Údpiz  saved)r6   Úprintr   ÚproductÚ
OBJ_PREFIXÚsplitÚtrimeshÚloadrS   ÚfigureÚadd_subplotrh   Ú	set_titler‚   ÚextentsÚis_watertightÚlenrr   Útight_layoutÚsavefigÚclose)r-   r.   r/   Úoutr[   ÚfnÚmÚfigÚa1Úa2rf   s              r   Úoner¤   Z   sf  € Ü	�"�a˜Ó	€BØ	€zÜÐ4¸¸A¸q°zÑAÔBÈ4Ü	ˆt‰”g×(Ñ(Ñ	(¨8°r·x±xÀ³}ÀQÑ7GÈ#Ñ7MÐPR×PXÑPXÐY\ÓP]Ð^_ÑP`Ñ7`Ñ+aÑ	a€BÜ�‰�RÓ€AÜ
�*‰*˜WÔ
%€CØ	�‰˜˜A˜qÓ	!€BÜˆR�ÔØ‡L�LÐ@ÀBÈÈ1À:ÑMÐXZ€LÔ[Ø	�‰˜˜A˜q¨TˆÓ	2€BÜˆR�„OØ	�	‰	€AØ‡L�LÐMØ�a‘D˜!˜A™$  !¡ a§o¡o´s¸1¿7¹7³|ÐDñEØOQð ô Sä×ÑÔœŸ™ C¨SÕ1´3·9±9¸S´>Ü	ˆ)�SÔØ€Jr7   Ú__main__r&   Ú:r   u   ë¹„êµ�_%s.pngz2110DN-)gš™™™™™¹?)EÚ__doc__ÚosÚsysÚreÚnumpyrL   Ú
matplotlibÚuseÚmatplotlib.pyplotÚpyplotrS   Úmpl_toolkits.mplot3d.art3dr   r   r   r   ÚanyÚfontManagerÚttflistr“   r�   Úshape_commonr   r   r   r   r   r   rQ   rJ   Úsegsr*   ÚPNÚPNREÚcollectionsÚ_cÚdefaultdictÚlistr   rg   ÚsearchÚreplacer    ÚgroupÚappendÚCounterÚ_xcr(   Úitemsr    Úpsr   Úqr6   rh   r‚   r¤   Ú__name__Úargvrd   r’   r-   ÚdimsÚlowerrv   r.   r/   ÚpathÚjoin)Úxyr   s   00r   Ú<module>rÌ      s!  ðñ÷
 Ó Û Û �>�:—>‘> %Ô(Ý Ý 7ß -Û	-€AÙ
Ñ
A × 8Ñ 8× @Ò @Ó
AÕAØ"#ˆ�Ñ¡Uð 
.ð "'€Ð	Ñ Û ã ß V× Vá	‹�€€BÙ�bÓ€Ù�4Ó€Ø‡z�z€ó Ø€r‡~�~�dÓ€Ø	ˆGŒ€AØ�‰�A�a‘D—L‘L  bÓ)Ó*€AÚØˆQ�W‰W‹Y‰×Ñ  !¡ a¨¡d˜|Õ,ð 
ð €b‡j�jÑ<¡4Ó<Ó<€Ø€Ø�Z‰ZŽ\�E€A€rÙÓ2‘b�˜C¡ b¨¡e£Ñ-°Ó1Š�bÑ2€AØ’7˜˜A‘,€HˆQ‚Kð ò
	%ó)ò.
òð( ˆzÒØ�X‰X�a�b‹\ˆØ—7‘7˜3“<‰ˆˆDØ"&§*¡*£,×"4Ñ"4°SÔ"9Ó:Ñ"9˜Q‘�a•Ð"9Ñ:‰ˆˆ1ÙˆB��1�b—g‘g—l‘l 3¨¸"¿*¹*ÀYÐPRÓ:SÑ(SÓTÕUñ ð ùòQ 	3ùòV ;s   ÅH-Å.H-ÇH2