/* MACHINE-GENERATED ! */

frame pin {
	__0: vec @(D/2, C/2)
	__1: vec @(-D/2, -C/2)
	pad "$n" . __0
}

frame pins_top {
	set n = N-i

	__0: vec @(x, 0mm)
	frame pin .
}

frame pins_bottom {
	set n = i+1

	__0: vec @(x, 0mm)
	frame pin .
}

frame pins {
	set y = (A+B)/4

	set x = (i-(N/2-1)/2)*P

	loop i = 0, N/2-1

	__0: vec @(0mm, y)
	frame pins_top .
	__1: vec @(0mm, -y)
	frame pins_bottom .
}

frame outline {
	set w = 5mil

	table
	    { r, d }
	    { 0.5mm, 2*r }

	__0: vec @(H/2, F/2)
	__1: vec @(-H/2, -F/2)
	rect . __0 w
	__2: vec @(d-H/2, d-B/2)
	__3: vec .(r, 0mm)
	circ __2 . w
}

package "SSOP-$N"
unit mm

set P = 0.65mm

set D = 0.4mm

table
    { N, A, B, C, F, H }
    { 14, 8.1mm, 5.7mm, 1.2mm, 8.35mm, 4.55mm }
    { 16, 8.1mm, 5.7mm, 1.2mm, 8.35mm, 5.2mm }
    { 20, 8.1mm, 5.9mm, 1.1mm, 8.35mm, 6.5mm }
    { 24, 8.1mm, 5.9mm, 1.1mm, 8.35mm, 7.8mm }
    { 28, 8.1mm, 5.9mm, 1.1mm, 8.35mm, 9.1mm }

frame outline @
frame pins @
measy outline.__1 >> outline.__0 1.5mm
measx outline.__1 >> outline.__0 F+1mm
measy pin.__1 -> pin.__0 1mm
measy pin.__1 >> pin.__0 -H-1mm
measy pin.__0 >> pin.__1 -H
measx pin.__1 -> pin.__0 -1mm
measx pins_top.__0 -> pins_top.__0 -2mm