/* MACHINE-GENERATED ! */ frame center { set pin = pins+1 set x = D2+0.1mm set y = E2+0.1mm __0: vec @(x/2, y/2) __1: vec @(-x/2, -y/2) pad "$pin" . __0 } frame pad { set px = (dx*X1+dy*Y1)/2 set py = (dy*X1+dx*Y1)/2 set pin = side*pins/4+i+1 __0: vec @(px, py) __1: vec @(-px, -py) pad "$pin" __0 . } frame side { set pos = i-(pins/4-1)/2 loop i = 0, pins/4-1 __0: vec @(E*pos*dx, E*pos*dy) frame pad . } frame pads { table { side, dx, dy } { 0, 0, -1 } { 1, 1, 0 } { 2, 0, 1 } { 3, -1, 0 } __0: vec @(dy*C1/2, -dx*C2/2) frame side . } frame index { } frame outline { table { index, dx, _, dy } { 1, -1, 0, 0 } { 0, 0, 0, -1 } { 0, 1, 0, 0 } { 0, 0, 0, 1 } set mx = dx*C1/2 set my = dy*C2/2 set cx = mx+my set cy = my-mx set ax = -Y1/2*dx set ay = -Y1/2*dy set bx = -Y1/2*dy set by = Y1/2*dx __0: vec @(cx, cy) w: vec .(ax, ay) line __0 . w __2: vec __0(bx, by) line __0 . w __1: vec .(index*(ax-bx), index*(ay-by)) line __2 . w } package "QFN$pins" unit mm table { pins, X1, Y1, E, C1, C2, D2, E2 } { 28, 0.25mm, 0.9mm, 0.5mm, 4.8mm, 4.8mm, 3.15mm, 3.15mm } { 32, 0.29mm, 0.9mm, 0.5mm, 5.1mm, 5.1mm, 3.3mm, 3.3mm } set X2 = X1+(pins/4-1)*E set Y2 = X2 set w = 5mil __0: vec @(D2/2, E2/2) frame pads @ frame center @ frame outline @