add bt_player
This commit is contained in:
72
kicad_plugins/trace_clearance/TraceClearanceDlg.py
Normal file
72
kicad_plugins/trace_clearance/TraceClearanceDlg.py
Normal file
@@ -0,0 +1,72 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
###########################################################################
|
||||
## Python code generated with wxFormBuilder (version Oct 26 2018)
|
||||
## http://www.wxformbuilder.org/
|
||||
##
|
||||
## PLEASE DO *NOT* EDIT THIS FILE!
|
||||
###########################################################################
|
||||
|
||||
import wx
|
||||
import wx.xrc
|
||||
|
||||
###########################################################################
|
||||
## Class TraceClearanceDlg
|
||||
###########################################################################
|
||||
|
||||
class TraceClearanceDlg ( wx.Dialog ):
|
||||
|
||||
def __init__( self, parent ):
|
||||
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 373,480 ), style = wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER )
|
||||
|
||||
self.SetSizeHints( wx.Size( 373,580 ), wx.DefaultSize )
|
||||
|
||||
bSizer2 = wx.BoxSizer( wx.VERTICAL )
|
||||
|
||||
self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"Add copper pour keepout\nto selected traces.", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
self.m_staticText4.Wrap( -1 )
|
||||
|
||||
bSizer2.Add( self.m_staticText4, 0, wx.ALL, 5 )
|
||||
|
||||
bSizer5 = wx.BoxSizer( wx.HORIZONTAL )
|
||||
|
||||
self.m_bitmap = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
bSizer5.Add( self.m_bitmap, 0, wx.ALL, 5 )
|
||||
|
||||
|
||||
bSizer2.Add( bSizer5, 1, wx.EXPAND, 5 )
|
||||
|
||||
bSizer3 = wx.BoxSizer( wx.HORIZONTAL )
|
||||
|
||||
self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Zone clearance (mm)", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
self.m_staticText5.Wrap( -1 )
|
||||
|
||||
bSizer3.Add( self.m_staticText5, 0, wx.ALL, 5 )
|
||||
|
||||
self.m_clearance = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
bSizer3.Add( self.m_clearance, 0, wx.ALL, 5 )
|
||||
|
||||
|
||||
bSizer2.Add( bSizer3, 1, wx.EXPAND, 5 )
|
||||
|
||||
bSizer4 = wx.BoxSizer( wx.HORIZONTAL )
|
||||
|
||||
self.m_button_ok = wx.Button( self, wx.ID_OK, u"OK", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
bSizer4.Add( self.m_button_ok, 0, wx.ALL, 5 )
|
||||
|
||||
self.m_button_cancel = wx.Button( self, wx.ID_CANCEL, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
bSizer4.Add( self.m_button_cancel, 0, wx.ALL, 5 )
|
||||
|
||||
|
||||
bSizer2.Add( bSizer4, 1, wx.EXPAND, 5 )
|
||||
|
||||
|
||||
self.SetSizer( bSizer2 )
|
||||
self.Layout()
|
||||
|
||||
self.Centre( wx.BOTH )
|
||||
|
||||
def __del__( self ):
|
||||
pass
|
||||
|
||||
|
||||
2
kicad_plugins/trace_clearance/__init__.py
Normal file
2
kicad_plugins/trace_clearance/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
from .trace_clearance import TraceClearance
|
||||
TraceClearance().register()
|
||||
485
kicad_plugins/trace_clearance/trace_clearance.fbp
Normal file
485
kicad_plugins/trace_clearance/trace_clearance.fbp
Normal file
@@ -0,0 +1,485 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<wxFormBuilder_Project>
|
||||
<FileVersion major="1" minor="15" />
|
||||
<object class="Project" expanded="1">
|
||||
<property name="class_decoration">; </property>
|
||||
<property name="code_generation">Python</property>
|
||||
<property name="disconnect_events">1</property>
|
||||
<property name="disconnect_mode">source_name</property>
|
||||
<property name="disconnect_php_events">0</property>
|
||||
<property name="disconnect_python_events">0</property>
|
||||
<property name="embedded_files_path">res</property>
|
||||
<property name="encoding">UTF-8</property>
|
||||
<property name="event_generation">connect</property>
|
||||
<property name="file">TraceClearanceDlg</property>
|
||||
<property name="first_id">1000</property>
|
||||
<property name="help_provider">none</property>
|
||||
<property name="indent_with_spaces"></property>
|
||||
<property name="internationalize">0</property>
|
||||
<property name="name">TraceClearanceDlg</property>
|
||||
<property name="namespace"></property>
|
||||
<property name="path">.</property>
|
||||
<property name="precompiled_header"></property>
|
||||
<property name="relative_path">1</property>
|
||||
<property name="skip_lua_events">1</property>
|
||||
<property name="skip_php_events">1</property>
|
||||
<property name="skip_python_events">1</property>
|
||||
<property name="ui_table">UI</property>
|
||||
<property name="use_enum">0</property>
|
||||
<property name="use_microsoft_bom">0</property>
|
||||
<object class="Dialog" expanded="1">
|
||||
<property name="aui_managed">0</property>
|
||||
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
|
||||
<property name="bg"></property>
|
||||
<property name="center">wxBOTH</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="event_handler">impl_virtual</property>
|
||||
<property name="extra_style"></property>
|
||||
<property name="fg"></property>
|
||||
<property name="font"></property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="minimum_size">373,580</property>
|
||||
<property name="name">TraceClearanceDlg</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">373,580</property>
|
||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="title"></property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer2</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Add copper pour keepout
to selected traces.</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticText4</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer5</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticBitmap" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="bitmap"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_bitmap</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer3</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticText" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Zone clearance (mm)</property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticText5</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxTextCtrl" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="maxlength"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_clearance</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="value"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer4</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxButton" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="bitmap"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="current"></property>
|
||||
<property name="default">0</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="disabled"></property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="focus"></property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_OK</property>
|
||||
<property name="label">OK</property>
|
||||
<property name="margins"></property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_button_ok</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="position"></property>
|
||||
<property name="pressed"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxButton" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="bitmap"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="current"></property>
|
||||
<property name="default">0</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="disabled"></property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="focus"></property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_CANCEL</property>
|
||||
<property name="label">Cancel</property>
|
||||
<property name="margins"></property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_button_cancel</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="position"></property>
|
||||
<property name="pressed"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</wxFormBuilder_Project>
|
||||
BIN
kicad_plugins/trace_clearance/trace_clearance.png
Normal file
BIN
kicad_plugins/trace_clearance/trace_clearance.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
235
kicad_plugins/trace_clearance/trace_clearance.py
Executable file
235
kicad_plugins/trace_clearance/trace_clearance.py
Executable file
@@ -0,0 +1,235 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright 2019 Maurice https://github.com/easyw/
|
||||
# Copyright 2020 Matt Huszagh https://github.com/matthuszagh
|
||||
|
||||
# GNU GENERAL PUBLIC LICENSE
|
||||
# Version 3, 29 June 2007
|
||||
#
|
||||
# Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
# Everyone is permitted to copy and distribute verbatim copies
|
||||
# of this license document, but changing it is not allowed.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
import os
|
||||
import pcbnew
|
||||
import wx
|
||||
# import numpy as np
|
||||
from . import TraceClearanceDlg
|
||||
import math
|
||||
|
||||
class TraceClearance_Dlg(TraceClearanceDlg.TraceClearanceDlg):
|
||||
"""
|
||||
"""
|
||||
|
||||
def SetSizeHints(self, sz1, sz2):
|
||||
if wx.__version__ < '4.0':
|
||||
self.SetSizeHintsSz(sz1, sz2)
|
||||
else:
|
||||
super(TraceClearance_Dlg, self).SetSizeHints(sz1, sz2)
|
||||
|
||||
def __init__(self, parent):
|
||||
"""
|
||||
"""
|
||||
TraceClearanceDlg.TraceClearanceDlg.__init__(self, parent)
|
||||
self.SetMinSize(self.GetSize())
|
||||
|
||||
|
||||
class TraceClearance(pcbnew.ActionPlugin):
|
||||
"""
|
||||
"""
|
||||
|
||||
def defaults(self):
|
||||
"""
|
||||
"""
|
||||
self.name = "Trace Clearance Generator\n version 1.4"
|
||||
self.category = ""
|
||||
self.description = (
|
||||
"Generate a copper pour keepout for a selected trace."
|
||||
)
|
||||
self.show_toolbar_button = True
|
||||
self.icon_file_name = os.path.join(
|
||||
os.path.dirname(__file__), "./trace_clearance.png"
|
||||
)
|
||||
|
||||
def Run(self):
|
||||
"""
|
||||
"""
|
||||
_pcbnew_frame = [x for x in wx.GetTopLevelWindows() if x.GetName() == 'PcbFrame'][0]
|
||||
# _pcbnew_frame = [
|
||||
# x
|
||||
# for x in wx.GetTopLevelWindows()
|
||||
# if x.GetTitle().lower().startswith("pcbnew")
|
||||
# ][0]
|
||||
wx_params = TraceClearance_Dlg(_pcbnew_frame)
|
||||
wx_params.m_clearance.SetValue("0.2")
|
||||
wx_params.m_bitmap.SetBitmap(
|
||||
wx.Bitmap(
|
||||
os.path.join(
|
||||
os.path.dirname(os.path.realpath(__file__)),
|
||||
"trace_clearance_dialog.png",
|
||||
)
|
||||
)
|
||||
)
|
||||
modal_res = wx_params.ShowModal()
|
||||
clearance = pcbnew.FromMM(
|
||||
self.InputValid(wx_params.m_clearance.GetValue())
|
||||
)
|
||||
if clearance is not None:
|
||||
pcb = pcbnew.GetBoard()
|
||||
if modal_res == wx.ID_OK:
|
||||
tracks = selected_tracks(pcb)
|
||||
if len(tracks) > 0:
|
||||
set_keepouts(pcb, tracks, clearance)
|
||||
else:
|
||||
self.Warn("At least one track must be selected.")
|
||||
elif modal_res == wx.ID_CANCEL:
|
||||
wx_params.Destroy()
|
||||
|
||||
def Warn(self, message, caption="Warning!"):
|
||||
"""
|
||||
"""
|
||||
dlg = wx.MessageDialog(None, message, caption, wx.OK | wx.ICON_WARNING)
|
||||
dlg.ShowModal()
|
||||
dlg.Destroy()
|
||||
|
||||
def InputValid(self, value):
|
||||
"""
|
||||
"""
|
||||
try:
|
||||
float_val = float(value)
|
||||
except:
|
||||
self.Warn("Clearance must be a floating point number.")
|
||||
|
||||
if float_val <= 0:
|
||||
self.Warn("Clearance must be positive.")
|
||||
|
||||
return float_val
|
||||
|
||||
|
||||
def selected_tracks(pcb):
|
||||
"""
|
||||
TODO should we use a common import with solder expander to avoid
|
||||
redundant functionality?
|
||||
"""
|
||||
tracks = []
|
||||
if hasattr(pcbnew,'TRACK'):
|
||||
track_item = pcbnew.TRACK
|
||||
else:
|
||||
track_item = pcbnew.PCB_TRACK
|
||||
for item in pcb.GetTracks():
|
||||
if type(item) is track_item and item.IsSelected():
|
||||
tracks.append(item)
|
||||
return tracks
|
||||
|
||||
|
||||
def set_keepouts(pcb, tracks, clearance):
|
||||
"""
|
||||
"""
|
||||
for track in tracks:
|
||||
track_start = track.GetStart()
|
||||
track_end = track.GetEnd()
|
||||
if track_start.x == track_end.x and track_start.y == track_end.y:
|
||||
continue
|
||||
track_width = track.GetWidth()
|
||||
layer = track.GetLayerSet()
|
||||
|
||||
if hasattr(pcbnew,'ZONE_CONTAINER'):
|
||||
keepout = pcbnew.ZONE_CONTAINER(pcb)
|
||||
pts = poly_points(track_start, track_end, track_width, clearance)
|
||||
keepout.AddPolygon(pts)
|
||||
keepout.SetIsKeepout(True)
|
||||
keepout.SetDoNotAllowCopperPour(True)
|
||||
keepout.SetDoNotAllowVias(False)
|
||||
keepout.SetDoNotAllowTracks(False)
|
||||
keepout.SetLayerSet(layer)
|
||||
else:
|
||||
keepout = pcbnew.ZONE(pcb)
|
||||
pts = poly_points(track_start, track_end, track_width, clearance)
|
||||
# wx.LogMessage(str(pts))
|
||||
keepout.AddPolygon(pts)
|
||||
#keepout.SetIsKeepout(True)
|
||||
keepout.SetIsRuleArea(True) # was SetIsKeepout
|
||||
keepout.SetDoNotAllowCopperPour(True)
|
||||
keepout.SetDoNotAllowVias(False)
|
||||
keepout.SetDoNotAllowTracks(False)
|
||||
keepout.SetLayerSet(layer)
|
||||
pcb.Add(keepout)
|
||||
|
||||
pcbnew.Refresh()
|
||||
|
||||
|
||||
def poly_points(track_start, track_end, track_width, clearance):
|
||||
"""
|
||||
"""
|
||||
delta = track_width / 2 + clearance
|
||||
dx = track_end.x - track_start.x
|
||||
dy = track_end.y - track_start.y
|
||||
# theta = np.arctan2(dy, dx)
|
||||
theta = math.atan2(dy, dx)
|
||||
# len = np.sqrt(np.power(dx, 2) + np.power(dy, 2))
|
||||
len = math.sqrt(math.pow(dx, 2) + math.pow(dy, 2))
|
||||
dx_norm = dx / len
|
||||
dy_norm = dy / len
|
||||
|
||||
delta_x = delta * -dy_norm
|
||||
delta_y = delta * dx_norm
|
||||
pt_delta = pcbnew.wxPoint(delta_x, delta_y)
|
||||
|
||||
pts = []
|
||||
pts.append(track_start + pt_delta)
|
||||
for pt in semicircle_points(track_start, delta, theta, True):
|
||||
pts.append(pt)
|
||||
pts.append(track_start - pt_delta)
|
||||
pts.append(track_end - pt_delta)
|
||||
for pt in semicircle_points(track_end, delta, theta, False):
|
||||
pts.append(pt)
|
||||
pts.append(track_end + pt_delta)
|
||||
return pcbnew.wxPoint_Vector(pts)
|
||||
|
||||
|
||||
def semicircle_points(circle_center, radius, angle_norm, is_start=True):
|
||||
"""
|
||||
"""
|
||||
num_points = 20
|
||||
|
||||
# angles = np.linspace(
|
||||
# angle_norm + np.pi / 2, angle_norm + 3 * np.pi / 2, num_points + 2
|
||||
# )
|
||||
start = angle_norm + math.pi / 2
|
||||
stop = angle_norm + 3 * math.pi / 2
|
||||
num_vals = num_points
|
||||
delta = (stop-start)/(num_vals-1)
|
||||
evenly_spaced = [start + i * delta for i in range(num_vals)]
|
||||
# print(evenly_spaced)
|
||||
angles = evenly_spaced
|
||||
# wx.LogMessage(str(angles))
|
||||
angles = angles[1:-1]
|
||||
# wx.LogMessage(str(angles)+'1')
|
||||
if not is_start:
|
||||
# angles = np.add(angles, np.pi)
|
||||
angles.append(math.pi)
|
||||
pts = []
|
||||
for ang in angles:
|
||||
# pts.append(
|
||||
# circle_center
|
||||
# + pcbnew.wxPoint(radius * np.cos(ang), radius * np.sin(ang))
|
||||
# )
|
||||
pts.append(
|
||||
circle_center
|
||||
+ pcbnew.wxPoint(radius * math.cos(ang), radius * math.sin(ang))
|
||||
)
|
||||
return pcbnew.wxPoint_Vector(pts)
|
||||
105
kicad_plugins/trace_clearance/trace_clearance.svg
Normal file
105
kicad_plugins/trace_clearance/trace_clearance.svg
Normal file
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="15.88482mm"
|
||||
height="15.721636mm"
|
||||
viewBox="0 0 15.88482 15.721636"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="trace_clearance.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="15.839192"
|
||||
inkscape:cx="14.743001"
|
||||
inkscape:cy="37.63336"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2098"
|
||||
inkscape:window-x="3840"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-20.417313,-280.90036)">
|
||||
<rect
|
||||
id="rect3713"
|
||||
width="15.791624"
|
||||
height="15.721636"
|
||||
x="20.417313"
|
||||
y="280.90036"
|
||||
style="fill:#408b40;fill-opacity:1;stroke-width:0.11733633" />
|
||||
<circle
|
||||
style="fill:#404500;fill-opacity:1;stroke-width:0.26458332"
|
||||
id="path4520"
|
||||
cx="26.331844"
|
||||
cy="288.75327"
|
||||
r="4.1104908" />
|
||||
<rect
|
||||
style="fill:#404500;fill-opacity:1;stroke-width:0.17122415"
|
||||
id="rect4522"
|
||||
width="9.9543514"
|
||||
height="8.2116957"
|
||||
x="26.235428"
|
||||
y="284.6459" />
|
||||
<circle
|
||||
r="0.930112"
|
||||
cy="288.75327"
|
||||
cx="25.799042"
|
||||
id="circle4535"
|
||||
style="fill:#ffd940;fill-opacity:1;stroke-width:0.05986928" />
|
||||
<rect
|
||||
y="287.82385"
|
||||
x="25.777225"
|
||||
height="1.8581228"
|
||||
width="10.415862"
|
||||
id="rect4537"
|
||||
style="fill:#ffd940;fill-opacity:1;stroke-width:0.08331572" />
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 26.758661,284.67076 -4.415098,4.97522"
|
||||
id="path5158"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 33.096885,284.68121 -7.235291,8.1532"
|
||||
id="path5162"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 36.115144,288.42192 -3.960871,4.46336"
|
||||
id="path5166"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
BIN
kicad_plugins/trace_clearance/trace_clearance_dialog.png
Normal file
BIN
kicad_plugins/trace_clearance/trace_clearance_dialog.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
184
kicad_plugins/trace_clearance/trace_clearance_dialog.svg
Normal file
184
kicad_plugins/trace_clearance/trace_clearance_dialog.svg
Normal file
@@ -0,0 +1,184 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="94.798798mm"
|
||||
height="62.886559mm"
|
||||
viewBox="0 0 94.798796 62.886559"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="trace_clearance_dialog.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path5887"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path5884"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
inkscape:connector-curvature="0" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.9899495"
|
||||
inkscape:cx="-17.310534"
|
||||
inkscape:cy="13.316301"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="2098"
|
||||
inkscape:window-x="3840"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(15.132237,-257.3179)">
|
||||
<path
|
||||
style="fill:#408b40;fill-opacity:1;stroke-width:0.46934533"
|
||||
d="m -15.132237,257.3179 h 63.166496 v 62.88656 h -63.166496 z"
|
||||
id="rect3713"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#404500;fill-opacity:1;stroke-width:1.05833328"
|
||||
d="m 24.967851,288.72954 a 16.441963,16.441963 0 0 1 -16.441964,16.44196 16.441963,16.441963 0 0 1 -16.44196,-16.44196 16.441963,16.441963 0 0 1 16.44196,-16.442 16.441963,16.441963 0 0 1 16.441964,16.442 z"
|
||||
id="path4520"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#404500;fill-opacity:1;stroke-width:0.68489659"
|
||||
d="m 8.140223,272.30006 h 39.817404 v 32.8468 H 8.140223 Z"
|
||||
id="rect4522"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffd940;fill-opacity:1;stroke-width:0.23947711"
|
||||
d="m 10.115127,288.72954 a 3.720448,3.720448 0 0 1 -3.720448,3.72044 3.720448,3.720448 0 0 1 -3.720448,-3.72044 3.720448,3.720448 0 0 1 3.720448,-3.72048 3.720448,3.720448 0 0 1 3.720448,3.72048 z"
|
||||
id="circle4535"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ffd940;fill-opacity:1;stroke-width:0.33326289"
|
||||
d="m 6.307411,285.01186 h 41.663452 v 7.43252 H 6.307411 Z"
|
||||
id="rect4537"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 10.233155,272.3995 -7.427237,292.30038"
|
||||
id="path5158"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 35.586051,272.4413 6.644887,305.0541"
|
||||
id="path5162"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 47.659087,287.40414 31.815603,305.25758"
|
||||
id="path5166"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.19122508;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
|
||||
d="M 50.053403,292.92078 V 304.7657"
|
||||
id="path5335"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
aria-label="clearance"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
id="text6820"
|
||||
transform="matrix(4,0,0,4,-96.801489,-866.28354)">
|
||||
<path
|
||||
d="m 37.996455,291.0657 v 0.11851 q -0.05374,-0.0296 -0.108176,-0.0441 -0.05374,-0.0152 -0.108865,-0.0152 -0.123335,0 -0.191548,0.0786 -0.06821,0.0779 -0.06821,0.21911 0,0.14125 0.06821,0.2198 0.06821,0.0779 0.191548,0.0779 0.05512,0 0.108865,-0.0145 0.05443,-0.0152 0.108176,-0.0448 v 0.11713 q -0.05306,0.0248 -0.110243,0.0372 -0.0565,0.0124 -0.120579,0.0124 -0.174322,0 -0.276985,-0.10955 -0.102664,-0.10956 -0.102664,-0.29559 0,-0.18879 0.103353,-0.29697 0.104041,-0.10818 0.284564,-0.10818 0.05857,0 0.114378,0.0124 0.05581,0.0117 0.108176,0.0358 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6846"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 38.216941,290.73566 h 0.126779 v 1.07211 h -0.126779 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6848"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 39.269073,291.39022 v 0.062 h -0.58291 q 0.0083,0.13091 0.07855,0.19981 0.07097,0.0682 0.197059,0.0682 0.07304,0 0.141249,-0.0179 0.0689,-0.0179 0.136426,-0.0537 v 0.11989 q -0.06821,0.0289 -0.139871,0.0441 -0.07166,0.0152 -0.145383,0.0152 -0.184657,0 -0.292833,-0.10749 -0.107487,-0.10748 -0.107487,-0.29076 0,-0.18948 0.101975,-0.30041 0.102664,-0.11163 0.276297,-0.11163 0.155718,0 0.245979,0.1006 0.09095,0.0999 0.09095,0.27216 z m -0.12678,-0.0372 q -0.0014,-0.10404 -0.05857,-0.16606 -0.0565,-0.062 -0.150206,-0.062 -0.106109,0 -0.170188,0.06 -0.06339,0.0599 -0.07304,0.16881 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6850"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 39.827867,291.41985 q -0.153651,0 -0.212906,0.0351 -0.05926,0.0351 -0.05926,0.11989 0,0.0675 0.0441,0.10749 0.04479,0.0393 0.121268,0.0393 0.105419,0 0.168809,-0.0744 0.06408,-0.0751 0.06408,-0.19913 v -0.0283 z m 0.25287,-0.0524 v 0.44028 h -0.126779 v -0.11713 q -0.04341,0.0703 -0.108176,0.10404 -0.06477,0.0331 -0.158474,0.0331 -0.118512,0 -0.188792,-0.0661 -0.06959,-0.0668 -0.06959,-0.17846 0,-0.13023 0.08682,-0.19637 0.08751,-0.0661 0.260449,-0.0661 h 0.177767 v -0.0124 q 0,-0.0875 -0.05788,-0.13505 -0.05719,-0.0482 -0.16123,-0.0482 -0.06615,0 -0.128847,0.0159 -0.0627,0.0159 -0.120578,0.0475 v -0.11713 q 0.06959,-0.0269 0.135048,-0.04 0.06546,-0.0138 0.127468,-0.0138 0.167432,0 0.250114,0.0868 0.08268,0.0868 0.08268,0.26321 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6852"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 40.789049,291.15458 q -0.02136,-0.0124 -0.04685,-0.0179 -0.02481,-0.006 -0.05512,-0.006 -0.107487,0 -0.165364,0.0703 -0.05719,0.0696 -0.05719,0.20051 v 0.40652 h -0.127468 v -0.7717 h 0.127468 v 0.11989 q 0.03996,-0.0703 0.104042,-0.10404 0.06408,-0.0345 0.155718,-0.0345 0.01309,0 0.02894,0.002 0.01585,0.001 0.03514,0.005 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6854"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 41.272741,291.41985 q -0.153652,0 -0.212907,0.0351 -0.05926,0.0351 -0.05926,0.11989 0,0.0675 0.0441,0.10749 0.04479,0.0393 0.121268,0.0393 0.10542,0 0.168809,-0.0744 0.06408,-0.0751 0.06408,-0.19913 v -0.0283 z m 0.25287,-0.0524 v 0.44028 h -0.12678 v -0.11713 q -0.04341,0.0703 -0.108176,0.10404 -0.06477,0.0331 -0.158474,0.0331 -0.118512,0 -0.188792,-0.0661 -0.06959,-0.0668 -0.06959,-0.17846 0,-0.13023 0.08682,-0.19637 0.08751,-0.0661 0.260449,-0.0661 h 0.177767 v -0.0124 q 0,-0.0875 -0.05788,-0.13505 -0.05719,-0.0482 -0.16123,-0.0482 -0.06615,0 -0.128847,0.0159 -0.0627,0.0159 -0.120578,0.0475 v -0.11713 q 0.06959,-0.0269 0.135048,-0.04 0.06546,-0.0138 0.127468,-0.0138 0.167432,0 0.250114,0.0868 0.08268,0.0868 0.08268,0.26321 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6856"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 42.428226,291.34199 v 0.46578 h -0.12678 v -0.46164 q 0,-0.10956 -0.04272,-0.16399 -0.04272,-0.0544 -0.128158,-0.0544 -0.102664,0 -0.161919,0.0654 -0.05926,0.0655 -0.05926,0.17846 v 0.43615 h -0.127468 v -0.7717 h 0.127468 v 0.11989 q 0.04548,-0.0696 0.106798,-0.10404 0.06201,-0.0345 0.142627,-0.0345 0.132981,0 0.201194,0.0827 0.06821,0.082 0.06821,0.24184 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6858"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 43.236445,291.0657 v 0.11851 q -0.05374,-0.0296 -0.108176,-0.0441 -0.05374,-0.0152 -0.108865,-0.0152 -0.123335,0 -0.191547,0.0786 -0.06821,0.0779 -0.06821,0.21911 0,0.14125 0.06821,0.2198 0.06821,0.0779 0.191547,0.0779 0.05512,0 0.108865,-0.0145 0.05443,-0.0152 0.108176,-0.0448 v 0.11713 q -0.05306,0.0248 -0.110243,0.0372 -0.0565,0.0124 -0.120579,0.0124 -0.174321,0 -0.276985,-0.10955 -0.102664,-0.10956 -0.102664,-0.29559 0,-0.18879 0.103353,-0.29697 0.104042,-0.10818 0.284565,-0.10818 0.05857,0 0.114377,0.0124 0.05581,0.0117 0.108176,0.0358 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6860"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 44.117011,291.39022 v 0.062 h -0.58291 q 0.0083,0.13091 0.07855,0.19981 0.07097,0.0682 0.19706,0.0682 0.07304,0 0.141249,-0.0179 0.0689,-0.0179 0.136425,-0.0537 v 0.11989 q -0.06821,0.0289 -0.13987,0.0441 -0.07166,0.0152 -0.145383,0.0152 -0.184658,0 -0.292834,-0.10749 -0.107487,-0.10748 -0.107487,-0.29076 0,-0.18948 0.101975,-0.30041 0.102664,-0.11163 0.276297,-0.11163 0.155718,0 0.24598,0.1006 0.09095,0.0999 0.09095,0.27216 z m -0.126779,-0.0372 q -0.0014,-0.10404 -0.05857,-0.16606 -0.0565,-0.062 -0.150206,-0.062 -0.106109,0 -0.170188,0.06 -0.06339,0.0599 -0.07304,0.16881 z"
|
||||
style="font-size:1.41111112px;stroke-width:0.26458332"
|
||||
id="path6862"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
Reference in New Issue
Block a user