y2 += out # set general values kicad_mod.addText('reference', 'REF**', {'x': xMid, 'y': 3}, 'F.SilkS') kicad_mod.addText('value', footprint_name, {'x': xMid, 'y': -6.5}, 'F.Fab') dia = 1.25 drill = 0.7 y_spacing = -2.0 # create odd numbered pads createNumberedPadsTHT(kicad_mod, ceil(pincount / 2), pitch * 2, drill, { 'x': dia, 'y': dia }, increment=2) #create even numbered pads createNumberedPadsTHT(kicad_mod, floor(pincount / 2), pitch * 2, drill, { 'x': dia, 'y': dia }, starting=2, increment=2, y_off=y_spacing,
A = (pincount - 1) * pitch B = A + 2.9 # set general values kicad_mod.addText('reference', 'REF**', {'x':A/2, 'y':-4}, 'F.SilkS') #kicad_mod.addText('user', '%R', {'x':A/2, 'y':-4}, 'F.Fab') kicad_mod.addText('value', footprint_name, {'x':A/2, 'y':2.5}, 'F.Fab') drill = 0.6 x_dia = 0.95 y_dia = 1.25 # create pads createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {'x':x_dia, 'y':y_dia}) x1 = -(B-A) / 2 y1 = -2.2 x2 = x1 + B y2 = 1.2 #line offset off = 0.1 x1 -= off y1 -= off x2 += off y2 += off
,'F.SilkS', 0.15) #TODO kicad_mod.addPolygoneLine([{'x':0, 'y':-1.2} ,{'x':-0.4, 'y':-1.6} ,{'x':0.4, 'y':-1.6} ,{'x':0, 'y':-1.2}] ,'F.SilkS', 0.15) kicad_mod.addLine({'x':-1.95, 'y':0.25}, {'x':-1.95+0.7, 'y':0.25}, 'F.SilkS', 0.15) kicad_mod.addLine({'x':(pincount-1)*2+1.95, 'y':0.25}, {'x':(pincount-1)*2+1.95-0.7, 'y':0.25}, 'F.SilkS', 0.15) kicad_mod.addRectLine({'x':-1.3, 'y':2.5}, {'x':-0.3, 'y':4.1}, 'F.SilkS', 0.15) kicad_mod.addRectLine({'x':(pincount-1)*2+1.3, 'y':2.5}, {'x':(pincount-1)*2+0.3, 'y':4.1}, 'F.SilkS', 0.15) kicad_mod.addLine({'x':-0.3, 'y':4.1}, {'x':-0.3, 'y':6.25}, 'F.SilkS', 0.15) kicad_mod.addLine({'x':-0.8, 'y':4.1}, {'x':-0.8, 'y':6.25}, 'F.SilkS', 0.15) for i in range(0, pincount-1): middle_x = 1+i*2 start_x = middle_x-0.1 end_x = middle_x+0.1 kicad_mod.addLine({'x':start_x, 'y':0.25}, {'x':end_x, 'y':0.25}, 'F.SilkS', 0.15) # create Courtyard kicad_mod.addRectLine({'x':-1.95-0.5, 'y':6.25+0.5}, {'x':(pincount-1)*2+1.95+0.5, 'y':-1.35-0.5}, 'F.CrtYd', 0.05) # create pads createNumberedPadsTHT(kicad_mod, pincount, 2, 0.7, {'x':1.2, 'y':1.7}) # output kicad model print(kicad_mod)
'y': -2.4 }, { 'x': end_x, 'y': -3.02 }], 'F.SilkS', 0.15) def round_to(n, precision): correction = 0.5 if n >= 0 else -0.5 return int(n / precision + correction) * precision # create Courtyard kicad_mod.addRectLine( { 'x': round_to(start_pos_x - 2.54 / 2 - 0.5 - 0.03 - 0.1, 0.05), 'y': 2.98 + 0.5 + 0.02 }, { 'x': round_to(end_pos_x + 2.54 / 2 + 0.5 + 0.03 + 0.1, 0.05), 'y': -3.02 - 0.5 - 0.03 }, 'F.CrtYd', 0.05) # create pads createNumberedPadsTHT(kicad_mod, pincount, pad_spacing, 1.2, { 'x': 2, 'y': 2.6 }) # TODO pad? # output kicad model print(kicad_mod)
'y': 1.8 }, { 'x': end_x, 'y': 1.8 }, { 'x': end_x, 'y': 2.3 }], 'F.SilkS', 0.15) kicad_mod.addLine({ 'x': middle_x, 'y': 2.3 }, { 'x': middle_x, 'y': 1.8 }, 'F.SilkS', 0.15) # create Courtyard kicad_mod.addRectLine({ 'x': -1.95 - 0.5, 'y': 2.8 + 0.5 }, { 'x': (pincount - 1) * 2 + 1.95 + 0.5, 'y': -1.7 - 0.5 }, 'F.CrtYd', 0.05) # create pads createNumberedPadsTHT(kicad_mod, pincount, 2, 0.7, {'x': 1.2, 'y': 1.7}) # output kicad model print(kicad_mod)
,{'x':end_pos_x-2*pad_spacing, 'y':1.98} ,{'x':end_pos_x-2*pad_spacing, 'y':2.98}], 'F.SilkS', 0.15) kicad_mod.addPolygoneLine([{'x':end_pos_x, 'y':1.98} ,{'x':end_pos_x-0.25, 'y':1.55} ,{'x':end_pos_x-2*pad_spacing, 'y':1.55} ,{'x':end_pos_x-2*pad_spacing, 'y':1.98}], 'F.SilkS', 0.15) #kicad_mod.addLine({'x':end_pos_x-2*pad_spacing+0.25, 'y':2.98}, {'x':end_pos_x-2*pad_spacing+0.25, 'y':1.98}, 'F.SilkS', 0.15) kicad_mod.addLine({'x':end_pos_x-0.25, 'y':2.98}, {'x':end_pos_x-0.25, 'y':1.98}, 'F.SilkS', 0.15) for i in range(0, pincount): middle_x = start_pos_x+i*pad_spacing start_x = middle_x-1.6/2 end_x = middle_x+1.6/2 kicad_mod.addPolygoneLine([{'x':start_x, 'y':-3.02} ,{'x':start_x, 'y':-2.4} ,{'x':end_x, 'y':-2.4} ,{'x':end_x, 'y':-3.02}], 'F.SilkS', 0.15) def round_to(n, precision): correction = 0.5 if n >= 0 else -0.5 return int( n/precision+correction ) * precision # create Courtyard kicad_mod.addRectLine({'x':round_to(start_pos_x-2.54/2-0.5-0.03-0.1, 0.05), 'y':2.98+0.5+0.02}, {'x':round_to(end_pos_x+2.54/2+0.5+0.03+0.1, 0.05), 'y':-3.02-0.5-0.03}, 'F.CrtYd', 0.05) # create pads createNumberedPadsTHT(kicad_mod, pincount, pad_spacing, 1.2, {'x':2, 'y':2.6}) # TODO pad? # output kicad model print(kicad_mod)
x2 += out y1 -= out y2 += out # set general values kicad_mod.addText('reference', 'REF**', {'x':xMid, 'y':2}, 'F.SilkS') kicad_mod.addText('value', footprint_name, {'x':xMid, 'y':-6.5}, 'F.Fab') dia = 1.3 drill = 0.7 y_spacing = -2.0 # create odd numbered pads createNumberedPadsTHT(kicad_mod, ceil(pincount/2), pitch * 2, drill, {'x':dia, 'y':dia}, increment=2) #create even numbered pads createNumberedPadsTHT(kicad_mod, floor(pincount/2), pitch * 2, drill, {'x':dia, 'y':dia}, starting=2, increment=2, y_off=y_spacing, x_off=pitch) #add mounting hole (only for the -1D option which has the boss) if boss: kicad_mod.addMountingHole( {'x': -1.65, 'y': -3.8}, 1.1 ) #draw the courtyard cy=0.5 kicad_mod.addRectLine( {'x':x1-0.5,'y':y1-0.5},
B = A + 5.0 kicad_mod = KicadMod(footprint_name) kicad_mod.setDescription("JST EH series connector, " + jst + ", 2.50mm pitch, top entry") kicad_mod.setTags("connector jst eh top vertical straight") # set general values kicad_mod.addText("reference", "REF**", {"x": 0, "y": -3}, "F.SilkS") kicad_mod.addText("value", footprint_name, {"x": A / 2, "y": 3.5}, "F.Fab") drill = 0.9 dia = 1.85 # create pads createNumberedPadsTHT(kicad_mod, pincount, pitch, drill, {"x": dia, "y": dia}) x1 = -2.5 y1 = -1.6 x2 = x1 + B y2 = y1 + 3.8 # draw the main outline on F.Fab layer kicad_mod.addRectLine({"x": x1, "y": y1}, {"x": x2, "y": y2}, "F.Fab", 0.15) # line offset off = 0.15 x1 -= off y1 -= off