We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mixelpixx/KiCAD-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
routing.cpython-311.pyc•29 KiB
�
W�h�l � � � d Z ddlZddlZddlZddlZddlmZmZmZm Z m
Z
ej d� � Z G d� d� � Z
dS )z=
Routing-related command implementations for KiCAD interface
� N)�Dict�Any�Optional�List�Tuple�kicad_interfacec �0 � e Zd ZdZddeej fd�Zdee e
f dee e
f fd�Zdee e
f dee e
f fd�Zdee e
f dee e
f fd �Z
dee e
f dee e
f fd
�Zdee e
f dee e
f fd�Zdee e
f dee e
f fd�Zdee e
f dee e
f fd
�Zdee e
f dee e
f fd�Zdee e
f dej fd�Zdej dej defd�Zdej dej defd�ZdS )�RoutingCommandsz(Handles routing-related KiCAD operationsN�boardc � � || _ dS )z'Initialize with optional board instanceN)r )�selfr s �,c:\repo\KiCAD-MCP\python\commands\routing.py�__init__zRoutingCommands.__init__ s
� ���
�
�
� �params�returnc � � | j sdddd�S |� d� � }|� d� � }|sdddd�S | j � � � }|� |� � }|s|� |� � }|rV| j � � � }|� |� � r(|� |� |� � � � d d
|� �||r|nd|� � � d�d
�S # t $ rG}t � dt |� � � �� � ddt |� � d�cY d}~S d}~ww xY w)zAdd a new net to the PCBF�No board is loaded�Load or create a board first��success�message�errorDetails�name�classzMissing net name�name parameter is requiredTzAdded net: �Default)r r �netcode)r r �netzError adding net: zFailed to add netN)
r �get�
GetNetInfo�FindNet�AddNet�
GetNetClasses�Find�SetClass�
GetNetCode� Exception�logger�error�str)r
r r � net_class�netinfor �net_classes�es r �add_netzRoutingCommands.add_net s� � �. ��:�
�$�3�$B�� � � �:�:�f�%�%�D��
�
�7�+�+�I��
�$�1�$@�� � � �j�+�+�-�-�G��/�/�$�'�'�C��
+��n�n�T�*�*�� �
>�"�j�6�6�8�8���#�#�I�.�.� >��L�L��!1�!1�)�!<�!<�=�=�=� �/��/�/� �*3�B�Y�Y��"�~�~�/�/�� �� �
�� � � � ��L�L�6�c�!�f�f�6�6�7�7�7� �.� #�A���� �
�
�
�
�
�
����� ���s) �D �1D �B?D �
E�<E
�E�
Ec � � | j sdddd�S |� d� � }|� d� � }|� dd� � }|� d � � }|� d
� � }|� dd� � }|r|sddd
d�S | j � |� � }|dk r
ddd|� d�d�S | � |� � } | � |� � }
t j | j � � }|� | � � |� |
� � |� |� � |r&|� t |dz � � � � n>|� | j � � � � � � � � |rE| j �
� � }|� |� � }
|
r|� |
� � | j � |� � |r0|r.|
}| � |j dz |j dz dd�|d�� � dd| j dz | j dz dd�|
j dz |
j dz dd�||� � � dz |d�d�S # t* $ rG}t, � dt1 |� � � �� � ddt1 |� � d�cY d}~S d}~ww xY w)z(Route a trace between two points or padsFr r r �start�end�layer�F.Cu�widthr �via�Missing parametersz!start and end points are requiredr �
Invalid layer�Layer '�' does not exist�@B �mm��x�y�unit)�positionr TzAdded trace)r2 r3 r4 r6 r )r r �tracezError routing trace: zFailed to route traceN)r r �
GetLayerID�
_get_point�pcbnew� PCB_TRACK�SetStart�SetEnd�SetLayer�SetWidth�int�GetDesignSettings�GetCurrentTrackWidthr! r"