コード例 #1
0
    # create pads
    createNumberedPadsSMD(kicad_mod, pincount, pitch, {
        'x': pad_w,
        'y': pad_h
    }, -1.9 / 2)

    #add mounting pads (no number)
    mpad_w = 1.3
    mpad_h = 3.35
    mpad_x = A / 2 + 2.2 + 1.3 / 2
    mpad_y = 2.25 + 3.35 / 2 + 0.005

    kicad_mod.addPad('""', 'smd', 'rect', {
        'x': mpad_x,
        'y': mpad_y
    }, {
        'x': mpad_w,
        'y': mpad_h
    }, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
    kicad_mod.addPad('""', 'smd', 'rect', {
        'x': -mpad_x,
        'y': mpad_y
    }, {
        'x': mpad_w,
        'y': mpad_h
    }, 0, ['F.Cu', 'F.Paste', 'F.Mask'])

    x1 = -B / 2
    y1 = -0.4
    x2 = B / 2
    y2 = 5.5
コード例 #2
0
        # add the pads
        for r in range(rows):
            for p in range(pincount):

                Y = r * pitch
                X = p * pitch

                num = r + 1 + (p * rows)

                if num == 1:
                    type = "rect"
                else:
                    type = "circle"

                kicad_mod.addPad(
                    num, "thru_hole", type, {"x": X, "y": Y}, {"x": size, "y": size}, drill, ["*.Cu", "*.Mask"]
                )

        # add an outline around the pins

        y1 = -1
        x1 = -1
        x2 = (rows - 1) * pitch + 1
        y2 = (pincount - 1) * pitch + 1

        if rows == 1:
            kicad_mod.addPolygoneLine([{"y": x1, "x": y1 + pitch}, {"y": x2, "x": y1 + pitch}])

        elif rows == 2:
            kicad_mod.addPolygoneLine(
                [
コード例 #3
0
        'x': round_to(start_pos_x - 3.87 - 1.2 - 0.5, 0.05),
        'y': 3.2 + 0.5
    }, {
        'x': round_to(end_pos_x + 3.87 + 1.2 + 0.5, 0.05),
        'y': round_to(-pad_spacing - 3.2 - 0.5, 0.05)
    }, 'F.CrtYd', 0.05)

# create pads
pad_diameter = 1
pad_size = {'x': 1.7, 'y': 1.7}

for pad_number in range(1, pincount, 2):
    pad_pos_x = (pad_number - 1) / 2 * pad_spacing
    if pad_number == 1:
        kicad_mod.addPad(pad_number, 'thru_hole', 'rect', {
            'x': pad_pos_x,
            'y': 0
        }, pad_size, pad_diameter, ['*.Cu', '*.Mask', 'F.SilkS'])
    else:
        kicad_mod.addPad(pad_number, 'thru_hole', 'circle', {
            'x': pad_pos_x,
            'y': 0
        }, pad_size, pad_diameter, ['*.Cu', '*.Mask', 'F.SilkS'])

    kicad_mod.addPad(pad_number + 1, 'thru_hole', 'circle', {
        'x': pad_pos_x,
        'y': -pad_spacing
    }, pad_size, pad_diameter, ['*.Cu', '*.Mask', 'F.SilkS'])

# output kicad model
print(kicad_mod)
コード例 #4
0
        #add the pads
        for r in range(rows):
            for p in range(pincount):

                Y = r * pitch
                X = p * pitch

                num = r + 1 + (p * rows)

                if (num == 1): type = "rect"
                else: type = "circle"

                kicad_mod.addPad(num, "thru_hole", type, {
                    'x': X,
                    'y': Y
                }, {
                    'x': size,
                    'y': size
                }, drill, ['*.Cu', '*.Mask'])

        #add an outline around the pins

        y1 = -1
        x1 = -1
        x2 = (rows - 1) * pitch + 1
        y2 = (pincount - 1) * pitch + 1

        if rows == 1:
            kicad_mod.addPolygoneLine([{
                'y': x1,
                'x': y1 + pitch
コード例 #5
0
    kicad_mod.setCenterPos({'x':0,'y':0.4})
    
    #component values
    A = (pincount - 1) * pitch
    B = A + 2.9
    
    # create pads
    createNumberedPadsSMD(kicad_mod, pincount, pitch, {'x':pad_w,'y':pad_h},-1)
    
    #add mounting pads (no number)
    mpad_w = 1.6
    mpad_h = 2.2
    mpad_x = (B/2) + (mpad_w/2)
    mpad_y = 1.8

    kicad_mod.addPad('""', 'smd', 'rect', {'x':mpad_x, 'y':mpad_y}, {'x':mpad_w, 'y':mpad_h}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
    kicad_mod.addPad('""', 'smd', 'rect', {'x':-mpad_x, 'y':mpad_y}, {'x':mpad_w, 'y':mpad_h}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])

    
    A = (pincount - 1) * pitch
    B = A + 2.9 + 1.5
    
    x1 = -B/2
    y1 = 0
    x2 = B / 2
    y2 = 3.5
    
    #draw the connector outline on the F.Fab layer
    kicad_mod.addRectLine(
        {'x': x1,'y': y1},
        {'x': x2,'y': y2},
                          ,{'x':end_pos_x+2.95-0.8, 'y':-0.6}
                          ,{'x':end_pos_x+2.95, 'y':-0.6}
                          ,{'x':end_pos_x+2.95, 'y':3.5}]
                          ,'F.SilkS', 0.15)

kicad_mod.addLine({'x':end_pos_x+2.95-0.8, 'y':1}, {'x':end_pos_x+2.95, 'y':1}, 'F.SilkS', 0.15)

kicad_mod.addLine({'x':start_pos_x-1.2, 'y':7}, {'x':end_pos_x+1.2, 'y':7}, 'F.SilkS', 0.15)

kicad_mod.addRectLine({'x':start_pos_x-1.2, 'y':2.1}, {'x':start_pos_x-0.2, 'y':5.5}, 'F.SilkS', 0.15)
kicad_mod.addRectLine({'x':end_pos_x+1.2, 'y':2.1}, {'x':end_pos_x+0.2, 'y':5.5}, 'F.SilkS', 0.15)

for i in range(0, pincount-1):
    middle_x = start_pos_x+1+i*2
    start_x = middle_x-0.1
    end_x = middle_x+0.1
    kicad_mod.addLine({'x':start_x, 'y':1}, {'x':end_x, 'y':1}, 'F.SilkS', 0.15)

kicad_mod.addCircle({'x':start_pos_x-2.95+0.8+0.75, 'y':0.25}, {'x':0.25, 'y':0}, 'F.SilkS', 0.15)

# create Courtyard
kicad_mod.addRectLine({'x':start_pos_x-1.6-1.6-0.5, 'y':7.25+0.275+0.25}, {'x':end_pos_x+1.6+1.6+0.5, 'y':-1.75-0.275-0.25}, 'F.CrtYd', 0.05)

# create pads
createNumberedPadsSMD(kicad_mod, pincount, 2, {'x':1, 'y':3.5}, 0)
kicad_mod.addPad('""', 'smd', 'rect', {'x':start_pos_x-1.6-1.6/2, 'y':5.55}, {'x':1.6, 'y':3.4}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
kicad_mod.addPad('""', 'smd', 'rect', {'x':end_pos_x+1.6+1.6/2, 'y':5.55}, {'x':1.6, 'y':3.4}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])

# output kicad model
print(kicad_mod)
    {
        'x': start_pos_x - 1.6 - 1.6 - 0.5,
        'y': 5.6 + 0.275 + 0.25
    }, {
        'x': end_pos_x + 1.6 + 1.6 + 0.5,
        'y': -1.9 - 0.275 - 0.25
    }, 'F.CrtYd', 0.05)

# create pads
createNumberedPadsSMD(kicad_mod, pincount, 2, {
    'x': 1,
    'y': 5.5
}, 4.75 - 1.9)  #TODO y
kicad_mod.addPad('""', 'smd', 'rect', {
    'x': start_pos_x - 1.6 - 1.6 / 2,
    'y': 0.6
}, {
    'x': 1.6,
    'y': 3
}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
kicad_mod.addPad('""', 'smd', 'rect', {
    'x': end_pos_x + 1.6 + 1.6 / 2,
    'y': 0.6
}, {
    'x': 1.6,
    'y': 3
}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])

# output kicad model
print(kicad_mod)
コード例 #8
0
    {
        'x': start_pos_x - 0.7 - 1.2 - 0.5,
        'y': 4.775 + 0.5 + 0.0125
    }, {
        'x': end_pos_x + 0.7 + 1.2 + 0.5,
        'y': -0.775 - 0.5 - 0.0375
    }, 'F.CrtYd', 0.05)

# create pads
createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, {
    'x': 0.6,
    'y': 1.55
}, 0)
kicad_mod.addPad('""', 'smd', 'rect', {
    'x': start_pos_x - 0.7 - 1.2 / 2,
    'y': 3.875
}, {
    'x': 1.2,
    'y': 1.8
}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
kicad_mod.addPad('""', 'smd', 'rect', {
    'x': end_pos_x + 0.7 + 1.2 / 2,
    'y': 3.875
}, {
    'x': 1.2,
    'y': 1.8
}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])

