diff options
-rwxr-xr-x | gen | 105 | ||||
-rw-r--r-- | ipc_sm_782.py | 28 |
2 files changed, 67 insertions, 66 deletions
@@ -15,42 +15,6 @@ env.globals["rnd2"] = lambda x: round(x, 2) chip = env.get_template('CHIP.j2') -resc_heights = { - "1005": [0.15, 0.35, 0.37, 0.40], - "1608": [0.40], - "2012": [0.40], - "3216": [0.40], - "3225": [0.40], - "5025": [0.40], - "6332": [0.40], -} - -capc_heights = { - "1005": [0.15, 0.35, 0.37, 0.40], - "1608": [0.40], - "2012": [0.40, 1.35], - "3216": [0.40], - "3225": [0.40], - "5025": [0.40], - "6332": [0.40], -} - -ledsc_heights = { -# https://www.digikey.com/products/en/optoelectronics/led-indication-discrete/105?k=&pkeyword=&pv16=4&FV=ffe00069%2C1140003&mnonly=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=100 - "1005": [0.25, 0.35, 0.40, 0.45, 0.50, 0.52, 0.55, 0.60, 0.70, 0.71], - "1608": [0.20, 0.25, 0.28, 0.30, 0.35, 0.39, 0.40, 0.42, 0.45, 0.46, 0.50, 0.52, 0.55, 0.60, 0.65, 0.70, 0.71, 0.75, 0.80, 0.85, 0.90, 0.95, 1.00, 1.05, 1.10, 1.15], - "2012": [0.40, 0.45, 0.50, 0.70, 0.75, 0.79, 0.80, 0.84, 0.85, 0.90, 1.00, 1.10, 1.20, 1.25, 1.30, 2.10], -} - -def auto_str(cls): - def __str__(self): - return '%s(%s)' % ( - type(self).__name__, - ', '.join('%s=%s' % item for item in vars(self).items()) - ) - cls.__str__ = __str__ - return cls - class Value(object): def __init__(self, typ, mn, mx): @@ -68,6 +32,15 @@ def parse_courtyard(grid): (grid_y, grid_x) = grid_re.match(grid).groups() return (float(grid_x) * 0.5 / 2, float(grid_y) * 0.5 / 2) +def auto_str(cls): + def __str__(self): + return '%s(%s)' % ( + type(self).__name__, + ', '.join('%s=%s' % item for item in vars(self).items()) + ) + cls.__str__ = __str__ + return cls + @auto_str class ChipDimensions(object): @@ -108,12 +81,68 @@ class ChipLandPattern(object): pad_size_y = float(data["x"]), courtyard_x = courtyard_x, courtyard_y = courtyard_y) +resc_heights = { + "1005": [0.15, 0.35, 0.37, 0.40], + "1608": [0.40], + "2012": [0.40], + "3216": [0.40], + "3225": [0.40], + "5025": [0.40], + "6332": [0.40], + "7142": [0.89], +} + +capc_heights = { + "1005": [0.15, 0.35, 0.37, 0.40], + "1608": [0.40], + "2012": [0.40, 1.35], + "3216": [0.40], + "3225": [0.40], + "5025": [0.40], + "6332": [0.40], +} + +ledsc_heights = { +# https://www.digikey.com/products/en/optoelectronics/led-indication-discrete/105?k=&pkeyword=&pv16=4&FV=ffe00069%2C1140003&mnonly=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=100 + "1005": [0.25, 0.35, 0.40, 0.45, 0.50, 0.52, 0.55, 0.60, 0.70, 0.71], + "1608": [0.20, 0.25, 0.28, 0.30, 0.35, 0.39, 0.40, 0.42, 0.45, 0.46, 0.50, 0.52, 0.55, 0.60, 0.65, 0.70, 0.71, 0.75, 0.80, 0.85, 0.90, 0.95, 1.00, 1.05, 1.10, 1.15], + "2012": [0.40, 0.45, 0.50, 0.70, 0.75, 0.79, 0.80, 0.84, 0.85, 0.90, 1.00, 1.10, 1.20, 1.25, 1.30, 2.10], +} + #resc_dims = [ChipDimensions.from_ipc(p) for p in ipc_sm_782.data["resc"]["dimensions"]] -resc_lp = [ChipLandPattern.from_ipc(p) for p in ipc_sm_782.data["resc"]["land_patterns"]] +resc_land_patterns = ipc_sm_782.data["resc"]["land_patterns"] +# Some extra custom patterns +if False: + resc_land_dimensions.append({ + "size_mm": "710420", + "size_in": "2816", + "l_min": 7.10 - 0.2, + "l_max": 7.10 + 0.2, +# "s_min": +# "s_max": + "w_min": 4.20 - 0.2, + "w_max": 4.20 + 0.2, +# "t_min": +# "t_max": +# "h_max": + }) + resc_land_patterns.append({ +# "rlp_no": + "size_mm": "7142", + "size_in": "2816", +# "z": +# "g": +# "x": +# "y": +# "c": + "grid": "10x10", + }) +resc_lp = [ChipLandPattern.from_ipc(p) for p in resc_land_patterns] #capc_dims = [ChipDimensions.from_ipc(p) for p in ipc_sm_782.data["capc"]["dimensions"]] capc_lp = [ChipLandPattern.from_ipc(p) for p in ipc_sm_782.data["capc"]["land_patterns"]] -ledsc_lp = [ChipLandPattern.from_ipc(p) for p in ipc_sm_782.data["ledsc"]["land_patterns"]] +# We borrow the CAPC land patterns +ledsc_lp = [ChipLandPattern.from_ipc(p) for p in ipc_sm_782.data["capc"]["land_patterns"]] work = [\ ("RESC", resc_lp, resc_heights), \ diff --git a/ipc_sm_782.py b/ipc_sm_782.py index 8923c09..a5b2f6a 100644 --- a/ipc_sm_782.py +++ b/ipc_sm_782.py @@ -53,30 +53,6 @@ capc_land_patterns = make_dicts(["rlp_no", "size_mm", "size_in", "z", "g", "x", ("137A", "4564", "1825", 5.80, 2.00, 6.80, 1.90, 3.90, "14x12"), ) -# Copied from capc_dimensions -ledsc_dimensions = make_dicts(["size_mm", "size_in", "l_min", "l_max", "s_min", "s_max", "w_min", "w_max", "t_min", "t_max", "h_max"], - ("1005", "0402", 0.90, 1.10, 0.30, 0.65, 0.40, 0.60, 0.10, 0.30, 0.60), - ("1310", "0504", 1.02, 1.32, 0.26, 0.72, 0.77, 1.27, 0.13, 0.38, 1.02), - ("1608", "0603", 1.45, 1.75, 0.45, 0.97, 0.65, 0.95, 0.20, 0.50, 0.85), - ("2012", "0805", 1.80, 2.20, 0.30, 1.11, 1.05, 1.45, 0.25, 0.75, 1.10), - ("3216", "1206", 3.00, 3.40, 1.50, 2.31, 1.40, 1.80, 0.25, 0.75, 1.35), - ("3225", "1210", 3.00, 3.40, 1.50, 2.31, 2.30, 2.70, 0.25, 0.75, 1.35), - ("4532", "1812", 4.20, 4.80, 2.30, 3.46, 3.00, 3.40, 0.25, 0.95, 1.35), - ("4564", "1825", 4.20, 4.80, 2.30, 3.46, 6.00, 6.80, 0.25, 0.95, 1.10), -) - -# Copied from capc_land_patterns -ledsc_land_patterns = make_dicts(["rlp_no", "size_mm", "size_in", "z", "g", "x", "y", "c", "grid"], - ("130A", "1005", "0402", 2.20, 0.40, 0.70, 0.90, 1.30, "2x6"), - ("131A", "1310", "0504", 2.40, 0.40, 1.30, 1.00, 1.40, "4x6"), - ("132A", "1608", "0603", 2.80, 0.60, 1.00, 1.10, 1.70, "4x6"), - ("133A", "2012", "0805", 3.20, 0.60, 1.50, 1.30, 1.90, "4x8"), - ("134A", "3216", "1206", 4.40, 1.20, 1.80, 1.60, 2.80, "4x10"), - ("135A", "3225", "1210", 4.40, 1.20, 2.70, 1.60, 2.80, "6x10"), - ("136A", "4532", "1812", 5.80, 2.00, 3.40, 1.90, 3.90, "8x12"), - ("137A", "4564", "1825", 5.80, 2.00, 6.80, 1.90, 3.90, "14x12"), -) - data = dict( resc = dict( dimensions = resc_dimensions, @@ -86,8 +62,4 @@ data = dict( dimensions = capc_dimensions, land_patterns = capc_land_patterns ), - ledsc = dict( - dimensions = ledsc_dimensions, - land_patterns = ledsc_land_patterns - ) ) |