Index: trunk/tests/Makefile =================================================================== --- trunk/tests/Makefile (revision 34058) +++ trunk/tests/Makefile (revision 34059) @@ -11,6 +11,7 @@ cd query && $(MAKE) test cd menu && $(MAKE) test cd cam && $(MAKE) test + cd vendordrill && $(MAKE) test @echo " " @echo "+-------------------------------------------------+" @echo "+ All tests passed, pcb-rnd is safe to install. +" @@ -29,4 +30,5 @@ cd query && $(MAKE) clean cd menu && $(MAKE) clean cd cam && $(MAKE) clean + cd vendordrill && $(MAKE) clean Index: trunk/tests/vendordrill/Makefile =================================================================== --- trunk/tests/vendordrill/Makefile (nonexistent) +++ trunk/tests/vendordrill/Makefile (revision 34059) @@ -0,0 +1,7 @@ +all: + +test: + ./test_all.sh + +clean: + -rm *.out Index: trunk/tests/vendordrill/skip_attr.lht =================================================================== --- trunk/tests/vendordrill/skip_attr.lht (nonexistent) +++ trunk/tests/vendordrill/skip_attr.lht (revision 34059) @@ -0,0 +1,14 @@ +ha:vendor_drill_map { +# skip test: if not skipped, round down to 0.3 mm + + units = mm + round = down + li:drillmap = { + 0.3 + 100 + } + + li:skips = { + a.blobb = {yes} + } +} Index: trunk/tests/vendordrill/skip_attr.ref =================================================================== --- trunk/tests/vendordrill/skip_attr.ref (nonexistent) +++ trunk/tests/vendordrill/skip_attr.ref (revision 34059) @@ -0,0 +1,27 @@ +I: *** PRE *** +*** report 'Drill Report' begin *** +There are 6 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 1.0000 0 1 0 0 + 1.5000 0 1 0 0 + 2.0000 0 1 0 0 + 2.5000 0 1 0 0 + 3.0000 0 1 0 0 + 3.5000 0 1 0 0 + +*** report 'Drill Report' end *** +I: Loaded 2 vendor drills from /home/igor2/C/pcb-rnd/trunk/tests/vendordrill/skip_attr.lht +I: Loaded 1 skips for 1 different attributes +I: Vendor mapping skipped because blobb = yes matches yes +I: Updated 5 drill sizes out of 5 total +I: Adjusted active via hole size to be 11.81 mils +I: *** POST *** +*** report 'Drill Report' begin *** +There are 2 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 0.3000 0 5 0 0 + 2.5000 0 1 0 0 + +*** report 'Drill Report' end *** Index: trunk/tests/vendordrill/skip_descr.lht =================================================================== --- trunk/tests/vendordrill/skip_descr.lht (nonexistent) +++ trunk/tests/vendordrill/skip_descr.lht (revision 34059) @@ -0,0 +1,14 @@ +ha:vendor_drill_map { +# skip test: if not skipped, round down to 0.3 mm + + units = mm + round = down + li:drillmap = { + 0.3 + 100 + } + + li:skips = { + descr = {^foo$} # Skip based on the footprint attribute. + } +} Index: trunk/tests/vendordrill/skip_descr.ref =================================================================== --- trunk/tests/vendordrill/skip_descr.ref (nonexistent) +++ trunk/tests/vendordrill/skip_descr.ref (revision 34059) @@ -0,0 +1,29 @@ +I: *** PRE *** +*** report 'Drill Report' begin *** +There are 6 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 1.0000 0 1 0 0 + 1.5000 0 1 0 0 + 2.0000 0 1 0 0 + 2.5000 0 1 0 0 + 3.0000 0 1 0 0 + 3.5000 0 1 0 0 + +*** report 'Drill Report' end *** +I: Loaded 2 vendor drills from /home/igor2/C/pcb-rnd/trunk/tests/vendordrill/skip_descr.lht +I: Loaded 1 skips for 1 different attributes +I: Vendor mapping skipped because footprint = foo matches ^foo$ +I: Vendor mapping skipped because footprint = foo matches ^foo$ +I: Updated 4 drill sizes out of 4 total +I: Adjusted active via hole size to be 11.81 mils +I: *** POST *** +*** report 'Drill Report' begin *** +There are 3 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 0.3000 0 4 0 0 + 3.0000 0 1 0 0 + 3.5000 0 1 0 0 + +*** report 'Drill Report' end *** Index: trunk/tests/vendordrill/skip_refdes.lht =================================================================== --- trunk/tests/vendordrill/skip_refdes.lht (nonexistent) +++ trunk/tests/vendordrill/skip_refdes.lht (revision 34059) @@ -0,0 +1,14 @@ +ha:vendor_drill_map { +# skip test: if not skipped, round down to 0.3 mm + + units = mm + round = down + li:drillmap = { + 0.3 + 100 + } + + li:skips = { + refdes = {^U[1-3]$} # Skip U1, U2, U3 + } +} Index: trunk/tests/vendordrill/skip_refdes.ref =================================================================== --- trunk/tests/vendordrill/skip_refdes.ref (nonexistent) +++ trunk/tests/vendordrill/skip_refdes.ref (revision 34059) @@ -0,0 +1,31 @@ +I: *** PRE *** +*** report 'Drill Report' begin *** +There are 6 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 1.0000 0 1 0 0 + 1.5000 0 1 0 0 + 2.0000 0 1 0 0 + 2.5000 0 1 0 0 + 3.0000 0 1 0 0 + 3.5000 0 1 0 0 + +*** report 'Drill Report' end *** +I: Loaded 2 vendor drills from /home/igor2/C/pcb-rnd/trunk/tests/vendordrill/skip_refdes.lht +I: Loaded 1 skips for 1 different attributes +I: Vendor mapping skipped because refdes = U1 matches ^U[1-3]$ +I: Vendor mapping skipped because refdes = U2 matches ^U[1-3]$ +I: Vendor mapping skipped because refdes = U3 matches ^U[1-3]$ +I: Updated 3 drill sizes out of 3 total +I: Adjusted active via hole size to be 11.81 mils +I: *** POST *** +*** report 'Drill Report' begin *** +There are 4 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 0.3000 0 3 0 0 + 1.5000 0 1 0 0 + 2.0000 0 1 0 0 + 2.5000 0 1 0 0 + +*** report 'Drill Report' end *** Index: trunk/tests/vendordrill/skip_value.lht =================================================================== --- trunk/tests/vendordrill/skip_value.lht (nonexistent) +++ trunk/tests/vendordrill/skip_value.lht (revision 34059) @@ -0,0 +1,14 @@ +ha:vendor_drill_map { +# skip test: if not skipped, round down to 0.3 mm + + units = mm + round = down + li:drillmap = { + 0.3 + 100 + } + + li:skips = { + value = {^1} + } +} Index: trunk/tests/vendordrill/skip_value.ref =================================================================== --- trunk/tests/vendordrill/skip_value.ref (nonexistent) +++ trunk/tests/vendordrill/skip_value.ref (revision 34059) @@ -0,0 +1,29 @@ +I: *** PRE *** +*** report 'Drill Report' begin *** +There are 6 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 1.0000 0 1 0 0 + 1.5000 0 1 0 0 + 2.0000 0 1 0 0 + 2.5000 0 1 0 0 + 3.0000 0 1 0 0 + 3.5000 0 1 0 0 + +*** report 'Drill Report' end *** +I: Loaded 2 vendor drills from /home/igor2/C/pcb-rnd/trunk/tests/vendordrill/skip_value.lht +I: Loaded 1 skips for 1 different attributes +I: Vendor mapping skipped because value = 1 matches ^1 +I: Vendor mapping skipped because value = 1 matches ^1 +I: Updated 4 drill sizes out of 4 total +I: Adjusted active via hole size to be 11.81 mils +I: *** POST *** +*** report 'Drill Report' begin *** +There are 3 different drill sizes used in this layout, 6 holes total + +Drill Diam. (mm) # of Pins # of Vias # of Elements # Unplated + 0.3000 0 4 0 0 + 2.0000 0 1 0 0 + 2.5000 0 1 0 0 + +*** report 'Drill Report' end *** Index: trunk/tests/vendordrill/test_all.sh =================================================================== --- trunk/tests/vendordrill/test_all.sh (nonexistent) +++ trunk/tests/vendordrill/test_all.sh (revision 34059) @@ -0,0 +1,57 @@ +#!/bin/sh + +ROOT="../.." +SRC="$ROOT/src" +PCBRND="./pcb-rnd" +GLOBARGS="-c rc/library_search_paths=../tests/RTT/lib -c rc/quiet=1" + + +run_pcb_rnd() { +local brd="`pwd`/$1" + +shift 1 + +( +echo ' +message(*** PRE ***) +Report(DrillReport) +' + +while test $# -gt 0 +do + echo "LoadVendorFrom(\"`pwd`/$1\", pure)" + shift 1 +done + +echo ' +ApplyVendor() + +message(*** POST ***) +Report(DrillReport) +') | ( + cd $SRC + pcb-rnd $GLOBARGS --gui batch $brd +) +} + +run_test() +{ + local tname="$1" + shift 1 + + run_pcb_rnd "$@" > $tname.out + + diff -u $tname.ref $tname.out + if test "$?" = "0" + then + rm $tname.out + return 0 + fi + return 1 +} + +run_test skip_attr testbrd.lht skip_attr.lht +run_test skip_descr testbrd.lht skip_descr.lht +run_test skip_refdes testbrd.lht skip_refdes.lht +run_test skip_value testbrd.lht skip_value.lht + Property changes on: trunk/tests/vendordrill/test_all.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/tests/vendordrill/testbrd.lht =================================================================== --- trunk/tests/vendordrill/testbrd.lht (nonexistent) +++ trunk/tests/vendordrill/testbrd.lht (revision 34059) @@ -0,0 +1,1133 @@ +ha:pcb-rnd-board-v7 { + + ha:meta { + ha:size { + thermal_scale = 0.500000 + x = 40.005mm + y = 300.0mil + } + ha:grid { + spacing = 25.0mil + offs_x = 0.0 + offs_y = 0.0 + } + } + + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=31.5mil; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=2.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=2.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=2.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.1 { + hdia=1.0mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.2 { + hdia=1.5mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.3 { + hdia=2.0mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.4 { + hdia=2.5mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.5 { + hdia=3.0mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + + ha:ps_proto_v6.6 { + hdia=3.5mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:subc.25 { + ha:attributes { + value=2 + refdes=U0 + footprint=bar + } + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=1.0mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:padstack_ref.36 { + proto=0; x=150.0mil; y=150.0mil; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + ha:flags { + clearline=1 + } + + li:thermal { + } + } + } + li:layers { + + ha:subc-aux { + lid=0 + ha:combining { } + + li:objects { + ha:line.26 { + x1=175.0mil; y1=150.0mil; x2=175.0mil; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=origin + } + } + ha:line.29 { + x1=175.0mil; y1=150.0mil; x2=5.445mm; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=x + } + } + ha:line.32 { + x1=175.0mil; y1=150.0mil; x2=175.0mil; y2=4.81mm; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=y + } + } + } + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + } + + ha:top-silk { + lid=1 + ha:combining { } + + li:objects { + ha:text.35 { + string=%a.parent.refdes%; x=125.0mil; y=325.0mil; scale=100; fid=0; + ha:flags { + dyntext=1 + floater=1 + } + rot = 0.000000 + } + } + ha:type { + silk = 1 + top = 1 + } + } + } + } + uid = k4WU2Qkfmv+Mr4JDzq8AAAAB + } + ha:subc.50 { + ha:attributes { + value=2 + refdes=U1 + footprint=bar + } + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=1.5mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:padstack_ref.61 { + proto=0; x=400.0mil; y=150.0mil; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + ha:flags { + clearline=1 + } + + li:thermal { + } + } + } + li:layers { + + ha:subc-aux { + lid=0 + ha:combining { } + + li:objects { + ha:line.51 { + x1=400.0mil; y1=150.0mil; x2=400.0mil; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=origin + } + } + ha:line.54 { + x1=400.0mil; y1=150.0mil; x2=11.16mm; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=x + } + } + ha:line.57 { + x1=400.0mil; y1=150.0mil; x2=400.0mil; y2=4.81mm; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=y + } + } + } + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + } + + ha:top-silk { + lid=1 + ha:combining { } + + li:objects { + ha:text.60 { + string=%a.parent.refdes%; x=375.0mil; y=325.0mil; scale=100; fid=0; + ha:flags { + dyntext=1 + floater=1 + } + rot = 0.000000 + } + } + ha:type { + silk = 1 + top = 1 + } + } + } + } + uid = k4WU2Qkfmv+Mr4JDzq8AAAAD + } + ha:subc.75 { + ha:attributes { + value=1 + refdes=U2 + } + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=2.0mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:padstack_ref.86 { + proto=0; x=675.0mil; y=150.0mil; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + ha:flags { + clearline=1 + } + + li:thermal { + } + } + } + li:layers { + + ha:subc-aux { + lid=0 + ha:combining { } + + li:objects { + ha:line.76 { + x1=675.0mil; y1=150.0mil; x2=675.0mil; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=origin + } + } + ha:line.79 { + x1=675.0mil; y1=150.0mil; x2=18.145mm; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=x + } + } + ha:line.82 { + x1=675.0mil; y1=150.0mil; x2=675.0mil; y2=4.81mm; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=y + } + } + } + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + } + + ha:top-silk { + lid=1 + ha:combining { } + + li:objects { + ha:text.85 { + string=%a.parent.refdes%; x=650.0mil; y=325.0mil; scale=100; fid=0; + ha:flags { + dyntext=1 + floater=1 + } + rot = 0.000000 + } + } + ha:type { + silk = 1 + top = 1 + } + } + } + } + uid = k4WU2Qkfmv+Mr4JDzq8AAAAF + } + ha:subc.100 { + ha:attributes { + value=1 + refdes=U3 + blobb=yes + } + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=2.5mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:padstack_ref.111 { + proto=0; x=925.0mil; y=150.0mil; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + ha:flags { + clearline=1 + } + + li:thermal { + } + } + } + li:layers { + + ha:subc-aux { + lid=0 + ha:combining { } + + li:objects { + ha:line.101 { + x1=900.0mil; y1=150.0mil; x2=900.0mil; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=origin + } + } + ha:line.104 { + x1=900.0mil; y1=150.0mil; x2=23.86mm; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=x + } + } + ha:line.107 { + x1=900.0mil; y1=150.0mil; x2=900.0mil; y2=4.81mm; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=y + } + } + } + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + } + + ha:top-silk { + lid=1 + ha:combining { } + + li:objects { + ha:text.110 { + string=%a.parent.refdes%; x=900.0mil; y=325.0mil; scale=100; fid=0; + ha:flags { + dyntext=1 + floater=1 + } + rot = 0.000000 + } + } + ha:type { + silk = 1 + top = 1 + } + } + } + } + uid = k4WU2Qkfmv+Mr4JDzq8AAAAH + } + ha:subc.125 { + ha:attributes { + refdes=U4 + footprint=foo + } + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=3.0mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:padstack_ref.136 { + proto=0; x=1.175in; y=150.0mil; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + ha:flags { + clearline=1 + } + + li:thermal { + } + } + } + li:layers { + + ha:subc-aux { + lid=0 + ha:combining { } + + li:objects { + ha:line.126 { + x1=1.175in; y1=150.0mil; x2=1.175in; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=origin + } + } + ha:line.129 { + x1=1.175in; y1=150.0mil; x2=30.845mm; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=x + } + } + ha:line.132 { + x1=1.175in; y1=150.0mil; x2=1.175in; y2=4.81mm; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=y + } + } + } + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + } + + ha:top-silk { + lid=1 + ha:combining { } + + li:objects { + ha:text.135 { + string=%a.parent.refdes%; x=29.21mm; y=325.0mil; scale=100; fid=0; + ha:flags { + dyntext=1 + floater=1 + } + rot = 0.000000 + } + } + ha:type { + silk = 1 + top = 1 + } + } + } + } + uid = k4WU2Qkfmv+Mr4JDzq8AAAAJ + } + ha:subc.150 { + ha:attributes { + refdes=U5 + footprint=foo + } + ha:data { + li:padstack_prototypes { + + ha:ps_proto_v6.0 { + hdia=3.5mm; hplated=1; htop=0; hbottom=0; + li:shape { + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + top = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + bottom = 1 + copper = 1 + } + clearance=0.0 + } + + ha:ps_shape_v4 { + ha:ps_circ { x=0.0; y=0.0; dia=5.0mm; } + ha:combining { } + ha:layer_mask { + copper = 1 + intern = 1 + } + clearance=0.0 + } + } + } + } + + li:objects { + ha:padstack_ref.161 { + proto=0; x=36.195mm; y=150.0mil; rot=0.000000; xmirror=0; smirror=0; clearance=20.0mil; + ha:flags { + clearline=1 + } + + li:thermal { + } + } + } + li:layers { + + ha:subc-aux { + lid=0 + ha:combining { } + + li:objects { + ha:line.151 { + x1=36.195mm; y1=150.0mil; x2=36.195mm; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=origin + } + } + ha:line.154 { + x1=36.195mm; y1=150.0mil; x2=37.195mm; y2=150.0mil; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=x + } + } + ha:line.157 { + x1=36.195mm; y1=150.0mil; x2=36.195mm; y2=4.81mm; thickness=0.1mm; clearance=0.0; + ha:attributes { + subc-role=y + } + } + } + ha:type { + top = 1 + misc = 1 + virtual = 1 + } + } + + ha:top-silk { + lid=1 + ha:combining { } + + li:objects { + ha:text.160 { + string=%a.parent.refdes%; x=1.4in; y=325.0mil; scale=100; fid=0; + ha:flags { + dyntext=1 + floater=1 + } + rot = 0.000000 + } + } + ha:type { + silk = 1 + top = 1 + } + } + } + } + uid = k4WU2Qkfmv+Mr4JDzq8AAAAL + } + } + li:layers { + + ha:top-sig { + lid=0 + group=2 + ha:combining { } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shiftt} + {pcb-rnd::key::select}={l; t} + } + + li:objects { + } + color = {#8b2323} + } + + ha:bottom-sig { + lid=1 + group=7 + ha:combining { } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shiftb} + {pcb-rnd::key::select}={l; b} + } + + li:objects { + } + color = {#3a5fcd} + } + + ha:outline { + lid=2 + group=6 + ha:combining { } + + li:objects { + } + color = {#00868b} + } + + ha:bottom-silk { + lid=3 + group=9 + ha:combining { auto=1; } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shiftx} + {pcb-rnd::key::select}={l; x} + } + + li:objects { + } + color = {#000000} + } + + ha:top-silk { + lid=4 + group=0 + ha:combining { auto=1; } + + ha:attributes { + {pcb-rnd::key::vis}={l; Shifts} + {pcb-rnd::key::select}={l; s} + } + + li:objects { + } + color = {#000000} + } + + ha:top-mask { + lid=5 + group=1 + ha:combining { sub=1; auto=1; } + + li:objects { + } + color = {#ff0000} + } + + ha:bottom-mask { + lid=6 + group=8 + ha:combining { sub=1; auto=1; } + + li:objects { + } + color = {#ff0000} + } + + ha:slot-plated { + lid=7 + group=10 + ha:combining { auto=1; } + + li:objects { + } + color = {#8b7355} + } + } + } + ha:layer_stack { + li:groups { + ha:0 { + name = top_silk + ha:type { silk=1; top=1; } + li:layers { 4; } + } + ha:1 { + name = top_mask + ha:type { top=1; mask=1; } + li:layers { 5; } + } + ha:2 { + name = top_copper + ha:type { copper=1; top=1; } + li:layers { 0; } + } + ha:3 { + name = grp_4 + ha:type { substrate=1; intern=1; } + li:layers { } + ha:attributes { + thickness={0.7375mm } + } + } + ha:4 { + name = grp_6 + ha:type { substrate=1; intern=1; } + li:layers { } + ha:attributes { + thickness={0.125mm } + } + } + ha:5 { + name = grp_8 + ha:type { substrate=1; intern=1; } + li:layers { } + ha:attributes { + thickness={0.7375mm } + } + } + ha:6 { + name = global_outline + ha:type { boundary=1; } + li:layers { 2; } + purpose = uroute + } + ha:7 { + name = bottom_copper + ha:type { bottom=1; copper=1; } + li:layers { 1; } + } + ha:8 { + name = bottom_mask + ha:type { bottom=1; mask=1; } + li:layers { 6; } + } + ha:9 { + name = bottom_silk + ha:type { silk=1; bottom=1; } + li:layers { 3; } + } + ha:10 { + name = pmech + ha:type { mech=1; } + li:layers { 7; } + purpose = proute + } + } + } + ha:pixmaps { + } + + li:pcb-rnd-conf-v1 { + ha:overwrite { + ha:editor { + grid_unit = mm + } + } + } + +}