# output kicad model
print(kicad_mod)
kicad_mod.addLine({'x':start_pos_x-2.4-0.25, 'y':-pad_spacing-3.2-0.1}, {'x':start_pos_x-2.4+0.25, 'y':-pad_spacing-3.2-0.1}, 'F.SilkS', 0.15)

# triangle which is pointing at 1
kicad_mod.addPolygoneLine([{'x':start_pos_x-2.2, 'y':0.6}
                          ,{'x':start_pos_x-2.2, 'y':-0.6}
                          ,{'x':start_pos_x-1.6, 'y':0}
                          ,{'x':start_pos_x-2.2, 'y':0.6}], 'F.SilkS', 0.15)

# create Courtyard
def round_to(n, precision):
    correction = 0.5 if n >= 0 else -0.5
    return int( n/precision+correction ) * precision

kicad_mod.addRectLine({'x':round_to(start_pos_x-3.87-1.2-0.5,0.05), 'y':3.2+0.5}, {'x':round_to(end_pos_x+3.87+1.2+0.5,0.05), 'y':round_to(-pad_spacing-3.2-0.5,0.05)}, 'F.CrtYd', 0.05)

# create pads
pad_diameter = 1
pad_size = {'x':1.7, 'y':1.7}

for pad_number in range(1, pincount, 2):
    pad_pos_x = (pad_number-1)/2*pad_spacing
    if pad_number == 1:
        kicad_mod.addPad(pad_number, 'thru_hole', 'rect', {'x':pad_pos_x, 'y':0}, pad_size, pad_diameter, ['*.Cu', '*.Mask', 'F.SilkS'])
    else:
        kicad_mod.addPad(pad_number, 'thru_hole', 'circle', {'x':pad_pos_x, 'y':0}, pad_size, pad_diameter, ['*.Cu', '*.Mask', 'F.SilkS'])

    kicad_mod.addPad(pad_number+1, 'thru_hole', 'circle', {'x':pad_pos_x, 'y':-pad_spacing}, pad_size, pad_diameter, ['*.Cu', '*.Mask', 'F.SilkS'])

