1. 从一块被工厂打回的板子说起:AD23导出Gerber到底在导什么
画完PCB,DRC全绿,3D预览看着也挺顺眼,结果发给板厂,对方回一句“文件不全,缺钻孔层”或者“阻焊开窗不对,焊盘上不了锡”——这种事我遇到过不止一次。问题十有八九出在Gerber导出这一步。Gerber文件是PCB设计和PCB制造之间唯一的“合同”,你导出的每一层,板厂就照着它做一层,多一层少一层、极性反了、单位错了,板子回来就是废的。
AD23(Altium Designer 23)在导出Gerber这块,界面和AD20、AD21差别不大,但有几个默认设置特别容易坑人,尤其是第一次用AD23出图的朋友。这篇内容就是把我自己从AD09一路用到AD23、被板厂退过五六次文件之后,总结出来的一套完整导出流程。核心围绕Gerber、NC Drill、IPC-D-356A这三类文件展开,顺带把CSV在其中的辅助作用讲清楚。
适合谁看?如果你刚画完第一块板子准备打样,或者之前一直让同事帮忙出图、现在想自己搞定,再或者你从AD18/AD20升级到AD23发现菜单找不到了,这篇都能直接抄作业。我会把每一步的参数为什么这么设、不这么设会出什么问题,都讲透。
提示:Gerber文件不是“导出一次就完事”的东西。板厂工艺不同(比如最小线宽、最小孔径),对文件的要求会有细微差别。第一次合作建议先问清楚对方要哪些层、要不要IPC-D-356A网表文件。
2. 导出前的准备工作:别急着点Fabrication Outputs
很多人画完板子直接File → Fabrication Outputs → Gerber Files,一路Next到底,结果导出来的文件自己都看不懂。导出前有几件事必须先做,这几步花不了十分钟,但能省掉后面反复沟通的一两天。
2.1 确认PCB原点已经设置好
Gerber文件的坐标是相对于原点(Origin)的。AD23默认的原点是图纸左下角,但图纸大小是你自己设的,如果原点在很偏的位置,导出的坐标值会非常大,有些板厂的CAM软件处理起来会出问题。
正确做法是:Edit → Origin → Set,把原点设在板子左下角或者某个工艺边上的基准点。我一般习惯设在板框左下角顶点,这样所有坐标都是正值,看着舒服,板厂也好对位。
设完原点后,按快捷键Q切换单位,确认当前是毫米(mm)还是密尔(mil)。国内板厂大部分默认用毫米,但也有一些老厂习惯mil。这个单位在导出Gerber时还会再确认一次,但提前统一好能避免混乱。
2.2 检查层叠和层命名
Design → Layer Stack Manager,确认层叠结构和你实际要做的板子一致。特别是阻焊层(Solder Mask)和丝印层(Silkscreen)的命名,AD23默认是GTS/GBS(Top/Bottom Solder)、GTO/GBO(Top/Bottom Overlay),这个命名板厂能认,但如果你自己改过名字,导出时要留意别漏层。
另外,机械层(Mechanical Layer)的使用要规范。我习惯用Mechanical 1放板框,Mechanical 13放装配图,Mechanical 15放尺寸标注。导出Gerber时板框层一定要选对,不然板厂不知道板子多大、怎么铣边。
2.3 跑一遍DRC并确认没有未布线
这个不用多说,但还是要提。DRC有Error没清完就出Gerber,等于把问题直接送到板厂。特别是短路(Short Circuit)和间距违规(Clearance),板厂不会帮你改,直接按文件做,回来就是废板。
注意:AD23的DRC规则里,阻焊开窗(Solder Mask Expansion)的默认值是从焊盘向外扩0.1mm(约4mil)。这个值对大多数板厂没问题,但如果你做的是密集引脚芯片(比如QFN、BGA),开窗太大会导致相邻焊盘连锡。我一般会把这个值改成0.05mm,具体看板厂的最小阻焊桥能力。
2.4 关于CSV在导出流程中的角色
热搜词里出现了CSV,这里得说清楚:AD23导出Gerber本身不直接生成CSV,但物料清单(BOM)和坐标文件(Pick and Place)可以导出为CSV格式。坐标文件是给贴片厂用的,和Gerber是两套东西,但通常一起发给工厂。BOM用CSV格式方便采购和核对物料,坐标文件用CSV方便贴片机编程。所以虽然CSV不是Gerber的一部分,但在整个“出图打包”流程里,它和Gerber、NC Drill是并列的交付物。
3. Gerber导出核心步骤:AD23的菜单藏在哪里
AD23的Gerber导出入口和AD20一样,在File → Fabrication Outputs → Gerber Files。点开之后是一个多标签的对话框,很多人看到一堆标签就懵了,其实真正需要改的就那么几处。
3.1 General标签:单位和格式怎么选
第一个标签是General,这里有两个关键设置:
- Units:选Millimeters还是Inches。国内板厂现在大部分默认毫米,但如果你之前的项目一直用mil,保持一致也行。关键是和板厂确认。我遇到过一个小厂,他们CAM软件默认按mil解析,我发了毫米的文件,结果孔位全偏了。
- Format:这是最容易出错的地方。AD23默认是2:4(整数2位,小数4位),对应分辨率0.0001英寸或0.0001毫米。但有些板厂要求2:5或者3:3。2:4对绝大多数板厂够用,但如果你板子上有极小间距的BGA(比如0.4mm pitch),建议用2:5,精度更高。
提示:Format选错会导致坐标缩放错误。比如你按2:4导出,板厂按2:3解析,所有坐标会放大10倍,板子直接报废。第一次合作一定要问清楚。
3.2 Layers标签:哪些层必须导,哪些层千万别导
这是整个导出流程里最核心的一步。AD23的Layers标签左侧是“Plot Layers”下拉菜单,右侧是层列表。默认是“All On”,但千万别用All On,因为会把一些不需要的层也导出去,板厂看了会懵。
我通常的做法是:先把下拉菜单改成“Not Used”,所有层都不选,然后手动勾选需要的层。必须导出的层包括:
| 层类型 | AD23中的名称 | 作用 | 是否必须 |
|---|---|---|---|
| 顶层线路 | Top Layer | 顶层铜箔走线 | 必须 |
| 底层线路 | Bottom Layer | 底层铜箔走线 | 必须 |
| 顶层阻焊 | Top Solder | 顶层开窗,露出焊盘 | 必须 |
| 底层阻焊 | Bottom Solder | 底层开窗 | 必须 |
| 顶层丝印 | Top Overlay | 顶层字符标注 | 必须 |
| 底层丝印 | Bottom Overlay | 底层字符标注 | 视情况 |
| 顶层锡膏 | Top Paste | 钢网开孔 | 必须(做钢网时) |
| 底层锡膏 | Bottom Paste | 底层钢网 | 视情况 |
| 机械层 | Mechanical 1 | 板框 | 必须 |
| 多层 | Multi-Layer | 通孔焊盘 | 必须 |
顶层锡膏(Top Paste)就是热搜词里说的“ad23钢网文件”。做SMT贴片时,钢网厂需要这一层来激光切割钢网。如果你只做手焊样板,不打算开钢网,这一层可以不导,但建议还是导上,万一后面要改贴片呢。
机械层的选择要特别注意。AD23里机械层有16个,你板框画在哪个机械层,就只勾选那个。我见过有人板框画在Mechanical 1,但导出时勾了Mechanical 1和Mechanical 2,结果板厂把Mechanical 2上的标注也当成板框信息,铣边铣错了。
3.3 Drill Drawing标签:钻孔图要不要导
这个标签控制的是钻孔图(Drill Drawing)的导出。钻孔图是一张示意图,标出每个孔的位置和大小,不是给数控钻机用的,是给人看的。真正给钻机用的是NC Drill文件,在下一步单独导出。
我一般会勾选“Drill Drawing”并选择Mechanical 1作为输出层,这样板厂工程师能快速核对孔位。但有些板厂明确说不要钻孔图,只要NC Drill,那就别导,省得混淆。
3.4 Apertures和Advanced标签:默认值基本够用
Apertures标签控制光圈(Aperture)的生成方式,默认选“Embedded Apertures”就行,这样光圈信息直接嵌在Gerber文件里,板厂不用额外找光圈表。
Advanced标签里有个“Use Software Arcs”选项,默认勾选。这个选项影响圆弧的表示方式,勾上之后AD23会用软件算法生成圆弧,兼容性更好。除非板厂特别要求,否则保持默认。
3.5 点击OK之后:文件去哪了
点OK后,AD23会在项目文件夹下生成一个“Project Outputs”文件夹(如果你没改过输出路径),里面是一堆.gbr文件和一个.apr光圈文件。每个.gbr对应一层,文件名后缀能看出是哪层,比如.gtl是顶层线路,.gbl是底层线路,.gts是顶层阻焊。
注意:AD23默认不覆盖同名文件,如果你之前导过一次,再导一次会生成.gbr和.gbr1两个文件。发板厂之前一定要把旧文件删掉,只发最新的,不然板厂可能拿错版本。
4. NC Drill导出:钻孔文件比Gerber更容易出错
Gerber导完了,但板厂说“缺钻孔文件”,那就是NC Drill没导。NC Drill是数控钻机用的文件,格式和Gerber不一样,必须单独导出。
4.1 NC Drill的入口和参数设置
入口在File → Fabrication Outputs → NC Drill Files。点开后,界面比Gerber简单,但有几个参数必须和Gerber保持一致:
- Units:必须和Gerber的Units一致。Gerber选了毫米,这里也选毫米。
- Format:必须和Gerber的Format一致。Gerber选了2:4,这里也选2:4。
- Coordinate Positions:选“Reference to relative origin”,这样钻孔坐标和Gerber坐标基于同一个原点。
Leading/Trailing Zeros这个选项容易被忽略。默认是“Suppress Leading Zeros”,意思是去掉前导零。比如坐标“00123”变成“123”。这个设置要和板厂确认,有些老设备对零的处理方式不同。我一般保持默认,国内主流板厂都能正确处理。
4.2 钻孔文件和Gerber的对应关系
NC Drill导出的文件后缀是.txt或.drl,里面是一行行的坐标和孔径代码。板厂的CAM工程师会把Gerber和NC Drill叠在一起看,确认每个孔都在焊盘中心。如果原点不一致,孔就会偏,偏一点点可能还能用,偏多了直接报废。
我踩过的坑:有一次Gerber原点设在板框左下角,但NC Drill忘了改,还是用绝对原点,结果钻孔整体偏移了50mm。板厂打电话来问“你这板子孔怎么都在板外”,我才发现。所以导出NC Drill之前,再确认一次原点。
4.3 钻孔表(Drill Table)和钻孔图
NC Drill对话框里有个“Generate Drill Table”选项,勾上之后会生成一个钻孔表,列出每种孔径的数量。这个表对板厂报价和核对很有用,建议勾上。
另外,“Drill Drawing”和**“NC Drill”** 是两回事。Drill Drawing是给Gerber用的示意图,NC Drill是给钻机用的数据文件。两个都要导,但别搞混。
5. IPC-D-356A网表文件:什么时候需要,怎么导
IPC-D-356A是网表测试文件,板厂用它来做飞针测试或测试架,检查板子上的线路是否短路或断路。不是所有板厂都要求,但如果你做的是多层板或者高密度板,建议导一份,能提高良率。
5.1 IPC-D-356A的导出入口
在File → Fabrication Outputs菜单里,有一个“Testpoint Report”或者“IPC-D-356A”选项(不同版本菜单名略有差异)。AD23里叫“IPC-D-356A Netlist”,点开后基本不用改什么,直接OK就行。
导出的文件后缀是.ipc或.net,里面记录了每个网络的起点、终点、层信息。板厂把它导入测试机,就能自动生成测试程序。
5.2 什么时候可以跳过IPC-D-356A
如果你做的是单面板或简单的双面板,板厂通常用目检或飞针就能搞定,不一定需要IPC-D-356A。但如果是四层以上或者有BGA的板子,强烈建议导一份。我做过一个六层板,没导IPC-D-356A,板厂测试时发现一个内层短路,但没网表文件,排查了两天才找到问题。
提示:IPC-D-356A文件里的网络名如果包含特殊字符(比如空格、中文),有些板厂的软件会解析失败。导出前把网络名改成纯英文数字,能省不少事。
6. 打包发给板厂:文件清单和命名规范
所有文件导完了,别一股脑全发过去。板厂每天收几百个压缩包,文件乱糟糟的容易被忽略。我习惯按下面的结构打包:
项目名_Gerber_日期/ ├── Gerber/ │ ├── ProjectName.gtl │ ├── ProjectName.gbl │ ├── ProjectName.gts │ ├── ProjectName.gbs │ ├── ProjectName.gto │ ├── ProjectName.gbo │ ├── ProjectName.gtp │ ├── ProjectName.gbp │ └── ProjectName.gm1 ├── NC_Drill/ │ ├── ProjectName.txt │ └── ProjectName.drl ├── IPC/ │ └── ProjectName.ipc ├── BOM/ │ └── ProjectName_BOM.csv └── PickAndPlace/ └── ProjectName_Coordinates.csvBOM和坐标文件用CSV格式,这是行业惯例。CSV是纯文本,任何ERP系统、贴片机编程软件都能读。AD23导出BOM时选“CSV”格式,坐标文件在File → Assembly Outputs → Generates Pick and Place Files里,也选CSV。
注意:CSV文件如果包含逗号或换行符,要用双引号包起来,否则解析会出错。AD23导出的CSV一般没问题,但如果你手动改过,记得检查。
7. 常见问题与排查技巧实录
导出Gerber这件事,说难不难,但坑特别多。下面这几个问题是我和身边朋友实际遇到过的,整理成速查表,遇到问题直接对号入座。
| 问题现象 | 可能原因 | 排查方法 | 解决方法 |
|---|---|---|---|
| 板厂说缺层 | 导出时没勾选对应层 | 打开Gerber文件用CAM软件看 | 重新导出,勾选缺失层 |
| 孔位偏移 | Gerber和NC Drill原点不一致 | 对比两者的坐标值 | 统一原点后重新导出 |
| 阻焊开窗太大 | Solder Mask Expansion默认值过大 | 在Pad属性里看开窗值 | 改小到0.05mm |
| 丝印上焊盘 | 丝印层没有避让焊盘 | 在CAM里叠加看 | 在AD里调整丝印位置 |
| 文件太大 | 包含了不必要的层 | 看文件列表 | 只导必须的层 |
| 板厂说格式不对 | Format设置和板厂要求不一致 | 问板厂要什么格式 | 改成2:4或2:5 |
| 钢网开孔不对 | Top Paste层没导或导错 | 检查.gtp文件 | 重新导出Top Paste |
| CSV乱码 | 编码格式不对 | 用记事本打开看 | 导出时选UTF-8或GBK |
独家避坑技巧:导出Gerber之前,先在AD23里按L打开View Configuration,把每一层单独显示一遍,确认没有隐藏的走线或焊盘。我有一次顶层走线画完了,但不小心把一层隐藏了,导出时忘了取消隐藏,结果那层走线没导出去,板子回来少了半层线。
另一个技巧:用CAM软件预览。AD23自带一个简单的CAM编辑器(File → CAM Editor),或者用免费的Gerber Viewer(比如KiCad自带的Gerber查看器),把导出的文件拖进去看一遍。重点看:板框是否闭合、焊盘是否完整、丝印是否清晰、钻孔是否在焊盘中心。这一步花五分钟,能避免90%的低级错误。
8. 从AD23到板厂:一次完整的交付检查清单
最后,把我每次发板前必查的清单列出来,你可以直接照着做:
- 原点已设置,且Gerber和NC Drill原点一致。
- 单位统一,毫米或mil,和板厂确认过。
- Format统一,2:4或2:5,和板厂确认过。
- 必须层已勾选:Top/Bottom Layer、Top/Bottom Solder、Top/Bottom Overlay、Top/Bottom Paste、Mechanical 1、Multi-Layer。
- NC Drill已导出,格式和Gerber一致。
- IPC-D-356A已导出(多层板或高密度板)。
- BOM和坐标文件已导出为CSV。
- 文件已按规范命名和打包。
- 用CAM软件预览过,没有明显异常。
- 旧版本文件已删除,只发最新版。
这套流程我从AD09用到AD23,中间换过几家公司,板厂也换过好几家,基本没再因为文件问题被退过。AD23的界面虽然和旧版有差异,但核心逻辑没变:原点、单位、格式、层选择,这四个东西对了,Gerber就不会有大问题。
提示:如果你用的是AD24或AD25,菜单路径基本一样,但AD25在Fabrication Outputs里多了一个“Advanced”选项,可以批量导出多格式,用起来更顺手。不过第一次用还是建议按上面的步骤手动走一遍,心里有数。
我个人在实际操作中的体会是,导出Gerber这件事,慢就是快。花十分钟检查参数,比板子回来发现错了再重新打样,省下的不只是钱,还有一周的等待时间。尤其是做钢网文件的时候,Top Paste层多检查一遍,贴片的时候少很多麻烦。