# -*- coding: utf-8 -*- u"""M6 手工补线清单(五个被自家邻脚封死的焊盘)。推导见方案 §26.6。""" W = 0.15 # 要删的旧线 (layer, x0,y0,x1,y1, net) —— 按端点匹配 DEL_SEGS = [ (2, 88.331, 32.565, 88.75, 30.015, 'VO'), # 13 脚的斜线 -> 换成 12-13 短接 (2, 89.25, 30.015, 89.25, 30.77, 'EFUSE_EN'), (2, 89.25, 30.77, 89.5, 31.0, 'EFUSE_EN'), (1, 89.5, 32.0, 89.5, 31.0, 'EFUSE_EN'), (1, 81.75, 32.0, 89.5, 32.0, 'EFUSE_EN'), (2, 91.75, 28.77, 92.0, 29.5, '$1N158'), ] DEL_VIAS = [(89.5, 31.0, 'EFUSE_EN'), (92.0, 29.5, '$1N158')] S = [] # (layer, x0,y0,x1,y1, w, net) V = [] # (x,y,net) def seg(l, pts, w, net): for a, b in zip(pts, pts[1:]): S.append((l, a[0], a[1], b[0], b[1], w, net)) # ── 让路:VO 12-13 短接、EFUSE_EN 改从 (89.05,32) 上顶层、$1N158 过孔改到 (92,28.77) seg(2, [(88.25, 30.015), (88.75, 30.015)], 0.3, 'VO') seg(2, [(89.25, 30.015), (89.25, 31.3), (89.05, 31.5), (89.05, 32.0)], 0.3, 'EFUSE_EN') V.append((89.05, 32.0, 'EFUSE_EN')) seg(1, [(89.05, 32.0), (81.75, 32.0)], 0.3, 'EFUSE_EN') seg(2, [(91.75, 28.77), (92.0, 28.77)], 0.15, '$1N158') V.append((92.0, 28.77, '$1N158')) seg(1, [(92.0, 28.77), (92.0, 29.5)], 0.15, '$1N158') # ── $1N147:U2.15 上逃 -> 顶层 y31.4 向西 -> x66.9 下来 -> y28.35 向东 -> 过孔落到 R9.2 上方 seg(2, [(89.751, 30.015), (89.75, 31.1), (90.05, 31.4), (90.6, 31.4)], W, '$1N147') V.append((90.6, 31.4, '$1N147')) seg(1, [(90.6, 31.4), (66.9, 31.4), (66.9, 28.35), (77.0, 28.35)], W, '$1N147') V.append((77.0, 28.35, '$1N147')) seg(2, [(77.0, 28.35), (77.2, 27.62)], W, '$1N147') # ── $1N156:U2.17 东逃 -> 过孔 (92.65,29.27) -> 顶层下到 y26.6 -> 西到 84.6 -> y25.75 -> 过孔 (81.3,25.75) -> 底层进 R11.1 seg(2, [(91.001, 29.266), (92.65, 29.27)], W, '$1N156') V.append((92.65, 29.27, '$1N156')) seg(1, [(92.65, 29.27), (92.65, 26.6), (84.6, 26.6), (84.6, 25.75), (81.3, 25.75)], W, '$1N156') V.append((81.3, 25.75, '$1N156')) seg(2, [(81.3, 25.75), (81.3, 26.9), (82.0, 27.35), (82.33, 27.35)], W, '$1N156') # ── EFUSE_PG:U2.2 下逃 -> 过孔 (90.25,25.4) -> 顶层 y25.4 西到 86.6 -> 过孔 -> 底层绕 +3V3 孔 -> x80.6 南下 -> U4.16 seg(2, [(89.751, 27.015), (89.75, 26.55), (90.1, 26.2), (90.25, 26.05), (90.25, 25.4)], W, 'EFUSE_PG') V.append((90.25, 25.4, 'EFUSE_PG')) seg(1, [(90.25, 25.4), (86.6, 25.4)], W, 'EFUSE_PG') V.append((86.6, 25.4, 'EFUSE_PG')) seg(2, [(86.6, 25.4), (84.8, 25.4), (84.6, 25.55), (83.0, 25.55), (82.55, 25.1), (80.6, 25.1), (80.6, 20.2), (80.15, 20.2)], W, 'EFUSE_PG') # ── $1N165:R16.1 北侧过孔 (79.1,29.95) -> 顶层 y29.95 东到 93.3 -> 南到 24.6 -> 西到 88.9 -> 过孔 -> Rs1.2 seg(2, [(79.33, 29.62), (79.1, 29.95)], W, '$1N165') V.append((79.1, 29.95, '$1N165')) seg(1, [(79.1, 29.95), (93.3, 29.95), (93.3, 24.6), (88.9, 24.6)], W, '$1N165') V.append((88.9, 24.6, '$1N165')) seg(2, [(88.9, 24.6), (88.5, 24.4)], W, '$1N165') # ── VDAC:金手指引出点 (49.5,11.75) 底层北上 -> 绕过尾插槽西侧 x46 -> 过孔 (46.3,29) -> 顶层北上 -> y45.55/45.8 东行 -> x96.6 南下 -> 过孔 (94.5,49.85) -> R8.2 seg(2, [(49.5, 11.75), (49.5, 21.0), (46.3, 21.0), (46.3, 29.0)], W, 'VDAC') V.append((46.3, 29.0, 'VDAC')) seg(1, [(46.3, 29.0), (46.3, 45.55), (82.5, 45.55), (82.9, 45.8), (96.6, 45.8), (96.6, 49.85), (94.5, 49.85)], W, 'VDAC') V.append((94.5, 49.85, 'VDAC')) seg(2, [(94.5, 49.85), (93.785, 49.85)], W, 'VDAC')