
1. 项目概述从设计到生产的桥梁作为一名在硬件行业摸爬滚打了十多年的工程师我深知从PCB设计完成到最终拿到实物板子之间有一个环节至关重要却又常常让新手工程师感到困惑甚至“翻车”——那就是Gerber文件和钻孔数据的导出。无论你的电路设计多么精妙布局布线多么完美如果交给板厂的生产文件Gerber有误轻则导致板子功能异常重则整批报废时间和金钱成本都相当高昂。特别是使用Cadence Allegro这类高端EDA工具的设计师往往会发现很多中小型PCB制造厂并没有安装Allegro软件他们无法直接打开你的.brd源文件进行生产。因此将设计转换为行业通用的Gerber光绘文件和钻孔文件就成了硬件工程师必须掌握的“出厂设置”技能。这份笔记就是我结合多年实战和踩过的无数个坑梳理出的Allegro导出Gerber及钻孔数据的完整流程与核心心法。它不仅仅是一份操作手册更会深入解释每个参数设置背后的“为什么”以及那些官方文档很少提及但实际生产中却可能让你功亏一篑的细节。无论你是刚刚接触Allegro的嵌入式工程师还是负责FPGA、高速数字或模拟电源板设计的资深人士希望这份详尽的指南都能帮你建立起可靠、规范的文件输出流程确保你的设计意图能被准确无误地传递到生产线上。2. 核心概念解析Gerber与钻孔文件到底是什么在开始具体操作之前我们必须先搞清楚我们到底要生成什么以及它们在生产中扮演什么角色。这有助于理解后续所有参数设置的意义。2.1 Gerber文件电路板的“照片底片”Gerber文件常被称为光绘文件是PCB行业的“普通话”或“世界语”。你可以把它想象成过去冲洗照片时用的底片。你的Allegro设计文件.brd包含了所有丰富的层次、网络、属性信息就像一张数码照片。而Gerber文件则是将这张“数码照片”的每一层如顶层走线、底层走线、丝印层、阻焊层分别“冲洗”成一张张只有黑白两色的“底片”。PCB厂就用这些“底片”通过光学成像的方法将电路图形转移到覆铜板上再进行蚀刻、钻孔等工序。Gerber格式主要有两种古老的RS-274-D和现在通用的RS-274-X。两者的核心区别在于“光圈表”Aperture Table。RS-274-D格式需要额外附带一个定义各种图形如线条、焊盘、Flash符号形状和尺寸的独立光圈表文件而RS-274-X格式则将光圈表信息直接嵌入到了Gerber文件内部。因此在实际生产中务必要求输出RS-274-X格式它能极大减少文件不匹配导致的错误是当今板厂几乎唯一接受的标准。在Allegro中这对应着Gerber RS274X选项。2.2 钻孔文件电路板的“施工钻孔图”如果说Gerber文件定义了各层的图形那么钻孔文件Drill File就定义了板上所有孔的位置、大小和类型如金属化孔、非金属化孔。它通常以Excellon格式生成文件扩展名常为.drl。对于非圆形的槽孔或矩形孔还需要额外的铣刀路径文件Routing File扩展名常为.rou。钻孔文件会配合一个钻孔图例Drill Chart一起提供给板厂。这个图例以表格形式列出了板上所有不同孔径的孔并赋予其一个符号如“A”、“B”、“”等在钻孔文件里就用这些符号来指代对应的孔。板厂根据这个“图纸”进行钻孔作业。注意Gerber文件和钻孔文件是相互独立的但它们必须基于完全相同的设计原点Origin和单位制。如果原点或单位不匹配就会导致孔位对不上走线这是最常见的生产错误之一。3. 导出前的关键准备工作奠定正确的基础很多导出错误其实源于设计前期或导出前的基础设置没做好。磨刀不误砍柴工这一步至关重要。3.1 系统参数与绘图精度设置在Allegro中首先通过Setup - Drawing Options或Setup - Drawing Size来设置绘图参数。这里有几个关键点单位User Units必须与你的设计保持一致。国内行业常用Mils毫英寸国际项目或高精度板可能用Millimeter。记住这个单位后续所有导出设置必须与其一致。精度Accuracy这决定了数据库内部坐标的计算精度。例如设置为2意味着小数点后保留2位对于Mils单位就是0.01 mil。一个重要的经验法则是后续输出Gerber的精度小数位数应至少比此数据库精度高一位。例如数据库精度为2Gerber输出精度建议设为Integer:5, Decimal:3即3位小数。如果Gerber精度低于或等于数据库精度在转换复杂图形如特定角度的线段、自定义焊盘时可能会丢失细节或产生警告。绘图范围Drawing Extents确保其完全包含你的板框Outline以及所有设计内容并留有一定余量。通常选择较大的标准尺寸如C Size即可。3.2 动态铜皮Shape参数全局设置动态铜皮是Allegro的强大功能但如果设置不当导出Gerber时会出现空洞、锯齿或丢失连接等问题。通过Shape - Global Dynamic Params进行设置动态填充Dynamic fill出Gerber前务必确保所有动态铜皮都处于Smooth状态。你可以在Drawing Options的Shape fill页签查看如果Update to Smooth按钮是可点击的说明有铜皮未更新必须点击它。只有Smooth状态的铜皮才能产生正确的、用于光绘输出的外形。挖空控制Void controls在这个选项卡中找到Artwork format选项。这里必须设置为与后续出Gerber时完全一致的格式即Gerber RS274X。如果这里设置成RS274D而出Gerber时选了RS274X软件会给出警告虽然有时能生成文件但为杜绝隐患必须保持统一。3.3 进行设计规则检查DRC这是导出前不可省略的强制性步骤通过Tools - Quick Reports或DRC浏览器全面运行一次设计规则检查。必须确保没有Unplaced components未放置元件、Unrouted nets未连接网络、Shape铜皮相关的错误以及任何间距Spacing或物理Physical规则冲突。即使是一个微小的丝印压焊盘警告也最好在源头上解决。带着DRC错误导出Gerber相当于把问题丢给了制造环节风险极大。3.4 数据库健康检查Database Check这是一个经常被忽略但很有用的步骤。通过Tools - Database Check勾选所有选项尤其是Cleanup Dangling lines and vias等执行检查。它可以修复一些数据库内部的微小错误或冗余数据保证导出过程的稳定性。在导出Gerber的Artwork Control Form对话框中也有一个Check database before artwork的选项勾选它可以在生成每层光绘前自动执行一次快速检查。4. Gerber文件光绘文件导出详解这是整个流程的核心部分需要逐层、逐参数仔细配置。4.1 进入光绘控制表单通过Manufacture - Artwork打开Artwork Control Form对话框。所有Gerber相关的设置都在这里完成。4.2 设置通用参数General Parameters首先点击General Parameters...按钮进行全局设置。参数项推荐设置与解释Device typeGerber RS274X。这是现代PCB制造的标准格式选择它。Film size limits默认值即可。它定义了每张“底片”的最大尺寸通常远大于我们的板子。Error actionAbort film。意思是当处理某一层遇到错误时只停止该层的生成继续处理其他层。这样便于排查问题。Format这是重点Integer places和Decimal places共同决定了坐标数据的精度。例如设置为5:3表示坐标值整数部分最多5位小数部分3位。对于以Mils为单位的设计3位小数意味着0.001 mil的精度这已经远超绝大多数工艺需求。关键原则此处的精度小数位数必须高于或等于前面“绘图精度”的设置通常高一位更安全。Output units必须与你的设计单位一致例如Inches如果设计用Mils这里选Inches因为1 mil 0.001 inch。Scale factor1.0。除非你有特殊缩放需求否则保持为1。设置完成后点击OK这些参数会被保存到工作目录的art_param.txt文件中。4.3 创建与配置光绘层Film Control回到Film Control标签页这里我们要定义具体需要输出哪些层以及每层的属性。Allegro默认可能有一些光绘层设置但为了保险和清晰我习惯删除所有默认层完全手动创建。右键点击Available films下的任一图层选择Cut删除。然后通过右键菜单Add来新建我们需要的每一层。每一层Film其实是一个容器里面包含了来自设计数据库中的一个或多个Subclass子类。我们需要为PCB的每个物理层或工艺层创建一个对应的Film。标准双面板所需的光绘层配置示例以下是对于一个典型的双面PCB需要输出的各层及其包含的子类Subclass清单。在添加每层时在Subclass Selection对话框中勾选对应的项。TOP.art (顶层走线层)ETCH/TOP(顶层布线)PIN/TOP(顶层焊盘)VIA CLASS/TOP(顶层过孔)BOARD GEOMETRY/OUTLINE(板框外形)【注意板框层需要添加到每一层光绘中作为对齐基准】BOTTOM.art (底层走线层)ETCH/BOTTOMPIN/BOTTOMVIA CLASS/BOTTOMBOARD GEOMETRY/OUTLINETOP_SILK.art (顶层丝印层)REF DES/SILKSCREEN_TOP(位号字符)PACKAGE GEOMETRY/SILKSCREEN_TOP(元件外形框)BOARD GEOMETRY/SILKSCREEN_TOP(板上的丝印图形)BOARD GEOMETRY/OUTLINEBOTTOM_SILK.art (底层丝印层)REF DES/SILKSCREEN_BOTTOMPACKAGE GEOMETRY/SILKSCREEN_BOTTOMBOARD GEOMETRY/SILKSCREEN_BOTTOMBOARD GEOMETRY/OUTLINETOP_SOLDERMASK.art (顶层阻焊层)PIN/SOLDERMASK_TOP(顶层焊盘的阻焊开窗)VIA CLASS/SOLDERMASK_TOP(顶层过孔的阻焊开窗通常比焊盘稍大)PACKAGE GEOMETRY/SOLDERMASK_TOP(特殊元件如散热焊盘的阻焊定义)BOARD GEOMETRY/SOLDERMASK_TOPBOARD GEOMETRY/OUTLINE注意阻焊层是“负片”思维即该层图形显示的地方是不开绿油阻焊露出铜皮以便焊接的。BOTTOM_SOLDERMASK.art (底层阻焊层)PIN/SOLDERMASK_BOTTOMVIA CLASS/SOLDERMASK_BOTTOMPACKAGE GEOMETRY/SOLDERMASK_BOTTOMBOARD GEOMETRY/SOLDERMASK_BOTTOMBOARD GEOMETRY/OUTLINETOP_PASTE.art (顶层钢网层)PIN/PASTEMASK_TOPPACKAGE GEOMETRY/PASTEMASK_TOPBOARD GEOMETRY/OUTLINE注意此层仅用于需要贴片焊接SMT的板子用于制作刷锡膏的钢网。如果板子全是插件元件或不需要SMT则无需提供。BOTTOM_PASTE.art (底层钢网层)配置类比顶层。仅SMT板需要。DRILL_LEGEND.art (钻孔图表层)MANUFACTURING/NCDRILL_LEGEND(由钻孔符号生成)BOARD GEOMETRY/OUTLINEDRILL_DRAWING.art (钻孔制图层)MANUFACTURING/NCDRILL_FIGURE(钻孔符号图形)BOARD GEOMETRY/OUTLINE对于四层、六层等多层板还需要为每一个内层如ETCH/GND,ETCH/VCC,ETCH/INNER1等创建对应的.art文件配置方式与走线层类似包含该层的ETCH、PIN、VIA CLASS以及OUTLINE。4.4 关键层参数详解Film Parameters为每一层Film设置参数时右键该层选择Parameters或直接在Film Control右侧设置Undefined line width当数据库中有线宽为0的线段时以此处设定的线宽输出。建议设置为一个较小的正值如0.15毫米或6mils避免因0线宽导致图形丢失。Shape bounding box仅对负片Negative层有效。它定义了从板框外扩的隔离区宽度。对于电源/地平面使用的负片这个值需要设置通常为50-100 mils。对于正片层此参数无效。Plot mode正片Positive与负片Negative的选择是核心。正片Positive所见即所得。图层上显示的任何图形走线、焊盘在最终板子上就是铜皮。所有信号走线层TOP, BOTTOM, INNERx、丝印层、阻焊层、钢网层都应设为正片。负片Negative反相显示。图层上显示图形的地方在最终板子上是被蚀刻掉的铜皮空白区域反而是铜皮。通常仅用于大面积覆铜的电源Power和地Ground平面层。使用负片可以减小Gerber文件大小但需要正确设置Thermal Relief花焊盘和Anti-pad隔离盘。Film mirrored除非板厂有特殊要求如某些特殊工艺否则一律不勾选。保持非镜像状态。Full contact thermal-reliefs仅对负片层有效。勾选后所有连接到该负片层的引脚和过孔将采用全连接直接实心连接忽略其Thermal Relief设计。一般不勾选以保留热焊盘设计避免焊接时散热过快。Suppress unconnected pads去除未连接焊盘。对于内层走线层特别是负片层勾选此选项可以去除那些没有网络连接到该层的焊盘如一个只连接顶层和底层不连接内层的过孔在该内层上的焊盘防止它意外连接到平面。对于内层信号层和平面层建议勾选。Vector based pad behavior强烈建议勾选。这会影响负片中Flash符号热焊盘和隔离盘的生成方式。勾选后能确保负片层上的隔离盘是实心的避免因数据格式问题导致孔环被错误地“掏空”。4.5 生成光绘文件并检查日志配置好所有层后在Available films列表中选中所有需要输出的层可以按住Ctrl多选然后点击Create Artwork按钮。生成过程中务必点击Viewlog按钮查看photoplot.log文件。这个日志文件是排查问题的关键。你需要关注的是WARNING和ERROR。常见警告与处理Photoplot outline rectangle not found ... using drawing extents提示你没有定义BOARD GEOMETRY/PHOTOPLOT_OUTLINE层。软件自动使用绘图范围Drawing Extents作为光绘边界。这通常没问题但为了更精确你可以在设计中画一个与板框OUTLINE重合或稍大的PHOTOPLOT_OUTLINE矩形。For raster artwork formats...如果你选择了非RS274X格式如Gerber 4x00且精度设置不满足软件要求会出现此警告。坚持使用Gerber RS274X可避免。0 width line found at ... using undefined line width提示在某坐标发现了0线宽的线段并已用你设置的Undefined line width值替代。你需要回到设计中去检查该位置的图形将其线宽修改为明确值避免依赖替代值。Segment with same start and end points...提示在某个坐标存在起点和终点重合的无效线段长度为0已被忽略。检查并修正该处图形。生成完成后在工作目录下会看到一系列.art文件这就是你的Gerber光绘文件。同时还会生成art_aper.txt光圈表和art_param.txt参数文件。对于RS274X格式光圈信息已嵌入.art文件art_aper.txt仅供参考。5. 钻孔文件与铣刀文件导出详解钻孔数据是独立于Gerber的另一套文件同样需要仔细配置。5.1 生成钻孔符号表Drill Legend首先通过Manufacture - NC - Drill Customization打开钻孔定制对话框。点击Auto generate symbols让软件自动为板上所有不同尺寸的孔分配一个钻孔符号如A, B, C, , -等。点击OK。然后通过Manufacture - NC - NC Legend来放置钻孔图表。在弹出的对话框中Template file保持默认的default-mil.dlt英制或default-metric.dlt公制。Legend title可自定义如DRILL CHART。Output unit必须与设计单位一致。Hole sorting method选择By hole size并按Ascending升序排列便于阅读。 点击OK后在板框外空白处点击放置这个图表。它会以表格形式列出所有孔的尺寸、数量、符号和是否金属化Plated。这个图表会出现在我们之前创建的DRILL_LEGEND.art层中。5.2 设置钻孔参数NC Parameters通过Manufacture - NC - NC Parameters打开参数设置对话框。这是确保钻孔文件正确的关键。参数项推荐设置与解释Parameter file默认的nc_param.txt保存参数。Output file默认的ncroute.txt用于铣刀和ncdrill.txt用于钻孔。Excellon format必须与Gerber的Format设置匹配这是最容易出错的地方。如果Gerber的Format是5:3那么这里通常选择3.5即3位整数5位小数这里需要澄清Excellon格式的“3.5”通常指“前省零3位整数5位小数”的一种格式约定但具体要看软件解释。最稳妥的方法是保持与Gerber一致的数据格式理念即坐标值的小数位数。在Allegro中通常Gerber设为5:3此处Excellon format下拉框选择3.5并在下面的Format中手动输入3 5意即3位整数5位小数不对要统一。实际上更简单的原则是确保Format整数和小数位数与Gerber设置完全一致。例如Gerber是5:3这里也手动输入5 3。并勾选Leading zero suppression前省零这是板厂最常用的格式。Offset X, Y通常为0 0除非有特殊原点偏移要求。CoordinatesAbsolute绝对坐标。Output units与设计一致例如Inches。Leading/Trailing zero suppression根据板厂要求。国内板厂普遍接受Leading zero suppression前省零。Trailing后省零较少用。Equal coordinate可选。Enhanced Excellon format建议勾选生成更兼容的格式。实操心得关于Excellon format和Format的设置最保险的做法是在第一次给某家板厂发文件时直接询问他们的工程师偏好哪种钻孔格式或者提供一小段样例文件让他们确认。因为不同CAM软件对格式的解析可能有细微差别。通常Format: 3.5配合Leading zero suppression是广泛兼容的。5.3 生成钻孔文件NC Drill与铣刀文件NC Route生成标准圆孔文件执行Manufacture - NC - NC Drill。在弹出的对话框中参数通常已根据上一步的NC Parameters设置好直接点击Drill按钮即可。生成后缀为.drl的文件通常由ncdrill.txt自动重命名而来。生成槽孔/异形孔文件如果板上有非圆形的钻孔如椭圆孔、矩形槽则需要额外生成铣刀文件。执行Manufacture - NC - NC Route。同样检查参数后点击Route按钮。生成后缀为.rou的文件。6. 文件打包与交付前的最终检查所有文件生成完毕后不要急着打包发送。必须进行最终验证。6.1 文件清单核对提供给PCB厂的文件包通常应包括所有层的Gerber文件.art例如TOP.art,BOTTOM.art,TOP_SILK.art,TOP_SOLDERMASK.art,TOP_PASTE.art等。钻孔文件*.drl(或.txt)。铣刀文件如有*.rou。钻孔图可选但强烈建议包含DRILL_LEGEND和DRILL_DRAWING的Gerber文件或直接提供PDF版本的钻孔图。README文件极其重要一个简单的文本文件说明板子层数如2层板。各Gerber文件对应的层如TOP.art- 顶层走线。使用的单位如英制mils。Gerber格式如RS274X。坐标格式如前省零绝对坐标整数5位小数3位。钻孔格式如Excellon前省零。板厚、铜厚、表面工艺如1.6mm 1oz 有铅喷锡等其它技术要求。6.2 使用CAM软件自行检查强烈推荐这是专业工程师的必备动作能避免90%的沟通成本和生产错误。使用免费的CAM查看软件如GC-Prevue、Gerbv或功能更强的CAM350、Valor导入你生成的所有Gerber和钻孔文件。检查要点层对齐依次叠放所有层检查各层之间是否对准。特别是钻孔层.drl是否与所有走线层、焊盘层完美重合。层别确认逐层打开肉眼检查是否有图形缺失、多余、变形。例如阻焊层是否覆盖了所有该开窗的焊盘丝印是否压到了焊盘。钻孔检查在CAM软件中打开钻孔层查看钻孔符号、大小、数量是否与你的钻孔图例一致。板框确认OUTLINE层在所有Gerber文件中都存在且一致定义了正确的板子外形。负片层对于设置为负片的电源/地层在CAM软件中查看其效果是否正确显示为图形的地方是掏空。7. 常见问题与排查技巧实录即使按照流程操作也可能会遇到各种问题。这里记录一些典型情况及解决方法。问题现象可能原因排查与解决思路CAM软件中钻孔与焊盘对不上1. Gerber与钻孔文件原点不一致。2. 单位不一致一个英制一个公制。3. 坐标格式前省零/后省零不匹配。1.检查原点在Allegro中使用Manufacture - Dimension - Drafting - Origin标记一个原点如板框左下角确保Gerber和钻孔都使用这个原点。在CAM软件中尝试重新对齐原点。2.检查单位核对Gerber的Output units和钻孔的Output units必须完全相同。3.检查格式核对Gerber的Format和钻孔的Excellon Format设置。最简单的办法是用文本编辑器打开.drl文件看开头部分是否有INCH或METRIC以及坐标是像X00500Y01000前省零还是X0.5Y1.0带小数点。阻焊层开窗比焊盘小或没开窗1. 阻焊层未正确包含PIN/SOLDERMASK_TOP等子类。2. 焊盘的SOLDERMASK属性定义有误。3. 负片设置错误。1. 检查Artwork中阻焊层的Subclass是否添加正确。2. 在Allegro中检查具体焊盘的属性看其阻焊开窗Solder Mask尺寸是否被正确设定或继承自封装。3. 阻焊层必须是正片Positive。内电层负片显示异常该连接的地方没连接1. 负片层的Thermal Relief花焊盘未正确生成或Flash符号缺失。2.Suppress unconnected pads选项误删除了连接盘。3. 铜皮未更新到Smooth状态。1. 检查连接到该内电层的引脚和过孔其Thermal Relief的Flash符号是否已正确创建并关联。在Padstack Editor中检查。2. 尝试取消勾选Suppress unconnected pads但需注意可能引入的短路风险。3. 确保执行了Update to Smooth。生成Gerber时提示大量“Database has errors”设计存在DRC错误或数据库不一致。1. 首先运行完整的Database Check和DRC Check解决所有报错。2. 尝试Tools - Database Check中的Cleanup操作。3. 有时需要导出IPC-356网表或重启Allegro来清理临时错误。丝印文字丢失或混乱1. 丝印层未添加REF DES子类。2. 文字线宽太细低于光绘输出精度。3. 文字被其他图形覆盖Z轴顺序。1. 确认丝印层Film包含了REF DES/SILKSCREEN_TOP等。2. 检查丝印文字的线宽建议不小于0.15mm6mils。在Setup - Design Parameters - Text中设置默认丝印线宽。3. 在Allegro中调整丝印文字的位置避免与焊盘重叠。板厂反馈文件无法识别或解析错误1. 文件格式不兼容如用了RS274D。2. 使用了板厂不支持的非常规设置。3. 文件在传输过程中损坏尤其是二进制格式但RS274X是文本。1.统一使用Gerber RS274X和Excellon格式。2. 提供详细的README.txt说明所有关键参数。3. 在发送前自己用不同的CAM查看软件如换一个免费的打开验证一遍。如果两个软件都能正常打开文件基本没问题。4. 将文件打包成ZIP格式再发送避免某些邮件系统篡改文件后缀。最后的个人建议建立一个属于你自己的、标准化的Gerber输出配置文件art_param.txt和nc_param.txt可以备份。对于新的设计项目先导入这个标准配置再根据板层结构微调Film层列表。这样可以最大程度保证输出的一致性减少人为错误。每次导出后花15分钟在CAM软件里做一次快速自查这个习惯能为你节省大量后期调试和与板厂扯皮的时间。硬件设计细节决定成败而出Gerber正是这最后一个也是最关键的细节之一。