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
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 @@
+
+
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 @@
+
+
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':