§
    èƒñj‹  ã                  óŠ   — d Z ddlmZ ddlmZ ddlZddlZddlmZm	Z	 ddl
mZmZ  G d	„ d
e¦  «        Z G d„ de¦  «        ZdS )z& Cable elements, coaxial and triaxial é    )Úannotations)ÚOptionalNé   )ÚSegmentÚ
SegmentArcé   )ÚElement2TermÚgapc                  ó:   ‡ — e Zd ZdZddddœZddddœdˆ fd„Zˆ xZS )ÚCoaxaâ   Coaxial cable element.

        Args:
            length: Total length of the cable, excluding lead extensions. [default: 3]
            radius: Radius of shield [default: 0.3]
            leadlen: Distance (x) from start of center conductor to
                start of shield. [default: 0.6]

        Anchors:
            * shieldstart
            * shieldstart_top
            * shieldend
            * shieldend_top
            * shieldcenter
            * shieldcenter_top
    é   ç333333ã?ç333333Ó?)ÚlengthÚleadlenÚradiusN)r   r   r   r   úOptional[float]r   r   c          
     ó¼  •—  t          ¦   «         j        di |¤Ž | j        d         }| j        d         }| j        d         }| j                             t          d|dft          ||z
  |dz  z   df|dfg¦  «        ¦  «         | j                             t          ||f||z
  |fg¦  «        ¦  «         | j                             t          || f||z
  | fg¦  «        ¦  «         | j                             t          |df||dz  dd¬¦  «        ¦  «         | j                             t          ||z
  df||dz  d	d
¬¦  «        ¦  «         || f| j        d<   ||f| j        d<   ||z
  | f| j        d<   ||z
  |f| j        d<   |dz  | f| j        d<   |dz  |f| j        d<   |dz  |k    rt          j
        d¦  «         |dz  |k    rt          j
        d¦  «         d S d S )Nr   r   r   ©r   r   r   r   éh  ©ÚwidthÚheightÚtheta1Útheta2é  éZ   ÚshieldstartÚshieldstart_topÚ	shieldendÚshieldend_topÚshieldcenterÚshieldcenter_topz/Coax leadlen < radius/2. Coax may be malformed.z/Coax length < 2*leadlen. Coax may be malformed.© )ÚsuperÚ__init__ÚparamsÚsegmentsÚappendr   r
   r   ÚanchorsÚwarningsÚwarn)	Úselfr   r   r   ÚkwargsÚ_leadlenÚ_lengthÚ_radiusÚ	__class__s	           €úX/data/share/cad/hardware/.venv/lib/python3.11/site-packages/schemdraw/elements/cables.pyr&   zCoax.__init__!   s{  ø€ ð
 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø”;˜yÔ)ˆØ”+˜hÔ'ˆØ”+˜hÔ'ˆØŒ×Ò�WØ˜( A˜­¨g°hÑ.>¸wÀq¹yÑ.HÈ!Ð-LØ˜1�ðñ ô  ñ 	!ô 	!ð 	!ð 	Œ×Ò�WØ˜Ð  7¨8Ñ#3°WÐ"=Ð>ñ@ô @ñ 	Aô 	Að 	AàŒ×Ò�WØ˜˜Ð! G¨HÑ$4°w°hÐ#?Ð@ñBô Bñ 	Cô 	Cð 	CàŒ×Ò�ZØ�qˆM °¸±À1ÈSðRñ Rô Rñ 	Sô 	Sð 	SàŒ×Ò�ZØ�XÑ˜qÐ!¨Ø˜1‘9 S°ð5ñ 5ô 5ñ 	6ô 	6ð 	6ð (0°'°Ð&:ˆŒ�]Ñ#Ø+3°WÐ*=ˆŒÐ&Ñ'Ø%,¨XÑ%5¸°xÐ$@ˆŒ�[Ñ!Ø)0°Ñ)9¸7Ð(CˆŒ�_Ñ%Ø(/°©	°G°8Ð'<ˆŒ�^Ñ$Ø,3°A©I°wÐ+?ˆŒÐ'Ñ(à�1‰9�xÒÐÝŒMÐKÑLÔLÐLØ�A‰:˜ÒÐÝŒMÐKÑLÔLÐLÐLÐLð  Ðó    )r   r   r   r   r   r   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú_element_defaultsr&   Ú__classcell__©r2   s   @r3   r   r      s€   ø€ € € € € ðð ð" ØØðð Ðð ,0Ø+/Ø,0ðMð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mr4   r   c                  óF   ‡ — e Zd ZdZdddddddœZdddddddœdˆ fd„Zˆ xZS )ÚTriaxaa   Triaxial cable element.

        Args:
            length: Total length of the cable [default: 3]
            radiusinner: Radius of inner guard [default: 0.3]
            radiusouter: Radius of outer shield [default: 0.6]
            leadlen: Distance (x) from start of center conductor to
                start of guard. [default: 0.6]
            shieldofststart: Distance from start of inner guard to start
                of outer shield [default: 0.3]
            shieldofstend: Distance from end of outer shield to end
                of inner guard [default: 0.3]

        Anchors:
            * shieldstart
            * shieldstart_top
            * shieldend
            * shieldend_top
            * shieldcenter
            * shieldcenter_top
            * guardstart
            * guardstart_top
            * guardend
            * guardend_top
    r   r   r   )r   r   ÚradiusinnerÚradiusouterÚshieldofststartÚshieldofstendNr   r   r   r?   r@   rA   rB   c          
     óÊ  •—  t          ¦   «         j        di |¤Ž | j        d         }| j        d         }	| j        d         }
