Root/
| 1 | /* |
| 2 | * Example of a QFN package (and general construction site to experiment with |
| 3 | * fped features during development) |
| 4 | * |
| 5 | * Everything you see here is likely to change sooner or later. |
| 6 | * |
| 7 | * http://www.nxp.com/acrobat/packages/footprint/SOT616-1_fp_reflow.pdf |
| 8 | */ |
| 9 | |
| 10 | frame pad_up { |
| 11 | c: vec @(-D/2, 0mm) |
| 12 | o: vec c(D, C) |
| 13 | set pad = n+1 |
| 14 | pad "$pad" c . |
| 15 | } |
| 16 | |
| 17 | frame pads { |
| 18 | loop n = 0, N/4-1 |
| 19 | |
| 20 | vec @(P*(n-(N/4-1)/2), -Ay/2) |
| 21 | frame pad_up . |
| 22 | |
| 23 | } |
| 24 | |
| 25 | |
| 26 | part "qfn" |
| 27 | |
| 28 | |
| 29 | set N = 24 |
| 30 | |
| 31 | /* |
| 32 | * Note that this table is not a great example because it contains lots of |
| 33 | * fields we don't really need for iterations. But it's useful for driving |
| 34 | * the GUI to extremes. |
| 35 | */ |
| 36 | |
| 37 | table |
| 38 | { P, Ax, Ay, Bx, By, C, D, SLx, SLy, SPx_tot, SPy_tot, SPx, SPy, Gx, Gy, Hx, Hy } |
| 39 | { 0.5mm, 5mm, 5mm, 3.2mm, 3.2mm, 0.9mm, 0.24mm, 2.1mm, 2.1mm, 1.2mm, |
| 40 | 1.2mm, 0.45mm, 0.45mm, 4.3mm, 4.3mm, 5.25mm, 5.25mm } |
| 41 | |
| 42 | h_x0y0: vec @(-Hx/2, -Hy/2) |
| 43 | h_x1y1: vec .(Hx, Hy) |
| 44 | rect h_x0y0 h_x1y1 8mil |
| 45 | |
| 46 | /* |
| 47 | * we can't draw the package outline on the silk screen for it would print |
| 48 | * over the pads. |
| 49 | */ |
| 50 | #if 0 |
| 51 | g_x0y0: vec @(-Gx/2, -Gy/2) |
| 52 | g_x1y1: vec .(Gx, Gy) |
| 53 | #endif |
| 54 | |
| 55 | frame pads @ |
| 56 | |
| 57 | // ARC, just for testing |
| 58 | |
| 59 | c: vec @(-1mm, 1mm) |
| 60 | r: vec c(0mm, 0.5mm) |
| 61 | e: vec c(-0.5mm, 0mm) |
| 62 | arc c r e 2mil |
| 63 | |
| 64 | r2: vec c(0mm, 0.8mm) |
| 65 | circ c r2 5mil |
| 66 | |
| 67 | /* |
| 68 | x1 = 1+2*3 |
| 69 | x2 = (1+2)*3 |
| 70 | x3 = 1-(2+3) |
| 71 | */ |
| 72 | |
| 73 | measy pad_up.c -> pad_up.o 0.2mm |
| 74 |
Branches:
master
