Ë
    °]�jW  ã                   óŒ   — d Z ddlZddlZddlZddlZddlZddlZej                  Zej                  Z	dZ
d„ Zd„ Zd	d„Zd„ Zd„ Zy)
u^  í˜•ê°• ë¶€ìž¬ìš© ê³µí†µ ëª¨ë“ˆ: pass6_multi.py ì�˜ 'ë��ì � ì—°ê²° ë�©ì–´ë¦¬(connected component)' ì¶”ì¶œì�„
   ê·¸ëŒ€ë¡œ ìž¬ì‚¬ìš©í•œë‹¤. (ê°™ì�€ ë¡œì§�ì�„ ë‘� ë²ˆ ì“°ì§€ ì•Šê¸° ìœ„í•´ ë¶„ë¦¬ â€” ìƒˆ ì•Œê³ ë¦¬ì¦˜ì�´ ì•„ë‹ˆë‹¤.)
   pass6 ì�€ ìŠ¤í�¬ë¦½íŠ¸ë�¼ import í•˜ë©´ ì „ì²´ê°€ ì‹¤í–‰ë�˜ë¯€ë¡œ, ë�©ì–´ë¦¬ ì¶”ì¶œ ë¶€ë¶„ë§Œ ì—¬ê¸°ë¡œ ì˜®ê²¨ ì™”ë‹¤.
é    Ng      à?c                  ó¦   — t        j                  t        t        dz   d¬«      «      } t        j                  t        t        dz   d¬«      «      }| |fS )Nz\index.jsonzutf-8)Úencodingz\index2.json)ÚjsonÚloadÚopenÚSCR)Úd1Úd2s     õE   E:\ë�„ì§„íŒ©í† ë¦¬\3DìŠ¤ìº”ë°�í‹°ì¹­ì‹œìŠ¤í…œ\dwg2obj\shape_common.pyÚ
load_indexr      s?   € Ü	�‰”4œ˜nÑ,°wÔ?Ó	@€BÜ	�‰”4œ˜oÑ-¸Ô@Ó	A€BØˆrˆ6€Mó    c                 ó0  — g }| d   D ]'  }|j                  |d   |d   f|d   |d   fddœ«       Œ) | d   D ]Ü  }|d d	 \  }}}}}|j                  ||t        j                  t        j                  |«      «      z  z   ||t        j                  t        j                  |«      «      z  z   f||t        j                  t        j                  |«      «      z  z   ||t        j                  t        j                  |«      «      z  z   fd
|||||fdœ«       ŒÞ |S )NÚlinesr   é   é   é   ÚL)Úp0Úp1ÚkindÚarcsé   ÚA)r   r   r   Úarc)ÚappendÚmathÚcosÚradiansÚsin)	r
   ÚsegsÚlÚaÚcxÚcyÚrÚsÚes	            r   Úbuild_segmentsr(      s  € Ø€DØ�Œ[ˆØ�‰˜A˜a™D ! A¡$˜<°°!±°a¸±d¨|ÀSÑIÕJð à�ŒZˆØ˜B˜Q˜%‰ˆˆB��1�aØ�‰˜B ¤4§8¡8¬D¯L©L¸«OÓ#<Ñ!<Ñ<¸bÀ1ÄTÇXÁXÌdÏlÉlÐ[\ËoÓE^ÑC^Ñ>^Ð_Ø ¤4§8¡8¬D¯L©L¸«OÓ#<Ñ!<Ñ<¸bÀ1ÄTÇXÁXÌdÏlÉlÐ[\ËoÓE^ÑC^Ñ>^Ð_Ø ¨"¨b°!°Q¸Ð):ñ<õ 	=ð ð
 €Kr   c                 óN  ‡ ‡‡‡ — i Šˆfd„}i Š ˆ fd„Šˆˆ fd„}‰ D ]P  } ||d   «       ||d   «      }	}‰ j                  ||«       ‰ j                  |	|	«       ||	c|d<   |d<    |||	«       ŒR t        j                  t        «      }
