From f7a22eb8b4a06d1f2227d9bad628cd59f9bd3d75 Mon Sep 17 00:00:00 2001 From: easyw <3032347+easyw@users.noreply.github.com> Date: Sat, 28 Sep 2019 09:52:46 +0200 Subject: [PATCH 1/4] adding info on via placed, allowing ',' for decimal separator on inputs --- ViaStitching/FillArea.py | 6 ++++-- ViaStitching/FillAreaAction.py | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/ViaStitching/FillArea.py b/ViaStitching/FillArea.py index 1fccefc..85055b2 100644 --- a/ViaStitching/FillArea.py +++ b/ViaStitching/FillArea.py @@ -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): @@ -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:") @@ -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: diff --git a/ViaStitching/FillAreaAction.py b/ViaStitching/FillAreaAction.py index f52a716..ca4e70d 100644 --- a/ViaStitching/FillAreaAction.py +++ b/ViaStitching/FillAreaAction.py @@ -61,13 +61,13 @@ def Run(self): 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) From cf437269a103aaa5d5fbecba6d5741234ce2cf5b Mon Sep 17 00:00:00 2001 From: easyw Date: Tue, 1 Oct 2019 12:41:00 +0200 Subject: [PATCH 2/4] adding stitching help image --- ViaStitching/FillAreaAction.py | 1 + ViaStitching/FillAreaDialog.py | 124 +++-- ViaStitching/FillAreaTpl.fbp | 728 +++++---------------------- ViaStitching/stitching-vias-help.png | Bin 0 -> 6105 bytes ViaStitching/stitching-vias-help.svg | 240 +++++++++ 5 files changed, 442 insertions(+), 651 deletions(-) create mode 100644 ViaStitching/stitching-vias-help.png create mode 100644 ViaStitching/stitching-vias-help.svg diff --git a/ViaStitching/FillAreaAction.py b/ViaStitching/FillAreaAction.py index ca4e70d..71795e6 100644 --- a/ViaStitching/FillAreaAction.py +++ b/ViaStitching/FillAreaAction.py @@ -57,6 +57,7 @@ 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() diff --git a/ViaStitching/FillAreaDialog.py b/ViaStitching/FillAreaDialog.py index e19dea1..e9bf029 100644 --- a/ViaStitching/FillAreaDialog.py +++ b/ViaStitching/FillAreaDialog.py @@ -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 @@ -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,510 ), 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() - + diff --git a/ViaStitching/FillAreaTpl.fbp b/ViaStitching/FillAreaTpl.fbp index 0780cee..d1a129d 100644 --- a/ViaStitching/FillAreaTpl.fbp +++ b/ViaStitching/FillAreaTpl.fbp @@ -1,6 +1,6 @@ - + Python @@ -14,6 +14,7 @@ FillAreaDialog 1000 none + 0 FillAreaDialog @@ -44,7 +45,7 @@ FillAreaDialog - 402,487 + 402,510 wxDEFAULT_DIALOG_STYLE Fill Area parameters @@ -52,42 +53,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer3 @@ -141,7 +106,8 @@ 0 0 wxID_ANY - Via copper size + Via copper size (mm) + 0 0 @@ -167,29 +133,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -254,33 +197,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -315,7 +231,8 @@ 0 0 wxID_ANY - Via drill size + Via drill size (mm) + 0 0 @@ -341,29 +258,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -428,33 +322,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -489,7 +356,8 @@ 0 0 wxID_ANY - Via clearance + Via clearance (mm) + 0 0 @@ -515,29 +383,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -602,39 +447,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 + wxALL + 0 1 1 @@ -663,7 +481,8 @@ 0 0 wxID_ANY - Net name + Via grid (mm) + 0 0 @@ -671,7 +490,7 @@ 0 1 - m_staticText6 + m_staticText2 1 @@ -689,36 +508,13 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - - + 5 - wxALL - 0 - + wxALL|wxEXPAND + 1 + 1 1 1 @@ -732,7 +528,6 @@ 1 0 - 1 1 @@ -750,11 +545,12 @@ 0 + 0 1 - m_cbNet + m_StepMM 1 @@ -762,7 +558,6 @@ 1 Resizable - -1 1 @@ -773,44 +568,84 @@ wxFILTER_NONE wxDefaultValidator - GND + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 5 - wxALL + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxEXPAND 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapStitching + 1 + + + protected + 1 + + Resizable + 1 + + ; ; forward_declare + 0 + + + + + + + + 5 + wxALL|wxEXPAND + 1 1 1 @@ -839,7 +674,8 @@ 0 0 wxID_ANY - Step between via + Net name + 0 0 @@ -847,7 +683,7 @@ 0 1 - m_staticText2 + m_staticText6 1 @@ -865,36 +701,13 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - - + 5 - wxALL|wxEXPAND - 1 - + wxALL + 0 + 1 1 1 @@ -908,6 +721,7 @@ 1 0 + 1 1 @@ -925,12 +739,11 @@ 0 - 0 1 - m_StepMM + m_cbNet 1 @@ -938,6 +751,7 @@ 1 Resizable + -1 1 @@ -948,37 +762,10 @@ wxFILTER_NONE wxDefaultValidator - + GND - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1014,6 +801,7 @@ 0 wxID_ANY Debug mode + 0 0 @@ -1039,29 +827,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -1126,30 +891,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1185,6 +926,7 @@ 0 wxID_ANY Random it + 0 0 @@ -1210,29 +952,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -1297,30 +1016,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1356,6 +1051,7 @@ 0 wxID_ANY Star Pattern + 0 0 @@ -1381,29 +1077,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -1468,30 +1141,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1527,6 +1176,7 @@ 0 wxID_ANY Only under selected Zone + 0 0 @@ -1552,29 +1202,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -1639,30 +1266,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1709,6 +1312,7 @@ 0 wxID_ANY + 0 0 @@ -1734,29 +1338,6 @@ -1 - - - - - - - - - - - - - - - - - - - - - - - @@ -1774,25 +1355,31 @@ + 1 0 0 1 + 1 0 + Dock 0 Left 1 1 + 0 0 wxID_OK Run + + 0 0 @@ -1807,6 +1394,8 @@ protected 1 + + Resizable 1 @@ -1821,30 +1410,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1862,25 +1427,31 @@ + 1 0 1 1 + 0 0 + Dock 0 Left 1 1 + 0 0 wxID_CANCEL Cancel + + 0 0 @@ -1895,6 +1466,8 @@ protected 1 + + Resizable 1 @@ -1909,30 +1482,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1950,25 +1499,31 @@ + 1 0 1 1 + 0 0 + Dock 0 Left 1 1 + 0 0 wxID_DELETE Delete Vias + + 0 0 @@ -1983,6 +1538,8 @@ protected 1 + + Resizable 1 @@ -1998,29 +1555,6 @@ onDeleteClick - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ViaStitching/stitching-vias-help.png b/ViaStitching/stitching-vias-help.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac059c69e59f6a8193a19df9b688da98370a864 GIT binary patch literal 6105 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 f#l^+N + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + d + From 4e6b97579ded4b917914f08e32089a7672d27d39 Mon Sep 17 00:00:00 2001 From: easyw Date: Tue, 1 Oct 2019 12:46:24 +0200 Subject: [PATCH 3/4] better visibility on dark theme --- ViaStitching/stitching-vias-help.png | Bin 6105 -> 6538 bytes ViaStitching/stitching-vias-help.svg | 278 ++++++++++++++------------- 2 files changed, 145 insertions(+), 133 deletions(-) diff --git a/ViaStitching/stitching-vias-help.png b/ViaStitching/stitching-vias-help.png index 9ac059c69e59f6a8193a19df9b688da98370a864..7153eaf8de6f75818077a99099dbfa68c5a528d4 100644 GIT binary patch literal 6538 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 delta 6085 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 @@ -45,8 +45,8 @@ inkscape:snap-to-guides="false" inkscape:snap-grids="true" inkscape:zoom="14.553175" - inkscape:cx="23.067823" - inkscape:cy="2.2565767" + inkscape:cx="17.310764" + inkscape:cy="9.229069" inkscape:window-x="-9" inkscape:window-y="-9" inkscape:window-maximized="1" @@ -66,8 +66,8 @@ snapvisiblegridlinesonly="true" spacingx="0.5" spacingy="0.5" - originx="23.610191" - originy="7.6721384" /> + originx="29.615099" + originy="14.20885" /> @@ -94,147 +94,159 @@ id="feGaussianBlur10" /> + - + id="g1472" + transform="translate(5.358933,5.8591988)"> + transform="rotate(90,28.381175,29.318675)" + id="g928"> - - - - - + + inkscape:export-filename="C:\kicad-wb-1602\msys64\home\userC\RF-round-diff\new-solder-mask\bitmaps_png\sources\stitching-vias.png"> + + + + + + + + + + + + + + + + transform="matrix(0,0.6470588,-0.93749999,0,26.742247,5.8693535)" + id="g835"> + sodipodi:nodetypes="cc" /> - - + sodipodi:nodetypes="ccc" + style="fill:#333333;stroke:#333333;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" + d="m 16.607525,17.607526 6,-2 -6,-2" + id="path5191" + inkscape:connector-curvature="0" /> + + sodipodi:nodetypes="cc" /> + sodipodi:nodetypes="cc" /> - - - - - - - - - d + x="1.7110295" + style="font-style:normal;font-weight:normal;font-size:27.82968521px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#333333;fill-opacity:1;stroke:#333333;stroke-width:0.69574213" + xml:space="preserve">d + From cf498962d755adc52fc6ccdec58d928df44f9774 Mon Sep 17 00:00:00 2001 From: easyw Date: Tue, 1 Oct 2019 12:51:51 +0200 Subject: [PATCH 4/4] dialog resized --- ViaStitching/FillAreaDialog.py | 2 +- ViaStitching/FillAreaTpl.fbp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ViaStitching/FillAreaDialog.py b/ViaStitching/FillAreaDialog.py index e9bf029..36b065b 100644 --- a/ViaStitching/FillAreaDialog.py +++ b/ViaStitching/FillAreaDialog.py @@ -17,7 +17,7 @@ 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,510 ), 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: diff --git a/ViaStitching/FillAreaTpl.fbp b/ViaStitching/FillAreaTpl.fbp index d1a129d..f519ab3 100644 --- a/ViaStitching/FillAreaTpl.fbp +++ b/ViaStitching/FillAreaTpl.fbp @@ -45,7 +45,7 @@ FillAreaDialog - 402,510 + 402,540 wxDEFAULT_DIALOG_STYLE Fill Area parameters