| j        d         }| j        d         }| j        d         }|	|k     rt          d¦  «        ‚|	dz  t	          j        d	|dz  |	dz  z  z
  ¦  «        z  }||z
  | dz  k    r+d
t	          j        t	          j        ||¦  «        ¦  «        z
  }nd
}|
|z
  |z
  |	z   |
k     ré| j         	                    t          d|dft          |
|z
  |dz  z   df|
dfg¦  «        ¦  «         | j         	                    t          |
|z
  |z
  |z   |f|
|z
  |fg¦  «        ¦  «         | j         	                    t          |
|z
  |z
  |z   | f|
|z
  | fg¦  «        ¦  «         | j         	                    t          |
|z
  df||dz  dd¬¦  «        ¦  «         n@| j         	                    t          d|dft          |
|z
  |z
  |	dz  z   dfg¦  «        ¦  «         | j         	                    t          ||f||z   |z   |fg¦  «        ¦  «         | j         	                    t          || f||z   |z   | fg¦  «        ¦  «         | j         	                    t          ||z   |	f|
|z
  |z
  |	fg¦  «        ¦  «         | j         	                    t          ||z   |	 f|
|z
  |z
  |	 fg¦  «        ¦  «         | j         	                    t          |df||dz  dd¬¦  «        ¦  «         | j         	                    t          ||z   df|	|	dz  | |¬¦  «        ¦  «         | j         	                    t          |
|z
  |z
  df|	|	dz  dd¬¦  «        ¦  «         || f| j        d<   ||f| j        d<   |
|z
  | f| j        d<   |
|z
  |f| j        d<   ||z   |	 f| j        d<   ||z   |	f| j        d<   |
|z
  |z
  |	 f| j        d<   |
|z
  |z
  |	f| j        d<   |
dz  |	 f| j        d<   |
dz  |	f| j        d<   |	|k    rt          j        d¦  «         ||z   |
|z
  |z
  k    rt          j        d¦  «         d S d S )Nr?   r@   r   r   rB   rA   z!Triax inner radius > outer radiusr   r   é´   r   r   r   r   r   r   Ú
