Rev 4514 Rev 4515
1 # This configuration file demonstrates panelizing multiple, different jobs. 1 # This configuration file demonstrates panelizing multiple, different jobs.
2 # We panelize the HEXAPOD job and several copies of the Proj1 job. 2 # We panelize the HEXAPOD job and several copies of the Proj1 job.
3   3  
4 ############################################################################## 4 ##############################################################################
5 # In the [DEFAULT] section you can create global names to save typing the same 5 # In the [DEFAULT] section you can create global names to save typing the same
6 # directory name, for example, over and over. 6 # directory name, for example, over and over.
7 ############################################################################## 7 ##############################################################################
8 [DEFAULT] 8 [DEFAULT]
9   9  
10 # Change projdir to wherever your project files are, for example: 10 # Change projdir to wherever your project files are, for example:
11 # 11 #
12 # projdir = /home/stuff/projects/test 12 # projdir = /home/stuff/projects/test
13 # 13 #
14 # or relative pathname from where you are running GerbMerge 14 # or relative pathname from where you are running GerbMerge
15 # 15 #
16 # projdir = testdata 16 # projdir = testdata
17 # 17 #
18 # or if all files are in the current directory (as in this example): 18 # or if all files are in the current directory (as in this example):
19 # 19 #
20 # projdir = . 20 # projdir = .
21 projdir = . 21 projdir = .
22   22  
23 # For convenience, this is the base name of the merged output files. 23 # For convenience, this is the base name of the merged output files.
24 MergeOut = SET11A 24 MergeOut = SET11A
25   25  
26 ############################################################################# 26 #############################################################################
27 # The [Options] section defines settings that control how the input files are 27 # The [Options] section defines settings that control how the input files are
28 # read and how the output files are generated. 28 # read and how the output files are generated.
29 ############################################################################# 29 #############################################################################
30 [Options] 30 [Options]
31   31  
32 ################################################################ 32 ################################################################
33 # 33 #
34 # Settings that are very important 34 # Settings that are very important
35 # 35 #
36 ################################################################ 36 ################################################################
37   37  
38 # Option indicating name of file that maps Excellon tool codes to drill sizes. 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 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 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 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 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. 43 # option should not be necessary and can be commented out.
44 #ToolList=proj1.drl 44 #ToolList=proj1.drl
45   45  
46 MeasurementUnits = mm 46 MeasurementUnits = mm
47 KicadFilesInMetricUnits = 1 47 KicadFilesInMetricUnits = 1
48   48  
49 # Optional indication of the number of decimal places in input Excellon drill 49 # Optional indication of the number of decimal places in input Excellon drill
50 # files. The default is 4 which works for recent versions of Eagle (since 50 # files. The default is 4 which works for recent versions of Eagle (since
51 # version 4.11r12), as well as Orcad and PCB. Older versions of Eagle use 3 51 # version 4.11r12), as well as Orcad and PCB. Older versions of Eagle use 3
52 # decimal places. 52 # decimal places.
53 ExcellonDecimals = 3 53 ExcellonDecimals = 3
54   54  
55 ################################################################ 55 ################################################################
56 # 56 #
57 # Settings that are somewhat important 57 # Settings that are somewhat important
58 # 58 #
59 ################################################################ 59 ################################################################
60   60  
61 # Which layers to draw cut lines on. Omit this option or set to 'None' for no 61 # Which layers to draw cut lines on. Omit this option or set to 'None' for no
62 # cut lines. Cut lines are borders around each job that serve as guides for 62 # cut lines. Cut lines are borders around each job that serve as guides for
63 # cutting the panel into individual jobs. Option 'CutLineWidth' sets the 63 # cutting the panel into individual jobs. Option 'CutLineWidth' sets the
64 # thickness of these cut lines. 64 # thickness of these cut lines.
65 # 65 #
66 # NOTE: Layer names are ALL LOWERCASE, even if you define them with uppercase 66 # NOTE: Layer names are ALL LOWERCASE, even if you define them with uppercase
67 # letters below. 67 # letters below.
68 CutLineLayers = *topsilkscreen,*bottomsilkscreen 68 CutLineLayers = *topsilkscreen,*bottomsilkscreen
69   69  
70 # Which layers to draw crop marks on. Omit this option or set to 'None' for no 70 # Which layers to draw crop marks on. Omit this option or set to 'None' for no
71 # crop marks. Crop marks are small L-shaped marks at the 4 corners of the final 71 # crop marks. Crop marks are small L-shaped marks at the 4 corners of the final
72 # panel. These practically define the extents of the panel and are required by 72 # panel. These practically define the extents of the panel and are required by
73 # some board manufacturers. Crop marks are also required if you want to leave 73 # some board manufacturers. Crop marks are also required if you want to leave
74 # extra space around the final panel for tooling or handling. Option 74 # extra space around the final panel for tooling or handling. Option
75 # 'CropMarkWidth' sets the thickness of these crop marks. 75 # 'CropMarkWidth' sets the thickness of these crop marks.
76 # 76 #
77 # NOTE: Layer names are ALL LOWERCASE, even if you define them with uppercase 77 # NOTE: Layer names are ALL LOWERCASE, even if you define them with uppercase
78 # letters below. 78 # letters below.
79 CropMarkLayers = *topsilkscreen,*bottomsilkscreen 79 CropMarkLayers = *topsilkscreen,*bottomsilkscreen
80   80  
81 # Set this option to the name of a file in which to write a Gerber fabrication 81 # Set this option to the name of a file in which to write a Gerber fabrication
82 # drawing. Some board manufacturers require a fabrication drawing with panel 82 # drawing. Some board manufacturers require a fabrication drawing with panel
83 # dimensions and drill hit marks and drill legend. There's no harm in creating 83 # dimensions and drill hit marks and drill legend. There's no harm in creating
84 # this file...you can ignore it if you don't need it. 84 # this file...you can ignore it if you don't need it.
85 #FabricationDrawingFile = %(mergeout)s.fab 85 #FabricationDrawingFile = %(mergeout)s.fab
86   86  
87 # If FabricationDrawingFile is specified, you can provide an optional file name 87 # If FabricationDrawingFile is specified, you can provide an optional file name
88 # of a file containing arbitrary text to add to the fabrication drawing. This 88 # of a file containing arbitrary text to add to the fabrication drawing. This
89 # text can indicate manufacturing information, contact information, etc. 89 # text can indicate manufacturing information, contact information, etc.
90 #FabricationDrawingText = %(projdir)s/fabdwg.txt 90 #FabricationDrawingText = %(projdir)s/fabdwg.txt
91   91  
92 # Option to generate leading zeros in the output Excellon drill file, i.e., to 92 # Option to generate leading zeros in the output Excellon drill file, i.e., to
93 # NOT use leading-zero suppression. Some Gerber viewers cannot properly guess 93 # NOT use leading-zero suppression. Some Gerber viewers cannot properly guess
94 # the Excellon file format when there are no leading zeros. Set this option to 94 # the Excellon file format when there are no leading zeros. Set this option to
95 # 1 if your Gerber viewer is putting the drill holes in far off places that do 95 # 1 if your Gerber viewer is putting the drill holes in far off places that do
96 # not line up with component pads. 96 # not line up with component pads.
97 ExcellonLeadingZeros = 0 97 ExcellonLeadingZeros = 0
98   98  
99 # Optional additional Gerber layer on which to draw a rectangle defining the 99 # Optional additional Gerber layer on which to draw a rectangle defining the
100 # extents of the entire panelized job. This will create a Gerber file (with 100 # extents of the entire panelized job. This will create a Gerber file (with
101 # name specified by this option) that simply contains a rectangle defining the 101 # name specified by this option) that simply contains a rectangle defining the
102 # outline of the final panel. This outline file is useful for circuit board 102 # outline of the final panel. This outline file is useful for circuit board
103 # milling to indicate a path for the router tool. There's no harm in creating 103 # milling to indicate a path for the router tool. There's no harm in creating
104 # this file...you can ignore it if you don't need it. 104 # this file...you can ignore it if you don't need it.
105 OutlineLayerFile = %(mergeout)s-Outline.gbr 105 OutlineLayerFile = %(mergeout)s-Outline.gbr
106   106  
107 # Optional additional Gerber layer on which to draw horizontal and vertical 107 # Optional additional Gerber layer on which to draw horizontal and vertical
108 # lines describing where to score (i.e., V-groove) the panel so that jobs 108 # lines describing where to score (i.e., V-groove) the panel so that jobs
109 # can easily snap apart. These scoring lines will be drawn half-way between 109 # can easily snap apart. These scoring lines will be drawn half-way between
110 # job borders. 110 # job borders.
111 ScoringFile = %(mergeout)s-Score.gbr 111 ScoringFile = %(mergeout)s-Score.gbr
112   112  
113 # Set the maximum dimensions of the final panel, if known. You can set the 113 # Set the maximum dimensions of the final panel, if known. You can set the
114 # dimensions of the maximum panel size supported by your board manufacturer, 114 # dimensions of the maximum panel size supported by your board manufacturer,
115 # and GerbMerge will print an error message if your layout exceeds these 115 # and GerbMerge will print an error message if your layout exceeds these
116 # dimensions. Alternatively, when using automatic placement, the panel sizes 116 # dimensions. Alternatively, when using automatic placement, the panel sizes
117 # listed here constrain the random placements such that only placements that 117 # listed here constrain the random placements such that only placements that
118 # fit within the given panel dimensions will be considered. The dimensions are 118 # fit within the given panel dimensions will be considered. The dimensions are
119 # specified in inches. 119 # specified in inches.
120 PanelWidth = 150 120 PanelWidth = 150
121 PanelHeight = 150 121 PanelHeight = 150
122   122  
123 # Set the amount of extra space to leave around the edges of the panel to 123 # Set the amount of extra space to leave around the edges of the panel to
124 # simplify tooling and handling. These margins are specified in inches, and 124 # simplify tooling and handling. These margins are specified in inches, and
125 # default to 0" if not specified. These spacings will only be visible to the 125 # default to 0" if not specified. These spacings will only be visible to the
126 # board manufacturer if you enable crop marks (see CropMarkLayers above) or use 126 # board manufacturer if you enable crop marks (see CropMarkLayers above) or use
127 # an OutlineLayer. 127 # an OutlineLayer.
128 LeftMargin = 0 128 LeftMargin = 0
129 RightMargin = 0 129 RightMargin = 0
130 TopMargin = 0 130 TopMargin = 0
131 BottomMargin = 0 131 BottomMargin = 0
132   132  
133 ################################################################ 133 ################################################################
134 # 134 #
135 # Settings that are probably not important 135 # Settings that are probably not important
136 # 136 #
137 ################################################################ 137 ################################################################
138   138  
139 # Set the inter-job spacing (inches) in both the X-dimension (width) and 139 # Set the inter-job spacing (inches) in both the X-dimension (width) and
140 # Y-dimension (height). Normally these would be the same unless you're trying 140 # Y-dimension (height). Normally these would be the same unless you're trying
141 # really hard to make your jobs fit into a panel of exact size and you need to 141 # really hard to make your jobs fit into a panel of exact size and you need to
142 # tweak these spacings to make it work. 0.125" is probably generous, about half 142 # tweak these spacings to make it work. 0.125" is probably generous, about half
143 # that is practical for using a band saw, but you probably want to leave it at 143 # that is practical for using a band saw, but you probably want to leave it at
144 # 0.125" if you have copper features close to the board edges and/or are using 144 # 0.125" if you have copper features close to the board edges and/or are using
145 # less precise tools, like a hacksaw, for separating the boards. 145 # less precise tools, like a hacksaw, for separating the boards.
146 XSpacing = 2.54 146 XSpacing = 2.54
147 YSpacing = 2.54 147 YSpacing = 2.54
148   148  
149 # Width of cut lines, in inches. The default value is 0.01". These are drawn on 149 # Width of cut lines, in inches. The default value is 0.01". These are drawn on
150 # the layers specified by CutLineLayers. 150 # the layers specified by CutLineLayers.
151 CutLineWidth = 0.01 151 CutLineWidth = 0.01
152   152  
153 # Width of crop marks, in inches. The default value is 0.01". These are drawn on 153 # Width of crop marks, in inches. The default value is 0.01". These are drawn on
154 # the layers specified by CropMarkLayers. 154 # the layers specified by CropMarkLayers.
155 CropMarkWidth = 0.01 155 CropMarkWidth = 0.01
156   156  
157 # This option is intended to reduce the probability of forgetting to include a 157 # This option is intended to reduce the probability of forgetting to include a
158 # layer in a job description when panelizing two or more different jobs. 158 # layer in a job description when panelizing two or more different jobs.
159 # Unless this option is set to 1, an error will be raised if some jobs do not 159 # Unless this option is set to 1, an error will be raised if some jobs do not
160 # have the same layer names as the others, i.e., are missing layers. For 160 # have the same layer names as the others, i.e., are missing layers. For
161 # example, if one job has a top-side soldermask layer and another doesn't, that 161 # example, if one job has a top-side soldermask layer and another doesn't, that
162 # could be a mistake. Setting this option to 1 prevents this situation from 162 # could be a mistake. Setting this option to 1 prevents this situation from
163 # raising an error. 163 # raising an error.
164 AllowMissingLayers = 0 164 AllowMissingLayers = 0
165   165  
166 # This option is intended to reduce the number of drills in the output by 166 # This option is intended to reduce the number of drills in the output by
167 # eliminating drill sizes that are too close to make a difference. For example, 167 # eliminating drill sizes that are too close to make a difference. For example,
168 # it probably does not make sense to have two separate 0.031" and 0.0315" 168 # it probably does not make sense to have two separate 0.031" and 0.0315"
169 # drills. The DrillClusterTolerance value specifies how much tolerance is 169 # drills. The DrillClusterTolerance value specifies how much tolerance is
170 # allowed in drill sizes, in units of inches. Multiple drill tools that span 170 # allowed in drill sizes, in units of inches. Multiple drill tools that span
171 # twice this tolerance will be clustered into a single drill tool. For example, 171 # twice this tolerance will be clustered into a single drill tool. For example,
172 # a set of 0.031", 0.0315", 0.032", and 0.034" drills will all be replaced by a 172 # a set of 0.031", 0.0315", 0.032", and 0.034" drills will all be replaced by a
173 # single drill tool of diameter (0.031"+0.034")/2 = 0.0325". It is guaranteed 173 # single drill tool of diameter (0.031"+0.034")/2 = 0.0325". It is guaranteed
174 # that all original drill sizes will be no farther than DrillClusterTolerance 174 # that all original drill sizes will be no farther than DrillClusterTolerance
175 # from the drill tool size generated by clustering. 175 # from the drill tool size generated by clustering.
176 # 176 #
177 # Setting DrillClusterTolerance to 0 disables clustering. 177 # Setting DrillClusterTolerance to 0 disables clustering.
178 DrillClusterTolerance = 0.002 178 DrillClusterTolerance = 0.002
179   179  
180 # Use this option to automatically thicken features on particular layers. This 180 # Use this option to automatically thicken features on particular layers. This
181 # is intended for thickening silkscreen to some minimum width. The value of 181 # is intended for thickening silkscreen to some minimum width. The value of
182 # this option must be a comma-separated list of layer names followed by minimum 182 # this option must be a comma-separated list of layer names followed by minimum
183 # feature sizes (in inches) for that layer. Comment this out to disable thickening. 183 # feature sizes (in inches) for that layer. Comment this out to disable thickening.
184 MinimumFeatureSize = *topsilkscreen,0.008,*bottomsilkscreen,0.008 184 MinimumFeatureSize = *topsilkscreen,0.008,*bottomsilkscreen,0.008
185   185  
186 ############################################################################## 186 ##############################################################################
187 # This section sets the name of merged output files. Each assignment below 187 # This section sets the name of merged output files. Each assignment below
188 # specifies a layer name and the file name that is to be written for that 188 # specifies a layer name and the file name that is to be written for that
189 # merged layer. Except for the BoardOutline and Drills layer names, all other 189 # merged layer. Except for the BoardOutline and Drills layer names, all other
190 # layer names must begin with an asterisk '*'. The special layer name Placement 190 # layer names must begin with an asterisk '*'. The special layer name Placement
191 # is used to specify the placement file that can be used with the 191 # is used to specify the placement file that can be used with the
192 # '--place-file' command-line option in a future invocation of GerbMerge. The 192 # '--place-file' command-line option in a future invocation of GerbMerge. The
193 # special layer name ToolList is used to specify the file name that represents 193 # special layer name ToolList is used to specify the file name that represents
194 # the tool list for the panelized job. 194 # the tool list for the panelized job.
195 # 195 #
196 # By default, if this section is omitted or no layername=filename assignment is 196 # By default, if this section is omitted or no layername=filename assignment is
197 # made, the following files are generated: 197 # made, the following files are generated:
198 # 198 #
199 # BoardOutline = merged.boardoutline.ger 199 # BoardOutline = merged.boardoutline.ger
200 # Drills = merged.drills.xln 200 # Drills = merged.drills.xln
201 # Placement = merged.placement.xml 201 # Placement = merged.placement.xml
202 # ToolList = merged.toollist.drl 202 # ToolList = merged.toollist.drl
203 # *layername = merged.layername.ger 203 # *layername = merged.layername.ger
204 # (for example: 'merged.toplayer.ger', 'merged.silkscreen.ger') 204 # (for example: 'merged.toplayer.ger', 'merged.silkscreen.ger')
205 # 205 #
206 # Any assignment that does not begin with '*' or is not one of the reserved 206 # Any assignment that does not begin with '*' or is not one of the reserved
207 # names BoardOutline, Drills, ToolList, or Placement is a generic string 207 # names BoardOutline, Drills, ToolList, or Placement is a generic string
208 # assignment that can be used for string substitutions, to save typing. 208 # assignment that can be used for string substitutions, to save typing.
209 ############################################################################## 209 ##############################################################################
210 [MergeOutputFiles] 210 [MergeOutputFiles]
211 Prefix = %(mergeout)s 211 Prefix = %(mergeout)s
212   212  
213 # KHK my interpretation for KiCAD on a Linux system (case sensitive) 213 # KHK my interpretation for KiCAD on a Linux system (case sensitive)
214 *TopLayer=%(prefix)s-F.Cu.gbr 214 *TopLayer=%(prefix)s-F.Cu.gbr
215 *BottomLayer=%(prefix)s-B.Cu.gbr 215 *BottomLayer=%(prefix)s-B.Cu.gbr
216 *TopSilkscreen=%(prefix)s-F.SilkS.gbr 216 *TopSilkscreen=%(prefix)s-F.SilkS.gbr
217 *TopSoldermask=%(prefix)s-F.Mask.gbr 217 *TopSoldermask=%(prefix)s-F.Mask.gbr
218 *BottomSilkscreen=%(prefix)s-B.SilkS.gbr 218 *BottomSilkscreen=%(prefix)s-B.SilkS.gbr
219 *BottomSoldermask=%(prefix)s-B.Mask.gbr 219 *BottomSoldermask=%(prefix)s-B.Mask.gbr
220 *NPTHDrills=%(prefix)s-NPTH.drl 220 *NPTHDrills=%(prefix)s-NPTH.drl
221 Drills=%(prefix)s.drl 221 Drills=%(prefix)s.drl
222 BoardOutline=%(prefix)s-Edge.Cuts.gbr 222 BoardOutline=%(prefix)s-Edge.Cuts.gbr
223 ToolList = toollist.%(prefix)s.drl 223 ToolList = toollist.%(prefix)s.drl
224 Placement = placement.%(prefix)s.txt 224 Placement = placement.%(prefix)s.txt
225   225  
226 ############################################################################## 226 ##############################################################################
227 # The remainder of the file specifies the jobs to be panelized. Each job is 227 # The remainder of the file specifies the jobs to be panelized. Each job is
228 # specified in its own section. To each job you can assign a job name, which 228 # specified in its own section. To each job you can assign a job name, which
229 # will be the name of the section in square brackets (e.g., [Proj1]). This job 229 # will be the name of the section in square brackets (e.g., [Proj1]). This job
230 # name is used in the layout file (if used) to refer to the job. 230 # name is used in the layout file (if used) to refer to the job.
231 # 231 #
232 # Job names are case-sensitive, but do not create job names that are the same 232 # Job names are case-sensitive, but do not create job names that are the same
233 # except for the case of the characters, as this may cause problems during 233 # except for the case of the characters, as this may cause problems during
234 # layout. Job names may only contain the following characters: 234 # layout. Job names may only contain the following characters:
235 # 235 #
236 # a-z A-Z 0-9 _ 236 # a-z A-Z 0-9 _
237 # 237 #
238 # In addition, job names must begin with a letter (a-z or A-Z). 238 # In addition, job names must begin with a letter (a-z or A-Z).
239 ############################################################################## 239 ##############################################################################
240 [HBSTEP02A] 240 [HBSTEP02A]
241   241  
242 Prefix=%(projdir)s/HBSTEP02A/HBSTEP02A 242 Prefix=%(projdir)s/HBSTEP02A/HBSTEP02A
243   243  
244 *TopLayer=%(prefix)s-F.Cu.gbr 244 *TopLayer=%(prefix)s-F.Cu.gbr
245 *BottomLayer=%(prefix)s-B.Cu.gbr 245 *BottomLayer=%(prefix)s-B.Cu.gbr
246 *TopSilkscreen=%(prefix)s-F.SilkS.gbr 246 *TopSilkscreen=%(prefix)s-F.SilkS.gbr
-   247 *BottomSilkscreen=%(prefix)s-B.SilkS.gbr
247 *TopSoldermask=%(prefix)s-F.Mask.gbr 248 *TopSoldermask=%(prefix)s-F.Mask.gbr
248 *BottomSoldermask=%(prefix)s-B.Mask.gbr 249 *BottomSoldermask=%(prefix)s-B.Mask.gbr
249 Drills=%(prefix)s.drl 250 Drills=%(prefix)s.drl
250 BoardOutline=%(prefix)s-Edge.Cuts.gbr 251 BoardOutline=%(prefix)s-Edge.Cuts.gbr
251 Repeat = 4 252 Repeat = 4
252   253  
253   254  
254   255