Gerber files for panelization are generated
[armadillo_hardware.git] / gerber / x-layout.cfg
blobbbaff66fe2f068e752fb5e415c4bb369316c59b9
1 # This configuration file demonstrates panelizing multiple, different jobs.
2 # We panelize the HEXAPOD job and several copies of the Proj1 job.
4 ##############################################################################
5 # In the [DEFAULT] section you can create global names to save typing the same
6 # directory name, for example, over and over.
7 ##############################################################################
8 [DEFAULT]
10 # Change projdir to wherever your project files are, for example:
12 #   projdir = /home/stuff/projects/test
14 # or relative pathname from where you are running GerbMerge
16 #   projdir = testdata
18 # or if all files are in the current directory (as in this example):
20 #   projdir = .
21 projdir = .
23 # For convenience, this is the base name of the merged output files.
24 MergeOut = z-armadillo
26 #############################################################################
27 # The [Options] section defines settings that control how the input files are
28 # read and how the output files are generated.
29 #############################################################################
30 [Options]
32 ################################################################
34 #               Settings that are very important
36 ################################################################
38 # Option indicating name of file that maps Excellon tool codes to drill sizes.
39 # This is not necessary if the Excellon files have embedded tool sizes, or if a
40 # tool list is specified as part of the job description. The ToolList option
41 # here is the "last resort" for mapping tool codes to tool sizes. Most recent
42 # PCB programs embed drill size information right in the Excellon file, so this
43 # option should not be necessary and can be commented out.
44 #ToolList=proj1.drl
46 # Optional indication of the number of decimal places in input Excellon drill
47 # files. The default is 4 which works for recent versions of Eagle (since
48 # version 4.11r12), as well as Orcad and PCB. Older versions of Eagle use 3
49 # decimal places.
50 #ExcellonDecimals = 4
52 ################################################################
54 #             Settings that are somewhat important
56 ################################################################
58 # Which layers to draw cut lines on. Omit this option or set to 'None' for no
59 # cut lines. Cut lines are borders around each job that serve as guides for
60 # cutting the panel into individual jobs. Option 'CutLineWidth' sets the
61 # thickness of these cut lines.
63 # NOTE: Layer names are ALL LOWERCASE, even if you define them with uppercase
64 # letters below.
65 CutLineLayers = *topsilkscreen,*bottomsilkscreen
67 # Which layers to draw crop marks on. Omit this option or set to 'None' for no
68 # crop marks. Crop marks are small L-shaped marks at the 4 corners of the final
69 # panel. These practically define the extents of the panel and are required by
70 # some board manufacturers. Crop marks are also required if you want to leave
71 # extra space around the final panel for tooling or handling.  Option
72 # 'CropMarkWidth' sets the thickness of these crop marks.
74 # NOTE: Layer names are ALL LOWERCASE, even if you define them with uppercase
75 # letters below.
76 CropMarkLayers = *topsilkscreen,*bottomsilkscreen
78 # Set this option to the name of a file in which to write a Gerber fabrication
79 # drawing. Some board manufacturers require a fabrication drawing with panel
80 # dimensions and drill hit marks and drill legend. There's no harm in creating
81 # this file...you can ignore it if you don't need it.
82 FabricationDrawingFile = %(mergeout)s.fab
84 # If FabricationDrawingFile is specified, you can provide an optional file name
85 # of a file containing arbitrary text to add to the fabrication drawing. This
86 # text can indicate manufacturing information, contact information, etc.
87 #FabricationDrawingText = %(projdir)s/fabdwg.txt
89 # Option to generate leading zeros in the output Excellon drill file, i.e., to
90 # NOT use leading-zero suppression. Some Gerber viewers cannot properly guess
91 # the Excellon file format when there are no leading zeros.  Set this option to
92 # 1 if your Gerber viewer is putting the drill holes in far off places that do
93 # not line up with component pads.
94 ExcellonLeadingZeros = 0
96 # Optional additional Gerber layer on which to draw a rectangle defining the
97 # extents of the entire panelized job. This will create a Gerber file (with
98 # name specified by this option) that simply contains a rectangle defining the
99 # outline of the final panel. This outline file is useful for circuit board
100 # milling to indicate a path for the router tool. There's no harm in creating
101 # this file...you can ignore it if you don't need it.
102 OutlineLayerFile = %(mergeout)s.oln
104 # Optional additional Gerber layer on which to draw horizontal and vertical
105 # lines describing where to score (i.e., V-groove) the panel so that jobs
106 # can easily snap apart. These scoring lines will be drawn half-way between
107 # job borders.
108 ScoringFile = %(mergeout)s.sco
110 # Set the maximum dimensions of the final panel, if known. You can set the
111 # dimensions of the maximum panel size supported by your board manufacturer,
112 # and GerbMerge will print an error message if your layout exceeds these
113 # dimensions. Alternatively, when using automatic placement, the panel sizes
114 # listed here constrain the random placements such that only placements that
115 # fit within the given panel dimensions will be considered. The dimensions are
116 # specified in inches.
117 PanelWidth = 14.5
118 PanelHeight = 10
120 # Set the amount of extra space to leave around the edges of the panel to
121 # simplify tooling and handling. These margins are specified in inches, and
122 # default to 0" if not specified. These spacings will only be visible to the
123 # board manufacturer if you enable crop marks (see CropMarkLayers above) or use
124 # an OutlineLayer.
125 LeftMargin   = 0.1
126 RightMargin  = 0.1
127 TopMargin    = 0.1
128 BottomMargin = 0.1
130 ################################################################
132 #           Settings that are probably not important
134 ################################################################
136 # Set the inter-job spacing (inches) in both the X-dimension (width) and
137 # Y-dimension (height). Normally these would be the same unless you're trying
138 # really hard to make your jobs fit into a panel of exact size and you need to
139 # tweak these spacings to make it work. 0.125" is probably generous, about half
140 # that is practical for using a band saw, but you probably want to leave it at
141 # 0.125" if you have copper features close to the board edges and/or are using
142 # less precise tools, like a hacksaw, for separating the boards.
143 XSpacing = 0.125
144 YSpacing = 0.125
146 # Width of cut lines, in inches. The default value is 0.01". These are drawn on
147 # the layers specified by CutLineLayers.
148 CutLineWidth = 0.01
150 # Width of crop marks, in inches. The default value is 0.01". These are drawn on
151 # the layers specified by CropMarkLayers.
152 CropMarkWidth = 0.01
154 # This option is intended to reduce the probability of forgetting to include a
155 # layer in a job description when panelizing two or more different jobs.
156 # Unless this option is set to 1, an error will be raised if some jobs do not
157 # have the same layer names as the others, i.e., are missing layers. For
158 # example, if one job has a top-side soldermask layer and another doesn't, that
159 # could be a mistake. Setting this option to 1 prevents this situation from
160 # raising an error.
161 AllowMissingLayers = 1
163 # This option is intended to reduce the number of drills in the output by
164 # eliminating drill sizes that are too close to make a difference. For example,
165 # it probably does not make sense to have two separate 0.031" and 0.0315"
166 # drills. The DrillClusterTolerance value specifies how much tolerance is
167 # allowed in drill sizes, in units of inches. Multiple drill tools that span
168 # twice this tolerance will be clustered into a single drill tool. For example,
169 # a set of 0.031", 0.0315", 0.032", and 0.034" drills will all be replaced by a
170 # single drill tool of diameter (0.031"+0.034")/2 = 0.0325". It is guaranteed
171 # that all original drill sizes will be no farther than DrillClusterTolerance
172 # from the drill tool size generated by clustering.
174 # Setting DrillClusterTolerance to 0 disables clustering.
175 DrillClusterTolerance = 0.002
177 # Use this option to automatically thicken features on particular layers. This
178 # is intended for thickening silkscreen to some minimum width. The value of
179 # this option must be a comma-separated list of layer names followed by minimum
180 # feature sizes (in inches) for that layer. Comment this out to disable thickening.
181 MinimumFeatureSize = *topsilkscreen,0.008,*bottomsilkscreen,0.008
183 ##############################################################################
184 # This section sets the name of merged output files. Each assignment below
185 # specifies a layer name and the file name that is to be written for that
186 # merged layer. Except for the BoardOutline and Drills layer names, all other
187 # layer names must begin with an asterisk '*'. The special layer name Placement
188 # is used to specify the placement file that can be used with the
189 # '--place-file' command-line option in a future invocation of GerbMerge.  The
190 # special layer name ToolList is used to specify the file name that represents
191 # the tool list for the panelized job.
193 # By default, if this section is omitted or no layername=filename assignment is
194 # made, the following files are generated:
196 #   BoardOutline = merged.boardoutline.ger
197 #   Drills       = merged.drills.xln
198 #   Placement    = merged.placement.txt
199 #   ToolList     = merged.toollist.drl
200 #   *layername   = merged.layername.ger
201 #                  (for example: 'merged.toplayer.ger', 'merged.silkscreen.ger')
203 # Any assignment that does not begin with '*' or is not one of the reserved
204 # names BoardOutline, Drills, ToolList, or Placement is a generic string
205 # assignment that can be used for string substitutions, to save typing.
206 ##############################################################################
207 [MergeOutputFiles]
208 Prefix = %(mergeout)s
210 **TopLayer=%(prefix)s.gtl
211 *BottomLayer=%(prefix)s.gbl
212 *TopSilkscreen=%(prefix)s.gto
213 *BottomSilkscreen=%(prefix)s.gbo
214 *TopSoldermask=%(prefix)s.gts
215 *BottomSoldermask=%(prefix)s.gbs
216 Drills=%(prefix)s.txt
217 BoardOutline=%(prefix)s.gtl
218 #ToolList = toollist.%(prefix)s.drl
219 #Placement = placement.%(prefix)s.txt
221 ##############################################################################
222 # The remainder of the file specifies the jobs to be panelized. Each job is
223 # specified in its own section. To each job you can assign a job name, which
224 # will be the name of the section in square brackets (e.g., [Proj1]). This job
225 # name is used in the layout file (if used) to refer to the job.
227 # Job names are case-sensitive, but do not create job names that are the same
228 # except for the case of the characters, as this may cause problems during
229 # layout. Job names may only contain the following characters:
231 #       a-z  A-Z  0-9  _
233 # In addition, job names must begin with a letter (a-z or A-Z).
234 ##############################################################################
235 [9dof_imu]
237 # You can set any options you like to make generating filenames easier, like
238 # Prefix. This is just a helper option, not a reserved name. Note, however,
239 # that you must write %(prefix)s below, in ALL LOWERCASE.
241 # Note how we are making use of the 'projdir' string defined way up at the top
242 # in the [DEFAULT] section to save some typing. By setting 'projdir=somedir'
243 # the expression '%(projdir)s/proj1' expands to 'somedir/proj1'.
244 Prefix=%(projdir)s/9dof_imu
246 # List all the layers that participate in this job. Required layers are Drills
247 # and BoardOutline and have no '*' at the beginning.  Optional layers have
248 # names chosen by you and begin with '*'. You should choose consistent layer
249 # names across all jobs.
250 *TopLayer=%(prefix)s.GTL
251 *BottomLayer=%(prefix)s.GBL
252 *TopSilkscreen=%(prefix)s.GTO
253 *BottomSilkscreen=%(prefix)s.GBO
254 *TopSoldermask=%(prefix)s.GTS
255 *BottomSoldermask=%(prefix)s.GBS
256 Drills=%(prefix)s.TXT
257 BoardOutline=%(prefix)s.GTL
259 # If this job does not have drill tool sizes embedded in the Excellon file, it
260 # needs to have a separate tool list file that maps tool names (e.g., 'T01') to
261 # tool diameter. This may be the global tool list specified in the [Options]
262 # section with the ToolList parameter. If this job doesn't have embedded tool
263 # sizes, and uses a different tool list than the global one, you can specify it
264 # here.
265 #ToolList=proj1.drl
267 # If this job has a different ExcellonDecimals setting than the global setting
268 # in the [Options] section above, it can be overridden here.
269 #ExcellonDecimals = 3
271 # You can set a 'Repeat' parameter for this job when using automatic placement
272 # (i.e., no *.def file) to indicate how many times this job should appear in
273 # the final panel. When using manual placement, this option is ignored.
274 Repeat = 6
275 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
276 [dc_motor]
277 Prefix=%(projdir)s/dc_motor
278 *TopLayer=%(prefix)s.GTL
279 *BottomLayer=%(prefix)s.GBL
280 *TopSilkscreen=%(prefix)s.GTO
281 *BottomSilkscreen=%(prefix)s.GBO
282 *TopSoldermask=%(prefix)s.GTS
283 *BottomSoldermask=%(prefix)s.GBS
284 Drills=%(prefix)s.TXT
285 BoardOutline=%(prefix)s.GTL
286 Repeat = 0
287 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
288 [io-breakout]
289 Prefix=%(projdir)s/io-breakout
290 *TopLayer=%(prefix)s.GTL
291 *BottomLayer=%(prefix)s.GBL
292 *TopSilkscreen=%(prefix)s.GTO
293 *BottomSilkscreen=%(prefix)s.GBO
294 *TopSoldermask=%(prefix)s.GTS
295 *BottomSoldermask=%(prefix)s.GBS
296 Drills=%(prefix)s.TXT
297 BoardOutline=%(prefix)s.GTL
298 Repeat = 11
299 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
300 [main-board]
301 Prefix=%(projdir)s/main-board
302 *TopLayer=%(prefix)s.GTL
303 *BottomLayer=%(prefix)s.GBL
304 *TopSilkscreen=%(prefix)s.GTO
305 *BottomSilkscreen=%(prefix)s.GBO
306 *TopSoldermask=%(prefix)s.GTS
307 *BottomSoldermask=%(prefix)s.GBS
308 Drills=%(prefix)s.TXT
309 BoardOutline=%(prefix)s.GTL
310 Repeat = 11
311 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
312 [mux-demux]
313 Prefix=%(projdir)s/mux-demux
314 *TopLayer=%(prefix)s.GTL
315 *BottomLayer=%(prefix)s.GBL
316 *TopSilkscreen=%(prefix)s.GTO
317 *BottomSilkscreen=%(prefix)s.GBO
318 *TopSoldermask=%(prefix)s.GTS
319 *BottomSoldermask=%(prefix)s.GBS
320 Drills=%(prefix)s.TXT
321 BoardOutline=%(prefix)s.GTL
322 Repeat = 5
323 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324 [power]
325 Prefix=%(projdir)s/power
326 *TopLayer=%(prefix)s.GTL
327 *BottomLayer=%(prefix)s.GBL
328 *TopSilkscreen=%(prefix)s.GTO
329 *BottomSilkscreen=%(prefix)s.GBO
330 *TopSoldermask=%(prefix)s.GTS
331 *BottomSoldermask=%(prefix)s.GBS
332 Drills=%(prefix)s.TXT
333 BoardOutline=%(prefix)s.GTL
334 Repeat = 5