/* MACHINE-GENERATED ! */

frame pad {
	table
	    { h, w }
	    { 2mm+2*enlarge, 1.2mm }

	__0: vec @(w/2, h/2)
	__1: vec @(-w/2, -h/2)
	pad "$name" . __0
}

frame pads {
	table
	    { name, x }
	    { 1, 3.5mm }
	    { 2, 1mm }
	    { 3, -1mm }
	    { 4, -3.5mm }

	set enlarge = 0.1mm

	__0: vec @(0mm, 2.6mm+enlarge)
	__1: vec .(x, 0mm)
	frame pad .
}

frame shield {
	table
	    { name, x }
	    { 5, -B/2 }
	    { 6, B/2 }

	table
	    { hi, wi }
	    { 2.5mm, 1mm }

	set ratio = 2

	set ho = hi*ratio

	set wo = wi*ratio

	__0: vec @(x, 0mm)
	__1: vec .(wo/2, ho/2)
	__2: vec __0(-wo/2, -ho/2)
	rpad "$name" . __1
	__3: vec __0(wi/2, hi/2)
	__4: vec __0(-wi/2, -hi/2)
	hole . __3
}

frame holes {
	set d = 1.15mm

	table
	    { x }
	    { -C/2 }
	    { C/2 }

	__0: vec @(x, 0mm)
	__1: vec .(d/2, d/2)
	__2: vec __0(-d/2, -d/2)
	hole . __1
}

frame edge {
	set w = 5mil

	__0: vec @(0mm, -2.75mm)
	__1: vec .(B/2, 0mm)
	__2: vec __0(-B/2, 0mm)
	line . __1 w
}

package "USB-A-PLUG-SMT"
unit auto

table
    { A, B, C }
    { 2mm, 11.4mm, 4.5mm }

frame edge @
frame holes @
frame pads @
frame shield @
measx pads.__1 >> pads.__1 3mm
measx pads.__1 -> pads.__1 2.5mm
measx pad.__1 -> pad.__0 3mm
measy pad.__1 -> pad.__0 0.5mm
measx shield.__2 -> shield.__1 -2.5mm
measy shield.__2 -> shield.__1 1.5mm
measy shield.__4 -> shield.__3 1mm
measx shield.__4 -> shield.__3 -2mm
measx shield.__0 >> shield.__0 6.5mm
measx holes.__0 >> holes.__0 -1.5mm
measy holes.__2 -> holes.__1 1mm
measy edge.__1 >> shield.__0 -2mm
measy pads.__0 << shield.__0 -2mm
