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