2026/10/6 1:01:28

Allegro PCB投板必看:Gerber与钻孔文件输出全流程与避坑指南

Allegro PCB投板必看:Gerber与钻孔文件输出全流程与避坑指南 1. 交付给板厂的文件到底是什么别再发.brd了做了这么多年 Allegro PCB 设计我几乎每隔一阵就会遇到同事或者刚入行的朋友问同一个问题板厂发给我的最终文件到底该给什么有的人直接把 .brd 工程文件一压缩就扔过去了结果不是被板厂退回就是对方要求重新整理。原因很简单——板厂产线上的 CAM 工程师大概率不会装 Cadence Allegro他们用的是 Pentalogix、CAM350、Genesis 2000 这类专门读制造文件的软件。你要交付的不是你的设计工程文件而是板厂能直接拿去做光绘、做钻孔、做阻焊对位的标准制造数据。这套标准制造数据核心就是两块Gerber 光绘文件和钻孔文件NC Drill。Gerber 记录的是每一层走线层、阻焊层、丝印层、板框层的图形信息钻孔文件记录的是所有孔的坐标、孔径、是否金属化这些信息。Allegro PCB 设计在做完布局布线、跑完 DRC 之后最后一步就是把这套数据完整、准确地吐出来。这一步做不好前面多少个通宵布线的努力都可能白费——文件缺一层、底片选错正负、钻孔小数位不对打样回来就是一堆废板。这篇东西就是把我自己这些年用 Allegro 输出 Gerber 和钻孔文件的完整流程、参数选择、容易踩的坑一次讲清楚。适合正在用 Allegro 做板子、准备投板但还没完全摸清输出流程的工程师参考尤其是那种布局布线都画完了一到出文件就发怵的中间状态。先给还没完整概念的朋友理一下。Gerber 现在主流格式是 RS-274X也就是俗称的带内嵌光圈的 Gerber所有光圈Aperture定义都直接写在文件里不需要另外给一张 D-code 表。比它老的是 RS-274D要单独提供光圈文件现在板厂已经很少用你千万不要再导 274D。ODB 是另一种制造数据格式功能更全可以把你整个 PCB 设计的所有层、网络表、BOM 一起打包但国内很多中小板厂对 ODB 的解析不如 Gerber 顺手。所以稳妥打法永远是Gerber 钻孔文件一个不少这是最通用的方案。下面这套流程我按实际输出顺序来讲每一步都带参数和理由。2. 动手输出前的三道提前量单位、DRC和Artwork控制文件很多人一上来就打开 Manufacture 菜单输出这是不对的。Gerber 输出不是点一下导出那么简单它是一个跟你的设计单位和约束设置强相关的动作。在动手之前我建议你先确认三件事顺序也不能乱。第一件事确认设计单位和小数位。在 Allegro 中打开 Setup - Design Parameters切到 Design 选项卡看当前单位是 Inch 还是 Millimeter。这个很重要因为后面 Gerber 和钻孔文件的坐标精度都是基于这个单位换算的。就我见过的国内工程师来说用 mm 的越来越多但不少老项目还是走 mil英制。不管是哪个单位输出 Gerber 时整数位和小数位建议至少设成 3:3整数位 3 位能覆盖 0 到 999.999小数位 3 位对应到毫米就是 1μm 分辨率绝大多数 PCB 制造精度都绰绰有余。如果你的板子很大板边坐标超过 100mm 甚至接近 1000mm那小数位最好上到 4 位也就是 3:4别省这点文件大小坐标精度在钻孔对位时会直接体现出来。第二件事把 DRC 清零。输出文件之前务必跑一遍全局 DRC。Allegro 里最简单的办法是在命令行输入updat drc这个命令会强制做一次全量 DRC 更新。更新完再打开 Reports - Quick Reports找到 DRC Errors 报告看一下有没有未解决的错误。我个人的底线是任何 L/S线宽线距、D/T间距、钻孔相关的 Unrouted、Undefined 错误都不能带出图。你可能会觉得这个错误我知道板厂应该能看出来但实际上板厂不会帮你判断错误严不严重——CAM 工程师看到你的光绘文件里有一处间距只有 2mil而你的设计规则写的是 4mil他只会按 2mil 做或者更保守地打电话问你一来一回交期就耽误了。趁还有机会改先把 DRC 清零再输出。第三件事准备好 Artwork 控制文件。Allegro 的 Artwork Control Form 是可以把当前定义的 Film 底片列表保存成文件的后缀通常是 .art。第一次输出之前建议把所有底片定义好后通过这个表单把配置保存下来。这样做的意义在于板子改了一版下次输出不用重新一项一项设置。更关键的是Artwork 控制文件里还保存了底片的正负属性、线宽补偿这些参数相当于你把输出模板沉淀下来了。团队协作时这份文件比口头交代你就照上次那样出靠谱得多。这三个提前量做完再进入输出环节心里就踏实了。3. 光绘文件实操每一层该选什么底片、参数怎么填3.1 打开 Artwork 控制表单并设置 General Parameters在 Allegro 里通过 Manufacture - Artwork 打开 Artwork Control Form。界面左侧是 Film Control列出了所有已经定义好的底片右侧是当前选中底片的参数。先把最关键的 General Parameters 设置好点表单下方的 General Parameters 按钮进入通用参数对话框。这里要注意几个地方Device type选 Gerber。Format选 RS-274X。如果有选项是 Gerber X2也可以选但 X2 本质上是 RS-274X 的扩展带属性信息部分板厂不支持我习惯先用 RS-274X兼容性最好。Integer places / Decimal places按前面说的3:3 起步大板子用 3:4。Zero suppression这个参数特别容易出问题。建议新手直接选 Do not suppress不抑制让每一个坐标都按固定位数输出比如 035.000 而不是 35.000。别嫌文件大在钻孔坐标解析上固定位数是最不容易产生歧义的。等你跟某家板厂混熟了对方明确说要 leading zero suppressed你再去改也不迟。Output directory建议单独建一个 artwork 文件夹把每一层光绘文件都输出到同一个目录下后面整理文件方便。还有一个容易忽略的点Format 下面的 Apertures 相关选项。RS-274X 格式下Allegro 会在光绘文件里自动包含光圈定义不需要你手动维护 D-code。你唯一要注意的是如果设计里有非常小的线宽或焊盘需要确认光绘机的分辨率能不能解析这个在 CAM350 里验证能看出来。3.2 各层 Film 的底片类型正片/负片怎么选Artwork Control Form 左侧列表里每一行代表一个输出层Allegro 里叫 Film。每个 Film 都有一个类型选项正片Positive或负片Negative这个选择不能乱来。我的经验法则如下输出层建议底片类型说明顶层/底层/内层信号层Positive直接出走线图形圆圈是空心还是实心一目了然内层电源/地平面Negative大铜皮区域用负片文件小避免正片光绘出现网格状赋值异常阻焊层Solder MaskPositiveAllegro 的阻焊数据本身已经定义好了开窗区域正片输出就是开窗图形助焊层/钢网层Paste MaskPositive同理开窗区域正片输出丝印层Positive丝印线、字符直接出图简单明了板框/外形层Positive用 Outline 作为板框数据时正片输出负片在 Allegro 里的实际含义是你画在底片里的图形是挖掉的部分。内层电源层画一个大的覆铜区域如果你用正片输出光绘会把这个大铜皮按照一堆填充多边形逐块描出来文件巨大而且可能因为设计里铜皮有断裂带导致光绘解析后出现细小的网格线影响电源层完整性。负片输出则正好反过来默认全黑有铜你画的图形区域是透光的逻辑上就是掏空区域。这样文件小、干净。但负片也有坑我后面专门讲。3.3 定义好每个 Film 的内容千万别漏层在 Artwork 里新建一个 Film 时左侧会显示所有可用层的源数据你在右侧对应要包含进来的层上把类型点上然后让 Allegro 合并输出。一个完整的双面板输出最少需要的 Film 如下TOP顶层走线顶层焊盘BOTTOM底层走线底层焊盘SOLDERMASK_TOP顶层阻焊开窗SOLDERMASK_BOTTOM底层阻焊开窗SILKSCREEN_TOP顶层丝印SILKSCREEN_BOTTOM底层丝印PASTEMASK_TOP顶层钢网做贴片需要PASTEMASK_BOTTOM底层钢网双面贴片需要OUTLINE板框如果板子是四层那就再加 L2_GND、L3_PWR 两个内层 Film。如果是盲埋孔板还要额外注意埋孔/盲孔所在的层对要单独检查不要只看表面这几层。每个 Film 的名字尽量用英文大写不要带空格板厂读文件名方便也避免某些 CAM 软件对中文或特殊字符支持不好。在 Allegro 中定义完 Film 后你可以直接手动把 Output file 改成 TOP.gbr、BOTTOM.gbr 这样的名字这样归档时比默认的 .art 后缀直观得多。RS-274X 格式下后缀其实不影响内容板厂都能识别但统一成 .gbr 会让你自己在文件清单里一眼看明白每一层是什么。3.4 输出光绘并立刻查看 log设置完成后点 Select All 选中所有 Film再点 OK 或者 Create ArtworkAllegro 会开始批量输出。这时候要注意看输出日志窗格里面会逐层显示是否成功。如果某一层里有未定义的光圈或者有数据异常日志里通常会出现警告不要直接关掉窗口一条条看过去。输出完之后回到你设置的文件输出目录确认每一层文件都生成了并且文件大小合理。比如一块普通的双面板Top 层光绘一般在几十 KB 到几百 KB 级别如果你看到某个文件只有几百字节那八成是这层没有有效数据要回头检查是不是层定义错了。4. 钻孔文件生成技巧NC Drill不是点一下确定那么简单4.1 NC Drill 参数设置的核心格式、小数位、零抑制钻孔文件和光绘文件是两套独立的数据流但在格式上必须保持一种默契。在 Allegro 里通过 Manufacture - NC - NC Drill 打开钻孔输出设置。这里有几个参数值得你逐项确认Integer places / Decimal places和光绘保持一致。如果你光绘用了 3:3钻孔这里也建议 3:3不要一会儿 3:3 一会儿 3:4。CAM 工程师在做钻孔对位时是拿两种文件叠加看的坐标位数不一致很容易产生误读。Zero suppression同样建议选 Do not suppress不抑制理由和光绘一样。Output file默认生成的 .drl 文件我建议把它重命名成项目名_DRILL.drl文件名包含钻孔含义方便后面归档。Enhanced Excellon 格式如果需要输出带孔径信息和工具信息的增强型 Excellon也叫 Excellon 2可以勾选对应选项。这种格式能把孔的类型镀通孔还是非镀通孔直接写进文件里板厂读起来更友好。我一般建议勾上不影响兼容性。还有一个容易忽略的是Tool Sequence。Allegro 默认会给每个钻孔尺寸自动分配一个工具编号从 T01 开始按从小到大排列。如果你在设置里勾选了工具列表自动排序之类的选项要保证输出后工具编号是稳定的。这样做的好处是当你查看钻孔文件时T01 永远是最小的孔T02 次之一目了然。4.2 盲埋孔和背钻的处理如果是普通通孔板上面这些设置就够了。但如果你的板子是 HDI 盲埋孔设计或者涉及到背钻钻孔输出就要多留个心眼。Allegro 对盲埋孔的处理方式本质上和通孔一样只要你在 PCB 设计时把盲埋孔的结构通过 Via Structure 定义清楚NC Drill 输出时会把所有孔都统一按坐标、孔径、工具号排列出来。但你一定要检查盲埋孔对应的层对是否正确。一个典型的坑是盲孔从 L1 打到 L2但你在输出钻孔文件时没有把 L1-L2 这个层对包含进去结果导致这部分孔在该出现的钻孔层里是空的。检查方法是打开 NC Drill 生成后的 .drl 文件用文本编辑器直接看搜索几个关键坐标确认它们出现了并且工具号对应的孔径符合你的设计。背钻是另一个麻烦事。背钻的原理是把多余的过孔孔壁铜钻掉以改善高速信号的反射。Allegro 里需要在设计中通过 Backdrill 相关的规则设置来定义。输出钻孔文件时背钻孔通常会和普通孔分在不同的 Drill 层或者通过单独的底片输出。我的建议是背钻信息最好同时出两份文件一份普通钻孔文件一份背钻文件并且一定要在交付文档里用文字写清楚哪份文件是背钻、背钻深度是多少。板厂的 CAM 工程师看到你的文件一多最怕的就是你什么都没有说明。4.3 NC Legend 钻孔图别省这一步很多人输出完 .drl 就算完事了其实还差一步——生成钻孔图NC Legend。钻孔图的作用是把 T01、T02 这些工具编号对应到具体的孔径并且以表格形式画在 PCB 图纸旁边这样板厂在光绘文件和钻孔文件之间做交叉检查时能快速确认孔径关系。Allegro 里执行 Manufacture - NC - NC Legend设置输出位置和字符大小它会自动在板框旁边生成一个钻孔符号表。你要注意把这张表放在板框外的空区域里不要盖到走线上也不要离板框太近建议至少留 2mm 以上的间距否则板厂开料时可能会把这个表格误认成板框的一部分。生成之后这个钻孔图一般会放在某个机械层或单独的 Figure 层里你需要把这个层也包含到光绘输出中比如放到一个叫 FAB_DRILL 的 Film 里。这一步看似不起眼但实际帮过我不少次。曾经有一块板子我忘记生成 NC Legend板厂打电话来问T05 是 0.3mm 还是 0.5mm因为钻孔文件里只有坐标和工具号没有孔径对照表他们只能靠猜或者自己反查。加上 Legend 之后双方都省事。4.4 钻孔文件的快速自检钻孔文件生成后我的快速自检顺序是用文本编辑器打开 .drl 文件看开头部分有没有工具表Tool Table确认里面列出了所有孔尺寸。检查坐标是否都是固定位数有没有被零抑制吃掉前导零导致坐标位数不一致。用 Excellon 格式查看器或者 CAM350 导入数一下钻孔数量跟 Allegro 的钻孔报表对一下数字。Allegro 里可以在 Reports 里生成一张钻孔报告里面会统计每个孔径对应的孔数。CAM350 导入后也能统计孔数两个数字对上基本就稳了。对不上就回过头查是否漏了层对或者是否有重复定义的工具号。5. 输出后的验证三板斧不要等板厂来找你5.1 用 CAM350 做一次完整的空读检视文件全部输出完我强烈建议你花十分钟做一次板厂视角的验证。最常用的工具是 CAM350导入 Gerber 文件时它会要求你给出每一层的格式和单位正好可以检测你文件里的坐标零抑制设置是不是清晰的。把 Gerber 全部导入后逐层打开看Top 层是不是从上往下看的样子文字有没有镜像丝印是否被什么东西挡住阻焊层开窗是否和焊盘对齐有没有明显偏移板框层是否完整闭合钻孔文件导入后孔位是否落在对应的焊盘中心我用 CAM350 抓到过最离谱的一次问题是丝印层少了一个镜像步骤导致顶层丝印在 CAM350 里看起来是反的。虽然板厂能自己翻转但这种低级错误会拉低他们对你的信任度。你在 CAM350 里提前看一遍自己在电脑上就能发现甚至不需要板厂反馈。CAM350 的导入参数里注意选择单位和格式时要和 Allegro 输出保持一致。如果 Allegro 输出时单位是 mm、3:3、不抑制前导零那在 CAM350 里就选 mm格式设为 3:3。如果 CAM350 自动读取有偏差说明你文件里可能有异常要回去查。5.2 用文件清单核对每一层没有规矩不成方圆。我自己的习惯是在每一份交付给板厂的压缩包里放一个 README 文本文件里面列出所有文件名和层含义项目名_PCB_V1.0_Gerber - TOP.gbr 顶层走线层 - BOTTOM.gbr 底层走线层 - L2_GND.gbr 内层电源/地 - L3_PWR.gbr 内层电源/地 ... - SOLDERMASK_TOP.gbr 顶层阻焊开窗 - SOLDERMASK_BOTTOM.gbr 底层阻焊开窗 - SILKSCREEN_TOP.gbr 顶层丝印 - SILKSCREEN_BOTTOM.gbr 底层丝印 - PASTEMASK_TOP.gbr 顶层钢网贴片用 - PASTEMASK_BOTTOM.gbr 底层钢网贴片用 - OUTLINE.gbr 板框外形 - 项目名_DRILL.drl 钻孔文件Excellon格式 - Readme.txt 文件说明这个清单看起来简单但能避免一大半的沟通成本。板厂的 CAM 工程师拿到压缩包第一件事就是看这个 Readme不用再来问你你这文件是哪层。5.3 有条件的话让第二个人帮你复查人都有盲区尤其是连续画了一整天板子之后眼睛看自己的文件总觉得哪里都对。如果你旁边还有同事请他在 CAM350 里再瞄一眼只看层叠和钻孔数量就行五分钟搞定。如果没有条件那就放一晚上第二天再打开文件复查一次。我踩过的很多低级错误都是第二天再看时一眼就发现的那种比如内层负片方向反了、板框线没有闭合、丝印文字压到了焊盘上。6. 我踩过的坑和最后一张避坑清单6.1 内层负片方向的灵异事件有一块四层板我内层 L2 是地平面L3 是电源平面都按负片输出。结果打样回来板厂说 L2 整个短路。我一开始以为是板厂制作问题后来查出来是我自己在 Artwork 里把 L2 的 Film 类型选错了负片选成了正片等于 Allegro 把掏空区域当成了保留区域整个铜皮图形颠倒本该是整体的地平面变成了零碎的铜皮甚至有些地方直接连到了不同网络的通孔上。这个错误如果在 CAM350 里逐层检查其实是能看出来的——负片的内层在 CAM350 里应该是一个大铜皮上面有孤立的掏空焊盘而不是密密麻麻的零碎走线。从那以后我每次输出内层负片都要在 CAM350 里看一眼整层的大面积颜色分布确认是大片铜色而不是条纹状。6.2 钻孔文件里被吃掉的前导零有一次我用 Allegro 输出钻孔文件为了省空间把 Zero suppression 设成了 Leading抑制前导零。结果光绘文件没改还是固定位数输出。板厂导入时光绘坐标是 035.000钻孔坐标变成了 35.000——在固定位数解析逻辑下倒也没错但他们的老 CAM 系统对两种格式混用的文件偶尔会错位板厂反馈说钻孔整体偏移了 0.025mm。最后排查下来就是前导零抑制导致的坐标解析差异。从那以后我给所有项目定了死规矩光绘和钻孔的零抑制策略统一为 Do not suppress并且写在项目交付规范里。文件大几十 KB 算什么板子是对的才最重要。6.3 丝印层被板框切掉的无声事故还有一次顶层丝印有几条文字一脚踩到了板框线外侧我在 Allegro 里没注意CAM350 里也没细看结果板厂在做丝印时到了板框边缘直接切断导致一排字符只有一半印在板上另外一半没了。这种问题不算致命但看起来很业余。现在我会在输出前专门检查丝印层有没有超出板边的元素方法是单独打开丝印 Film 的 CAM350 视图把板框层也一起打开然后放大看每个边缘区域。6.4 避坑清单速查表检查项容易出问题的点对策单位与小数字段光绘和钻孔不一致统一 3:3 或 3:4同一项目固定零抑制光绘不抑制、钻孔抑制全部不抑制或全部一致内层底片类型负片选成正片CAM350 里看大面积铜色阻焊层开窗不完整与焊盘叠图比对丝印层字符超出板框输出前检查板边区域钻孔文件漏层对、缺 Legend生成 Drill Report 核对孔数文件命名各层含义不清用 .gbr 后缀 Readme 说明如果你能把这张表上的问题都避开投板基本上就是一次过的节奏。我个人在实际操作中的体会是Gerber 和钻孔文件输出这个环节本质上是一个设计到制造的翻译过程。你在 Allegro PCB 设计里看得很清楚的一层铜、一个焊盘、一个过孔到了制造端就变成了一堆坐标和图形命令。翻译得准不准、全不全直接影响板子能不能原样做出来。与其每次投板前都慌慌张张地翻菜单不如花点时间把上面这套流程固化成自己的模板每块板子输出时照着走一遍。磨刀不误砍柴工到最后你会发现出文件这个环节反而成了整个项目里最让人放心的部分。