Skip to content

Commit

Permalink
Merge pull request #14 from easyw/master
Browse files Browse the repository at this point in the history
adding info on via placed, allowing '.' and ',' for decimal separator on inputs
  • Loading branch information
jsreynaud authored Oct 1, 2019
2 parents d71c879 + cf49896 commit fa8e239
Show file tree
Hide file tree
Showing 6 changed files with 463 additions and 658 deletions.
6 changes: 4 additions & 2 deletions ViaStitching/FillArea.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,7 @@ def Run(self):
# How much "via steps" should be removed around a via (round up)
clear_distance = int((self.step+l_clearance) / l_clearance)

via_placed = 0
for x in xrange(len(rectangle)):
for y in xrange(len(rectangle[0])):
if isinstance(rectangle[x][y], ViaObject):
Expand All @@ -555,6 +556,7 @@ def Run(self):
ran_y = (random.random() * l_clearance / 2.0) - (l_clearance / 4.0)

self.AddVia(wxPoint(via.PosX + ran_x, via.PosY + ran_y), via.X, via.Y)
via_placed += 1

if self.debug:
wxPrint("\nFinal result:")
Expand All @@ -564,8 +566,8 @@ def Run(self):

if self.filename:
self.pcb.Save(self.filename)
wxPrint("Done!")

msg = "{:d} vias placed\n".format(via_placed)
wxPrint (msg+"Done!")

if __name__ == '__main__':
if len(sys.argv) < 2:
Expand Down
11 changes: 6 additions & 5 deletions ViaStitching/FillAreaAction.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,18 @@ def Run(self):
#a.m_Netname.SetValue("GND")
a.m_ClearanceMM.SetValue("0.2")
a.m_Star.SetValue(True)
a.m_bitmapStitching.SetBitmap(wx.Bitmap( os.path.join(os.path.dirname(os.path.realpath(__file__)), "stitching-vias-help.png") ) )
self.board = pcbnew.GetBoard()
PopulateNets("GND",a)
modal_result = a.ShowModal()
if modal_result == wx.ID_OK:
wx.LogMessage('Via Stitching: Version 1.3')
wx.LogMessage('Via Stitching: Version 1.4')
if 1: #try:
fill = FillArea.FillArea()
fill.SetStepMM(float(a.m_StepMM.GetValue()))
fill.SetSizeMM(float(a.m_SizeMM.GetValue()))
fill.SetDrillMM(float(a.m_DrillMM.GetValue()))
fill.SetClearanceMM(float(a.m_ClearanceMM.GetValue()))
fill.SetStepMM(float(a.m_StepMM.GetValue().replace(',','.')))
fill.SetSizeMM(float(a.m_SizeMM.GetValue().replace(',','.')))
fill.SetDrillMM(float(a.m_DrillMM.GetValue().replace(',','.')))
fill.SetClearanceMM(float(a.m_ClearanceMM.GetValue().replace(',','.')))
#fill.SetNetname(a.m_Netname.GetValue())
netname = a.m_cbNet.GetStringSelection()
fill.SetNetname(netname)
Expand Down
124 changes: 70 additions & 54 deletions ViaStitching/FillAreaDialog.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-

###########################################################################
## Python code generated with wxFormBuilder (version Dec 21 2016)
## Python code generated with wxFormBuilder (version Oct 26 2018)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################

import wx
Expand All @@ -15,126 +15,142 @@
###########################################################################

class FillAreaDialog ( wx.Dialog ):

def __init__( self, parent ):
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Fill Area parameters", pos = wx.DefaultPosition, size = wx.Size( 402,487 ), style = wx.DEFAULT_DIALOG_STYLE )
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Fill Area parameters", pos = wx.DefaultPosition, size = wx.Size( 402,540 ), style = wx.DEFAULT_DIALOG_STYLE )

import sys
if sys.version_info[0] == 2:
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
else:
self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
#self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )


bSizer3 = wx.BoxSizer( wx.VERTICAL )

fgSizer1 = wx.FlexGridSizer( 0, 2, 0, 0 )
fgSizer1.SetFlexibleDirection( wx.BOTH )
fgSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED )
self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"Via copper size", wx.DefaultPosition, wx.DefaultSize, 0 )

self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"Via copper size (mm)", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText3.Wrap( -1 )

fgSizer1.Add( self.m_staticText3, 1, wx.ALL|wx.EXPAND, 5 )

self.m_SizeMM = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_SizeMM.SetMinSize( wx.Size( 1000,-1 ) )

fgSizer1.Add( self.m_SizeMM, 1, wx.ALL|wx.EXPAND, 5 )
self.m_staticText9 = wx.StaticText( self, wx.ID_ANY, u"Via drill size", wx.DefaultPosition, wx.DefaultSize, 0 )

