1 # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2009, 2010 Dan McMahill
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of version 2 of the GNU General Public License as
5 # published by the Free Software Foundation
7 # This program is distributed in the hope that it will be useful,
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 # GNU General Public License for more details.
12 # You should have received a copy of the GNU General Public License
13 # along with this program; if not, write to the Free Software
14 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
15 # All rights reserved.
17 # This code was derived from code written by Dan McMahill as part of the
18 # latex-mk testsuite. The original code was covered by a BSD license
19 # but the copyright holder is releasing the version for pcb under the GPL.
24 # test_name | layout file(s) | [export hid name] | [optional arguments to pcb] | [mismatch]
27 # test_name - a single string with no spaces, tabs, *, +, ? (i.e. any "special"
28 # characters) that identifies the test.
30 # layout file(s) - a list of layout files. Files listed are relative to
31 # the $(top_srcdir)/tests/inputs directory.
33 # [export hid name] - the name of the export HID to use. This is used both for
34 # running pcb as well as determining how we process the output
36 # [optional arguments to pcb] - a list of additional arguments to be passed to pcb.
37 # This is where one would specify additional options which are specific to a particular
40 # [mismatch] If specified as "mismatch" (no quotes), then the result
41 # should *not* match the reference. This can be thought of as a test
42 # on the testsuite to make sure we can properly detect when a change has
45 # output file(s) - a list of output files and their associated types. For
47 # bom:bom_general.bom xy:test.txt
48 # specifies that "bom_general.bom" is created and it is a bill of materials file
49 # and that "test.txt" is created and it is a centroid (X-Y) file.
51 # File types grouped by which HID produces them are:
55 # bom -- PCB bill of materials file
56 # xy -- PCB centroid file
60 # gcode -- G-Code file. Note that these typically have .cnc as the
61 # extension but we're already using the 'cnc' type for
62 # Excellon drill files.
66 # cnc -- Excellon drill file
67 # gbx -- RS274-X (Gerber) file
73 # png -- Portable network graphics (PNG) file
75 ######################################################################
76 # ---------------------------------------------
78 # ---------------------------------------------
79 ######################################################################
82 # --bomfile <string> BOM output file
83 # --xyfile <string> XY output file
84 # --xy-in-mm XY dimensions in mm instead of mils
87 # Produces a bill of materials (BOM) file and a centroid (XY) file
89 hid_bom1 | bom_general.pcb | bom | | | bom:bom_general.bom xy:bom_general.xy
90 hid_bom2 | bom_general.pcb | bom | --bomfile test.bom | | bom:test.bom xy:bom_general.xy
91 hid_bom3 | bom_general.pcb | bom | --xyfile test.xy | | bom:bom_general.bom xy:test.xy
92 hid_bom4 | bom_general.pcb | bom | --xy-in-mm | | bom:bom_general.bom xy:bom_general.xy
94 ######################################################################
95 # ---------------------------------------------
97 # ---------------------------------------------
98 ######################################################################
101 # --basename <string> File name prefix and suffix.
102 # --measurement-unit <km|m|cm|mm|um|nm|px|in|mil|cmil>
103 # Measurement unit used in the G-code output.
104 # --dpi <num> Accuracy of the mill path generation in pixels/inch.
105 # --safe-Z <num> Safe Z for traverse movements of all operations.
106 # --iso-mill-depth <num> Isolation milling depth.
107 # --iso-tool-diameter <num> Isolation milling tool diameter.
108 # --iso-tool-plunge <num> Isolation milling feedrate when plunging into
110 # --iso-tool-feedrate <num> Isolation milling feedrate.
111 # --predrill Wether to pre-drill all drill spots with the
112 # isolation milling tool.
113 # --drill-depth <num> Drilling depth.
114 # --drill-feedrate <num> Drilling feedrate.
115 # --drill-mill Wether to produce drill holes equal or bigger
116 # than the milling tool diameter with the milling
118 # --outline-mill-depth <num> Milling depth when milling the outline.
119 # --outline-tool-diameter <num> Diameter of the tool used for outline milling.
120 # --outline-mill-plunge <num> Outline milling feedrate when plunging into
122 # --outline-mill-feedrate <num> Outline milling feedrate.
123 # --advanced-gcode Wether to produce G-code for advanced interpreters.
124 hid_gcode1 | gcode_oneline.pcb | gcode | | | gcode:gcode_oneline-0.8890.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
125 hid_gcode2 | gcode_oneline.pcb | gcode | --basename out.gcode | | gcode:out-0.8890.drill.gcode gcode:out-bottom.gcode gcode:out-outline.gcode gcode:out-top.gcode
126 hid_gcode3 | gcode_oneline.pcb | gcode | --dpi 1200 | | gcode:gcode_oneline-0.8890.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
127 hid_gcode4 | gcode_oneline.pcb | gcode | --iso-mill-depth 0.5 | | gcode:gcode_oneline-0.8890.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
128 hid_gcode5 | gcode_oneline.pcb | gcode | --safe-Z 10 | | gcode:gcode_oneline-0.8890.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
129 hid_gcode6 | gcode_oneline.pcb | gcode | --iso-tool-diameter 0.4 | | gcode:gcode_oneline-0.8890.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
130 hid_gcode7 | gcode_oneline.pcb | gcode | --drill-depth 7 | | gcode:gcode_oneline-0.8890.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
131 hid_gcode8 | gcode_oneline.pcb | gcode | --measurement-unit mm | | gcode:gcode_oneline-0.8890.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
132 hid_gcode9 | gcode_oneline.pcb | gcode | --measurement-unit mil | | gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-drillmill.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
133 hid_gcode10 | gcode_oneline.pcb | gcode | --measurement-unit um | | gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-drillmill.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
134 hid_gcode11 | gcode_oneline.pcb | gcode | --measurement-unit inch | | gcode:gcode_oneline-0.0350.drill.gcode gcode:gcode_oneline-bottom.gcode gcode:gcode_oneline-outline.gcode gcode:gcode_oneline-top.gcode
136 ######################################################################
137 # ---------------------------------------------
139 # ---------------------------------------------
140 ######################################################################
143 # --gerberfile <string> Basename for output file
145 # Produces RS274-X (a.k.a. gerber) photo plot files and Excellon drill files
147 # we can't include gbx:gerber_oneline.fab.gbr yet because it has a name and a date stamp
148 hid_gerber1 | gerber_oneline.pcb | gerber | | | gbx:gerber_oneline.bottom.gbr gbx:gerber_oneline.top.gbr cnc:gerber_oneline.plated-drill.cnc
149 hid_gerber2 | gerber_oneline.pcb | gerber | --gerberfile out | | gbx:out.bottom.gbr gbx:out.top.gbr cnc:out.plated-drill.cnc
150 hid_gerber3 | gerber_arcs.pcb | gerber | --gerberfile arcs | | gbx:arcs.bottom.gbr gbx:arcs.top.gbr gbx:arcs.group1.gbr gbx:arcs.group4.gbr cnc:arcs.plated-drill.cnc
154 ######################################################################
155 # ---------------------------------------------
157 # ---------------------------------------------
158 ######################################################################
161 # --outfile <string> Graphics output file
162 # --dpi <num> Scale factor (pixels/inch). 0 to scale to fix specified size
163 # --x-max <num> Maximum width (pixels). 0 to not constrain.
164 # --y-max <num> Maximum height (pixels). 0 to not constrain.
165 # --xy-max <num> Maximum width and height (pixels). 0 to not constrain.
166 # --as-shown Export layers as shown on screen
167 # --monochrome Convert to monochrome
168 # --only-visible Limit the bounds of the PNG file to the visible items
169 # --use-alpha Make the bottomground and any holes transparent
170 # --format <GIF|JPEG|PNG> Graphics file format
171 # --photo-mode Photo-realistic mode
172 # --photo-flip-x Show reverse side of the board, left-right flip
173 # --photo-flip-y Show reverse side of the board, up-down flip
175 # Produces GIF/JPEG/PNG (image) files
177 hid_png1 | gerber_oneline.pcb | png | | | png:gerber_oneline.png
178 hid_png2 | gerber_oneline.pcb | png | --outfile myfile.png | | png:myfile.png
179 hid_png3 | gerber_oneline.pcb | png | --dpi 600 | | png:gerber_oneline.png