# output kicad model
print(kicad_mod)
kicad_mod.addRectLine({'x':end_pos_x+1, 'y':1.6}, {'x':end_pos_x+1.5, 'y':1.6}, 'F.SilkS', 0.15)

kicad_mod.addPolygoneLine([{'x':start_pos_x-0.4, 'y':0.2}
                          ,{'x':start_pos_x-0.4, 'y':-0.3}
                          ,{'x':end_pos_x+0.4, 'y':-0.3}
                          ,{'x':end_pos_x+0.4, 'y':0.2}] 
                          ,'F.SilkS', 0.15)
                          
kicad_mod.addPolygoneLine([{'x':start_pos_x-0.4, 'y':0.8}
                          ,{'x':start_pos_x-0.4, 'y':2.525-1.55/2-0.3}
                          ,{'x':end_pos_x+0.4, 'y':2.525-1.55/2-0.3}
                          ,{'x':end_pos_x+0.4, 'y':0.8}] 
                          ,'F.SilkS', 0.15)                     
                          
for i in range(0, pincount):
    middle_x = start_pos_x+i*pad_spacing
    kicad_mod.addLine({'x':middle_x, 'y':0.2}, {'x':middle_x, 'y':0.4}, 'F.SilkS', 0.15)

kicad_mod.addCircle({'x':start_pos_x-1, 'y':2.2+0.65}, {'x':0.25, 'y':0}, 'F.SilkS', 0.15)