self.m_staticText9 = wx.StaticText( self, wx.ID_ANY, u"Via drill size (mm)", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText9.Wrap( -1 )

fgSizer1.Add( self.m_staticText9, 1, wx.ALL|wx.EXPAND, 5 )

self.m_DrillMM = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_DrillMM, 1, wx.ALL|wx.EXPAND, 5 )
self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Via clearance", wx.DefaultPosition, wx.DefaultSize, 0 )

self.m_staticText5 = wx.StaticText( self, wx.ID_ANY, u"Via clearance (mm)", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText5.Wrap( -1 )

fgSizer1.Add( self.m_staticText5, 1, wx.ALL|wx.EXPAND, 5 )

self.m_ClearanceMM = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_ClearanceMM, 1, wx.ALL|wx.EXPAND, 5 )


self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Via grid (mm)", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText2.Wrap( -1 )

fgSizer1.Add( self.m_staticText2, 0, wx.ALL, 5 )

self.m_StepMM = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_StepMM, 1, wx.ALL|wx.EXPAND, 5 )


fgSizer1.Add( ( 0, 0), 1, wx.EXPAND, 5 )

self.m_bitmapStitching = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_bitmapStitching, 0, wx.EXPAND, 5 )

self.m_staticText6 = wx.StaticText( self, wx.ID_ANY, u"Net name", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText6.Wrap( -1 )

fgSizer1.Add( self.m_staticText6, 1, wx.ALL|wx.EXPAND, 5 )

m_cbNetChoices = []
self.m_cbNet = wx.ComboBox( self, wx.ID_ANY, u"GND", wx.DefaultPosition, wx.DefaultSize, m_cbNetChoices, 0 )
fgSizer1.Add( self.m_cbNet, 0, wx.ALL, 5 )

self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"Step between via", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText2.Wrap( -1 )
fgSizer1.Add( self.m_staticText2, 0, wx.ALL, 5 )

self.m_StepMM = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_StepMM, 1, wx.ALL|wx.EXPAND, 5 )


self.m_staticText7 = wx.StaticText( self, wx.ID_ANY, u"Debug mode", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText7.Wrap( -1 )

fgSizer1.Add( self.m_staticText7, 1, wx.ALL|wx.EXPAND, 5 )

self.m_Debug = wx.CheckBox( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_Debug, 1, wx.ALL|wx.EXPAND, 5 )

self.m_staticText8 = wx.StaticText( self, wx.ID_ANY, u"Random it", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText8.Wrap( -1 )

fgSizer1.Add( self.m_staticText8, 0, wx.ALL, 5 )

self.m_Random = wx.CheckBox( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_Random, 0, wx.ALL, 5 )

self.m_staticText42 = wx.StaticText( self, wx.ID_ANY, u"Star Pattern", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText42.Wrap( -1 )

fgSizer1.Add( self.m_staticText42, 0, wx.ALL, 5 )

self.m_Star = wx.CheckBox( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_Star, 0, wx.ALL, 5 )

self.m_staticText81 = wx.StaticText( self, wx.ID_ANY, u"Only under selected Zone", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText81.Wrap( -1 )

fgSizer1.Add( self.m_staticText81, 0, wx.ALL, 5 )

self.m_only_selected = wx.CheckBox( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
fgSizer1.Add( self.m_only_selected, 0, wx.ALL, 5 )


bSizer3.Add( fgSizer1, 1, wx.EXPAND, 5 )

bSizer1 = wx.BoxSizer( wx.HORIZONTAL )

self.m_staticText101 = wx.StaticText( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText101.Wrap( -1 )

bSizer1.Add( self.m_staticText101, 1, wx.ALL, 5 )

self.m_button1 = wx.Button( self, wx.ID_OK, u"Run", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_button1.SetDefault()

self.m_button1.SetDefault()
bSizer1.Add( self.m_button1, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )

self.m_button2 = wx.Button( self, wx.ID_CANCEL, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer1.Add( self.m_button2, 0, wx.ALL, 5 )

self.m_button3_delete = wx.Button( self, wx.ID_DELETE, u"Delete Vias", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer1.Add( self.m_button3_delete, 0, wx.ALL, 5 )


bSizer3.Add( bSizer1, 0, wx.EXPAND|wx.ALIGN_RIGHT, 5 )


self.SetSizer( bSizer3 )
self.Layout()

self.Centre( wx.BOTH )

# Connect Events
self.m_button3_delete.Bind( wx.EVT_BUTTON, self.onDeleteClick )

def __del__( self ):
pass


# Virtual event handlers, overide them in your derived class
def onDeleteClick( self, event ):
event.Skip()


Loading

0 comments on commit fa8e239

Please sign in to comment.