def locking_clip(pins):
    x = (pins * 1.27 + 1.91) / 2.0
    size = [1.2, 1.2]
    l = ["*.Mask"]
    pads = []
    pads.append(pad("", "np_thru_hole", "circle", (+x, 0), size, l, drill=1.2))
    pads.append(pad("", "np_thru_hole", "circle", (-x, 0), size, l, drill=1.2))
    return pads
Example #2
0
def side_pth_mount(pins):
    x = ((2.0 * (pins - 1)) // 2) + 1.5
    size = [1.2, 1.2]
    layers = ["*.Mask"]
    return [
        pad("", "np_thru_hole", "circle", (x, -2.1), size, layers, drill=1.2),
        pad("", "np_thru_hole", "circle", (-x, -2.1), size, layers, drill=1.2)
    ]
def locking_clip(pins):
    x = (pins * 1.27 + 1.91) / 2.0
    size = [1.2, 1.2]
    l = ["*.Mask"]
    pads = []
    pads.append(pad("", "np_thru_hole", "circle", (+x, 0), size, l, drill=1.2))
    pads.append(pad("", "np_thru_hole", "circle", (-x, 0), size, l, drill=1.2))
    return pads
def side_pth_mount(pins):
    x = ((2.0 * (pins - 1)) // 2) + 1.5
    size = [1.2, 1.2]
    layers = ["*.Mask"]
    return [
        pad("", "np_thru_hole", "circle", (x, -2.1), size, layers, drill=1.2),
        pad("", "np_thru_hole", "circle", (-x, -2.1), size, layers, drill=1.2)
    ]
Example #5
0
def pads(conf):
    """Place the part pads."""
    out = []
    x = conf['pitch'] / 2.0
    layers = ["F.Cu", "F.Mask", "F.Paste"]
    out.append(pad(1, "smd", "rect", (-x, 0), conf['pad_shape'], layers))
    out.append(pad(2, "smd", "rect", (+x, 0), conf['pad_shape'], layers))
    return out
Example #6
0
def pads(conf):
    """Place the part pads."""
    out = []
    x = conf['pitch'] / 2.0
    layers = ["F.Cu", "F.Mask", "F.Paste"]
    out.append(pad(1, "smd", "rect", (-x, 0), conf['pad_shape'], layers))
    out.append(pad(2, "smd", "rect", (+x, 0), conf['pad_shape'], layers))
    return out
Example #7
0
def sfml_pads(pins):
    pads = []
    x = -((pins - 1) / 2.0) * 1.27
    for pin in range(pins):
        pads.append(pad(pin*2 + 1, "smd", "rect", (x, -1.365), [0.74, 2.22],
                        ["F.Cu", "F.Mask", "F.Paste"]))
        pads.append(pad(pin*2 + 2, "smd", "rect", (x, 1.365), [0.74, 2.22],
                        ["F.Cu", "F.Mask", "F.Paste"]))
        x += 1.27
    return pads
def sfml_pads(pins):
    pads = []
    x = -((pins - 1) / 2.0) * 1.27
    for pin in range(pins):
        pads.append(pad(pin*2 + 1, "smd", "rect", (x, -1.365), [0.74, 2.22],
                        ["F.Cu", "F.Mask", "F.Paste"]))
        pads.append(pad(pin*2 + 2, "smd", "rect", (x, 1.365), [0.74, 2.22],
                        ["F.Cu", "F.Mask", "F.Paste"]))
        x += 1.27
    return pads
Example #9
0
def dil_pads(pins):
    pads = []
    x = -((pins - 1) / 2) * 2.54
    for pin in range(pins):
        shape = "rect" if 2*pin+1 == 1 else "circle"
        pads.append(pad(2*pin + 1, "thru_hole", shape, (x, 1.27), [1.9, 1.9],
                        ["*.Cu", "F.SilkS", "F.Mask", "B.Mask"], drill=[1.0]))
        pads.append(pad(2*pin + 2, "thru_hole", "circle", (x, -1.27),
                        [1.9, 1.9], ["*.Cu", "F.SilkS", "F.Mask", "B.Mask"],
                        drill=[1.0]))
        x += 2.54
    return pads
Example #10
0
def exposed_pad(conf):
    """
    Compute pads for an exposed pad, which might have separate mask and paste
    apertures.
    """
    out = []
    ep_shape = conf['ep_shape']
    ep_layers = ["F.Cu"]
    ep_m_mask = None
    ep_m_paste = None

    # Mask apertures
    if "ep_mask_shape" not in conf:
        ep_layers.append("F.Mask")
        ep_m_mask = 0.001
    else:
        mask_shape = conf['ep_mask_shape']
        apertures = inner_apertures(ep_shape, mask_shape)
        layers = ["F.Mask"]
        for ap in apertures:
            out.append(pad("", "smd", "rect", ap, mask_shape[:2], layers,
                           m_mask=.001))

    # Paste apertures
    if "ep_paste_shape" not in conf:
        ep_layers.append("F.Paste")
        ep_m_paste = 0.001
    else:
        paste_shape = conf['ep_paste_shape']
        apertures = inner_apertures(ep_shape, paste_shape)
        layers = ["F.Paste"]
        for ap in apertures:
            out.append(
                pad("", "smd", "rect", ap, paste_shape[:2], layers,
                    m_paste=.001))

    # Vias
    if "ep_vias" in conf:
        v_d, v_s, v_g = conf['ep_vias']
        centres = inner_apertures(ep_shape, (v_s, v_s, v_g, v_g))
        layers = ["*.Cu"]
        for c in centres:
            p = pad("EP", "thru_hole", "circle", c, (v_s, v_s), layers,
                    drill=v_d)
            p.append(("zone_connect", 2))
            out.append(p)

    out.append(
        pad("EP", "smd", "rect", (0, 0),
            ep_shape, ep_layers, m_mask=ep_m_mask, m_paste=ep_m_paste))
    return out
Example #11
0
def side_smd_mount(pins):
    out = []
    x = pins - 1
    for xx in (x+2.35, -x-2.35):
        out.append(pad("", "smd", "rect", (xx, -3.25), (1.8, 3.8),
                       ["F.Cu", "F.Mask", "F.Paste"]))
    return out
def top_smd_mount(pins):
    x = -(pins-1)/2 * 1.25 - 3.6 + 2.1/2
    out = []
    for xx in (x, -x):
        out.append(pad("", "smd", "rect", (xx, 0.6+3.0/2+1.3/2), (2.1, 3.0),
                       ["F.Cu", "F.Mask", "F.Paste"]))
    return out
Example #13
0
def pth_pads(pins):
    x = (pins - 1)*1.25
    pads = []
    for pin in range(pins):
        pads.append(pad(pin+1, "thru_hole", "circle", (x, 0), [1.8, 1.8],
                        ["*.Cu", "*.Mask"], drill=1.0))
        x -= 2.5
    return pads
def top_smd_pads(pins):
    x = -(pins-1)/2 * 1.25
    pads = []
    for pin in range(pins):
        pads.append(pad(pin+1, "smd", "rect", (x, 0), [0.8, 1.3],
                        ["F.Cu", "F.Mask", "F.Paste"]))
        x += 1.25
    return pads
Example #15
0
def side_smd_mount(pins):
    out = []
    x = pins - 1
    for xx in (x + 2.35, -x - 2.35):
        out.append(
            pad("", "smd", "rect", (xx, -3.25), (1.8, 3.8),
                ["F.Cu", "F.Mask", "F.Paste"]))
    return out
Example #16
0
def pth_pads(pins):
    x = (pins - 1)*1.25
    pads = []
    for pin in range(pins):
        pads.append(pad(pin+1, "thru_hole", "circle", (x, 0), [1.8, 1.8],
                        ["*.Cu", "*.Mask"], drill=1.0))
        x -= 2.5
    return pads
Example #17
0
def pth_pads(pins):
    x = pins - 1
    pads = []
    for pin in range(pins):
        pads.append(pad(pin+1, "thru_hole", "circle", (x, 0), [1.6, 1.6],
                        ["*.Cu", "*.Mask"], drill=0.8))
        x -= 2
    return pads
Example #18
0
def side_smd_pads(pins):
    x = pins - 1
    pads = []
    for pin in range(pins):
        pads.append(pad(pin+1, "smd", "rect", (x, 1.5-0.15), [1, 2.7+2*0.15],
                        ["F.Cu", "F.Mask", "F.Paste"]))
        x -= 2
    return pads
Example #19
0
def top_smd_pads(pins):
    x = pins - 1
    pads = []
    for pin in range(pins):
        pads.append(pad(pin+1, "smd", "rect", (x, 0), [1, 3.0],
                        ["F.Cu", "F.Mask", "F.Paste"]))
        x -= 2
    return pads
Example #20
0
def pad_row(centres, num, idx, shape, size, layers, skip):
    out = []
    for centre in centres:
        idx += 1
        if idx - 1 in skip:
            continue
        out.append(pad(num, "smd", shape, centre, size, layers))
        num += 1
    return num, idx, out
Example #21
0
def pad_row(centres, num, idx, shape, size, layers, skip):
    out = []
    for centre in centres:
        idx += 1
        if idx - 1 in skip:
            continue
        out.append(pad(num, "smd", shape, centre, size, layers))
        num += 1
    return num, idx, out
Example #22
0
def top_smd_pads(pins):
    x = pins - 1
    pads = []
    for pin in range(pins):
        pads.append(
            pad(pin + 1, "smd", "rect", (x, 0), [1, 3.0],
                ["F.Cu", "F.Mask", "F.Paste"]))
        x -= 2
    return pads
Example #23
0
def side_smd_pads(pins):
    x = pins - 1
    pads = []
    for pin in range(pins):
        pads.append(
            pad(pin + 1, "smd", "rect", (x, 1.5 - 0.15), [1, 2.7 + 2 * 0.15],
                ["F.Cu", "F.Mask", "F.Paste"]))
        x -= 2
    return pads
Example #24
0
def dil_pads(pins):
    pads = []
    x = -((pins - 1) / 2) * 2.54
    for pin in range(pins):
        shape = "rect" if 2 * pin + 1 == 1 else "circle"
        pads.append(
            pad(2 * pin + 1,
                "thru_hole",
                shape, (x, 1.27), [1.9, 1.9],
                ["*.Cu", "F.SilkS", "F.Mask", "B.Mask"],
                drill=[1.0]))
        pads.append(
            pad(2 * pin + 2,
                "thru_hole",
                "circle", (x, -1.27), [1.9, 1.9],
                ["*.Cu", "F.SilkS", "F.Mask", "B.Mask"],
                drill=[1.0]))
        x += 2.54
    return pads
Example #25
0
def bga_pads(conf):
    out = []
    layers = ["F.Cu", "F.Mask", "F.Paste"]
    size = [conf['pad_shape']] * 2
    margin = (conf['mask_shape'] - conf['pad_shape']) / 2.0
    for num, centre in bga_pin_centres(conf).items():
        p = pad(num, "smd", "circle", centre, size, layers)
        p.append(["solder_mask_margin", margin])
        out.append(p)
    return out
Example #26
0
def pth_pads(pins):
    x = pins - 1
    pads = []
    for pin in range(pins):
        pads.append(
            pad(pin + 1,
                "thru_hole",
                "circle", (x, 0), [1.6, 1.6], ["*.Cu", "*.Mask"],
                drill=0.8))
        x -= 2
    return pads
Example #27
0
def exposed_pad(conf):
    """
    Compute pads for an exposed pad, which might have separate mask and paste
    apertures.
    """
    out = []
    ep_shape = conf['ep_shape']
    ep_layers = ["F.Cu"]
    ep_m_mask = None
    ep_m_paste = None

    # Mask apertures
    if "ep_mask_shape" not in conf:
        ep_layers.append("F.Mask")
        ep_m_mask = 0.001
    else:
        mask_shape = conf['ep_mask_shape']
        apertures = inner_apertures(ep_shape, mask_shape)
        layers = ["F.Mask"]
        for ap in apertures:
            out.append(
                pad("", "smd", "rect", ap, mask_shape[:2], layers,
                    m_mask=.001))

    # Paste apertures
    if "ep_paste_shape" not in conf:
        ep_layers.append("F.Paste")
        ep_m_paste = 0.001
    else:
        paste_shape = conf['ep_paste_shape']
        apertures = inner_apertures(ep_shape, paste_shape)
        layers = ["F.Paste"]
        for ap in apertures:
            out.append(
                pad("",
                    "smd",
                    "rect",
                    ap,
                    paste_shape[:2],
                    layers,
                    m_paste=.001))

    # Vias
    if "ep_vias" in conf:
        v_d, v_s, v_g = conf['ep_vias']
        centres = inner_apertures(ep_shape, (v_s, v_s, v_g, v_g))
        layers = ["*.Cu"]
        for c in centres:
            p = pad("EP",
                    "thru_hole",
                    "circle",
                    c, (v_s, v_s),
                    layers,
                    drill=v_d)
            p.append(("zone_connect", 2))
            out.append(p)

    out.append(
        pad("EP",
            "smd",
            "rect", (0, 0),
            ep_shape,
            ep_layers,
            m_mask=ep_m_mask,
            m_paste=ep_m_paste))
    return out