guardstartÚguardstart_topÚguardendÚguardend_topr   r   r    r!   r"   r#   z!Triax outer radius < inner radiusz Triax too short for outer radiusr$   )r%   r&   r'   Ú
ValueErrorÚmathÚsqrtÚdegreesÚatan2r(   r)   r   r
   r   r*   r+   r,   )r-   r   r   r?   r@   rA   rB   r.   Úr1Úr2r0   r/   Ú_shieldofstendÚ_shieldofststartÚxshieldÚthetashieldr2   s                   €r3   r&   zTriax.__init__e   så  ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØŒ[˜Ô'ˆØŒ[˜Ô'ˆØ”+˜hÔ'ˆØ”;˜yÔ)ˆØœ _Ô5ˆØœ;Ð'8Ô9Ðà�Š7ˆ7ÝÐ@ÑAÔAÐAà�Q‘$�œ 1 r¨1¡u¨R°©U¡{¡?Ñ3Ô3Ñ3ˆØ˜gÑ%¨¨¨A©Ò-Ð-Ø¥¤­T¬Z¸¸GÑ-DÔ-DÑ EÔ EÑEˆKˆKàˆKà�XÑ Ñ.°Ñ3°gÒ=Ð=àŒM× Ò ¥Ø˜( A˜­Ø˜(Ñ" 2 a¡4Ñ'¨Ð+Ø˜1�ðñ" ô " ñ !ô !ð !ð ŒM× Ò ¥Ø˜(Ñ" >Ñ1°'Ñ9¸2Ð>Ø˜(Ñ" BÐ'ð)ñ"*ô "*ñ +ô +ð +ð ŒM× Ò ¥Ø˜(Ñ" >Ñ1°'Ñ9¸B¸3Ð?Ø˜(Ñ" R CÐ(ð*ñ"+ô "+ñ ,ô ,ð ,ð ŒM× Ò ¥Ø˜Ñ! 1Ð%¨R¸¸1¹Ø 2ð"'ñ "'ô "'ñ (ô (ð (ð (ð
 ŒM× Ò ¥Ø˜( A˜­Ø˜(Ñ" >Ñ1°"°Q±$Ñ6¸Ð:ð<ñ"=ô "=ñ >ô >ð >ð
 	Œ×Ò�WØ˜ˆ^˜hÐ'7Ñ7¸Ñ?ÀÐDÐEñGô Gñ 	Hô 	Hð 	HàŒ×Ò�WØ˜˜ˆ_˜xÐ(8Ñ8¸Ñ@À2À#ÐFÐGñIô Iñ 	Jô 	Jð 	JàŒ×Ò�WØÐ'Ñ'¨Ð,Ø�hÑ˜~Ñ-¨rÐ2ð4ñ5ô 5ñ 	6ô 	6ð 	6ð 	Œ×Ò�WØÐ'Ñ'¨"¨Ð-Ø�hÑ˜~Ñ-°¨sÐ3ð5ñ6ô 6ñ 	7ô 	7ð 	7ð 	Œ×Ò�ZØ�qˆM ¨B¨q©DØ˜Sð"ñ "ô "ñ 	#ô 	#ð 	#ð 	Œ×Ò�ZØÐ&Ñ&¨Ð*°"Ø�a‘4  °[ðBñ Bô Bñ 	Cô 	Cð 	Cð 	Œ×Ò�ZØ�XÑ˜nÑ,¨aÐ0¸Ø�a‘4 ¨Bð0ñ 0ô 0ñ 	1ô 	1ð 	1ð '/°° _ˆŒ�\Ñ"Ø*2°B¨ˆŒÐ%Ñ&Ø$+¨HÑ$4°r°cÐ#:ˆŒ�ZÑ Ø(/°Ñ(8¸"Ð'=ˆŒ�^Ñ$Ø'/Ð0@Ñ'@À2À#Ð&FˆŒ�]Ñ#Ø+3Ð4DÑ+DÀbÐ*IˆŒÐ&Ñ'Ø%,¨XÑ%5°nÑ%DÀrÀcÐ$JˆŒ�[Ñ!Ø)0°Ñ)9¸.Ñ)HÈ"Ð(MˆŒ�_Ñ%Ø(/°©	°B°3Ð'7ˆŒ�^Ñ$Ø,3°A©I°r¨?ˆŒÐ'Ñ(à�Š8ˆ8ÝŒMÐ=Ñ>Ô>Ð>àÐ$Ñ$ w¨xÑ'7¸Ñ'FÒFÐFÝŒMÐ<Ñ=Ô=Ð=Ð=Ð=ð GÐFr4   )r   r   r   r   r?   r   r@   r   rA   r   rB   r   r5   r<   s   @r3   r>   r>   C   s’   ø€ € € € € ðð ð4 ØØØØØðð Ðð ,0Ø,0Ø04Ø04Ø48Ø26ðS>ð S>ð S>ð S>ð S>ð S>ð S>ð S>ð S>ð S>ð S>ð S>r4   r>   )r9   Ú
__future__r   Útypingr   rJ   r+   r(   r   r   Úelementsr	   r
   r   r>   r$   r4   r3   ú<module>rW      sâ   ðØ ,Ð ,Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ð5Mð 5Mð 5Mð 5Mð 5Mˆ<ñ 5Mô 5Mð 5Mðpu>ð u>ð u>ð u>ð u>ˆLñ u>ô u>ð u>ð u>ð u>r4   