diff --git a/pcbnew/scripting/plugins/fpc_footprint_wizard.py b/pcbnew/scripting/plugins/fpc_footprint_wizard.py index efc8455d34..1ae779a6bc 100644 --- a/pcbnew/scripting/plugins/fpc_footprint_wizard.py +++ b/pcbnew/scripting/plugins/fpc_footprint_wizard.py @@ -18,10 +18,10 @@ class FPCFootprintWizard(FootprintWizardPlugin): "from_top": FromMM(1.3), "width": FromMM(1.5), "height": FromMM(2)}, - + } self.ClearErrors() - + # build a rectangular pad def smdRectPad(self,module,size,pos,name): pad = D_PAD(module) @@ -36,14 +36,14 @@ class FPCFootprintWizard(FootprintWizardPlugin): # This method checks the parameters provided to wizard and set errors def CheckParameters(self): - p = self.parameters - pads = p["Pads"]["*n"] + p = self.parameters + pads = p["Pads"]["*n"] errors = "" if (pads<1): self.parameter_errors["Pads"]["n"]="Must be positive" errors +="Pads/n has wrong value, " - p["Pads"]["n"] = int(pads) # make sure it stays as int (default is float) - + p["Pads"]["n"] = int(pads) # make sure it stays as int (default is float) + pad_width = p["Pads"]["width"] pad_height = p["Pads"]["height"] pad_pitch = p["Pads"]["pitch"] @@ -51,22 +51,22 @@ class FPCFootprintWizard(FootprintWizardPlugin): shl_height = p["Shield"]["height"] shl_to_pad = p["Shield"]["shield_to_pad"] shl_from_top = p["Shield"]["from_top"] - - return errors - - - # build the footprint from parameters + + return errors + + + # build the footprint from parameters def BuildFootprint(self): - + print "parameters:",self.parameters #self.ClearErrors() #print "errors:",self.parameter_errors - + module = MODULE(None) # create a new module self.module = module - + p = self.parameters - pads = int(p["Pads"]["*n"]) + pads = int(p["Pads"]["*n"]) pad_width = p["Pads"]["width"] pad_height = p["Pads"]["height"] pad_pitch = p["Pads"]["pitch"] @@ -74,19 +74,19 @@ class FPCFootprintWizard(FootprintWizardPlugin): shl_height = p["Shield"]["height"] shl_to_pad = p["Shield"]["shield_to_pad"] shl_from_top = p["Shield"]["from_top"] - + size_pad = wxSize(pad_width,pad_height) size_shld = wxSize(shl_width,shl_height) - + module.SetReference("FPC"+str(pads)) # give it a reference name module.Reference().SetPos0(wxPointMM(-1,-2)) module.Reference().SetPosition(wxPointMM(-1,-2)) - + # create a pad array and add it to the module for n in range (0,pads): pad = self.smdRectPad(module,size_pad,wxPoint(pad_pitch*n,0),str(n+1)) module.Add(pad) - + pad_s0 = self.smdRectPad(module, size_shld, @@ -95,8 +95,8 @@ class FPCFootprintWizard(FootprintWizardPlugin): pad_s1 = self.smdRectPad(module, size_shld, wxPoint((pads-1)*pad_pitch+shl_to_pad,shl_from_top), - "0") - + "0") + module.Add(pad_s0) module.Add(pad_s1) @@ -108,11 +108,15 @@ class FPCFootprintWizard(FootprintWizardPlugin): module.Add(e) module.SetLibRef("FPC"+str(pads)) - -# create our footprint wizard -fpc_wizard = FPCFootprintWizard() +def register(): + # create our footprint wizard + fpc_wizard = FPCFootprintWizard() + + # register it into pcbnew + fpc_wizard.register() + + return fpc_wizard + -# register it into pcbnew -fpc_wizard.register() diff --git a/pcbnew/scripting/plugins/touch_slider_wizard.py b/pcbnew/scripting/plugins/touch_slider_wizard.py index 4a179d573a..8cb9ac6667 100644 --- a/pcbnew/scripting/plugins/touch_slider_wizard.py +++ b/pcbnew/scripting/plugins/touch_slider_wizard.py @@ -10,15 +10,15 @@ class TouchSliderWizard(FootprintWizardPlugin): self.parameters = { "Pads": {"*steps":4, # not internal (measurement) units preceded by "*" - "*bands":2, + "*bands":2, "width": FromMM(10), "length": FromMM(50), "clearance": FromMM(1) } - + } self.ClearErrors() - + # build a rectangular pad def smdRectPad(self,module,size,pos,name): pad = D_PAD(module) @@ -30,8 +30,8 @@ class TouchSliderWizard(FootprintWizardPlugin): pad.SetPosition(pos) pad.SetPadName(name) return pad - - + + def smdTrianglePad(self,module,size,pos,name,up_down=1,left_right=0): pad = D_PAD(module) pad.SetSize(wxSize(size[0],size[1])) @@ -47,30 +47,30 @@ class TouchSliderWizard(FootprintWizardPlugin): # This method checks the parameters provided to wizard and set errors def CheckParameters(self): - p = self.parameters - steps = p["Pads"]["*steps"] + p = self.parameters + steps = p["Pads"]["*steps"] errors = "" if (steps<1): self.parameter_errors["Pads"]["*steps"]="Must be positive" errors +="Pads/*steps has wrong value" - p["Pads"]["*steps"] = int(pads) # make sure it stays as int (default is float) - - bands = p["Pads"]["*bands"] - + p["Pads"]["*steps"] = int(pads) # make sure it stays as int (default is float) + + bands = p["Pads"]["*bands"] + if (bands<1): self.parameter_errors["Pads"]["*bands"]="Must be positive" errors +="Pads/*bands has wrong value" - p["Pads"]["*bands"] = int(bands) # make sure it stays as int (default is float) - - + p["Pads"]["*bands"] = int(bands) # make sure it stays as int (default is float) + + touch_width = p["Pads"]["width"] touch_length = p["Pads"]["length"] touch_clearance = p["Pads"]["clearance"] - - - return errors - # The start pad is made of a rectangular pad plus a couple of + + return errors + + # The start pad is made of a rectangular pad plus a couple of # triangular pads facing tips on the middle/right of the first # rectangular pad def AddStartPad(self,position,touch_width,step_length,clearance,name): @@ -79,9 +79,9 @@ class TouchSliderWizard(FootprintWizardPlugin): size_pad = wxSize(step_length/2.0+(step_length/3),touch_width) pad = self.smdRectPad(module,size_pad,position-wxPoint(step_length/6,0),name) module.Add(pad) - - size_pad = wxSize(step_length/2.0,touch_width) - + + size_pad = wxSize(step_length/2.0,touch_width) + tp = self.smdTrianglePad(module,wxSize(size_pad[0],size_pad[1]/2), position+wxPoint(size_pad[0]/2,size_pad[1]/4), name) @@ -91,18 +91,18 @@ class TouchSliderWizard(FootprintWizardPlugin): name ,-1) module.Add(tp) - - # compound a "start pad" shape plus a triangle on the left, pointing to + + # compound a "start pad" shape plus a triangle on the left, pointing to # the previous touch-pad def AddMiddlePad(self,position,touch_width,step_length,clearance,name): module = self.module step_length = step_length - clearance size_pad = wxSize(step_length/2.0,touch_width) - + size_pad = wxSize(step_length/2.0,touch_width) pad = self.smdRectPad(module,size_pad,position,name) module.Add(pad) - + tp = self.smdTrianglePad(module,wxSize(size_pad[0],size_pad[1]/2), position+wxPoint(size_pad[0]/2,size_pad[1]/4), name) @@ -112,80 +112,82 @@ class TouchSliderWizard(FootprintWizardPlugin): name ,-1) module.Add(tp) - + tp = self.smdTrianglePad(module,wxSize(size_pad[0],size_pad[1]/2), position+wxPoint(-size_pad[0],0), name, 0, -1) module.Add(tp) - - + + def AddFinalPad(self,position,touch_width,step_length,clearance,name): module = self.module step_length = step_length - clearance size_pad = wxSize(step_length/2.0,touch_width) - + pad = self.smdRectPad(module, wxSize(size_pad[0]+(step_length/3),size_pad[1]), position+wxPoint(step_length/6,0), name) module.Add(pad) - + tp = self.smdTrianglePad(module,wxSize(size_pad[0],size_pad[1]/2), position+wxPoint(-size_pad[0],0), name, 0, -1) module.Add(tp) - + def AddStrip(self,pos,steps,touch_width,step_length,touch_clearance): self.AddStartPad(pos,touch_width,step_length,touch_clearance,"1") for n in range(2,steps): pos = pos + wxPoint(step_length,0) self.AddMiddlePad(pos,touch_width,step_length,touch_clearance,str(n)) - + pos = pos + wxPoint(step_length,0) self.AddFinalPad(pos,touch_width,step_length,touch_clearance,str(steps)) - - # build the footprint from parameters + + # build the footprint from parameters def BuildFootprint(self): - + module = MODULE(None) # create a new module self.module = module - + p = self.parameters - steps = int(p["Pads"]["*steps"]) - bands = int(p["Pads"]["*bands"]) + steps = int(p["Pads"]["*steps"]) + bands = int(p["Pads"]["*bands"]) touch_width = p["Pads"]["width"] touch_length = p["Pads"]["length"] touch_clearance = p["Pads"]["clearance"] - - step_length = float(touch_length) / float(steps) - + + step_length = float(touch_length) / float(steps) + module.SetReference("TS"+str(steps)) # give it a reference name module.Reference().SetPos0(wxPointMM(-1,-2)) module.Reference().SetPosition(wxPointMM(-1,-2)) - + # starting pad - + pos = wxPointMM(0,0) band_width = touch_width/bands - + for b in range(bands): self.AddStrip(pos,steps,band_width,step_length,touch_clearance) pos+=wxPoint(0,band_width) - - - - - module.SetLibRef("S"+str(steps)) -# create our footprint wizard -touch_slider_wizard = TouchSliderWizard() + module.SetLibRef("S"+str(steps)) + +def register(): + # create our footprint wizard + touch_slider_wizard = TouchSliderWizard() + + # register it into pcbnew + touch_slider_wizard.register() + + return touch_slider_wizard + -# register it into pcbnew -touch_slider_wizard.register()