| Server IP : 93.86.61.54 / Your IP : 216.73.216.60 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/inkscape/extensions/__pycache__/ |
Upload File : |
o
0�a� � @ s| d Z ddlmZmZmZmZmZmZ ddlZddlm Z dd� Z
dd� Zd d
� ZG dd� dej
�Zed
kr<e� �� dS dS )z
Generate gears in SVG
� )�acos�cos�pi�radians�sin�sqrtN)�PathElementc C s6 t | �t |�} }t|d | d �| t| | � S )N� )�floatr r )�Rb�R� r
�./usr/share/inkscape/extensions/render_gears.py�involute_intersect_angle s $r c C s | t |� }| t|� }||fS )N)r r )�radius�angle�x�yr
r
r �point_on_circle# s r c C sV | d }| dd � } d� |d |d �}| D ]}|d� |d |d �7 }q|d7 }|S )Nr � zM{:.5f},{:.5f}z L{:.5f},{:.5f}�z)�format)�p�f�svgdr r
r
r �points_to_svgd) s r c @ s e Zd ZdZdd� Zdd� ZdS )�GearszRendered Gearsc C s\ |j dtddd� |j dtddd� |j dtdd d� |j d
tddd� |j d
ddd� d S )Nz--teeth� zNumber of teeth)�type�default�helpz--pitchg 4@zCircular Pitchz--anglezPressure Anglez--centerdiameterg $@zDiameter of holez--unit�pxz"unit for pitch and center diameter)r r )�add_argument�intr
)�self�parsr
r
r �
add_arguments6 s
zGears.add_argumentsc / # s� � | j j� | j�t| j j�| j j �}| j j}| j�t| j j�| j j �}dt �t
� �| t }|d }|tt|�� }|d }t
� �| }d| } || }
|
d }t | dt
� � }dt
t|��d }
� |
k }d}| | }|| }|d }�dt
� � }t||�}t||
�| }� �fdd�t� �D �}g }|D ]w}|| }|| }|| }|| }|| }|| }t||�}t||�} t|
|�}!t||�}"t||�}#t|
|�}$||kr�|t||� }%||% }&||% }'t||&�}(t||'�})|(| |!|$|#|)g}*nt||�}(t||�})|(|| |!|$|#|"|)g}*|�|*� q�t|�}+dd t| j�d
��d�},t� }-|,|-_|+|-_|-V |dk�rFt�d|d �}.|,|._|.V d S d S )
Ng @g �?r g g @c s g | ]
}|� t � � �qS r
)r
)�.0r ��teeth�two_pir
r �
<listcomp>o s z"Gears.generate.<locals>.<listcomp>z#000000�none�1px)�stroke�fillzstroke-width)r r )�optionsr) �svg�unittouu�str�pitch�unitr �centerdiameterr r
r r r r �ranger �extendr r �style�path�arc)/r$ r4 r r6 �pitch_diameter�pitch_radius�
base_diameter�base_radius�pitch_diametrial�addendum�outer_radius�outer_diameter�tooth�undercut�needs_undercut� clearance�dedendum�root_radius�
root_diameter�half_thick_angle�pitch_to_base_angle�pitch_to_outer_angle�centers�points�c�pitch1�base1�outer1�pitch2�base2�outer2�b1�p1�o1�b2�p2�o2�pitch_to_root_angle�root1�root2�r1�r2�p_tmpr: r9 �gearr; r
r( r �generate= sz �
�zGears.generateN)�__name__�
__module__�__qualname__�container_labelr&