Add generated footprints.
authorDan White <dan@whiteaudio.com>
Mon, 16 Jan 2012 19:54:47 +0000 (13:54 -0600)
committerDan White <dan@whiteaudio.com>
Mon, 16 Jan 2012 19:54:47 +0000 (13:54 -0600)
.gitignore
test-pcb/fp/Makefile [new file with mode: 0644]
test-pcb/fp/PLASTRONICS_100QN40S1120120.footprinter [new file with mode: 0755]
test-pcb/fp/PLASTRONICS_100QN40S1120120.fp [new file with mode: 0644]
test-pcb/fp/SEMPAC_12x12_100A.fp [new file with mode: 0644]

index 770a1bc551fd90c97eaa7b710423b6240c20d7bf..4e295120946bbf3b5c3390a50b042dcde40fb5e1 100644 (file)
@@ -1,3 +1,4 @@
+*.pyc
 ns430-atoi.inc
 rom.asm
 rom.hex
diff --git a/test-pcb/fp/Makefile b/test-pcb/fp/Makefile
new file mode 100644 (file)
index 0000000..9653e40
--- /dev/null
@@ -0,0 +1,11 @@
+
+FPSRC=$(wildcard *.footprinter)
+FOOTPRINTS_GEN=$(FPSRC:.footprinter=.fp)
+
+fp: $(FOOTPRINTS_GEN)
+
+%.fp: %.footprinter
+       python $< > $@
+
+clean:
+       rm -f $(FOOTPRINTS_GEN)
diff --git a/test-pcb/fp/PLASTRONICS_100QN40S1120120.footprinter b/test-pcb/fp/PLASTRONICS_100QN40S1120120.footprinter
new file mode 100755 (executable)
index 0000000..6f0ca67
--- /dev/null
@@ -0,0 +1,176 @@
+#!/usr/bin/env python
+# -*- coding: ASCII -*-
+'''Plastronics socket for
+QFN-100 12x12mm
+SEMPAC MLP12X12-100-OP-01
+offered by MOSIS
+'''
+import sys
+from footprinter import *
+               
+#
+# PCB fab minimums
+# 
+MASK_SWELL = mil(5.0)
+MIN_TRACE = mil(6.0)
+MIN_SPACE = mil(6.0)
+MIN_PAD_ANNULUS = mil(14.0)
+MIN_VIA_ANNULUS = mil(10.0)
+
+PAD_PITCH = mm(0.4)
+
+# pcb's coordinates are graphics oriented
+# x in increasing right
+# y in increasing DOWN
+
+SILK_LINEWIDTH = mil(8.0)
+
+OUTER_ROW_WIDTH = mil(620.0)/2
+INNER_ROW_WIDTH = mil(500.0)/2
+LOC_PIN_WIDTH = mil(760.0)/2
+
+PIN_DRILL = mil(12.0)
+PIN_ANNULUS = PIN_DRILL + mil(2.0)
+PIN_CLEARANCE = mil(6.0)
+
+PAD_OFFSET = (PIN_DRILL + MIN_PAD_ANNULUS)
+
+pins = []
+pins_per_side = 25
+
+# left row
+# upper-left upto lower-left
+for i in range(1,26):
+    p = i
+    if (i%2) == 1:
+        x = -OUTER_ROW_WIDTH
+    else:
+        x = -INNER_ROW_WIDTH
+    y = -PAD_PITCH * ((pins_per_side-1)/2 - (i-1))
+
+    # drilled hole
+    pins.append(Pin(p, x, y, PIN_ANNULUS, MIN_SPACE, MASK_SWELL, PIN_DRILL, name=str(p)))
+    # simulate a chopped annulus
+    pins.append(Pad(p,
+        [
+            x-PAD_OFFSET,
+            y-PIN_ANNULUS/2,
+            x+PAD_OFFSET,
+            y+PIN_ANNULUS/2
+         ],
+        MIN_SPACE, MASK_SWELL, name=str(p), sflags=''))
+
+# bottom row
+# lower-left upto lower-right
+for i in range(1,26):
+    p = i + 25
+    if (i%2) == 1:
+        y = OUTER_ROW_WIDTH
+    else:
+        y = INNER_ROW_WIDTH
+    x = -PAD_PITCH * ((pins_per_side-1)/2 - (i-1))
+
+    pins.append(Pin(p, x, y, PIN_ANNULUS, MIN_SPACE, MASK_SWELL, PIN_DRILL, name=str(p)))
+    # simulate a chopped annulus
+    pins.append(Pad(p,
+        [
+            x-PIN_ANNULUS/2,
+            y-PAD_OFFSET,
+            x+PIN_ANNULUS/2,
+            y+PAD_OFFSET,
+         ],
+        MIN_SPACE, MASK_SWELL, name=str(p), sflags=''))
+
+# right row
+# lower-right upto upper-right
+for i in range(1,26):
+    p = i + 50
+    if (i%2) == 1:
+        x = OUTER_ROW_WIDTH
+    else:
+        x = INNER_ROW_WIDTH
+    y = PAD_PITCH * ((pins_per_side-1)/2 - (i-1))
+
+    pins.append(Pin(p, x, y, PIN_ANNULUS, MIN_SPACE, MASK_SWELL, PIN_DRILL, name=str(p)))
+    pins.append(Pad(p,
+        [
+            x-PAD_OFFSET,
+            y-PIN_ANNULUS/2,
+            x+PAD_OFFSET,
+            y+PIN_ANNULUS/2
+         ],
+        MIN_SPACE, MASK_SWELL, name=str(p), sflags=''))
+
+# top row
+# upper-right upto upper-left
+for i in range(1,26):
+    p = i + 75
+    if (i%2) == 1:
+        y = -OUTER_ROW_WIDTH
+    else:
+        y = -INNER_ROW_WIDTH
+    x = PAD_PITCH * ((pins_per_side-1)/2 - (i-1))
+
+    pins.append(Pin(p, x, y, PIN_ANNULUS, MIN_SPACE, MASK_SWELL, PIN_DRILL, name=str(p)))
+    pins.append(Pad(p,
+        [
+            x-PIN_ANNULUS/2,
+            y-PAD_OFFSET,
+            x+PIN_ANNULUS/2,
+            y+PAD_OFFSET
+         ],
+        MIN_SPACE, MASK_SWELL, name=str(p), sflags=''))
+
+# center EP spring probe
+EP_PIN_DRILL = mil(43.2)
+pins.append(Pin(101,
+    0, 0,
+    EP_PIN_DRILL + 2*MIN_PAD_ANNULUS,
+    MIN_SPACE,
+    MASK_SWELL,
+    EP_PIN_DRILL,
+    name=str(101)))
+
+# plastic locating pins
+PLASTIC_DRILL = mil(61.0)
+pins.append(Pin(102,
+    mil(-380), mil(380),
+    PLASTIC_DRILL + MIN_PAD_ANNULUS,
+    MIN_SPACE,
+    MASK_SWELL,
+    PLASTIC_DRILL,
+    name=str(102)))
+pins.append(Pin(103,
+    mil(380), mil(-380),
+    PLASTIC_DRILL + MIN_PAD_ANNULUS,
+    MIN_SPACE,
+    MASK_SWELL,
+    PLASTIC_DRILL,
+    name=str(103)))
+
+# silkscreen
+lines = []
+lines.append(ElementBox(
+    mil(-700), mil(-580),
+    mil(730), mil(580),
+    SILK_LINEWIDTH))
+
+lines.append(ElementLine(
+    mil(730-250), mil(-580),
+    mil(730-250), mil(580),
+    SILK_LINEWIDTH))
+
+
+fp = Footprint(
+        padpins=pins,
+        linearcs=lines,
+        sflags='',
+        description=''
+        )
+
+fp.mx = 0
+fp.my = 0
+fp.tx = 0
+fp.ty = 0
+fp.write(sys.stdout)
+
diff --git a/test-pcb/fp/PLASTRONICS_100QN40S1120120.fp b/test-pcb/fp/PLASTRONICS_100QN40S1120120.fp
new file mode 100644 (file)
index 0000000..de45dcf
--- /dev/null
@@ -0,0 +1,211 @@
+Element ["" "" "" "" 0nm 0nm 0nm 0nm 0 100 ""]
+(
+Pin [-7874000nm -4800000nm 355600nm 152400nm 609600nm 304800nm "1" "1" ""]
+Pad [-8356600nm -4800000nm -7391400nm -4800000nm 355600nm 152400nm 609600nm "1" "1" ""]
+Pin [-6350000nm -4400000nm 355600nm 152400nm 609600nm 304800nm "2" "2" ""]
+Pad [-6832600nm -4400000nm -5867400nm -4400000nm 355600nm 152400nm 609600nm "2" "2" ""]
+Pin [-7874000nm -4000000nm 355600nm 152400nm 609600nm 304800nm "3" "3" ""]
+Pad [-8356600nm -4000000nm -7391400nm -4000000nm 355600nm 152400nm 609600nm "3" "3" ""]
+Pin [-6350000nm -3600000nm 355600nm 152400nm 609600nm 304800nm "4" "4" ""]
+Pad [-6832600nm -3600000nm -5867400nm -3600000nm 355600nm 152400nm 609600nm "4" "4" ""]
+Pin [-7874000nm -3200000nm 355600nm 152400nm 609600nm 304800nm "5" "5" ""]
+Pad [-8356600nm -3200000nm -7391400nm -3200000nm 355600nm 152400nm 609600nm "5" "5" ""]
+Pin [-6350000nm -2800000nm 355600nm 152400nm 609600nm 304800nm "6" "6" ""]
+Pad [-6832600nm -2800000nm -5867400nm -2800000nm 355600nm 152400nm 609600nm "6" "6" ""]
+Pin [-7874000nm -2400000nm 355600nm 152400nm 609600nm 304800nm "7" "7" ""]
+Pad [-8356600nm -2400000nm -7391400nm -2400000nm 355600nm 152400nm 609600nm "7" "7" ""]
+Pin [-6350000nm -2000000nm 355600nm 152400nm 609600nm 304800nm "8" "8" ""]
+Pad [-6832600nm -2000000nm -5867400nm -2000000nm 355600nm 152400nm 609600nm "8" "8" ""]
+Pin [-7874000nm -1600000nm 355600nm 152400nm 609600nm 304800nm "9" "9" ""]
+Pad [-8356600nm -1600000nm -7391400nm -1600000nm 355600nm 152400nm 609600nm "9" "9" ""]
+Pin [-6350000nm -1200000nm 355600nm 152400nm 609600nm 304800nm "10" "10" ""]
+Pad [-6832600nm -1200000nm -5867400nm -1200000nm 355600nm 152400nm 609600nm "10" "10" ""]
+Pin [-7874000nm -800000nm 355600nm 152400nm 609600nm 304800nm "11" "11" ""]
+Pad [-8356600nm -800000nm -7391400nm -800000nm 355600nm 152400nm 609600nm "11" "11" ""]
+Pin [-6350000nm -400000nm 355600nm 152400nm 609600nm 304800nm "12" "12" ""]
+Pad [-6832600nm -400000nm -5867400nm -400000nm 355600nm 152400nm 609600nm "12" "12" ""]
+Pin [-7874000nm 0nm 355600nm 152400nm 609600nm 304800nm "13" "13" ""]
+Pad [-8356600nm 0nm -7391400nm 0nm 355600nm 152400nm 609600nm "13" "13" ""]
+Pin [-6350000nm 400000nm 355600nm 152400nm 609600nm 304800nm "14" "14" ""]
+Pad [-6832600nm 400000nm -5867400nm 400000nm 355600nm 152400nm 609600nm "14" "14" ""]
+Pin [-7874000nm 800000nm 355600nm 152400nm 609600nm 304800nm "15" "15" ""]
+Pad [-8356600nm 800000nm -7391400nm 800000nm 355600nm 152400nm 609600nm "15" "15" ""]
+Pin [-6350000nm 1200000nm 355600nm 152400nm 609600nm 304800nm "16" "16" ""]
+Pad [-6832600nm 1200000nm -5867400nm 1200000nm 355600nm 152400nm 609600nm "16" "16" ""]
+Pin [-7874000nm 1600000nm 355600nm 152400nm 609600nm 304800nm "17" "17" ""]
+Pad [-8356600nm 1600000nm -7391400nm 1600000nm 355600nm 152400nm 609600nm "17" "17" ""]
+Pin [-6350000nm 2000000nm 355600nm 152400nm 609600nm 304800nm "18" "18" ""]
+Pad [-6832600nm 2000000nm -5867400nm 2000000nm 355600nm 152400nm 609600nm "18" "18" ""]
+Pin [-7874000nm 2400000nm 355600nm 152400nm 609600nm 304800nm "19" "19" ""]
+Pad [-8356600nm 2400000nm -7391400nm 2400000nm 355600nm 152400nm 609600nm "19" "19" ""]
+Pin [-6350000nm 2800000nm 355600nm 152400nm 609600nm 304800nm "20" "20" ""]
+Pad [-6832600nm 2800000nm -5867400nm 2800000nm 355600nm 152400nm 609600nm "20" "20" ""]
+Pin [-7874000nm 3200000nm 355600nm 152400nm 609600nm 304800nm "21" "21" ""]
+Pad [-8356600nm 3200000nm -7391400nm 3200000nm 355600nm 152400nm 609600nm "21" "21" ""]
+Pin [-6350000nm 3600000nm 355600nm 152400nm 609600nm 304800nm "22" "22" ""]
+Pad [-6832600nm 3600000nm -5867400nm 3600000nm 355600nm 152400nm 609600nm "22" "22" ""]
+Pin [-7874000nm 4000000nm 355600nm 152400nm 609600nm 304800nm "23" "23" ""]
+Pad [-8356600nm 4000000nm -7391400nm 4000000nm 355600nm 152400nm 609600nm "23" "23" ""]
+Pin [-6350000nm 4400000nm 355600nm 152400nm 609600nm 304800nm "24" "24" ""]
+Pad [-6832600nm 4400000nm -5867400nm 4400000nm 355600nm 152400nm 609600nm "24" "24" ""]
+Pin [-7874000nm 4800000nm 355600nm 152400nm 609600nm 304800nm "25" "25" ""]
+Pad [-8356600nm 4800000nm -7391400nm 4800000nm 355600nm 152400nm 609600nm "25" "25" ""]
+Pin [-4800000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "26" "26" ""]
+Pad [-4800000nm 7391400nm -4800000nm 8356600nm 355600nm 152400nm 609600nm "26" "26" ""]
+Pin [-4400000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "27" "27" ""]
+Pad [-4400000nm 5867400nm -4400000nm 6832600nm 355600nm 152400nm 609600nm "27" "27" ""]
+Pin [-4000000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "28" "28" ""]
+Pad [-4000000nm 7391400nm -4000000nm 8356600nm 355600nm 152400nm 609600nm "28" "28" ""]
+Pin [-3600000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "29" "29" ""]
+Pad [-3600000nm 5867400nm -3600000nm 6832600nm 355600nm 152400nm 609600nm "29" "29" ""]
+Pin [-3200000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "30" "30" ""]
+Pad [-3200000nm 7391400nm -3200000nm 8356600nm 355600nm 152400nm 609600nm "30" "30" ""]
+Pin [-2800000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "31" "31" ""]
+Pad [-2800000nm 5867400nm -2800000nm 6832600nm 355600nm 152400nm 609600nm "31" "31" ""]
+Pin [-2400000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "32" "32" ""]
+Pad [-2400000nm 7391400nm -2400000nm 8356600nm 355600nm 152400nm 609600nm "32" "32" ""]
+Pin [-2000000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "33" "33" ""]
+Pad [-2000000nm 5867400nm -2000000nm 6832600nm 355600nm 152400nm 609600nm "33" "33" ""]
+Pin [-1600000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "34" "34" ""]
+Pad [-1600000nm 7391400nm -1600000nm 8356600nm 355600nm 152400nm 609600nm "34" "34" ""]
+Pin [-1200000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "35" "35" ""]
+Pad [-1200000nm 5867400nm -1200000nm 6832600nm 355600nm 152400nm 609600nm "35" "35" ""]
+Pin [-800000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "36" "36" ""]
+Pad [-800000nm 7391400nm -800000nm 8356600nm 355600nm 152400nm 609600nm "36" "36" ""]
+Pin [-400000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "37" "37" ""]
+Pad [-400000nm 5867400nm -400000nm 6832600nm 355600nm 152400nm 609600nm "37" "37" ""]
+Pin [0nm 7874000nm 355600nm 152400nm 609600nm 304800nm "38" "38" ""]
+Pad [0nm 7391400nm 0nm 8356600nm 355600nm 152400nm 609600nm "38" "38" ""]
+Pin [400000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "39" "39" ""]
+Pad [400000nm 5867400nm 400000nm 6832600nm 355600nm 152400nm 609600nm "39" "39" ""]
+Pin [800000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "40" "40" ""]
+Pad [800000nm 7391400nm 800000nm 8356600nm 355600nm 152400nm 609600nm "40" "40" ""]
+Pin [1200000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "41" "41" ""]
+Pad [1200000nm 5867400nm 1200000nm 6832600nm 355600nm 152400nm 609600nm "41" "41" ""]
+Pin [1600000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "42" "42" ""]
+Pad [1600000nm 7391400nm 1600000nm 8356600nm 355600nm 152400nm 609600nm "42" "42" ""]
+Pin [2000000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "43" "43" ""]
+Pad [2000000nm 5867400nm 2000000nm 6832600nm 355600nm 152400nm 609600nm "43" "43" ""]
+Pin [2400000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "44" "44" ""]
+Pad [2400000nm 7391400nm 2400000nm 8356600nm 355600nm 152400nm 609600nm "44" "44" ""]
+Pin [2800000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "45" "45" ""]
+Pad [2800000nm 5867400nm 2800000nm 6832600nm 355600nm 152400nm 609600nm "45" "45" ""]
+Pin [3200000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "46" "46" ""]
+Pad [3200000nm 7391400nm 3200000nm 8356600nm 355600nm 152400nm 609600nm "46" "46" ""]
+Pin [3600000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "47" "47" ""]
+Pad [3600000nm 5867400nm 3600000nm 6832600nm 355600nm 152400nm 609600nm "47" "47" ""]
+Pin [4000000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "48" "48" ""]
+Pad [4000000nm 7391400nm 4000000nm 8356600nm 355600nm 152400nm 609600nm "48" "48" ""]
+Pin [4400000nm 6350000nm 355600nm 152400nm 609600nm 304800nm "49" "49" ""]
+Pad [4400000nm 5867400nm 4400000nm 6832600nm 355600nm 152400nm 609600nm "49" "49" ""]
+Pin [4800000nm 7874000nm 355600nm 152400nm 609600nm 304800nm "50" "50" ""]
+Pad [4800000nm 7391400nm 4800000nm 8356600nm 355600nm 152400nm 609600nm "50" "50" ""]
+Pin [7874000nm 4800000nm 355600nm 152400nm 609600nm 304800nm "51" "51" ""]
+Pad [7391400nm 4800000nm 8356600nm 4800000nm 355600nm 152400nm 609600nm "51" "51" ""]
+Pin [6350000nm 4400000nm 355600nm 152400nm 609600nm 304800nm "52" "52" ""]
+Pad [5867400nm 4400000nm 6832600nm 4400000nm 355600nm 152400nm 609600nm "52" "52" ""]
+Pin [7874000nm 4000000nm 355600nm 152400nm 609600nm 304800nm "53" "53" ""]
+Pad [7391400nm 4000000nm 8356600nm 4000000nm 355600nm 152400nm 609600nm "53" "53" ""]
+Pin [6350000nm 3600000nm 355600nm 152400nm 609600nm 304800nm "54" "54" ""]
+Pad [5867400nm 3600000nm 6832600nm 3600000nm 355600nm 152400nm 609600nm "54" "54" ""]
+Pin [7874000nm 3200000nm 355600nm 152400nm 609600nm 304800nm "55" "55" ""]
+Pad [7391400nm 3200000nm 8356600nm 3200000nm 355600nm 152400nm 609600nm "55" "55" ""]
+Pin [6350000nm 2800000nm 355600nm 152400nm 609600nm 304800nm "56" "56" ""]
+Pad [5867400nm 2800000nm 6832600nm 2800000nm 355600nm 152400nm 609600nm "56" "56" ""]
+Pin [7874000nm 2400000nm 355600nm 152400nm 609600nm 304800nm "57" "57" ""]
+Pad [7391400nm 2400000nm 8356600nm 2400000nm 355600nm 152400nm 609600nm "57" "57" ""]
+Pin [6350000nm 2000000nm 355600nm 152400nm 609600nm 304800nm "58" "58" ""]
+Pad [5867400nm 2000000nm 6832600nm 2000000nm 355600nm 152400nm 609600nm "58" "58" ""]
+Pin [7874000nm 1600000nm 355600nm 152400nm 609600nm 304800nm "59" "59" ""]
+Pad [7391400nm 1600000nm 8356600nm 1600000nm 355600nm 152400nm 609600nm "59" "59" ""]
+Pin [6350000nm 1200000nm 355600nm 152400nm 609600nm 304800nm "60" "60" ""]
+Pad [5867400nm 1200000nm 6832600nm 1200000nm 355600nm 152400nm 609600nm "60" "60" ""]
+Pin [7874000nm 800000nm 355600nm 152400nm 609600nm 304800nm "61" "61" ""]
+Pad [7391400nm 800000nm 8356600nm 800000nm 355600nm 152400nm 609600nm "61" "61" ""]
+Pin [6350000nm 400000nm 355600nm 152400nm 609600nm 304800nm "62" "62" ""]
+Pad [5867400nm 400000nm 6832600nm 400000nm 355600nm 152400nm 609600nm "62" "62" ""]
+Pin [7874000nm 0nm 355600nm 152400nm 609600nm 304800nm "63" "63" ""]
+Pad [7391400nm 0nm 8356600nm 0nm 355600nm 152400nm 609600nm "63" "63" ""]
+Pin [6350000nm -400000nm 355600nm 152400nm 609600nm 304800nm "64" "64" ""]
+Pad [5867400nm -400000nm 6832600nm -400000nm 355600nm 152400nm 609600nm "64" "64" ""]
+Pin [7874000nm -800000nm 355600nm 152400nm 609600nm 304800nm "65" "65" ""]
+Pad [7391400nm -800000nm 8356600nm -800000nm 355600nm 152400nm 609600nm "65" "65" ""]
+Pin [6350000nm -1200000nm 355600nm 152400nm 609600nm 304800nm "66" "66" ""]
+Pad [5867400nm -1200000nm 6832600nm -1200000nm 355600nm 152400nm 609600nm "66" "66" ""]
+Pin [7874000nm -1600000nm 355600nm 152400nm 609600nm 304800nm "67" "67" ""]
+Pad [7391400nm -1600000nm 8356600nm -1600000nm 355600nm 152400nm 609600nm "67" "67" ""]
+Pin [6350000nm -2000000nm 355600nm 152400nm 609600nm 304800nm "68" "68" ""]
+Pad [5867400nm -2000000nm 6832600nm -2000000nm 355600nm 152400nm 609600nm "68" "68" ""]
+Pin [7874000nm -2400000nm 355600nm 152400nm 609600nm 304800nm "69" "69" ""]
+Pad [7391400nm -2400000nm 8356600nm -2400000nm 355600nm 152400nm 609600nm "69" "69" ""]
+Pin [6350000nm -2800000nm 355600nm 152400nm 609600nm 304800nm "70" "70" ""]
+Pad [5867400nm -2800000nm 6832600nm -2800000nm 355600nm 152400nm 609600nm "70" "70" ""]
+Pin [7874000nm -3200000nm 355600nm 152400nm 609600nm 304800nm "71" "71" ""]
+Pad [7391400nm -3200000nm 8356600nm -3200000nm 355600nm 152400nm 609600nm "71" "71" ""]
+Pin [6350000nm -3600000nm 355600nm 152400nm 609600nm 304800nm "72" "72" ""]
+Pad [5867400nm -3600000nm 6832600nm -3600000nm 355600nm 152400nm 609600nm "72" "72" ""]
+Pin [7874000nm -4000000nm 355600nm 152400nm 609600nm 304800nm "73" "73" ""]
+Pad [7391400nm -4000000nm 8356600nm -4000000nm 355600nm 152400nm 609600nm "73" "73" ""]
+Pin [6350000nm -4400000nm 355600nm 152400nm 609600nm 304800nm "74" "74" ""]
+Pad [5867400nm -4400000nm 6832600nm -4400000nm 355600nm 152400nm 609600nm "74" "74" ""]
+Pin [7874000nm -4800000nm 355600nm 152400nm 609600nm 304800nm "75" "75" ""]
+Pad [7391400nm -4800000nm 8356600nm -4800000nm 355600nm 152400nm 609600nm "75" "75" ""]
+Pin [4800000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "76" "76" ""]
+Pad [4800000nm -8356600nm 4800000nm -7391400nm 355600nm 152400nm 609600nm "76" "76" ""]
+Pin [4400000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "77" "77" ""]
+Pad [4400000nm -6832600nm 4400000nm -5867400nm 355600nm 152400nm 609600nm "77" "77" ""]
+Pin [4000000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "78" "78" ""]
+Pad [4000000nm -8356600nm 4000000nm -7391400nm 355600nm 152400nm 609600nm "78" "78" ""]
+Pin [3600000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "79" "79" ""]
+Pad [3600000nm -6832600nm 3600000nm -5867400nm 355600nm 152400nm 609600nm "79" "79" ""]
+Pin [3200000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "80" "80" ""]
+Pad [3200000nm -8356600nm 3200000nm -7391400nm 355600nm 152400nm 609600nm "80" "80" ""]
+Pin [2800000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "81" "81" ""]
+Pad [2800000nm -6832600nm 2800000nm -5867400nm 355600nm 152400nm 609600nm "81" "81" ""]
+Pin [2400000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "82" "82" ""]
+Pad [2400000nm -8356600nm 2400000nm -7391400nm 355600nm 152400nm 609600nm "82" "82" ""]
+Pin [2000000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "83" "83" ""]
+Pad [2000000nm -6832600nm 2000000nm -5867400nm 355600nm 152400nm 609600nm "83" "83" ""]
+Pin [1600000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "84" "84" ""]
+Pad [1600000nm -8356600nm 1600000nm -7391400nm 355600nm 152400nm 609600nm "84" "84" ""]
+Pin [1200000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "85" "85" ""]
+Pad [1200000nm -6832600nm 1200000nm -5867400nm 355600nm 152400nm 609600nm "85" "85" ""]
+Pin [800000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "86" "86" ""]
+Pad [800000nm -8356600nm 800000nm -7391400nm 355600nm 152400nm 609600nm "86" "86" ""]
+Pin [400000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "87" "87" ""]
+Pad [400000nm -6832600nm 400000nm -5867400nm 355600nm 152400nm 609600nm "87" "87" ""]
+Pin [0nm -7874000nm 355600nm 152400nm 609600nm 304800nm "88" "88" ""]
+Pad [0nm -8356600nm 0nm -7391400nm 355600nm 152400nm 609600nm "88" "88" ""]
+Pin [-400000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "89" "89" ""]
+Pad [-400000nm -6832600nm -400000nm -5867400nm 355600nm 152400nm 609600nm "89" "89" ""]
+Pin [-800000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "90" "90" ""]
+Pad [-800000nm -8356600nm -800000nm -7391400nm 355600nm 152400nm 609600nm "90" "90" ""]
+Pin [-1200000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "91" "91" ""]
+Pad [-1200000nm -6832600nm -1200000nm -5867400nm 355600nm 152400nm 609600nm "91" "91" ""]
+Pin [-1600000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "92" "92" ""]
+Pad [-1600000nm -8356600nm -1600000nm -7391400nm 355600nm 152400nm 609600nm "92" "92" ""]
+Pin [-2000000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "93" "93" ""]
+Pad [-2000000nm -6832600nm -2000000nm -5867400nm 355600nm 152400nm 609600nm "93" "93" ""]
+Pin [-2400000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "94" "94" ""]
+Pad [-2400000nm -8356600nm -2400000nm -7391400nm 355600nm 152400nm 609600nm "94" "94" ""]
+Pin [-2800000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "95" "95" ""]
+Pad [-2800000nm -6832600nm -2800000nm -5867400nm 355600nm 152400nm 609600nm "95" "95" ""]
+Pin [-3200000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "96" "96" ""]
+Pad [-3200000nm -8356600nm -3200000nm -7391400nm 355600nm 152400nm 609600nm "96" "96" ""]
+Pin [-3600000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "97" "97" ""]
+Pad [-3600000nm -6832600nm -3600000nm -5867400nm 355600nm 152400nm 609600nm "97" "97" ""]
+Pin [-4000000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "98" "98" ""]
+Pad [-4000000nm -8356600nm -4000000nm -7391400nm 355600nm 152400nm 609600nm "98" "98" ""]
+Pin [-4400000nm -6350000nm 355600nm 152400nm 609600nm 304800nm "99" "99" ""]
+Pad [-4400000nm -6832600nm -4400000nm -5867400nm 355600nm 152400nm 609600nm "99" "99" ""]
+Pin [-4800000nm -7874000nm 355600nm 152400nm 609600nm 304800nm "100" "100" ""]
+Pad [-4800000nm -8356600nm -4800000nm -7391400nm 355600nm 152400nm 609600nm "100" "100" ""]
+Pin [0nm 0nm 1808480nm 152400nm 2062480nm 1097280nm "101" "101" ""]
+Pin [-9652000nm 9652000nm 1905000nm 152400nm 2159000nm 1549400nm "102" "102" ""]
+Pin [9652000nm -9652000nm 1905000nm 152400nm 2159000nm 1549400nm "103" "103" ""]
+ElementLine [-17780000nm -14732000nm -17780000nm 14732000nm 203200nm]
+ElementLine [-17780000nm 14732000nm 18542000nm 14732000nm 203200nm]
+ElementLine [18542000nm 14732000nm 18542000nm -14732000nm 203200nm]
+ElementLine [18542000nm -14732000nm -17780000nm -14732000nm 203200nm]
+ElementLine [12192000nm -14732000nm 12192000nm 14732000nm 203200nm]
+)
diff --git a/test-pcb/fp/SEMPAC_12x12_100A.fp b/test-pcb/fp/SEMPAC_12x12_100A.fp
new file mode 100644 (file)
index 0000000..eaceec7
--- /dev/null
@@ -0,0 +1,113 @@
+Element ["" "" "" "" 6000000nm 6000000nm 6000000nm 6000000nm 0 100 ""]
+(
+Pad [-6300000nm -4800000nm -5650000nm -4800000nm 200000nm 152400nm 327000nm "1" "1" "square"]
+Pad [-6300000nm -4400000nm -5650000nm -4400000nm 200000nm 152400nm 327000nm "2" "2" "square"]
+Pad [-6300000nm -4000000nm -5650000nm -4000000nm 200000nm 152400nm 327000nm "3" "3" "square"]
+Pad [-6300000nm -3600000nm -5650000nm -3600000nm 200000nm 152400nm 327000nm "4" "4" "square"]
+Pad [-6300000nm -3200000nm -5650000nm -3200000nm 200000nm 152400nm 327000nm "5" "5" "square"]
+Pad [-6300000nm -2800000nm -5650000nm -2800000nm 200000nm 152400nm 327000nm "6" "6" "square"]
+Pad [-6300000nm -2400000nm -5650000nm -2400000nm 200000nm 152400nm 327000nm "7" "7" "square"]
+Pad [-6300000nm -2000000nm -5650000nm -2000000nm 200000nm 152400nm 327000nm "8" "8" "square"]
+Pad [-6300000nm -1600000nm -5650000nm -1600000nm 200000nm 152400nm 327000nm "9" "9" "square"]
+Pad [-6300000nm -1200000nm -5650000nm -1200000nm 200000nm 152400nm 327000nm "10" "10" "square"]
+Pad [-6300000nm -800000nm -5650000nm -800000nm 200000nm 152400nm 327000nm "11" "11" "square"]
+Pad [-6300000nm -400000nm -5650000nm -400000nm 200000nm 152400nm 327000nm "12" "12" "square"]
+Pad [-6300000nm 0nm -5650000nm 0nm 200000nm 152400nm 327000nm "13" "13" "square"]
+Pad [-6300000nm 400000nm -5650000nm 400000nm 200000nm 152400nm 327000nm "14" "14" "square"]
+Pad [-6300000nm 800000nm -5650000nm 800000nm 200000nm 152400nm 327000nm "15" "15" "square"]
+Pad [-6300000nm 1200000nm -5650000nm 1200000nm 200000nm 152400nm 327000nm "16" "16" "square"]
+Pad [-6300000nm 1600000nm -5650000nm 1600000nm 200000nm 152400nm 327000nm "17" "17" "square"]
+Pad [-6300000nm 2000000nm -5650000nm 2000000nm 200000nm 152400nm 327000nm "18" "18" "square"]
+Pad [-6300000nm 2400000nm -5650000nm 2400000nm 200000nm 152400nm 327000nm "19" "19" "square"]
+Pad [-6300000nm 2800000nm -5650000nm 2800000nm 200000nm 152400nm 327000nm "20" "20" "square"]
+Pad [-6300000nm 3200000nm -5650000nm 3200000nm 200000nm 152400nm 327000nm "21" "21" "square"]
+Pad [-6300000nm 3600000nm -5650000nm 3600000nm 200000nm 152400nm 327000nm "22" "22" "square"]
+Pad [-6300000nm 4000000nm -5650000nm 4000000nm 200000nm 152400nm 327000nm "23" "23" "square"]
+Pad [-6300000nm 4400000nm -5650000nm 4400000nm 200000nm 152400nm 327000nm "24" "24" "square"]
+Pad [-6300000nm 4800000nm -5650000nm 4800000nm 200000nm 152400nm 327000nm "25" "25" "square"]
+Pad [-4800000nm 5650000nm -4800000nm 6300000nm 200000nm 152400nm 327000nm "26" "26" "square"]
+Pad [-4400000nm 5650000nm -4400000nm 6300000nm 200000nm 152400nm 327000nm "27" "27" "square"]
+Pad [-4000000nm 5650000nm -4000000nm 6300000nm 200000nm 152400nm 327000nm "28" "28" "square"]
+Pad [-3600000nm 5650000nm -3600000nm 6300000nm 200000nm 152400nm 327000nm "29" "29" "square"]
+Pad [-3200000nm 5650000nm -3200000nm 6300000nm 200000nm 152400nm 327000nm "30" "30" "square"]
+Pad [-2800000nm 5650000nm -2800000nm 6300000nm 200000nm 152400nm 327000nm "31" "31" "square"]
+Pad [-2400000nm 5650000nm -2400000nm 6300000nm 200000nm 152400nm 327000nm "32" "32" "square"]
+Pad [-2000000nm 5650000nm -2000000nm 6300000nm 200000nm 152400nm 327000nm "33" "33" "square"]
+Pad [-1600000nm 5650000nm -1600000nm 6300000nm 200000nm 152400nm 327000nm "34" "34" "square"]
+Pad [-1200000nm 5650000nm -1200000nm 6300000nm 200000nm 152400nm 327000nm "35" "35" "square"]
+Pad [-800000nm 5650000nm -800000nm 6300000nm 200000nm 152400nm 327000nm "36" "36" "square"]
+Pad [-400000nm 5650000nm -400000nm 6300000nm 200000nm 152400nm 327000nm "37" "37" "square"]
+Pad [0nm 5650000nm 0nm 6300000nm 200000nm 152400nm 327000nm "38" "38" "square"]
+Pad [400000nm 5650000nm 400000nm 6300000nm 200000nm 152400nm 327000nm "39" "39" "square"]
+Pad [800000nm 5650000nm 800000nm 6300000nm 200000nm 152400nm 327000nm "40" "40" "square"]
+Pad [1200000nm 5650000nm 1200000nm 6300000nm 200000nm 152400nm 327000nm "41" "41" "square"]
+Pad [1600000nm 5650000nm 1600000nm 6300000nm 200000nm 152400nm 327000nm "42" "42" "square"]
+Pad [2000000nm 5650000nm 2000000nm 6300000nm 200000nm 152400nm 327000nm "43" "43" "square"]
+Pad [2400000nm 5650000nm 2400000nm 6300000nm 200000nm 152400nm 327000nm "44" "44" "square"]
+Pad [2800000nm 5650000nm 2800000nm 6300000nm 200000nm 152400nm 327000nm "45" "45" "square"]
+Pad [3200000nm 5650000nm 3200000nm 6300000nm 200000nm 152400nm 327000nm "46" "46" "square"]
+Pad [3600000nm 5650000nm 3600000nm 6300000nm 200000nm 152400nm 327000nm "47" "47" "square"]
+Pad [4000000nm 5650000nm 4000000nm 6300000nm 200000nm 152400nm 327000nm "48" "48" "square"]
+Pad [4400000nm 5650000nm 4400000nm 6300000nm 200000nm 152400nm 327000nm "49" "49" "square"]
+Pad [4800000nm 5650000nm 4800000nm 6300000nm 200000nm 152400nm 327000nm "50" "50" "square"]
+Pad [5650000nm 4800000nm 6300000nm 4800000nm 200000nm 152400nm 327000nm "51" "51" "square"]
+Pad [5650000nm 4400000nm 6300000nm 4400000nm 200000nm 152400nm 327000nm "52" "52" "square"]
+Pad [5650000nm 4000000nm 6300000nm 4000000nm 200000nm 152400nm 327000nm "53" "53" "square"]
+Pad [5650000nm 3600000nm 6300000nm 3600000nm 200000nm 152400nm 327000nm "54" "54" "square"]
+Pad [5650000nm 3200000nm 6300000nm 3200000nm 200000nm 152400nm 327000nm "55" "55" "square"]
+Pad [5650000nm 2800000nm 6300000nm 2800000nm 200000nm 152400nm 327000nm "56" "56" "square"]
+Pad [5650000nm 2400000nm 6300000nm 2400000nm 200000nm 152400nm 327000nm "57" "57" "square"]
+Pad [5650000nm 2000000nm 6300000nm 2000000nm 200000nm 152400nm 327000nm "58" "58" "square"]
+Pad [5650000nm 1600000nm 6300000nm 1600000nm 200000nm 152400nm 327000nm "59" "59" "square"]
+Pad [5650000nm 1200000nm 6300000nm 1200000nm 200000nm 152400nm 327000nm "60" "60" "square"]
+Pad [5650000nm 800000nm 6300000nm 800000nm 200000nm 152400nm 327000nm "61" "61" "square"]
+Pad [5650000nm 400000nm 6300000nm 400000nm 200000nm 152400nm 327000nm "62" "62" "square"]
+Pad [5650000nm 0nm 6300000nm 0nm 200000nm 152400nm 327000nm "63" "63" "square"]
+Pad [5650000nm -400000nm 6300000nm -400000nm 200000nm 152400nm 327000nm "64" "64" "square"]
+Pad [5650000nm -800000nm 6300000nm -800000nm 200000nm 152400nm 327000nm "65" "65" "square"]
+Pad [5650000nm -1200000nm 6300000nm -1200000nm 200000nm 152400nm 327000nm "66" "66" "square"]
+Pad [5650000nm -1600000nm 6300000nm -1600000nm 200000nm 152400nm 327000nm "67" "67" "square"]
+Pad [5650000nm -2000000nm 6300000nm -2000000nm 200000nm 152400nm 327000nm "68" "68" "square"]
+Pad [5650000nm -2400000nm 6300000nm -2400000nm 200000nm 152400nm 327000nm "69" "69" "square"]
+Pad [5650000nm -2800000nm 6300000nm -2800000nm 200000nm 152400nm 327000nm "70" "70" "square"]
+Pad [5650000nm -3200000nm 6300000nm -3200000nm 200000nm 152400nm 327000nm "71" "71" "square"]
+Pad [5650000nm -3600000nm 6300000nm -3600000nm 200000nm 152400nm 327000nm "72" "72" "square"]
+Pad [5650000nm -4000000nm 6300000nm -4000000nm 200000nm 152400nm 327000nm "73" "73" "square"]
+Pad [5650000nm -4400000nm 6300000nm -4400000nm 200000nm 152400nm 327000nm "74" "74" "square"]
+Pad [5650000nm -4800000nm 6300000nm -4800000nm 200000nm 152400nm 327000nm "75" "75" "square"]
+Pad [4800000nm -6300000nm 4800000nm -5650000nm 200000nm 152400nm 327000nm "76" "76" "square"]
+Pad [4400000nm -6300000nm 4400000nm -5650000nm 200000nm 152400nm 327000nm "77" "77" "square"]
+Pad [4000000nm -6300000nm 4000000nm -5650000nm 200000nm 152400nm 327000nm "78" "78" "square"]
+Pad [3600000nm -6300000nm 3600000nm -5650000nm 200000nm 152400nm 327000nm "79" "79" "square"]
+Pad [3200000nm -6300000nm 3200000nm -5650000nm 200000nm 152400nm 327000nm "80" "80" "square"]
+Pad [2800000nm -6300000nm 2800000nm -5650000nm 200000nm 152400nm 327000nm "81" "81" "square"]
+Pad [2400000nm -6300000nm 2400000nm -5650000nm 200000nm 152400nm 327000nm "82" "82" "square"]
+Pad [2000000nm -6300000nm 2000000nm -5650000nm 200000nm 152400nm 327000nm "83" "83" "square"]
+Pad [1600000nm -6300000nm 1600000nm -5650000nm 200000nm 152400nm 327000nm "84" "84" "square"]
+Pad [1200000nm -6300000nm 1200000nm -5650000nm 200000nm 152400nm 327000nm "85" "85" "square"]
+Pad [800000nm -6300000nm 800000nm -5650000nm 200000nm 152400nm 327000nm "86" "86" "square"]
+Pad [400000nm -6300000nm 400000nm -5650000nm 200000nm 152400nm 327000nm "87" "87" "square"]
+Pad [0nm -6300000nm 0nm -5650000nm 200000nm 152400nm 327000nm "88" "88" "square"]
+Pad [-400000nm -6300000nm -400000nm -5650000nm 200000nm 152400nm 327000nm "89" "89" "square"]
+Pad [-800000nm -6300000nm -800000nm -5650000nm 200000nm 152400nm 327000nm "90" "90" "square"]
+Pad [-1200000nm -6300000nm -1200000nm -5650000nm 200000nm 152400nm 327000nm "91" "91" "square"]
+Pad [-1600000nm -6300000nm -1600000nm -5650000nm 200000nm 152400nm 327000nm "92" "92" "square"]
+Pad [-2000000nm -6300000nm -2000000nm -5650000nm 200000nm 152400nm 327000nm "93" "93" "square"]
+Pad [-2400000nm -6300000nm -2400000nm -5650000nm 200000nm 152400nm 327000nm "94" "94" "square"]
+Pad [-2800000nm -6300000nm -2800000nm -5650000nm 200000nm 152400nm 327000nm "95" "95" "square"]
+Pad [-3200000nm -6300000nm -3200000nm -5650000nm 200000nm 152400nm 327000nm "96" "96" "square"]
+Pad [-3600000nm -6300000nm -3600000nm -5650000nm 200000nm 152400nm 327000nm "97" "97" "square"]
+Pad [-4000000nm -6300000nm -4000000nm -5650000nm 200000nm 152400nm 327000nm "98" "98" "square"]
+Pad [-4400000nm -6300000nm -4400000nm -5650000nm 200000nm 152400nm 327000nm "99" "99" "square"]
+Pad [-4800000nm -6300000nm -4800000nm -5650000nm 200000nm 152400nm 327000nm "100" "100" "square"]
+Pad [0nm 0nm 0nm 0nm 9200000nm 152400nm 9327000nm "ep" "101" "square"]
+ElementLine [-6654000nm -6654000nm -6654000nm 6654000nm 203200nm]
+ElementLine [-6654000nm 6654000nm 6654000nm 6654000nm 203200nm]
+ElementLine [6654000nm 6654000nm 6654000nm -6654000nm 203200nm]
+ElementLine [6654000nm -6654000nm -6654000nm -6654000nm 203200nm]
+ElementLine [-6654000nm -6369520nm -6369520nm -6654000nm 203200nm]
+ElementLine [-6654000nm -6085040nm -6085040nm -6654000nm 203200nm]
+ElementLine [-6654000nm -5800560nm -5800560nm -6654000nm 203200nm]
+ElementLine [-6654000nm -5516080nm -5516080nm -6654000nm 203200nm]
+ElementLine [-6654000nm -5231600nm -5231600nm -6654000nm 203200nm]
+)