# create Courtyard
kicad_mod.addRectLine({'x':start_pos_x-0.7-1.2-0.5, 'y':3.3+0.5+0.0125}, {'x':end_pos_x+0.7+1.2+0.5, 'y':-0.9-0.5-0.0375}, 'F.CrtYd', 0.05)

# create pads
createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, {'x':0.6, 'y':1.55}, 2.525)
kicad_mod.addPad('""', 'smd', 'rect', {'x':start_pos_x-0.7-1.2/2, 'y':0}, {'x':1.2, 'y':1.8}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])
kicad_mod.addPad('""', 'smd', 'rect', {'x':end_pos_x+0.7+1.2/2, 'y':0}, {'x':1.2, 'y':1.8}, 0, ['F.Cu', 'F.Paste', 'F.Mask'])

# output kicad model
print(kicad_mod)
コード例 #11
0
    # create outline
    # create Courtyard
    # output kicad model

    # create pads
    createNumberedPadsSMD(kicad_mod, pincount, pad_spacing, {"x": pad_w, "y": pad_h}, -4.55)

    # add mounting pads (no number)
    mpad_w = 1.0
    mpad_h = 2.8
    mpad_x = (B / 2) - (mpad_w / 2)
    mpad_y = -1.35

    kicad_mod.addPad(
        '""', "smd", "rect", {"x": mpad_x, "y": mpad_y}, {"x": mpad_w, "y": mpad_h}, 0, ["F.Cu", "F.Paste", "F.Mask"]
    )
    kicad_mod.addPad(
        '""', "smd", "rect", {"x": -mpad_x, "y": mpad_y}, {"x": mpad_w, "y": mpad_h}, 0, ["F.Cu", "F.Paste", "F.Mask"]
    )

    T = 0.5

    # add bottom line
    kicad_mod.addPolygoneLine([{"x": -B / 2 + mpad_w + 0.6, "y": -0.1}, {"x": B / 2 - mpad_w - 0.6, "y": -0.1}])

    # add left line
    kicad_mod.addPolygoneLine(
        [
            {"x": -B / 2 - 0.1, "y": -3.3},
            {"x": -B / 2 - 0.1, "y": -4.4},
コード例 #12
0
        # set general values
        kicad_mod.addText('reference', 'REF**', {'x':0, 'y':-5}, 'F.SilkS')
        kicad_mod.addText('value', footprint_name, {'x':0, 'y':-3}, 'F.Fab')
        
        #add the pads
        for r in range(rows):
            for p in range(pincount):
                X = r * pitch
                Y = p * pitch
                
                num = r + 1 + (p * rows)
                
                if num == 1: type = "rect"
                else: type = "circle"
                
                kicad_mod.addPad(num, "thru_hole", type, {'x':X,'y':Y}, {'x':size,'y':size}, drill, ['*.Cu', '*.Mask'])

        #add an outline around the pins
        
        y1 = -1
        x1 = -1
        x2 = (rows - 1) * pitch + 1
        y2 = (pincount - 1) * pitch + 1
        
        if rows == 1:
            kicad_mod.addPolygoneLine([{'x':x1,'y':y1 + pitch},{'x':x2,'y':y1+pitch}])
            
        elif rows == 2:
            kicad_mod.addPolygoneLine([{'x':x1,'y':y1 + pitch},
                                       {'x':x1 + pitch,'y':y1+pitch},
                                       {'x':x1 + pitch,'y':y1},