summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--IPC-7351-CAPC/CAPC1005X15.kicad_mod31
-rw-r--r--IPC-7351-CAPC/CAPC1005X35.kicad_mod31
-rw-r--r--IPC-7351-CAPC/CAPC1005X37.kicad_mod31
-rw-r--r--IPC-7351-CAPC/CAPC1005X40.kicad_mod31
-rw-r--r--IPC-7351-CAPC/CAPC1608X40.kicad_mod31
-rw-r--r--IPC-7351-CAPC/CAPC2012X40.kicad_mod31
-rw-r--r--IPC-7351-CAPC/CAPC3216X40.kicad_mod31
-rw-r--r--IPC-7351-CAPC/CAPC3225X40.kicad_mod31
-rw-r--r--IPC-7351-RESC/RESC1005X15.kicad_mod (renamed from RESC1005X15.kicad_mod)4
-rw-r--r--IPC-7351-RESC/RESC1005X35.kicad_mod (renamed from RESC1005X35.kicad_mod)4
-rw-r--r--IPC-7351-RESC/RESC1005X37.kicad_mod (renamed from RESC1005X37.kicad_mod)4
-rw-r--r--IPC-7351-RESC/RESC1005X40.kicad_mod (renamed from RESC1005X40.kicad_mod)4
-rw-r--r--IPC-7351-RESC/RESC1608X40.kicad_mod (renamed from RESC1608X40.kicad_mod)8
-rw-r--r--IPC-7351-RESC/RESC2012X40.kicad_mod (renamed from RESC2012X40.kicad_mod)12
-rw-r--r--IPC-7351-RESC/RESC3216X40.kicad_mod (renamed from RESC3216X40.kicad_mod)8
-rw-r--r--IPC-7351-RESC/RESC3225X40.kicad_mod (renamed from RESC3225X40.kicad_mod)4
-rw-r--r--IPC-7351-RESC/RESC5025X40.kicad_mod (renamed from RESC5025X40.kicad_mod)4
-rw-r--r--IPC-7351-RESC/RESC6332X40.kicad_mod (renamed from RESC6332X40.kicad_mod)8
-rwxr-xr-xgen136
-rw-r--r--ipc_sm_782.py65
-rw-r--r--templates/CHIP.j232
22 files changed, 472 insertions, 70 deletions
diff --git a/.gitignore b/.gitignore
index 0a764a4..151121e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
env
+__pycache__
diff --git a/IPC-7351-CAPC/CAPC1005X15.kicad_mod b/IPC-7351-CAPC/CAPC1005X15.kicad_mod
new file mode 100644
index 0000000..b23e7aa
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC1005X15.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC1005X15 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+ (fp_text value VAL** (at 0 0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+
+ (fp_text user %R (at 0 -0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -1.5 0.5) (end -1.5 -0.5) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/IPC-7351-CAPC/CAPC1005X35.kicad_mod b/IPC-7351-CAPC/CAPC1005X35.kicad_mod
new file mode 100644
index 0000000..f0f5462
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC1005X35.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC1005X35 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+ (fp_text value VAL** (at 0 0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+
+ (fp_text user %R (at 0 -0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -1.5 0.5) (end -1.5 -0.5) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/IPC-7351-CAPC/CAPC1005X37.kicad_mod b/IPC-7351-CAPC/CAPC1005X37.kicad_mod
new file mode 100644
index 0000000..158cae0
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC1005X37.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC1005X37 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+ (fp_text value VAL** (at 0 0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+
+ (fp_text user %R (at 0 -0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -1.5 0.5) (end -1.5 -0.5) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/IPC-7351-CAPC/CAPC1005X40.kicad_mod b/IPC-7351-CAPC/CAPC1005X40.kicad_mod
new file mode 100644
index 0000000..b67c31b
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC1005X40.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC1005X40 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+ (fp_text value VAL** (at 0 0.125) (layer F.Fab)
+ (effects (font (size 0.1 0.1) (thickness 0.015)))
+ )
+
+ (fp_text user %R (at 0 -0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.125) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
+ (fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -1.5 0.5) (end -1.5 -0.5) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 0.65 0) (size 0.9 0.7) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/IPC-7351-CAPC/CAPC1608X40.kicad_mod b/IPC-7351-CAPC/CAPC1608X40.kicad_mod
new file mode 100644
index 0000000..85a46bf
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC1608X40.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC1608X40 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.2) (layer F.Fab)
+ (effects (font (size 0.16 0.16) (thickness 0.024)))
+ )
+ (fp_text value VAL** (at 0 0.2) (layer F.Fab)
+ (effects (font (size 0.16 0.16) (thickness 0.024)))
+ )
+
+ (fp_text user %R (at 0 -0.2) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.2) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.05))
+ (fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.05))
+ (fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -1.5 -1.0) (end 1.5 -1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 -1.0) (end 1.5 1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 1.5 1.0) (end -1.5 1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -1.5 1.0) (end -1.5 -1.0) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -0.85 0) (size 1.1 1.0) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 0.85 0) (size 1.1 1.0) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/IPC-7351-CAPC/CAPC2012X40.kicad_mod b/IPC-7351-CAPC/CAPC2012X40.kicad_mod
new file mode 100644
index 0000000..5406fa6
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC2012X40.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC2012X40 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.3) (layer F.Fab)
+ (effects (font (size 0.24 0.24) (thickness 0.036)))
+ )
+ (fp_text value VAL** (at 0 0.3) (layer F.Fab)
+ (effects (font (size 0.24 0.24) (thickness 0.036)))
+ )
+
+ (fp_text user %R (at 0 -0.3) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.3) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -1.0 -0.6) (end 1.0 -0.6) (layer F.Fab) (width 0.05))
+ (fp_line (start 1.0 -0.6) (end 1.0 0.6) (layer F.Fab) (width 0.05))
+ (fp_line (start 1.0 0.6) (end -1.0 0.6) (layer F.Fab) (width 0.05))
+ (fp_line (start -1.0 0.6) (end -1.0 -0.6) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -2.0 -1.0) (end 2.0 -1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 2.0 -1.0) (end 2.0 1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 2.0 1.0) (end -2.0 1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -2.0 1.0) (end -2.0 -1.0) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -0.95 0) (size 1.3 1.5) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 0.95 0) (size 1.3 1.5) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/IPC-7351-CAPC/CAPC3216X40.kicad_mod b/IPC-7351-CAPC/CAPC3216X40.kicad_mod
new file mode 100644
index 0000000..767e3e0
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC3216X40.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC3216X40 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.4) (layer F.Fab)
+ (effects (font (size 0.32 0.32) (thickness 0.048)))
+ )
+ (fp_text value VAL** (at 0 0.4) (layer F.Fab)
+ (effects (font (size 0.32 0.32) (thickness 0.048)))
+ )
+
+ (fp_text user %R (at 0 -0.4) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.4) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.05))
+ (fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.05))
+ (fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.05))
+ (fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -2.5 -1.0) (end 2.5 -1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 2.5 -1.0) (end 2.5 1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 2.5 1.0) (end -2.5 1.0) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -2.5 1.0) (end -2.5 -1.0) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -1.4 0) (size 1.6 1.8) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 1.4 0) (size 1.6 1.8) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/IPC-7351-CAPC/CAPC3225X40.kicad_mod b/IPC-7351-CAPC/CAPC3225X40.kicad_mod
new file mode 100644
index 0000000..a636777
--- /dev/null
+++ b/IPC-7351-CAPC/CAPC3225X40.kicad_mod
@@ -0,0 +1,31 @@
+(module CAPC3225X40 (layer F.Cu) (tedit 5A2018AF)
+ (attr smd)
+ (fp_text reference REF** (at 0 -0.625) (layer F.Fab)
+ (effects (font (size 0.5 0.5) (thickness 0.075)))
+ )
+ (fp_text value VAL** (at 0 0.625) (layer F.Fab)
+ (effects (font (size 0.5 0.5) (thickness 0.075)))
+ )
+
+ (fp_text user %R (at 0 -0.625) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+ (fp_text user %V (at 0 0.625) (layer "F.SilkS")
+ (effects (font (size 0.7 0.7) (thickness 0.1)))
+ )
+
+
+ (fp_line (start -1.6 -1.25) (end 1.6 -1.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 1.6 -1.25) (end 1.6 1.25) (layer F.Fab) (width 0.05))
+ (fp_line (start 1.6 1.25) (end -1.6 1.25) (layer F.Fab) (width 0.05))
+ (fp_line (start -1.6 1.25) (end -1.6 -1.25) (layer F.Fab) (width 0.05))
+
+
+ (fp_line (start -2.5 -1.5) (end 2.5 -1.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 2.5 -1.5) (end 2.5 1.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start 2.5 1.5) (end -2.5 1.5) (layer F.CrtYd) (width 0.05))
+ (fp_line (start -2.5 1.5) (end -2.5 -1.5) (layer F.CrtYd) (width 0.05))
+
+ (pad 1 smd rect (at -1.4 0) (size 1.6 2.7) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at 1.4 0) (size 1.6 2.7) (layers F.Cu F.Paste F.Mask))
+) \ No newline at end of file
diff --git a/RESC1005X15.kicad_mod b/IPC-7351-RESC/RESC1005X15.kicad_mod
index 1df9060..6b3ef70 100644
--- a/RESC1005X15.kicad_mod
+++ b/IPC-7351-RESC/RESC1005X15.kicad_mod
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
diff --git a/RESC1005X35.kicad_mod b/IPC-7351-RESC/RESC1005X35.kicad_mod
index 9f7f408..a70d407 100644
--- a/RESC1005X35.kicad_mod
+++ b/IPC-7351-RESC/RESC1005X35.kicad_mod
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
diff --git a/RESC1005X37.kicad_mod b/IPC-7351-RESC/RESC1005X37.kicad_mod
index ecdeec8..be0b6af 100644
--- a/RESC1005X37.kicad_mod
+++ b/IPC-7351-RESC/RESC1005X37.kicad_mod
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
diff --git a/RESC1005X40.kicad_mod b/IPC-7351-RESC/RESC1005X40.kicad_mod
index d24ab93..cb86eaf 100644
--- a/RESC1005X40.kicad_mod
+++ b/IPC-7351-RESC/RESC1005X40.kicad_mod
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -0.5 -0.25) (end 0.5 -0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 -0.25) (end 0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start 0.5 0.25) (end -0.5 0.25) (layer F.Fab) (width 0.05))
(fp_line (start -0.5 0.25) (end -0.5 -0.25) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -1.5 -0.5) (end 1.5 -0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 -0.5) (end 1.5 0.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 0.5) (end -1.5 0.5) (layer F.CrtYd) (width 0.05))
diff --git a/RESC1608X40.kicad_mod b/IPC-7351-RESC/RESC1608X40.kicad_mod
index 50fd742..1a10e32 100644
--- a/RESC1608X40.kicad_mod
+++ b/IPC-7351-RESC/RESC1608X40.kicad_mod
@@ -1,10 +1,10 @@
(module RESC1608X40 (layer F.Cu) (tedit 5A2018AF)
(attr smd)
(fp_text reference REF** (at 0 -0.2) (layer F.Fab)
- (effects (font (size 0.16000000000000003 0.16000000000000003) (thickness 0.024)))
+ (effects (font (size 0.16 0.16) (thickness 0.024)))
)
(fp_text value VAL** (at 0 0.2) (layer F.Fab)
- (effects (font (size 0.16000000000000003 0.16000000000000003) (thickness 0.024)))
+ (effects (font (size 0.16 0.16) (thickness 0.024)))
)
(fp_text user %R (at 0 -0.2) (layer "F.SilkS")
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -0.8 -0.4) (end 0.8 -0.4) (layer F.Fab) (width 0.05))
(fp_line (start 0.8 -0.4) (end 0.8 0.4) (layer F.Fab) (width 0.05))
(fp_line (start 0.8 0.4) (end -0.8 0.4) (layer F.Fab) (width 0.05))
(fp_line (start -0.8 0.4) (end -0.8 -0.4) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -1.5 -1.0) (end 1.5 -1.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 -1.0) (end 1.5 1.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.5 1.0) (end -1.5 1.0) (layer F.CrtYd) (width 0.05))
diff --git a/RESC2012X40.kicad_mod b/IPC-7351-RESC/RESC2012X40.kicad_mod
index 874699a..926d468 100644
--- a/RESC2012X40.kicad_mod
+++ b/IPC-7351-RESC/RESC2012X40.kicad_mod
@@ -1,26 +1,26 @@
(module RESC2012X40 (layer F.Cu) (tedit 5A2018AF)
(attr smd)
- (fp_text reference REF** (at 0 -0.30000000000000004) (layer F.Fab)
+ (fp_text reference REF** (at 0 -0.3) (layer F.Fab)
(effects (font (size 0.24 0.24) (thickness 0.036)))
)
- (fp_text value VAL** (at 0 0.30000000000000004) (layer F.Fab)
+ (fp_text value VAL** (at 0 0.3) (layer F.Fab)
(effects (font (size 0.24 0.24) (thickness 0.036)))
)
- (fp_text user %R (at 0 -0.30000000000000004) (layer "F.SilkS")
+ (fp_text user %R (at 0 -0.3) (layer "F.SilkS")
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
- (fp_text user %V (at 0 0.30000000000000004) (layer "F.SilkS")
+ (fp_text user %V (at 0 0.3) (layer "F.SilkS")
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -1.0 -0.6) (end 1.0 -0.6) (layer F.Fab) (width 0.05))
(fp_line (start 1.0 -0.6) (end 1.0 0.6) (layer F.Fab) (width 0.05))
(fp_line (start 1.0 0.6) (end -1.0 0.6) (layer F.Fab) (width 0.05))
(fp_line (start -1.0 0.6) (end -1.0 -0.6) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -2.0 -1.0) (end 2.0 -1.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 2.0 -1.0) (end 2.0 1.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 2.0 1.0) (end -2.0 1.0) (layer F.CrtYd) (width 0.05))
diff --git a/RESC3216X40.kicad_mod b/IPC-7351-RESC/RESC3216X40.kicad_mod
index 0b74dd3..5250c95 100644
--- a/RESC3216X40.kicad_mod
+++ b/IPC-7351-RESC/RESC3216X40.kicad_mod
@@ -1,10 +1,10 @@
(module RESC3216X40 (layer F.Cu) (tedit 5A2018AF)
(attr smd)
(fp_text reference REF** (at 0 -0.4) (layer F.Fab)
- (effects (font (size 0.32000000000000006 0.32000000000000006) (thickness 0.048)))
+ (effects (font (size 0.32 0.32) (thickness 0.048)))
)
(fp_text value VAL** (at 0 0.4) (layer F.Fab)
- (effects (font (size 0.32000000000000006 0.32000000000000006) (thickness 0.048)))
+ (effects (font (size 0.32 0.32) (thickness 0.048)))
)
(fp_text user %R (at 0 -0.4) (layer "F.SilkS")
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -1.6 -0.8) (end 1.6 -0.8) (layer F.Fab) (width 0.05))
(fp_line (start 1.6 -0.8) (end 1.6 0.8) (layer F.Fab) (width 0.05))
(fp_line (start 1.6 0.8) (end -1.6 0.8) (layer F.Fab) (width 0.05))
(fp_line (start -1.6 0.8) (end -1.6 -0.8) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -2.5 -1.0) (end 2.5 -1.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 2.5 -1.0) (end 2.5 1.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 2.5 1.0) (end -2.5 1.0) (layer F.CrtYd) (width 0.05))
diff --git a/RESC3225X40.kicad_mod b/IPC-7351-RESC/RESC3225X40.kicad_mod
index 56b08a0..a6a7973 100644
--- a/RESC3225X40.kicad_mod
+++ b/IPC-7351-RESC/RESC3225X40.kicad_mod
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -1.6 -1.25) (end 1.6 -1.25) (layer F.Fab) (width 0.05))
(fp_line (start 1.6 -1.25) (end 1.6 1.25) (layer F.Fab) (width 0.05))
(fp_line (start 1.6 1.25) (end -1.6 1.25) (layer F.Fab) (width 0.05))
(fp_line (start -1.6 1.25) (end -1.6 -1.25) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -2.5 -1.5) (end 2.5 -1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 2.5 -1.5) (end 2.5 1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 2.5 1.5) (end -2.5 1.5) (layer F.CrtYd) (width 0.05))
diff --git a/RESC5025X40.kicad_mod b/IPC-7351-RESC/RESC5025X40.kicad_mod
index 56e45a0..008ef30 100644
--- a/RESC5025X40.kicad_mod
+++ b/IPC-7351-RESC/RESC5025X40.kicad_mod
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -2.5 -1.25) (end 2.5 -1.25) (layer F.Fab) (width 0.05))
(fp_line (start 2.5 -1.25) (end 2.5 1.25) (layer F.Fab) (width 0.05))
(fp_line (start 2.5 1.25) (end -2.5 1.25) (layer F.Fab) (width 0.05))
(fp_line (start -2.5 1.25) (end -2.5 -1.25) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -3.5 -1.5) (end 3.5 -1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.5 -1.5) (end 3.5 1.5) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.5 1.5) (end -3.5 1.5) (layer F.CrtYd) (width 0.05))
diff --git a/RESC6332X40.kicad_mod b/IPC-7351-RESC/RESC6332X40.kicad_mod
index 079df58..af29e6f 100644
--- a/RESC6332X40.kicad_mod
+++ b/IPC-7351-RESC/RESC6332X40.kicad_mod
@@ -1,10 +1,10 @@
(module RESC6332X40 (layer F.Cu) (tedit 5A2018AF)
(attr smd)
(fp_text reference REF** (at 0 -0.8) (layer F.Fab)
- (effects (font (size 0.6400000000000001 0.6400000000000001) (thickness 0.096)))
+ (effects (font (size 0.64 0.64) (thickness 0.096)))
)
(fp_text value VAL** (at 0 0.8) (layer F.Fab)
- (effects (font (size 0.6400000000000001 0.6400000000000001) (thickness 0.096)))
+ (effects (font (size 0.64 0.64) (thickness 0.096)))
)
(fp_text user %R (at 0 -0.8) (layer "F.SilkS")
@@ -14,13 +14,13 @@
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
-
+
(fp_line (start -3.15 -1.6) (end 3.15 -1.6) (layer F.Fab) (width 0.05))
(fp_line (start 3.15 -1.6) (end 3.15 1.6) (layer F.Fab) (width 0.05))
(fp_line (start 3.15 1.6) (end -3.15 1.6) (layer F.Fab) (width 0.05))
(fp_line (start -3.15 1.6) (end -3.15 -1.6) (layer F.Fab) (width 0.05))
-
+
(fp_line (start -4.0 -2.0) (end 4.0 -2.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.0 -2.0) (end 4.0 2.0) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.0 2.0) (end -4.0 2.0) (layer F.CrtYd) (width 0.05))
diff --git a/gen b/gen
index 6e850f6..f974076 100755
--- a/gen
+++ b/gen
@@ -1,35 +1,123 @@
#!/usr/bin/env python
from jinja2 import Environment, FileSystemLoader, select_autoescape
-import os.path
+import os, os.path
+import re
+import ipc_sm_782
basedir=os.path.dirname(__file__)
env = Environment(
- loader=FileSystemLoader(os.path.join(basedir, 'templates'))
+ loader=FileSystemLoader(os.path.join(basedir, 'templates')),
+ lstrip_blocks=True,
)
+env.globals["rnd2"] = lambda x: round(x, 2)
chip = env.get_template('CHIP.j2')
-resc_parameters = [
- # size x, size y, pad x, pad y, pad center-center, grid x, grid y, terminal x, heights
- (10, 5, 0.90, 0.70, 1.30, 6, 2, (0.10, 0.30), [15, 35, 37, 40]),
- (16, 8, 1.10, 1.00, 1.70, 6, 4, (0.15, 0.40), [40]),
- (20, 12, 1.30, 1.50, 1.90, 8, 4, (0.15, 0.65), [40]),
- (32, 16, 1.60, 1.80, 2.80, 10, 4, (0.25, 0.75), [40]),
- (32, 25, 1.60, 2.70, 2.80, 10, 6, (0.25, 0.75), [40]),
- (50, 25, 1.80, 2.70, 4.40, 14, 6, (0.35, 0.85), [40]),
- (63, 32, 1.80, 3.20, 5.60, 16, 8, (0.35, 0.85), [40]),
-]
-
-for (sx, sy, px, py, pcc, gx, gy, tx, heights) in resc_parameters:
- tx = (tx[0] + tx[1]) / 2
- print("RESC{:02}{:02}".format(sx, sy))
- gx = gx*0.5
- gy = gy*0.5
- for h in heights:
- key = "RESC{:02}{:02}X{:02}".format(sx, sy, h)
- print(" " + key)
- kicad_mod = chip.render({"key": key, "sx": sx, "sy": sy, "px": px, "py": py, "pcc": pcc, "gx": gx, "gy": gy, "h": h})
- with open("{}.kicad_mod".format(key), "w") as f:
- f.write(kicad_mod)
+resc_heights = {
+ "1005": [15, 35, 37, 40],
+ "1608": [40],
+ "2012": [40],
+ "3216": [40],
+ "3225": [40],
+ "5025": [40],
+ "6332": [40],
+}
+
+capc_heights = {
+ "1005": [15, 35, 37, 40],
+ "1608": [40],
+ "2012": [40],
+ "3216": [40],
+ "3225": [40],
+ "5025": [40],
+ "6332": [40],
+}
+
+def auto_str(cls):
+ def __str__(self):
+ return '%s(%s)' % (
+ type(self).__name__,
+ ', '.join('%s=%s' % item for item in vars(self).items())
+ )
+ cls.__str__ = __str__
+ return cls
+
+
+class Value(object):
+ def __init__(self, typ, mn, mx):
+ self.typ = typ if typ else (mn + mx) / 2
+ self.mn = mn
+ self.mx = mx
+
+ def __str__(self):
+ return "(typ={:0.2f}, min={:0.2f}, max={:0.2f})".format(self.typ, self.mn, self.mx)
+
+
+grid_re = re.compile("([0-9]+)x([0-9]+)")
+
+def parse_courtyard(grid):
+ (grid_y, grid_x) = grid_re.match(grid).groups()
+ return (float(grid_x) * 0.5 / 2, float(grid_y) * 0.5 / 2)
+
+
+@auto_str
+class ChipDimensions(object):
+ def __init__(self, **kw):
+ for k, v in kw.items():
+ setattr(self, k, v)
+
+ @staticmethod
+ def from_ipc(data):
+ print("data={}".format(data))
+ size_mm = data["size_mm"]
+# print("x={}".format(grid_re.match(data["grid"]).groups()))
+ return ChipLandPattern(
+ key = size_mm,
+ size_x = Value(float(size_mm[0:2]) / 10, data["l_max"], data["l_min"]),
+ size_y = Value(float(size_mm[2:4]) / 10, data["w_max"], data["w_min"]),
+ terminal_size = Value(None, data["t_min"], data["t_max"]),
+ height_max = data["h_max"])
+
+@auto_str
+class ChipLandPattern(object):
+ def __init__(self, **kw):
+ for k, v in kw.items():
+ setattr(self, k, v)
+
+ @staticmethod
+ def from_ipc(data):
+# print("data={}".format(data))
+ size_mm = data["size_mm"]
+ (courtyard_x, courtyard_y) = parse_courtyard(data["grid"])
+ r = lambda x: round(x)
+ return ChipLandPattern(
+ key = size_mm,
+ size_x = float(size_mm[0:2]) / 10,
+ size_y = float(size_mm[2:4]) / 10,
+ pad_pos_x = float(data["c"]) / 2,
+ pad_size_x = float(data["y"]),
+ pad_size_y = float(data["x"]),
+ courtyard_x = courtyard_x, courtyard_y = courtyard_y)
+
+#resc_dims = [ChipDimensions.from_ipc(p) for p in ipc_sm_782.data["resc"]["dimensions"]]
+resc_lp = [ChipLandPattern.from_ipc(p) for p in ipc_sm_782.data["resc"]["land_patterns"]]
+#capc_dims = [ChipDimensions.from_ipc(p) for p in ipc_sm_782.data["capc"]["dimensions"]]
+
+capc_lp = [ChipLandPattern.from_ipc(p) for p in ipc_sm_782.data["capc"]["land_patterns"]]
+
+for kind, lps in {"RESC": resc_lp, "CAPC": capc_lp}.items():
+ basedir = "IPC-7351-{}".format(kind)
+ if not os.path.isdir(basedir):
+ os.mkdir(basedir)
+ for lp in lps:
+ print("{}{}".format(kind, lp.key))
+ print("lp={}".format(lp))
+ print("lp={}".format(lp.size_x / 8))
+ for h in resc_heights.get(lp.key, []):
+ key = "{}{}X{:02}".format(kind, lp.key, h)
+ print(" " + key)
+ kicad_mod = chip.render({"lp": lp, "key": key, "h": h})
+ with open(os.path.join(basedir, "{}.kicad_mod".format(key)), "w") as f:
+ f.write(kicad_mod)
diff --git a/ipc_sm_782.py b/ipc_sm_782.py
new file mode 100644
index 0000000..bf07764
--- /dev/null
+++ b/ipc_sm_782.py
@@ -0,0 +1,65 @@
+def make_dicts(header, *rows):
+ return [{k: v for k, v in zip(header, row)} for row in rows]
+
+resc_dimensions = make_dicts(["size_mm", "size_in", "l_min", "l_max", "s_min", "s_max", "w_min", "w_max", "t_min", "t_max", "h_max"],
+# Component
+# Identifier L S W T H
+# (mm) [in] min max min max min max min max max
+ ("1005", "0402", 1.00, 1.10, 0.40, 0.70, 0.48, 0.60, 0.10, 0.30, 0.40),
+ ("1608", "0603", 1.50, 1.70, 0.70, 1.11, 0.70, 0.95, 0.15, 0.40, 0.60),
+ ("2012", "0805", 1.85, 2.15, 0.55, 1.32, 1.10, 1.40, 0.15, 0.65, 0.65),
+ ("3216", "1206", 3.05, 3.35, 1.55, 2.32, 1.45, 1.75, 0.25, 0.75, 0.71),
+ ("3225", "1210", 3.05, 3.35, 1.55, 2.32, 2.34, 2.64, 0.25, 0.75, 0.71),
+ ("5025", "2010", 4.85, 5.15, 3.15, 3.92, 2.35, 2.65, 0.35, 0.85, 0.71),
+ ("6332", "2512", 6.15, 6.45, 4.45, 5.22, 3.05, 3.35, 0.35, 0.85, 0.71),
+)
+
+resc_land_patterns = make_dicts(["rlp_no", "size_mm", "size_in", "z", "g", "x", "y", "c", "grid"],
+# Component Identifier Y C Placement Grid
+# RLP No. (mm) [in] Z G X ref ref (No. of Grid elements)
+ ("100A", "1005", "0402", 2.20, 0.40, 0.70, 0.90, 1.30, "2x6"),
+ ("101A", "1608", "0603", 2.80, 0.60, 1.00, 1.10, 1.70, "4x6"),
+ ("102A", "2012", "0805", 3.20, 0.60, 1.50, 1.30, 1.90, "4x8"),
+ ("103A", "3216", "1206", 4.40, 1.20, 1.80, 1.60, 2.80, "4x10"),
+ ("104A", "3225", "1210", 4.40, 1.20, 2.70, 1.60, 2.80, "6x10"),
+ ("105A", "5025", "2010", 6.20, 2.60, 2.70, 1.80, 4.40, "6x14"),
+ ("106A", "6332", "2512", 7.40, 3.80, 3.20, 1.80, 5.60, "8x16"),
+)
+
+capc_dimensions = make_dicts(["size_mm", "size_in", "l_min", "l_max", "s_min", "s_max", "w_min", "w_max", "t_min", "t_max", "h_max"],
+# Component
+# Identifier L S W T H
+# (mm) [in] min max min max min max min max max
+ ("1005", "0402", 0.90, 1.10, 0.30, 0.65, 0.40, 0.60, 0.10, 0.30, 0.60),
+ ("1310", "0504", 1.02, 1.32, 0.26, 0.72, 0.77, 1.27, 0.13, 0.38, 1.02),
+ ("1608", "0603", 1.45, 1.75, 0.45, 0.97, 0.65, 0.95, 0.20, 0.50, 0.85),
+ ("2012", "0805", 1.80, 2.20, 0.30, 1.11, 1.05, 1.45, 0.25, 0.75, 1.10),
+ ("3216", "1206", 3.00, 3.40, 1.50, 2.31, 1.40, 1.80, 0.25, 0.75, 1.35),
+ ("3225", "1210", 3.00, 3.40, 1.50, 2.31, 2.30, 2.70, 0.25, 0.75, 1.35),
+ ("4532", "1812", 4.20, 4.80, 2.30, 3.46, 3.00, 3.40, 0.25, 0.95, 1.35),
+ ("4564", "1825", 4.20, 4.80, 2.30, 3.46, 6.00, 6.80, 0.25, 0.95, 1.10),
+)
+
+capc_land_patterns = make_dicts(["rlp_no", "size_mm", "size_in", "z", "g", "x", "y", "c", "grid"],
+# Component Identifier Y C Placement Grid
+# RLP No. (mm) [in] Z G X ref ref (No. of Grid elements)
+ ("130A", "1005", "0402", 2.20, 0.40, 0.70, 0.90, 1.30, "2x6"),
+ ("131A", "1310", "0504", 2.40, 0.40, 1.30, 1.00, 1.40, "4x6"),
+ ("132A", "1608", "0603", 2.80, 0.60, 1.00, 1.10, 1.70, "4x6"),
+ ("133A", "2012", "0805", 3.20, 0.60, 1.50, 1.30, 1.90, "4x8"),
+ ("134A", "3216", "1206", 4.40, 1.20, 1.80, 1.60, 2.80, "4x10"),
+ ("135A", "3225", "1210", 4.40, 1.20, 2.70, 1.60, 2.80, "6x10"),
+ ("136A", "4532", "1812", 5.80, 2.00, 3.40, 1.90, 3.90, "8x12"),
+ ("137A", "4564", "1825", 5.80, 2.00, 6.80, 1.90, 3.90, "14x12"),
+)
+
+data = dict(
+ resc = dict(
+ dimensions = resc_dimensions,
+ land_patterns = resc_land_patterns
+ ),
+ capc = dict(
+ dimensions = capc_dimensions,
+ land_patterns = capc_land_patterns
+ )
+)
diff --git a/templates/CHIP.j2 b/templates/CHIP.j2
index 13ee398..11c8789 100644
--- a/templates/CHIP.j2
+++ b/templates/CHIP.j2
@@ -1,31 +1,31 @@
(module {{key}} (layer F.Cu) (tedit 5A2018AF)
(attr smd)
- (fp_text reference REF** (at 0 {{sy/-4 * 0.1}}) (layer F.Fab)
- (effects (font (size {{sy/5 * 0.1}} {{sy/5 * 0.1}}) (thickness {{sy/5 * 0.015}})))
+ (fp_text reference REF** (at 0 {{ lp.size_y / -4 }}) (layer F.Fab)
+ (effects (font (size {{ rnd2(lp.size_y / 5) }} {{ lp.size_y / 5 }}) (thickness {{ lp.size_y / 5 * 0.15 }})))
)
- (fp_text value VAL** (at 0 {{sy/4 * 0.1}}) (layer F.Fab)
- (effects (font (size {{sy/5 * 0.1}} {{sy/5 * 0.1}}) (thickness {{sy/5 * 0.015}})))
+ (fp_text value VAL** (at 0 {{ lp.size_y / 4 }}) (layer F.Fab)
+ (effects (font (size {{ rnd2(lp.size_y / 5) }} {{ lp.size_y / 5 }}) (thickness {{ lp.size_y / 5 * 0.15 }})))
)
- (fp_text user %R (at 0 {{sy/-4 * 0.1}}) (layer "F.SilkS")
+ (fp_text user %R (at 0 {{ lp.size_y / -4 }}) (layer "F.SilkS")
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
- (fp_text user %V (at 0 {{sy/4 * 0.1}}) (layer "F.SilkS")
+ (fp_text user %V (at 0 {{ lp.size_y / 4 }}) (layer "F.SilkS")
(effects (font (size 0.7 0.7) (thickness 0.1)))
)
{# Outline #}
- (fp_line (start {{sx/-20}} {{sy/-20}}) (end {{sx/ 20}} {{sy/-20}}) (layer F.Fab) (width 0.05))
- (fp_line (start {{sx/ 20}} {{sy/-20}}) (end {{sx/ 20}} {{sy/ 20}}) (layer F.Fab) (width 0.05))
- (fp_line (start {{sx/ 20}} {{sy/ 20}}) (end {{sx/-20}} {{sy/ 20}}) (layer F.Fab) (width 0.05))
- (fp_line (start {{sx/-20}} {{sy/ 20}}) (end {{sx/-20}} {{sy/-20}}) (layer F.Fab) (width 0.05))
+ (fp_line (start {{ lp.size_x / -2 }} {{ lp.size_y / -2 }}) (end {{ lp.size_x / 2 }} {{ lp.size_y / -2 }}) (layer F.Fab) (width 0.05))
+ (fp_line (start {{ lp.size_x / 2 }} {{ lp.size_y / -2 }}) (end {{ lp.size_x / 2 }} {{ lp.size_y / 2 }}) (layer F.Fab) (width 0.05))
+ (fp_line (start {{ lp.size_x / 2 }} {{ lp.size_y / 2 }}) (end {{ lp.size_x / -2 }} {{ lp.size_y / 2 }}) (layer F.Fab) (width 0.05))
+ (fp_line (start {{ lp.size_x / -2 }} {{ lp.size_y / 2 }}) (end {{ lp.size_x / -2 }} {{ lp.size_y / -2 }}) (layer F.Fab) (width 0.05))
{# Courtyard #}
- (fp_line (start {{gx/-2}} {{gy/-2}}) (end {{gx/2}} {{gy/-2}}) (layer F.CrtYd) (width 0.05))
- (fp_line (start {{gx/2}} {{gy/-2}}) (end {{gx/2}} {{gy/2}}) (layer F.CrtYd) (width 0.05))
- (fp_line (start {{gx/2}} {{gy/2}}) (end {{gx/-2}} {{gy/2}}) (layer F.CrtYd) (width 0.05))
- (fp_line (start {{gx/-2}} {{gy/2}}) (end {{gx/-2}} {{gy/-2}}) (layer F.CrtYd) (width 0.05))
+ (fp_line (start {{ -lp.courtyard_x }} {{ -lp.courtyard_y }}) (end {{ lp.courtyard_x }} {{ -lp.courtyard_y }}) (layer F.CrtYd) (width 0.05))
+ (fp_line (start {{ lp.courtyard_x }} {{ -lp.courtyard_y }}) (end {{ lp.courtyard_x }} {{ lp.courtyard_y }}) (layer F.CrtYd) (width 0.05))
+ (fp_line (start {{ lp.courtyard_x }} {{ lp.courtyard_y }}) (end {{ -lp.courtyard_x }} {{ lp.courtyard_y }}) (layer F.CrtYd) (width 0.05))
+ (fp_line (start {{ -lp.courtyard_x }} {{ lp.courtyard_y }}) (end {{ -lp.courtyard_x }} {{ -lp.courtyard_y }}) (layer F.CrtYd) (width 0.05))
- (pad 1 smd rect (at {{pcc/-2}} 0) (size {{px}} {{py}}) (layers F.Cu F.Paste F.Mask))
- (pad 2 smd rect (at {{pcc/2}} 0) (size {{px}} {{py}}) (layers F.Cu F.Paste F.Mask))
+ (pad 1 smd rect (at {{ -lp.pad_pos_x }} 0) (size {{ lp.pad_size_x }} {{ lp.pad_size_y }}) (layers F.Cu F.Paste F.Mask))
+ (pad 2 smd rect (at {{ lp.pad_pos_x }} 0) (size {{ lp.pad_size_x }} {{ lp.pad_size_y }}) (layers F.Cu F.Paste F.Mask))
)