t	        ‰ «      D ]"  \  }}|
 ‰|d   «         j                  |«       Œ$ g }|
j                  «       D �]Ø  \  }}|t        |«      cxk  r|k  sn Œg }|D ]×  }‰ |   }|d   d	k(  r¯|d
   \  }}}}}||k  r|dz  }t        j                  t        j                  ||t        dt        t        ||z
  «      dz  «      «      «      «      }|j                  t        ||t        j                   |«      z  z   ||t        j"                  |«      z  z   «      «       Œ¿|j                  |d   |d   f«       ŒÙ t        j$                  |t&        «      }|j)                  d«      \  }}|j                  d«      \  }}||z
  ||z
  }}|t        ||«      cxk  r|k  sn �Œat+        ˆ fd„|D «       «      }|j                  t-        ||t'        |«      t'        |«      t'        |«      t'        |«      ft'        |«      t'        |«      |t        |«      ¬«      «       �ŒÛ |S )uÂ   ë��ì �ì�´ ë§Œë‚˜ëŠ” ì„ ë¶„ë“¤ì�„ í•œ ë�©ì–´ë¦¬ë¡œ ë¬¶ëŠ”ë‹¤. í•„í„°ëŠ” í˜¸ì¶œìž�ê°€ ì •í•œë‹¤
       (í˜•ê°•ì�€ ì–‡ì�€ ë‹¨ë©´ë�„ë�¼ pass6 ì�˜ íŒ�ìž¬ìš© í•„í„°ë³´ë‹¤ ìž‘ì�€ ê²ƒë�„ ë´�ì•¼ í•œë‹¤).c                 óÒ   •— t        | d   t        z  «      t        | d   t        z  «      f}dD ]&  }dD ]  }|d   |z   |d   |z   f}|‰v sŒ‰|   c c S  Œ( t        ‰«      }|‰|<   |S )Nr   r   )éÿÿÿÿr   r   )ÚroundÚTOLÚlen)ÚpÚkÚdxÚdyÚkkÚvÚnodes         €r   Únidzcomponents.<locals>.nid&   sz   ø€ Ü�1�Q‘4œ‘8‹_œe A a¡D¬¡H›oÐ.ˆÛˆBÛ �Ø˜‘d˜2‘g˜q ™t B™wÐ'�Ø˜’:Ø ™8”Oñ !ð ô
 �‹Iˆ �t˜A‘w¨1 Hr   c                 óž   •— ‰j                  | | «      | k7  r6‰j                  ‰|    ‰|    «      ‰| <   ‰|    } ‰j                  | | «      | k7  rŒ6| S ©N)Úget)ÚxÚpars    €r   Úfindzcomponents.<locals>.find1   sR   ø€ Ø�g‰g�a˜‹m˜qÒ Ø—W‘W˜S ™V S¨¡VÓ,ˆC�‰F°#°a±&¨að �g‰g�a˜‹m˜qÓ àˆr   c                 ó<   •—  ‰| «       ‰|«      }}||k7  r|‰|<   y y r8   © )r"   ÚbÚraÚrbr<   r;   s       €€r   Úunizcomponents.<locals>.uni6   s)   ø€ Ù�a“™$˜q›'ˆBˆØ�Š8ØˆC�ŠGð r   r   r   r"   r?   r   r   r   ih  é   é   r   c              3   ó:   •K  — | ]  }‰|   d    dk(  sŒd–— Œ y­w)r   r   r   Nr>   )Ú.0Úir    s     €r   Ú	<genexpr>zcomponents.<locals>.<genexpr>[   s!   øè ø€ Ð=™d˜ d¨1¡g¨f¡o¸Ó&<”1™dùs   ƒ”)ÚrootÚidxsÚbboxÚwÚhÚnarcÚn)Ú
