diff --git a/AnnularChecker/.gitignore b/AnnularChecker/.gitignore new file mode 100644 index 0000000..06703cd --- /dev/null +++ b/AnnularChecker/.gitignore @@ -0,0 +1,51 @@ +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files, back +*.cab +*.msi +*.msm +*.msp +*.bak + +# Windows shortcuts +*.lnk + +# Python executable +*.pyc + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/AnnularChecker/AnnularDlg.fbp b/AnnularChecker/AnnularDlg.fbp index 7d576be..0b33042 100644 --- a/AnnularChecker/AnnularDlg.fbp +++ b/AnnularChecker/AnnularDlg.fbp @@ -58,6 +58,64 @@ bSizer3 wxVERTICAL none + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapAR + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + 5 wxALL|wxEXPAND diff --git a/AnnularChecker/AnnularDlg.py b/AnnularChecker/AnnularDlg.py index e147ed3..98a071c 100644 --- a/AnnularChecker/AnnularDlg.py +++ b/AnnularChecker/AnnularDlg.py @@ -23,6 +23,9 @@ class AnnularDlg ( wx.Dialog ): bSizer3 = wx.BoxSizer( wx.VERTICAL ) + self.m_bitmapAR = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer3.Add( self.m_bitmapAR, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 ) + self.m_LabelTitle = wx.StaticText( self, wx.ID_ANY, u"Check annular ring", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_LabelTitle.Wrap( -1 ) diff --git a/AnnularChecker/__pycache__/__init__.cpython-36.pyc b/AnnularChecker/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index b16f157..0000000 Binary files a/AnnularChecker/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/AnnularChecker/__pycache__/annular_checker.cpython-36.pyc b/AnnularChecker/__pycache__/annular_checker.cpython-36.pyc deleted file mode 100644 index 5338f5a..0000000 Binary files a/AnnularChecker/__pycache__/annular_checker.cpython-36.pyc and /dev/null differ diff --git a/AnnularChecker/__pycache__/annular_checker_html.cpython-36.pyc b/AnnularChecker/__pycache__/annular_checker_html.cpython-36.pyc deleted file mode 100644 index 16311f1..0000000 Binary files a/AnnularChecker/__pycache__/annular_checker_html.cpython-36.pyc and /dev/null differ diff --git a/AnnularChecker/annular_checker.py b/AnnularChecker/annular_checker.py index eaf8bf6..25254e6 100644 --- a/AnnularChecker/annular_checker.py +++ b/AnnularChecker/annular_checker.py @@ -126,6 +126,8 @@ class Annular_Dlg(AnnularDlg.AnnularDlg): #c1.Bind(wx.EVT_CHECKBOX, self.OntextMetric, c1) #self.m_checkBoxPHD.Bind(wx.EVT_CHECKBOX, self.OnClickCheck, self.m_checkBoxPHD) self.m_checkBoxPHD.Bind(wx.EVT_CHECKBOX, self.OnClickCheck) + self.m_bitmapAR.SetBitmap(wx.Bitmap(os.path.join(os.path.dirname(__file__), "./annular.png"))) + #self.Bind(wx.EVT_CHECKBOX, self.OnClickCheck) #self.m_buttonDelete.Bind(wx.EVT_BUTTON, self.onDeleteClick) #self.m_buttonReconnect.Bind(wx.EVT_BUTTON, self.onConnectClick) @@ -452,21 +454,6 @@ else: annular_check().register() -# "b64_data" is a variable containing your base64 encoded jpeg -annular_ico_b64_data =\ -""" -iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAIQQAACEEB+v+u9gAAABl0RVh0U29mdHdhcmUAd3d -3Lmlua3NjYXBlLm9yZ5vuPBoAAAJ5SURBVDiNdZRNSFRRFMd/976ZJjeBn2PUoiLaiMFkFkHIQ0NBdBUlJuIqiixmIYjQRgiJYKAMXRRSi6TCD5gaWiSFsy -gixOyDpDAog8wn9SISapz33m0x82bmzcOzO/97/r973nn3XqGUojjCybIm4BhQD9Rl5XlgDnhi6ObTYo8oBIWTZeXAMNDlalW/FJYmMLd5fONA1NBN0wcKJ -8sagftAZWRJcWHS5vCiouJ3pnClUvC8VnDtpOTTDgGwCpwydHM2Bwony8LAe6koH7hjc37aQXN8XwzAv5DgUo9krF0C/ABqDN1ck9n1G0D54C2H6OTmEICt -KcXQTZvTCQegAhgFEFWzpW1A4uAHRaLfQhbPXgD+/8HfkKBhNMDXMACtEmgC6L/reCBWKGAzMmLxbQWWl2Fw0FJavqIkpYhO2m7aHADqNQcOLXq3DcSuKnp -6Ajmhry8g1tfTxGJBVzryLuepl0Bk16qiJJUHKU0qOjryEDe6u4OF6e7vitCGAohIAFk0XCWEQkp8oWmeVAAiu78EFj5vF6S2iFyBtGxJPJ72gSYmPNpyOH -McgAUJzFkazO/zetLRc4J43MayIJWCsTHLuTzkaellTa7rOVE1W9oOPDz6VjF90fI14QQ1RzhKCNsRhfpGEBqvB1jaKQDapKGbCeDBs/2C8Rb/XGTalsUQg -Fin5kKmDN185DrPAD8HzmrcbpUony0flgZXujSGT+SuSC94L20LcA8obXiduSp1H8kdiz8l8KJWEOvUeLNXuJAuQzdnPKAsrBoYAY4DaA7sWck8I1+qKex0 -Cug1dHPNFcQmD1sL0AwcACJZeQF4BcwYuvm42PMfVgD11Y9MUIEAAAAASUVORK5CYII= -""" - - # execfile("annular.py") # annular.py Testing PCB for Annular Ring >= 0.15 # AR violation of 0.1 at XY 172.974,110.744 diff --git a/FabricationPositions/.gitignore b/FabricationPositions/.gitignore new file mode 100644 index 0000000..06703cd --- /dev/null +++ b/FabricationPositions/.gitignore @@ -0,0 +1,51 @@ +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files, back +*.cab +*.msi +*.msm +*.msp +*.bak + +# Windows shortcuts +*.lnk + +# Python executable +*.pyc + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/FabricationPositions/PositionsDlg.fbp b/FabricationPositions/PositionsDlg.fbp index ebc96d7..6eeb1cf 100644 --- a/FabricationPositions/PositionsDlg.fbp +++ b/FabricationPositions/PositionsDlg.fbp @@ -119,6 +119,64 @@ -1 + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapFab + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + 5 wxEXPAND | wxALL diff --git a/FabricationPositions/PositionsDlg.py b/FabricationPositions/PositionsDlg.py index ea0ca4a..36cd0c3 100644 --- a/FabricationPositions/PositionsDlg.py +++ b/FabricationPositions/PositionsDlg.py @@ -28,6 +28,9 @@ class PositionsDlg ( wx.Dialog ): bSizer3.Add( self.m_comment, 0, wx.ALL|wx.EXPAND, 5 ) + self.m_bitmapFab = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer3.Add( self.m_bitmapFab, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5 ) + self.m_staticline2 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer3.Add( self.m_staticline2, 0, wx.EXPAND |wx.ALL, 5 ) diff --git a/FabricationPositions/__pycache__/__init__.cpython-36.pyc b/FabricationPositions/__pycache__/__init__.cpython-36.pyc deleted file mode 100644 index d39deea..0000000 Binary files a/FabricationPositions/__pycache__/__init__.cpython-36.pyc and /dev/null differ diff --git a/FabricationPositions/__pycache__/fabrication_positions.cpython-36.pyc b/FabricationPositions/__pycache__/fabrication_positions.cpython-36.pyc deleted file mode 100644 index f1d7b0c..0000000 Binary files a/FabricationPositions/__pycache__/fabrication_positions.cpython-36.pyc and /dev/null differ diff --git a/FabricationPositions/fabrication.png b/FabricationPositions/fabrication.png new file mode 100644 index 0000000..ddad942 Binary files /dev/null and b/FabricationPositions/fabrication.png differ diff --git a/FabricationPositions/fabrication.svg b/FabricationPositions/fabrication.svg new file mode 100644 index 0000000..fead669 --- /dev/null +++ b/FabricationPositions/fabrication.svg @@ -0,0 +1,100 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/FabricationPositions/fabrication_positions.py b/FabricationPositions/fabrication_positions.py index 64205d8..cc901f4 100644 --- a/FabricationPositions/fabrication_positions.py +++ b/FabricationPositions/fabrication_positions.py @@ -62,21 +62,6 @@ def generate_POS(dir): out_filename_top_VIRTUAL=path+os.sep+dir+name+"_POS_top_Virtual.txt" out_filename_bot_VIRTUAL=path+os.sep+dir+name+"_POS_bot_Virtual.txt" out_filename_ALL=path+os.sep+dir+name+"_POS_All.txt" - #out_filename=path+os.sep+name+"_POS.txt" - #LogMsg1+="written to:" + lsep + out_filename_top_SMD + lsep - #LogMsg1+="written to:" + lsep + out_filename_bot_SMD + lsep - #LogMsg1+="written to:" + lsep + out_filename_top_THD + lsep - #LogMsg1+="written to:" + lsep + out_filename_bot_THD + lsep - #LogMsg1+="written to:" + lsep + out_filename_top_VIRTUAL + lsep - #LogMsg1+="written to:" + lsep + out_filename_bot_VIRTUAL + lsep - #LogMsg1+="written to:" + lsep + out_filename_ALL + lsep - # print (LogMsg) - # - # print ("### Module positions - created on %s ###" % datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) - # print ("### Printed by get_pos v1") - # print ("## Unit = mm, Angle = deg.") - # print ("## Side : All") - # print ("# Ref Val Package PosX PosY Rot Side Type") Header_1="### Module positions - created on " + datetime.datetime.now().strftime("%Y-%m-%d %H:%M")+lsep Header_1+="### Printed by pcb_positions plugin"+lsep @@ -306,6 +291,7 @@ class Positions_Dlg(PositionsDlg.PositionsDlg): PositionsDlg.PositionsDlg.__init__(self, parent) #self.GetSizer().Fit(self) self.SetMinSize(self.GetSize()) + self.m_bitmapFab.SetBitmap(wx.Bitmap(os.path.join(os.path.dirname(__file__), "./fabrication.png"))) # self.m_buttonDelete.Bind(wx.EVT_BUTTON, self.onDeleteClick) # self.m_buttonReconnect.Bind(wx.EVT_BUTTON, self.onConnectClick) # if wx.__version__ < '4.0': @@ -333,7 +319,7 @@ class generatePOS( pcbnew.ActionPlugin ): self.description should be a comprehensive description of the plugin """ - self.name = "Generate Fabrication POS output\nversion "+___version___ + self.name = "Fabrication Position output \nversion "+___version___ self.category = "Fabrication Output" self.description = "Generate POS output for SMD, THD, Virtual\nand Board Statistics" #self.SetIcon(PyEmbeddedImage(getPos_ico_b64_data).GetIcon()) @@ -359,74 +345,6 @@ class generatePOS( pcbnew.ActionPlugin ): else: None # Cancel -## -###class displayDialog(wx.Dialog): -### """ -### The default frame -### http://stackoverflow.com/questions/3566603/how-do-i-make-wx-textctrl-multi-line-text-update-smoothly -### """ -### -### #---------------------------------------------------------------------- -### #def __init__(self): -### # """Constructor""" -### # wx.Frame.__init__(self, None, title="Display Frame", style=wx.DEFAULT_FRAME_STYLE, wx.ICON_INFORMATION) -### # panel = wx.Panel(self) -### def __init__(self, parent): -### wx.Dialog.__init__(self, parent, id=-1, title="Generate POS output")# -### #, style=wx.DEFAULT_DIALOG_STYLE, wx.ICON_INFORMATION) -### #, style=wx.DEFAULT_DIALOG_STYLE, wx.ICON_INFORMATION) -### #, pos=DefaultPosition, size=DefaultSize, style = wx.DEFAULT_FRAME_STYLE & (~wx.MAXIMIZE_BOX), name="fname") -### #, wx.ICON_INFORMATION) #, title="Annular Check", style=wx.DEFAULT_FRAME_STYLE, wx.ICON_INFORMATION) -### # -### -### self.SetIcon(PyEmbeddedImage(getPos_ico_b64_data).GetIcon()) -### #wx.IconFromBitmap(wx.Bitmap("icon.ico", wx.BITMAP_TYPE_ANY))) -### self.panel = wx.Panel(self) -### self.title = wx.StaticText(self.panel, label="Generate POS debug:") -### #self.result = wx.StaticText(self.panel, label="") -### #self.result.SetForegroundColour('#FF0000') -### self.button = wx.Button(self.panel, label="Close") -### #self.lblname = wx.StaticText(self.panel, label="Your name:") -### #self.editname = wx.TextCtrl(self.panel, size=(140, -1)) -### self.editname = wx.TextCtrl(self.panel, size = (600, 500), style = wx.TE_MULTILINE|wx.TE_READONLY) -### -### -### # Set sizer for the frame, so we can change frame size to match widgets -### self.windowSizer = wx.BoxSizer() -### self.windowSizer.Add(self.panel, 1, wx.ALL | wx.EXPAND) -### -### # Set sizer for the panel content -### self.sizer = wx.GridBagSizer(5, 0) -### self.sizer.Add(self.title, (0, 0)) -### #self.sizer.Add(self.result, (1, 0)) -### #self.sizer.Add(self.lblname, (1, 0)) -### self.sizer.Add(self.editname, (1, 0)) -### self.sizer.Add(self.button, (2, 0), (1, 2), flag=wx.EXPAND) -### -### # Set simple sizer for a nice border -### self.border = wx.BoxSizer() -### self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 5) -### -### # Use the sizers -### self.panel.SetSizerAndFit(self.border) -### self.SetSizerAndFit(self.windowSizer) -### #self.result.SetLabel(msg) -### # Set event handlers -### #self.Show() -### self.button.Bind(wx.EVT_BUTTON, self.OnClose) -### self.Bind(wx.EVT_CLOSE,self.OnClose) -### -### def OnClose(self,e): -### #wx.LogMessage("c") -### e.Skip() -### #self.Close() -### self.Destroy() -### -### #def OnButton(self, e): -### # self.result.SetLabel(self.editname.GetValue()) -### def setMsg(self, t_msg): -### self.editname.SetValue(t_msg) -### def GenPos(dir): def f_mm(raw): @@ -465,47 +383,5 @@ def GenPos(dir): #generatePOS().register() -# "b64_data" is a variable containing your base64 encoded jpeg -getPos_ico_b64_data =\ -""" -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 -gg== -""" - - - # execfile("round_tracks.py") diff --git a/MoveToLayer/.gitignore b/MoveToLayer/.gitignore new file mode 100644 index 0000000..06703cd --- /dev/null +++ b/MoveToLayer/.gitignore @@ -0,0 +1,51 @@ +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files, back +*.cab +*.msi +*.msm +*.msp +*.bak + +# Windows shortcuts +*.lnk + +# Python executable +*.pyc + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/MoveToLayer/Move2LayerDlg.fbp b/MoveToLayer/Move2LayerDlg.fbp new file mode 100644 index 0000000..dafcfc7 --- /dev/null +++ b/MoveToLayer/Move2LayerDlg.fbp @@ -0,0 +1,663 @@ + + + + + + Python + 1 + source_name + 0 + 0 + res + UTF-8 + connect + Move2LayerDlg + 1000 + none + + 0 + Move2LayerDlg + + . + + 1 + 1 + 1 + 1 + UI + 0 + 0 + + 0 + wxAUI_MGR_DEFAULT + + wxBOTH + + 1 + 1 + impl_virtual + + + + 0 + wxID_ANY + + + Move2LayerDlg + + 568,263 + wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + Move to Layer + + + + + + + bSizer3 + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Selected Objects will be Moved to chosen Layer + 0 + + 0 + + + 0 + + 1 + m_comment + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + + 0 + + + bSizer31 + wxHORIZONTAL + none + + 5 + wxALL|wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Layer + 0 + + 0 + + + 0 + + 1 + m_staticTextLayer + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + -1,-1 + 0 + -1,-1 + 1 + m_comboBoxLayer + 1 + + + protected + 1 + + Resizable + -1 + 1 + 250,-1 + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + Combo! + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapLayers + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapDwgs + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + + + + + 5 + wxEXPAND | wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_staticline1 + 1 + + + protected + 1 + + Resizable + 1 + + wxLI_HORIZONTAL + ; ; forward_declare + 0 + + + + + + + + 5 + wxALIGN_RIGHT|wxEXPAND + 0 + + + bSizer1 + wxHORIZONTAL + none + + 5 + wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + + 0 + + 1 + m_staticText101 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 0 + + 1 + + 1 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_OK + Apply + + 0 + + 0 + + + 0 + + 1 + m_buttonOK + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_CANCEL + Cancel + + 0 + + 0 + + + 0 + + 1 + m_buttonCancel + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer4 + wxVERTICAL + none + + + + + + diff --git a/MoveToLayer/Move2LayerDlg.py b/MoveToLayer/Move2LayerDlg.py index 66ed329..ad184af 100644 --- a/MoveToLayer/Move2LayerDlg.py +++ b/MoveToLayer/Move2LayerDlg.py @@ -23,7 +23,7 @@ class Move2LayerDlg ( wx.Dialog ): bSizer3 = wx.BoxSizer( wx.VERTICAL ) - self.m_comment = wx.StaticText( self, wx.ID_ANY, u"Selected Objects will Move to chosen Layer", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.m_comment = wx.StaticText( self, wx.ID_ANY, u"Selected Objects will be Moved to chosen Layer", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_comment.Wrap( -1 ) bSizer3.Add( self.m_comment, 0, wx.ALL|wx.EXPAND, 5 ) @@ -39,6 +39,12 @@ class Move2LayerDlg ( wx.Dialog ): self.m_comboBoxLayer = wx.ComboBox( self, wx.ID_ANY, u"Combo!", wx.DefaultPosition, wx.Size( 250,-1 ), m_comboBoxLayerChoices, 0 ) bSizer31.Add( self.m_comboBoxLayer, 0, wx.ALL|wx.EXPAND, 5 ) + self.m_bitmapLayers = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer31.Add( self.m_bitmapLayers, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + + self.m_bitmapDwgs = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer31.Add( self.m_bitmapDwgs, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + bSizer3.Add( bSizer31, 0, 0, 5 ) diff --git a/MoveToLayer/add_polygon.png b/MoveToLayer/add_polygon.png new file mode 100644 index 0000000..a2384a5 Binary files /dev/null and b/MoveToLayer/add_polygon.png differ diff --git a/MoveToLayer/add_polygon.svg b/MoveToLayer/add_polygon.svg new file mode 100644 index 0000000..9ab7fbc --- /dev/null +++ b/MoveToLayer/add_polygon.svg @@ -0,0 +1,109 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/MoveToLayer/move_to_layer.py b/MoveToLayer/move_to_layer.py index 8425071..86b0299 100644 --- a/MoveToLayer/move_to_layer.py +++ b/MoveToLayer/move_to_layer.py @@ -78,6 +78,9 @@ class Move2Layer_Dlg(Move2LayerDlg.Move2LayerDlg): Move2LayerDlg.Move2LayerDlg.__init__(self, parent) #self.GetSizer().Fit(self) self.SetMinSize(self.GetSize()) + + self.m_bitmapLayers.SetBitmap(wx.Bitmap(os.path.join(os.path.dirname(__file__), "./add_polygon.png"))) + self.m_bitmapDwgs.SetBitmap(wx.Bitmap(os.path.join(os.path.dirname(__file__), "./move2layer.png"))) # self.m_buttonDelete.Bind(wx.EVT_BUTTON, self.onDeleteClick) # self.m_buttonReconnect.Bind(wx.EVT_BUTTON, self.onConnectClick) # if wx.__version__ < '4.0': diff --git a/PcbToDxf/.gitignore b/PcbToDxf/.gitignore new file mode 100644 index 0000000..06703cd --- /dev/null +++ b/PcbToDxf/.gitignore @@ -0,0 +1,51 @@ +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files, back +*.cab +*.msi +*.msm +*.msp +*.bak + +# Windows shortcuts +*.lnk + +# Python executable +*.pyc + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/Snap2Grid/.gitignore b/Snap2Grid/.gitignore new file mode 100644 index 0000000..06703cd --- /dev/null +++ b/Snap2Grid/.gitignore @@ -0,0 +1,51 @@ +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files, back +*.cab +*.msi +*.msm +*.msp +*.bak + +# Windows shortcuts +*.lnk + +# Python executable +*.pyc + +# ========================= +# Operating System Files +# ========================= + +# OSX +# ========================= + +.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/Snap2Grid/Snap2GridDlg.fbp b/Snap2Grid/Snap2GridDlg.fbp index 6becf11..723beb8 100644 --- a/Snap2Grid/Snap2GridDlg.fbp +++ b/Snap2Grid/Snap2GridDlg.fbp @@ -254,6 +254,64 @@ + + 5 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapS2G + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + diff --git a/Snap2Grid/Snap2GridDlg.py b/Snap2Grid/Snap2GridDlg.py index 55c4f1d..a870395 100644 --- a/Snap2Grid/Snap2GridDlg.py +++ b/Snap2Grid/Snap2GridDlg.py @@ -40,6 +40,9 @@ class Snap2GridDlg ( wx.Dialog ): self.m_comboBoxGrid.SetSelection( 0 ) bSizer31.Add( self.m_comboBoxGrid, 0, wx.ALL|wx.EXPAND, 5 ) + self.m_bitmapS2G = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer31.Add( self.m_bitmapS2G, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) + bSizer3.Add( bSizer31, 0, 0, 5 ) diff --git a/Snap2Grid/snap2grid.py b/Snap2Grid/snap2grid.py index a8f98f4..2de96bd 100644 --- a/Snap2Grid/snap2grid.py +++ b/Snap2Grid/snap2grid.py @@ -12,7 +12,7 @@ #import pcbnew #pcbnew.GetWizardsBackTrace() -__version__ = '1.0.1' +__version__ = '1.0.2' import sys, os import pcbnew import datetime @@ -57,6 +57,8 @@ class Snap2Grid_Dlg(Snap2GridDlg.Snap2GridDlg): Snap2GridDlg.Snap2GridDlg.__init__(self, parent) #self.GetSizer().Fit(self) self.SetMinSize(self.GetSize()) + self.m_bitmapS2G.SetBitmap(wx.Bitmap(os.path.join(os.path.dirname(__file__), "./snap2grid.png"))) + #self.SetIcon(wx.IconFromBitmap(wx.Bitmap(os.path.join(os.path.dirname(__file__), "./snap2grid.png")))) #self.m_buttonDelete.Bind(wx.EVT_BUTTON, self.onDeleteClick) #self.m_buttonReconnect.Bind(wx.EVT_BUTTON, self.onConnectClick) #if wx.__version__ < '4.0':