def external_silk(conf):
    out = []

    rows = conf['rows']
    chip_shape = conf['chip_shape']
    w = silk_width
    l = "F.SilkS"
    x = chip_shape[0]/2.0
    y = chip_shape[1]/2.0

    if rows == 2:
        r = silk_pin1_er
        out.append(fp_line((-x+2*r, -y), (x, -y), l, w))
        out.append(fp_line((-x, y), (x, y), l, w))
        out.append(fp_arc((-x+r, -y), (-x, -y), 180, l, w))
    elif rows == 4:
        pins = conf['pins'] / rows
        pin_y = ((pins - 1) * conf['pin_pitch']) / 2.0
        chip_y = chip_shape[1] / 2.0
        delta_y = chip_y - pin_y
        r = delta_y - silk_pad_egap

        # NW
        out.append(fp_line((-x, -y+r), (-x+r, -y), l, w))
        # NE
        out.append(fp_line((x-r, -y), (x, -y), l, w))
        out.append(fp_line((x, -y), (x, -y+r), l, w))
        # SE
        out.append(fp_line((x-r, y), (x, y), l, w))
        out.append(fp_line((x, y), (x, y-r), l, w))
        # SW
        out.append(fp_line((-x+r, y), (-x, y), l, w))
        out.append(fp_line((-x, y), (-x, y-r), l, w))

    return out
Remove the given `callable_` from the observers of a field.
dataset/ETHPy150Open adamgreig/agg-kicad/scripts/build_mod_ic.py/external_silk--crossover with--dataset/ETHPy150Open VisTrails/VisTrails/vistrails/core/configuration.py/ConfigurationObject.unsubscribe