setdefaultÚcollectionsÚdefaultdictÚlistÚ	enumerater   Úitemsr.   Únpr   ÚlinspaceÚmaxÚintÚabsÚextendÚzipr   r   ÚarrayÚfloatÚminÚsumÚdict)!r    Úmin_segÚmax_segÚmin_dimÚmax_dimr6   rB   r&   r"   r?   ÚcomprG   ÚoutrI   rJ   Ú_ppr#   r$   r%   Úa0Úa1ÚtÚptsÚx0Úy0Úx1Úy1rL   rM   rN   r<   r5   r;   s!   `                             @@@r   Ú
componentsrq   !   st  û€ ð €Dô-ð €Côõ
ó
 ˆÙ�1�T‘7‹|™S  4¡›\ˆ1ˆØ�‰�q˜!Ô˜cŸn™n¨Q°Ô2Ø˜Aˆˆˆ#‰��#‘ÙˆAˆq�	ð	 ô ×"Ñ"¤4Ó(€DÜ˜$–‰ˆˆ1Ø‰T�!�C‘&‹\Ñ×!Ñ! !Õ$ð  ð €CØ—j‘j—l‰
ˆˆdØœ3˜t›9Ô/¨Ô/Øð ˆÛˆAØ�Q‘ˆAØ�‰y˜CÒØ$% e¡HÑ!��B˜˜2˜rØ˜’8Ø˜#‘I�BÜ—J‘JœrŸ{™{¨2¨r´3°q¼#¼cÀ"ÀrÁ'»lÈQÑ>NÓ:OÓ3PÓQÓR�Ø—
‘
œ3˜r A¬¯©¨q«	¡MÑ1°2¸¼B¿F¹FÀ1»I¹Ñ3EÓFÕGà—
‘
˜A˜d™G Q t¡WÐ-Õ.ð ô �h‰h�sœEÓ"ˆØ—‘˜“‰ˆˆB c§g¡g¨a£j™V˜R Ø�"‰u�b˜‘eˆ1ˆØœ#˜a ›)Ô- gÔ-ÙÜÓ=™dÓ=Ó=ˆØ�
‰
”4˜T¨´E¸"³I¼uÀR»yÌ%ÐPRË)ÔUZÐ[]ÓU^Ð3_Ü ›(¤e¨A£h°T¼SÀ»YôHö 	Ið- #ð0 €Jr   c                 óˆ   — |\  }}}}t        || z
  d| |z
  «      }t        ||z
  d||z
  «      }t        j                  ||«      S )Nr   )rX   r   Úhypot)	ÚpxÚpyÚbbrm   rn   ro   rp   r1   r2   s	            r   Údist_to_boxrw   a   sK   € Ø�N€BˆˆB�Ü	ˆR�‰U�A�r˜"‘uÓ	€B¤C¨¨2©¨q°"°R±%Ó$8˜rÜ�:‰:�b˜"ÓÐr   c           	      ó"  ‡
