diff --git a/pcbnew/python/plugins/FPC_wizard.py b/pcbnew/python/plugins/FPC_wizard.py index 96d7ace893..0a9721681e 100644 --- a/pcbnew/python/plugins/FPC_wizard.py +++ b/pcbnew/python/plugins/FPC_wizard.py @@ -101,6 +101,7 @@ class FPC_FootprintWizard(FootprintWizardBase.FootprintWizard): self.module.Add(pad_s1) # add footprint outline + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 linewidth = self.draw.GetLineThickness() margin = linewidth diff --git a/pcbnew/python/plugins/bga_wizard.py b/pcbnew/python/plugins/bga_wizard.py index 6705450800..e2b5aceb8a 100644 --- a/pcbnew/python/plugins/bga_wizard.py +++ b/pcbnew/python/plugins/bga_wizard.py @@ -99,11 +99,13 @@ class BGAWizard(FootprintWizardBase.FootprintWizard): bevel = pcbnew.FromMM(1) # Box with 1mm bevel as per IPC7351C + self.draw.SetLineThickness( pcbnew.FromMM( 0.1 ) ) #Default per KLC F5.2 as of 12/2018 self.draw.BoxWithDiagonalAtCorner(0, 0, ssx*2, ssy*2, bevel) # Add IPC markings to F_Silk layer - self.draw.SetLayer(pcbnew.F_SilkS) - offset = pcbnew.FromMM(0.15) + self.draw.SetLayer( pcbnew.F_SilkS ) + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 + offset = self.draw.GetLineThickness() len_x = 0.5 * ssx len_y = 0.5 * ssy diff --git a/pcbnew/python/plugins/circular_pad_array_wizard.py b/pcbnew/python/plugins/circular_pad_array_wizard.py index 28ee00d03d..fc7e96f8ba 100644 --- a/pcbnew/python/plugins/circular_pad_array_wizard.py +++ b/pcbnew/python/plugins/circular_pad_array_wizard.py @@ -101,11 +101,12 @@ class circular_pad_array_wizard(FootprintWizardBase.FootprintWizard): # Draw the outline body_radius = outline['diameter'] / 2 self.draw.SetLayer(pcbnew.F_Fab) - self.draw.GetLineThickness() + self.draw.SetLineThickness( pcbnew.FromMM( 0.1 ) ) #Default per KLC F5.2 as of 12/2018 self.draw.Circle(0, 0, body_radius) #silkscreen - body_radius += pcbnew.FromMM(0.15) + body_radius += pcbnew.FromMM(0.12) + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 self.draw.SetLayer(pcbnew.F_SilkS) self.draw.Circle(0, 0, body_radius) diff --git a/pcbnew/python/plugins/microMatch_connectors.py b/pcbnew/python/plugins/microMatch_connectors.py index e8134bdcac..8a66b996b5 100644 --- a/pcbnew/python/plugins/microMatch_connectors.py +++ b/pcbnew/python/plugins/microMatch_connectors.py @@ -148,6 +148,8 @@ class MicroMaTchWizard(FPWbase.FootprintWizard): width = pcbnew.FromMM(1.92) + (numPads * padPitch) / 2 height = pcbnew.FromMM(5) + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 + # Left part # -- # | diff --git a/pcbnew/python/plugins/qfn_wizard.py b/pcbnew/python/plugins/qfn_wizard.py index c45e261e8c..18a3db095e 100644 --- a/pcbnew/python/plugins/qfn_wizard.py +++ b/pcbnew/python/plugins/qfn_wizard.py @@ -34,9 +34,9 @@ class QFNWizard(FootprintWizardBase.FootprintWizard): #TODO - Allow different number of pads in x and y directions self.AddParam("Pads", "n", self.uInteger, 100, multiple=4, min_value=4) - self.AddParam("Pads", "pitch", self.uMM, 0.5, designator='e') - self.AddParam("Pads", "width", self.uMM, 0.25, designator='X1') - self.AddParam("Pads", "length", self.uMM, 1.5, designator='Y1') + self.AddParam("Pads", "pitch", self.uMM, 0.4, designator='e') + self.AddParam("Pads", "width", self.uMM, 0.2, designator='X1') + self.AddParam("Pads", "length", self.uMM, 0.75, designator='Y1') self.AddParam("Pads", "fillet", self.uMM, 0.3) self.AddParam("Pads", "oval", self.uBool, True) @@ -45,9 +45,9 @@ class QFNWizard(FootprintWizardBase.FootprintWizard): self.AddParam("EPad", "length", self.uMM, 10, designator="D2") self.AddParam("EPad", "thermal vias", self.uBool, False) self.AddParam("EPad", "thermal vias drill", self.uMM, 1, min_value=0.1) - self.AddParam("EPad", "x divisions", self.uInteger, 2, min_value=1) - self.AddParam("EPad", "y divisions", self.uInteger, 2, min_value=1) - self.AddParam("EPad", "paste margin", self.uMM, 0.1) + self.AddParam("EPad", "x divisions", self.uInteger, 4, min_value=1) + self.AddParam("EPad", "y divisions", self.uInteger, 4, min_value=1) + self.AddParam("EPad", "paste margin", self.uMM, 0.75) self.AddParam("Package", "width", self.uMM, 14, designator='E') self.AddParam("Package", "height", self.uMM, 14, designator='D') @@ -188,17 +188,19 @@ class QFNWizard(FootprintWizardBase.FootprintWizard): self.draw.BoxWithDiagonalAtCorner(0, 0, w, h, bevel) # Silkscreen - self.draw.SetLayer(pcbnew.F_SilkS) + self.draw.SetLayer( pcbnew.F_SilkS ) offset = self.draw.GetLineThickness() clip = row_len / 2 + self.pads['pitch'] + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 self.draw.Polyline( [ [ clip, -h/2-offset], [ w/2+offset,-h/2-offset], [ w/2+offset, -clip] ] ) # top right self.draw.Polyline( [ [ clip, h/2+offset], [ w/2+offset, h/2+offset], [ w/2+offset, clip] ] ) # bottom right self.draw.Polyline( [ [-clip, h/2+offset], [-w/2-offset, h/2+offset], [-w/2-offset, clip] ] ) # bottom left # Add pin-1 indication as per IPC-7351C - self.draw.Line(-clip, -h/2-offset, -w/2-pad_length/2, -h/2-offset) + self.draw.Line( -clip, -h/2-offset, -w/2-pad_length/2, -h/2-offset ) + self.draw.SetLineThickness( offset ) #Restore default # Courtyard cmargin = self.package["margin"] @@ -219,7 +221,7 @@ class QFNWizard(FootprintWizardBase.FootprintWizard): #reference and value text_size = self.GetTextSize() # IPC nominal - text_offset = v_pitch / 2 + text_size + pad_length / 2 + text_offset = sizey / 2 + text_size self.draw.Value(0, text_offset, text_size) self.draw.Reference(0, -text_offset, text_size) diff --git a/pcbnew/python/plugins/qfp_wizard.py b/pcbnew/python/plugins/qfp_wizard.py index 4c18e89609..4dd686064f 100644 --- a/pcbnew/python/plugins/qfp_wizard.py +++ b/pcbnew/python/plugins/qfp_wizard.py @@ -114,6 +114,7 @@ class QFPWizard(FootprintWizardBase.FootprintWizard): # Add outline to F_Fab layer self.draw.SetLayer(pcbnew.F_Fab) + thick = self.draw.GetLineThickness() bevel = min( pcbnew.FromMM(1.0), self.package['width']/2, self.package['height']/2 ) @@ -127,10 +128,12 @@ class QFPWizard(FootprintWizardBase.FootprintWizard): bottom_edge = (v_pitch + pad_length) / 2 top_edge = -bottom_edge + self.draw.SetLineThickness( pcbnew.FromMM( 0.1 ) ) #Default per KLC F5.2 as of 12/2018 self.draw.BoxWithDiagonalAtCorner(0, 0, w, h, bevel) # Draw silkscreen - self.draw.SetLayer(pcbnew.F_SilkS) + self.draw.SetLayer( pcbnew.F_SilkS ) + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 #top left - as per IPC-7351C self.draw.Polyline([(-inner, -y), (-x, -y), (-x, -inner), (left_edge, -inner)]) @@ -143,16 +146,15 @@ class QFPWizard(FootprintWizardBase.FootprintWizard): # Courtyard cmargin = self.parameters["Package"]["courtyard margin"] - self.draw.SetLayer(pcbnew.F_CrtYd) - sizex = (right_edge + cmargin) * 2 - sizey = (bottom_edge + cmargin) * 2 + self.draw.SetLayer( pcbnew.F_CrtYd ) + sizex = ( right_edge + cmargin ) * 2 + sizey = ( bottom_edge + cmargin ) * 2 # round size to nearest 0.1mm, rectangle will thus land on a 0.05mm grid - sizex = pcbnew.PutOnGridMM(sizex, 0.1) - sizey = pcbnew.PutOnGridMM(sizey, 0.1) - # set courtyard line thickness to the one defined in KLC - thick = self.draw.GetLineThickness() - self.draw.SetLineThickness(pcbnew.FromMM(0.05)) - self.draw.Box(0, 0, sizex, sizey) + sizex = pcbnew.PutOnGridMM( sizex, 0.1 ) + sizey = pcbnew.PutOnGridMM( sizey, 0.1 ) + + self.draw.SetLineThickness( pcbnew.FromMM( 0.05 ) ) #Default per KLC F5.3 as of 12/2018 + self.draw.Box( 0, 0, sizex, sizey ) # restore line thickness to previous value self.draw.SetLineThickness(pcbnew.FromMM(thick)) diff --git a/pcbnew/python/plugins/qrcode_footprint_wizard.py b/pcbnew/python/plugins/qrcode_footprint_wizard.py index a2a7aa0bbe..8667ef9e6e 100644 --- a/pcbnew/python/plugins/qrcode_footprint_wizard.py +++ b/pcbnew/python/plugins/qrcode_footprint_wizard.py @@ -36,9 +36,9 @@ class QRCodeWizard(FootprintWizardBase.FootprintWizard): self.AddParam("Barcode", "Use SilkS layer", self.uBool, False) self.AddParam("Barcode", "Use Cu layer", self.uBool, True) self.AddParam("Caption", "Enabled", self.uBool, True) - self.AddParam("Caption", "Height", self.uMM, 1.2) - self.AddParam("Caption", "Width", self.uMM, 1.2) - self.AddParam("Caption", "Thickness", self.uMM, 0.12) + self.AddParam("Caption", "Height", self.uMM, 1.0) + self.AddParam("Caption", "Width", self.uMM, 1.0) + self.AddParam("Caption", "Thickness", self.uMM, 0.15) def CheckParameters(self): diff --git a/pcbnew/python/plugins/sdip_wizard.py b/pcbnew/python/plugins/sdip_wizard.py index dfb9a0fccb..c83eb6f9d1 100644 --- a/pcbnew/python/plugins/sdip_wizard.py +++ b/pcbnew/python/plugins/sdip_wizard.py @@ -99,13 +99,14 @@ class RowedFootprint(FootprintWizardBase.FootprintWizard): ssx = -pin1_posX - ssx_offset ssy = -pin1_posY - ssy_offset + cmargin = self.draw.GetLineThickness() + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 self.DrawBox(ssx, ssy) # Courtyard - cmargin = self.draw.GetLineThickness() self.draw.SetLayer(pcbnew.F_CrtYd) - sizex = (ssx + cmargin) * 2 - sizey = (ssy + cmargin) * 2 + sizex = (pin1posX + cmargin) * 2 + pad_Hsize + thick + sizey = (pin1posY + cmargin) * 2 + pad_Vsize + thick # round size to nearest 0.1mm, rectangle will thus land on a 0.05mm grid sizex = pcbnew.PutOnGridMM(sizex, 0.1) sizey = pcbnew.PutOnGridMM(sizey, 0.1) diff --git a/pcbnew/python/plugins/zip_wizard.py b/pcbnew/python/plugins/zip_wizard.py index e348617797..75e03ca457 100644 --- a/pcbnew/python/plugins/zip_wizard.py +++ b/pcbnew/python/plugins/zip_wizard.py @@ -85,13 +85,14 @@ class RowedFootprint(FootprintWizardBase.FootprintWizard): if cornery < linew: cornery = linew + thick = self.draw.GetLineThickness() + self.draw.SetLineThickness( pcbnew.FromMM( 0.12 ) ) #Default per KLC F5.1 as of 12/2018 self.DrawBox(leftx*2, cornery*2) # Courtyard cmarginx = self.body['courtyard margin'] cmarginy = cmarginx self.draw.SetLayer(pcbnew.F_CrtYd) - thick = self.draw.GetLineThickness() sizex = (pin1posX + cmarginx) * 2 + pad_Hsize + thick sizey = (pin1posY + cmarginy) * 2 + pad_Vsize + thick # round size to nearest 0.1mm, rectangle will thus land on a 0.05mm grid