mirror of
git://projects.qi-hardware.com/kicad-libs.git
synced 2024-11-28 18:06:15 +02:00
20b7c5f395
- add rounding, - add pad numbers, and - more measurements. Alas, the geometry still doesn't look quite right: in the 32 pin package, the pads seem short and too wide. In the 48 pin version, it's the opposite.
100 lines
2.1 KiB
Plaintext
100 lines
2.1 KiB
Plaintext
/* MACHINE-GENERATED ! */
|
|
|
|
frame meas_aux {
|
|
set ?dy = -1
|
|
|
|
__0: vec @(-wx/2, -wy/2)
|
|
__1: vec @(wx/2, wy/2)
|
|
}
|
|
|
|
frame land {
|
|
table
|
|
{ dx, dy, n }
|
|
{ 0, -1, i }
|
|
{ 1, 0, i+N/4 }
|
|
{ 0, 1, i+N/2 }
|
|
{ -1, 0, i+3*N/4 }
|
|
|
|
set side = e*(i-N/8-0.5)
|
|
|
|
table
|
|
{ sx, sy }
|
|
{ side*-dy, side*dx }
|
|
|
|
table
|
|
{ ix, iy, ox, oy, wx, wy }
|
|
{ Gmin/2*dx, Gmin/2*dy, Zmax/2*dx, Zmax/2*dy, Xmax*-dy, Xmax*dx }
|
|
|
|
loop i = 1, N/4
|
|
|
|
__0: vec @(ix, iy)
|
|
__1: vec .(sx, sy)
|
|
__2: vec .(ox-ix, oy-iy)
|
|
frame meas_aux .
|
|
__4: vec .(wx/2, wy/2)
|
|
__3: vec __1(-wx/2, -wy/2)
|
|
pad "$n" . __4
|
|
__5: vec @((ix+ox)/2, (iy+oy)/2)
|
|
}
|
|
|
|
package "QFP$N-$pkg-$dens"
|
|
unit mm
|
|
|
|
table
|
|
{ pkg, N, Dmin, Dmax, D1max, Lmin, Lmax, e, narrow, bmin, bmax, b1min, b1max }
|
|
{ "MS026BBA", 32, 8.9mm, 9.1mm, 7.1mm, 0.45mm, 0.75mm, 0.8mm, 0, 0.3mm, 0.45mm, 0.3mm, 0.4mm }
|
|
{ "MS026BBC", 48, 8.9mm, 9.1mm, 7.1mm, 0.45mm, 0.75mm, 0.5mm, 1, 0.17mm, 0.27mm, 0.17mm, 0.23mm }
|
|
|
|
table
|
|
{ Dtol, Ltol }
|
|
{ Dmax-Dmin, Lmax-Lmin }
|
|
|
|
table
|
|
{ Smin, Cs, Smax }
|
|
{ Dmin-2*Lmax, sqrt(Dtol*Dtol+Ltol*Ltol), Smin+Cs }
|
|
|
|
set Cl = Dmax-Dmin
|
|
|
|
set Cw = b1max-b1min
|
|
|
|
table
|
|
{ dens, ?narrow, Jt, Jh, Js, Court }
|
|
{ "A", 0, 0.55mm, 0.45mm, 0.05mm, 0.5mm }
|
|
{ "B", 0, 0.35mm, 0.35mm, 0.03mm, 0.25mm }
|
|
{ "C", 0, 0.15mm, 0.25mm, 0.01mm, 0.1mm }
|
|
{ "A", 1, 0.55mm, 0.45mm, 0.01mm, 0.5mm }
|
|
{ "B", 1, 0.35mm, 0.35mm, -0.02mm, 0.25mm }
|
|
{ "C", 1, 0.15mm, 0.25mm, -0.04mm, 0.1mm }
|
|
|
|
table
|
|
{ ?narrow, Jt_round, Jh_round, Js_round }
|
|
{ 0, 0.02mm, 0.02mm, 0.01mm }
|
|
{ 1, 0.02mm, 0.1mm, 0.01mm }
|
|
|
|
set pcb_tolerance = 0.1mm
|
|
|
|
set placement_tolerance = 0.1mm
|
|
|
|
table
|
|
{ F, P }
|
|
{ pcb_tolerance, placement_tolerance }
|
|
|
|
set Zmax_raw = Dmin+2*Jt+sqrt(Cl*Cl+F*F+P*P)
|
|
|
|
set Gmin_raw = Smax-2*Jh-sqrt(Cs*Cs+F*F+P*P)
|
|
|
|
set Xmax_raw = b1min+2*Js+sqrt(Cw*Cw+F*F+P*P)
|
|
|
|
set Zmax = floor(Zmax_raw/Jt_round+0.5)*Jt_round
|
|
|
|
set Gmin = floor(Gmin_raw/Jh_round+0.5)*Jh_round
|
|
|
|
set Xmax = floor(Xmax_raw/Js_round+0.5)*Js_round
|
|
|
|
frame land @
|
|
measy land.__2 -> land.__1 -7mm
|
|
measy land.__0 >> land.__0 6mm
|
|
measy land.__2 >> land.__4 5mm
|
|
measy land.__5 >> land.__5 7mm
|
|
measx meas_aux.__0 -> land.__4 -1mm
|