— ddl }|j                  t        «      Š
| d   D ]a  }t        j                  j                  |d   j                  dd«      «      }|sŒ8‰
|j                  «          j                  |d   |d   f«       Œc |j                  ˆ
fd	„‰
D «       «      }i }‰
j                  «       D ]W  \  }}|D �cg c]>  }|t        |d   «         d
k  r(t        j                  �|d   t        j                  kD  r|‘Œ@ }	}|	xs |||<   ŒY |S c c}w )u  ë�„ë²ˆ -> 'ë‹¨í’ˆë�„ ì˜†' ì¢Œí‘œ ëª©ë¡�(ê°€ê¹Œìš´ ìˆœ ì•„ë‹˜, ë�„ë©´ ë“±ìž¥ ìˆœ).

    ì™œ í•„ìš”í•œê°€: ë�„ë²ˆì�€ 'ë¶€í’ˆí‘œ(BOM) ì—´' ê³¼ 'ë‹¨í’ˆë�„ ì˜†' ë‘� ê³³ì—� ì �ížŒë‹¤. ë¨¼ì € ë§Œë‚œ ê²ƒì�„ ì“°ë©´
    ë¶€í’ˆí‘œ ì¢Œí‘œê°€ ìž¡í˜€ ì—‰ëš±í•œ ìœ„ì¹˜ì�˜ ë�©ì–´ë¦¬ë¥¼ ë¶€ìž¬ë¡œ ì˜¤ì�¸í•œë‹¤(500PRO 0031-004 ê°€ RB702 ë³´ìŠ¤
    ê·¸ë¦¼ìœ¼ë¡œ ë‚˜ì™”ë�˜ ì‚¬ê³ , 400Q ì±„ë„� 10ê°œê°€ ì „ë¶€ ê°™ì�€ 3331mm ì¡°ë¦½ë�„ë¥¼ ì˜†ë©´ë�„ë¡œ ë¶™ìž¡ì�€ ì‚¬ê³ ).
    ë¶€í’ˆí‘œ ì—´ì�€ ê°™ì�€ x ì—� ë�„ë²ˆì�´ ì—¬ëŸ¬ ê°œ ìŒ“ì�´ë¯€ë¡œ ê·¸ê²ƒìœ¼ë¡œ ê±¸ëŸ¬ë‚¸ë‹¤.
    ì‚¬ë³¸ ì‹œíŠ¸(ì£¼ì˜�ì—­ ë°–)ë�„ ê°™ì�´ ëº€ë‹¤ â€” ì œí’ˆì—� ì£¼ì˜�ì—­ì�´ ì—†ìœ¼ë©´(500PRO) ì�´ ì¡°ê±´ì�€ ë¬´ì‹œë�œë‹¤.
    ê±¸ëŸ¬ì„œ í•˜ë‚˜ë�„ ì•ˆ ë‚¨ìœ¼ë©´ ì›�ë³¸ ëª©ë¡�ì�„ ê·¸ëŒ€ë¡œ ë�Œë ¤ì¤€ë‹¤(ê·¼ê±°ë¥¼ ì—†ì• ì§€ ì•ŠëŠ”ë‹¤).
    r   NÚtextsrD   Ú Ú r   r   c              3   óN   •K  — | ]  }‰|   D ]  \  }}t        |«      –— Œ Œ y ­wr8   )r,   )rF   r/   r:   ÚyÚlocs       €r   rH   z$callout_positions.<locals>.<genexpr>w   s&   øè ø€ Ð=¡c °c¸!´f©d¨a°”E˜!—H°f�H¡cùs   ƒ"%r   r   )rQ   rR   rS   ÚproductÚPNÚsearchÚreplaceÚgroupr   ÚCounterrU   r,   ÚY_MAIN)r	   Ú_crk   ÚmÚxcrg   r/   ÚpsÚxyÚqr~   s             @r   Úcallout_positionsrŒ   g   s  ø€ ó Ø
�.‰.œÓ
€CØ�Œ[ˆÜ�J‰J×Ñ˜a ™dŸl™l¨3°Ó3Ó4ˆÚØ�—‘“	‰N×!Ñ! 1 Q¡4¨¨1© ,Õ/ð ð 
�‰Ó=¡cÓ=Ó	=€BØ
€CØ—‘–‰ˆˆ2Ùó E™"�BØ”5˜˜A™“<Ñ  1Ò$Ü—.‘.Ð(¨B¨q©E´G·N±NÒ,Bò ˜"ˆð Eð ’�bˆˆAŠð	 ð
 €Jùò	Es   Â:AD)r   iÐ  g      @g     ˆÓ@)Ú__doc__r   r   rQ   ÚosÚnumpyrV   r   r   ÚFABr-   r   r(   rq   rw   rŒ   r>   r   r   Ú<module>r‘      sI   ðñ÷ #× "Û ã Ø‡k�k€Ø‡k�k€Ø	€òò	ó=ò@ór   