
板厂打来电话说“钻孔文件打不开”的那个下午我至今记得很清楚。同事画的板子DRC零错误原理图也检查过好几遍结果卡在了导出Gerber这一步——固定安装孔全部放在了Keep-Out层NC Drill导出时没有勾选对应的机械层整块板的钻孔数据全是空的。这种问题在设计图上看不出来等板厂反馈回来才意识到Gerber和钻孔文件从来不是“点一下导出就行”的事情它们是把PCB设计完整移交制造的唯一交付物。这篇文章不聊布线技巧不聊仿真只把AD20导出Gerber、NC Drill以及投板前DFM检查这件事从头到尾捋一遍适合第一次独立投板的硬件工程师、电子爱好者也适合那些一直用默认设置导出、却不太清楚每个选项在干什么的人。1. 为什么板厂坚持要Gerber以及导出前必须先定死的三件事1.1 板厂为什么认Gerber而不是源文件Gerber是PCB行业的通用“施工图纸”这套格式用矢量图形描述每一层的铜箔、阻焊、丝印和孔位数据不依赖任何EDA软件。Altium、KiCad、PADS、Allegro都能生成Gerber板厂拿到后直接导入CAM软件就能识别。如果发源文件板厂需要先装对应的软件版本、加载你的元器件库、梳理你的图层体系和设计规则中间任何一个环节不兼容都可能出错。更现实的问题是源文件可以被修改Gerber是定型数据板厂只对Gerber负责责任边界清晰得多。有朋友问“我只发PDF行不行”PDF只能用来人工看图板厂没法从PDF里提取精确的坐标和尺寸。Gerber文件里的坐标精度是微米级的PDF做不到。所以正规投板流程里Gerber加钻孔文件是底线别的都可以谈这两个必须有。1.2 单位、精度、坐标系三个影响全局的前置设定开始导Gerber之前有三件事必须先定死否则后续所有操作都可能出问题。**单位。**AD工程可以在英制和公制之间切换但一块板最好从头到尾只用一个单位体系。如果你设计时用的是mil导出时突然改成mm所有坐标和线宽都会被换算可能出现小数位取舍导致的圆整误差。我个人的习惯是统一用mm设计钻孔文件也用mm这样后续与板厂沟通孔径时不会产生歧义。**精度。**Gerber文件使用小数点位数来控制精度最常见的是2:5格式也就是两位整数加五位小数。如果是英制单位2:5精度是0.00001英寸约0.254微米远比PCB加工精度高完全够用。钻孔文件也建议保持同样的2:5避免两个文件精度不一致导致孔位偏移。**坐标系。**AD工程有一个绝对原点和一个用户原点导出Gerber时坐标以哪个原点为参照直接决定板厂CAM软件里看到的坐标值。我建议在导出前把原点设置在板框左下角这样板厂在拼板、添加工艺边、做Mark点时计算更方便。如果原点落在板子中间或某个元件附近坐标数值会很奇怪板厂还要自己推算沟通成本就上来了。1.3 一个完整的投板文件包应该长什么样接触过不少第一次投板的朋友他们以为只要把Gerber文件夹发给板厂就行实际上正规的投板数据包包含下面这些内容。我把常用的清单整理成表格方便保存参考文件类别具体内容是否必需Gerber文件铜箔层所有走线层、阻焊层、助焊层、丝印层必需钻孔文件NC DrillExcellon格式必需钻孔统计表各孔径数量、PTH/NPTH分类强烈建议孔符图Drill Drawing标注每种孔径对应的符号强烈建议坐标文件Pick Place用于贴片定位SMT贴片时必需板框图DXF或独立板框层拼板/外形加工时必需BOM与位号图元件清单和位号分布焊接和物料准备时必需这个清单在后续每个章节都会涉及建议对照着看缺什么补什么。2. 导出前的PCB工程体检DRC、封装与原点设定很多人在导出Gerber之前不做任何检查直接File - Fabrication Outputs - Gerber Files交差了事。这样不是不行但风险很高。AD20里有些错误不会实时报警等到板厂那边开板了才发现不仅浪费钱还耽误进度。我建议把下面四个检查项当作导出前的必修课。2.1 DRC检查不只为了“零错误”更为了排查制造隐患DRCDesign Rule Check是PCB投板前最基础也是最重要的检查。在AD20里的操作路径是Design - Board Rules And Violations或者直接ShiftAltD会弹出规则面板列出所有违反设计规则的条目。常见需要重点关注的规则包括间距规则Clearance铜箔之间的最小安全距离注意收集你所用板厂的最小线距能力。线宽规则Width单端、差分、电源线的宽度限制。过孔规则Routing Via Style孔径和焊盘尺寸是否满足制造能力。铜箔与板边距离Board Outline Clearance铜离板边太近拼板铣边时容易伤铜。跑完DRC后如果列表是空的也不代表万事大吉还要在“排除项”里看有没有被手动忽略的规则。AD里默认允许用户对某些规则加Ignore屏蔽有时报关之前忘记取消漏掉的问题就直接带到Gerber里了。2.2 Unknown Pin是哪里来的封装引脚编号失配的几种情况“ad20 unknown pin”是这段时间被搜索很多的关键词也是很多新手第一次更新PCB时最容易碰到的报错。这个错误的字面意思是原理图符号里的引脚编号在PCB封装里找不到对应的焊盘编号。举个例子原理图里一个二极管符号的引脚编号是A和K但PCB封装里的两个焊盘编号是1和2当原理图更新到PCB时AD就找不到A引脚的对应焊盘了报出Unknown Pin。解决方法是把封装焊盘编号改成A和K或者把原理图符号引脚编号改成1和2两边必须一一对应。另一种情况是排阻、连接器这类多引脚元件原理图引脚很多封装却漏画了某个焊盘同样会报Unknown Pin。这种问题在画完封装后就要立即检查不要拖到更新PCB时才发现。还有一类相对隐蔽封装库更新后新库里的焊盘编号与旧库不一致。如果你在PCB页面直接执行Update PCBs From Schematics而库里封装已经改过引脚命名也会报Unknown Pin。遇到这种情况先在Footprint Manager里对比封装和原理图的引脚映射关系再用引脚交换对位功能修正不要直接重连网络。2.3 位号、丝印方向和各层归属AD20里怎么快速核对位号Designator是PCB上每个元件的文字标识导出的丝印层上必须清晰可读。AD20的位号默认放在Top Overlay如果你要设计双面贴片底部元件的位号要放在Bottom Overlay并在Properties面板里勾选Mirror这样从板子底面看才是正向的。很多人在丝印上翻车根源是图层归属混乱。比如为了图省事把顶层位号放在了Mechanical层Gerber导出的Top Overlay里自然看不到任何字符。快速核对方法是按L键打开图层配置面板逐一检查每个Overlay层上的对象数量以及字符串的实际内容。如果导入Gerber后发现底层丝印反了大多数情况是Mirror属性设反了。在CAM工具里翻到底面视角看一遍比在PCB编辑器里反复切换视图直观得多。养成导出前至少检查一遍正反面丝印的习惯可以避免很多低级返工。2.4 板框与原点为什么孔位坐标会整体偏移板框Board Outline在AD里可以画在Keep-Out层现在叫Board Outline层或Mechanical层。板框必须是一个封闭多边形否则板厂在铣外形时会发蒙。更关键的是如果设计里有板框但不在Gerber导出的图层列表里板厂可能默认沿用你提供的DXF或者自行猜测外边界。原点偏移是另一个高频坑。假设你画板时把所有元件和走线都放在绝对坐标500mm位置附近导出Gerber时坐标原点还是默认的绝对原点铜箔和钻孔数据在CAM里会显示成一个大偏移量板厂拼板时还得整体平移容易出错。正确做法是在导出前把原点重新设置为板框左下角然后在CAM工具里简单量一下板框坐标确认数据处于一个合理的位置范围。3. AD20导出Gerber详细流程从Gerber Setup到CAM预览3.1 选择正确导出方式Fabrication Outputs vs Output JobAD20里导出Gerber有两条路径一个是直接在File菜单下走File - Fabrication Outputs - Gerber Files另一个是使用Output Job配置批量输出。两者都能导出Gerber但适用场景不同。随手打样测试、只出文件不归档用第一个路径简单直接。但如果你需要同时导出Gerber、NC Drill、坐标文件、BOM而且是同一套参数建议用Output Job。Outjob可以保存所有输出配置下次直接打开同一个Job文件所有参数自动就位还能一键生成全套生产文件非常适合需要管理多个版本的硬件项目。我个人的习惯是项目中期打样用直接导出项目冻结要归档时用Output Job并保留一份Outjob文件在工程目录里。3.2 Gerber Setup的核心参数RS-274X、2:5精度、单位打开Gerber Files对话框后第一个选项卡是General Settings这里有一堆下拉框重点盯住三个**格式Format**选RS-274X。旧版的RS-274-D不带嵌入式光圈数据如果选这个板厂CAM软件导入时还得手动加载光圈表Aperture Table容易出错。RS-274X把光圈信息直接写入文件里转换透明各厂通用。**精度Precision**选2:5。对英制单位来说2:5 0.00001英寸 ≈ 0.254微米。对公制单位2:5 0.00001mm 0.01微米精度更高但文件更大。大部分板厂对2:5英制是绝对接受的如果能保持与钻孔文件单位一致用英制2:5是最稳的组合。**单位Units**你的Gerber里用的是Inches还是Millimeters这里必须和钻孔文件完全一致。我建议整个项目从画板到导出只用一种单位不要中途切换。这个选项卡的作用是定义“输出文件本身”的格式而不仅仅是预览。很多人忽略这里用默认值一通点出问题了才回头找原因。3.3 图层选择的取舍以双面板和四层板为例Gerber Setup对话框里最关键的是Layers选项卡需要逐层勾选需要导出的图层。切记不是勾得越多越好多了会让板厂CAM处理时困惑少了则直接缺失生产信息。以双面板为例至少要勾选以下层Top Layer顶层铜箔Bottom Layer底层铜箔Top Overlay顶层丝印Bottom Overlay底层丝印Top Solder顶层阻焊开窗Bottom Solder底层阻焊开窗Drill Drawing孔符图用于钻孔信息标注如果你用的是四层板或者更多层中间层无论是Signal Layer还是Internal Plane都要勾选上。内电层如果是负片设计AD20在导出时会自动按负片方式输出不需要你手工做什么特殊设置但你要确认内电层确实在图层列表里且没有勾选Mirror这个选项一般用于底层镜像输出常规导出保持不勾。还有一个容易被忽略的细节你设计时如果用了Keep-Out层来限制布线范围Gerber导出时通常需要单独给板厂提供一份板框文件或者将Keep-Out层数据放到机械层并告知板厂韩国的“Board Outline”在哪一层否则板厂默认以外层Gerber的板框为准可能识别不到。最保险的办法是在导出Gerber前把板框以Board Outline方式在Mechanical层重画一遍再确认该层是否在导出列表里。3.4 钻孔图层和Advanced选项哪些开关影响生产在Gerber Files对话框的Layers选项卡底部有一个“Drilling”相关区域可以选Drill Drawing和Drill Guide。Drill Guide是钻孔引导层主要用于设计验证Drill Drawing是孔符图会生成每个孔位的孔径符号板厂可以用来核对钻孔文件。投板和DFM检查时Drill Drawing建议勾上。切到Advanced选项卡后有几个选项需要留意**Suppress leading zeroes / Suppress trailing zeroes**坐标文件里是否省略前导零或后导零。老式CAM软件依赖固定位数现代板厂对2:5格式基本都兼容。我的习惯是保持默认不勾选任何压缩选项减少沟通成本。**Generate NC Drill file**这个选项在Gerber导出的Advanced页里勾选后可以在生成Gerber的同时同步生成NC Drill文件而且使用同一套单位精度参数避免后续单独导出时参数不一致。3.5 立即用CAM Editor预览一张图看出所有问题AD20内置了一个CAM编辑器CAM Editor不需要第三方软件就能打开Gerber文件。方法是在工程视图里点击File - Open在文件类型里选择Gerber文件和NC Drill文件AD会按文件内容把它们组合成一个CAM工程。打开后的操作很简单用鼠标滚轮缩放对比各层的铜箔图形、检查丝印是否压到焊盘、阻焊开窗是否覆盖需要的焊盘区域。如果发现铜箔层出现异常偏置或缺失第一时间就能判断是图层没勾全还是原点设置不对。CAM预览这一步强烈建议不要跳我见过不少工程师把Gerber导给板厂后才发现铜箔少了一层原因只是导出时图层列表勾选不全。在CAM里花五分钟看一眼比在板厂端发现问题再沟通高效得多。4. NC Drill钻孔文件和坐标文件最容易翻车但很少人讲透的细节4.1 NC Drill Setup里必须一致的三个参数钻孔文件的导出路径是File - Fabrication Outputs - NC Drill Files。在弹出的NC Drill Setup对话框里核心参数有三个**格式Format**下拉框里会看到2:3、2:4、2:5等选项选2:5。有些板厂愿意接收3:3或2:4但2:5对绝大多数加工设备都足够且没有兼容性问题老牌板厂甚至只认2:4精度的Excellon格式最好在投板前和板厂确认一句。**单位Units**必须和Gerber文件一致。如果Gerber用英制NC Drill也用英制如果Gerber用公制NC Drill也用公制。单位不一致是钻孔文件最经典的翻车原因1英寸25.4毫米同样的数值用不同单位解读所有孔位会整体漂移几十倍。**开孔类型**NC Drill Setup对话框里可以选择Combined所有孔放一个文件或者Separate PTH/NPTH分别生成金属化孔和非金属化孔文件。对于大多数打样订单Combined是标准做法但如果你设计的板子有大量非金属化安装孔或者有半孔、槽孔等特殊工艺建议交给板厂前主动确认他们需要哪一种。另外还有个“Generate additional hole data”选项它的含义是额外生成一个孔位CSV数据文件便于做表面贴装时定位。如果不是做特别的拼板控制不建议勾选保持标准的Excellon文件即可。4.2 PTH与NPTH的处理金属化孔与非金属化孔的工厂习惯PTHPlated Through Hole是孔壁镀铜的过孔和元件孔NPTHNon-Plated Through Hole是孔壁不镀铜的安装孔两者在钻孔文件里的标识方式不同。在AD里元件的焊盘属性中有一个Plated选项。对于金属化孔Pad属性里的Plated是勾选的对于非金属化孔取消勾选。NC Drill导出时AD会根据Plated属性自动区分。很多电子爱好者画板时总忘记给定位孔取消Plated结果板厂按PTH钻孔、孔壁镀了铜再做一次树脂塞孔或增加工艺步骤费用和时间都会增加。如果你用Combined方式导出钻孔文件PTH和NPTH在同一个文件里用不同的孔符或编号区分板厂CAM会自动识别。但有些板厂系统对Combined文件的兼容性一般要求PTH和NPTH分别给文件。稳妥做法是导出前在NC Drill Setup里选择“Separate files for plated and non-plated holes”生成两份钻孔文件命名清晰比如xxx-PTH.TXT和xxx-NPTH.TXT板厂一目了然。4.3 钻孔统计表、孔符图它们为什么不是可选项不少人在导出钻孔文件后就直接打包发给板厂忽略了钻孔统计表和孔符图。这两个文件在DFM阶段非常有价值。钻孔统计表会列出每一种孔径的数量、PTH/NPTH分类和总孔数。板厂拿到后会在开料和钻孔编程时用它核对钻孔文件的完整性。如果设计里有0.2mm的小孔而板厂设备最小孔径是0.25mm统计表一眼就能看出来双方在前端沟通时就能锁定问题而不是等钻孔做了一半才发现。孔符图Drill Drawing是把每个孔位用符号和数字标注在Gerber图上。导出Gerber时勾选Drill Drawing层后再在NC Drill设置里选择适合的符号标注方式生成的孔符图可以在CAM里直观看到孔位分布、孔径大小和符号对照表。一旦钻孔文件里的孔位与Gerber孔符图对不上板厂会在第一时间反馈避免因数据错乱导致整体报废。我的建议是不管打样量多小都按完整文件包交付Gerber NC Drill Drill Statistics Drill Drawing。多花两分钟节省的是整个制造周期。4.4 坐标文件Pick Place的额外价值坐标文件严格来说属于SMT生产范畴但它和钻孔文件一样都由AD的Fabrication Outputs菜单生成所以放在这里一起说。路径是File - Fabrication Outputs - Pick and Place Files。弹出的对话框里选择格式CSV或Text单位与前面保持一致即可生成每个元件的X/Y坐标、旋转角度、位号、顶层/底层归属等数据。SMT贴片机就是靠这个文件来定位元件的如果坐标文件缺失贴片厂就得从PCB文件或Gerber里手工提取坐标效率低且容易出错。凡是需要机器焊接的板子坐标文件必须随包附上。5. DFM检查实操在发文件前自己先当一回板厂质检5.1 自检工具选择AD内置CAM Editor、CAM350还是在线工具Gerber导出完成后我最常用的工具是AD自带的CAM Editor原因很简单不用装新软件打开Gerber就能看。打开方法已经讲过这里再说一下几种工具的效率差别。AD内置CAM Editor做基础检查足够能看到铜箔层、阻焊层、丝印层的叠加效果测量线宽间距也没问题。但如果你的板子比较复杂比如BGA密集、HDI盲埋孔我建议用CAM350完整导入所有Gerber和钻孔文件用它的DFM功能做进一步验证。CAM350能模拟板厂的CAM流程帮你发现一些AD预览里不太容易暴露的问题比如铜箔隔离是否需要自动补泪滴、阻焊桥宽度不足、孔到铜的距离过小等。在线DFM工具也很多上传Gerber后自动检查线宽线距、孔径、阻焊开窗、丝印间距等项目。但要注意在线工具会接收你的设计数据有保密要求的项目不建议上传。自己电脑上装个CAM350或者熟练掌握AD的CAM Editor基本上能覆盖绝大多数打样需求。5.2 逐层核对铜箔层、阻焊层、丝印层最容易漏看的东西DFM检查的第一步是逐层看而不是只看3D视图。具体操作上我会在CAM工具里按下面的顺序过一遍**铜箔层**切换Top Layer和Bottom Layer看走线是否完整、铺铜是否闭合、过孔是否都出现在正确位置。特别注意走线距离板边是否太近一般建议铜箔到板边至少0.3mm以上否则铣边时容易露铜、毛刺甚至短路。**阻焊层**Top Solder和Bottom Solder是阻焊开窗区域。确认所有需要焊接的焊盘都开了窗BGA区域的过孔如果不需要焊接就不要开窗。反过来也要确认阻焊层不能覆盖住需要上锡的焊盘否则焊接时上不了锡。**丝印层**核对Top Overlay和Bottom Overlay的字符是否可读是否有丝印压到了焊盘上。丝印压焊盘是DFM最常见的“小问题”焊接时丝印油墨会影响上锡工厂一般会帮你清除但也有可能出现清除不彻底导致的虚焊。最好在设计阶段就避免。5.3 高危DFM项线宽线距、孔径/孔环、丝印压盘、阻焊桥上面说的是“看图层”下面这些是需要按照具体数值去核对的DFM高阶项。**线宽/线距。**小批量常见工艺能力是5/5mil0.127mm线宽/线距很多板厂宣称能做4/4mil但良率会下降。你可以用CAM工具里的测量功能抽查几处关键走线看是否满足设计规则。如果DRC已经通过这项一般不会出问题但特殊形状的铺铜和直角走线需要额外留意。**孔径/孔环。**孔环Annular Ring是孔壁到焊盘边缘的最小距离建议至少6mil0.15mm。如果孔环太小钻孔时位置稍有偏差就会导致焊盘断裂。具体计算公式是焊盘直径 - 钻孔直径/ 2你可以用CAM工具测量几个最关键的通孔确认。**丝印压盘。**在CAM里叠加丝印层和阻焊层如果有字符压到焊盘区域要么把字符移开要么缩小字符高度。注意字符高度不能小于1mm否则丝印机可能打不清楚。**阻焊桥。**阻焊桥是相邻焊盘之间的阻焊油墨保留部分它把两个焊盘隔开防止焊接时桥连。对于0.5mm间距以内的BGA或QFN阻焊桥宽度经常只剩2~3mil板厂做起来很吃力。我的习惯是如果设计允许适当加大焊盘间距或缩小阻焊开窗保证阻焊桥至少在4mil以上加工良率和焊接可靠性都会好很多。另外如果板子需要做拼板V-cut要留意V-cut线两侧是否有铜箔或走线距离太近切割时容易伤铜。一般至少保证0.5mm的距离。5.4 每次投板前都用的检查清单下面是我现在每次投板前都会对照检查的清单可以保存成一个文档每次打样逐项勾选检查项判定标准状态DRC规则检查无未处理错误屏蔽项已确认必查封装引脚编号与原理图完全对应无Unknown Pin必查板框是否闭合Board Outline封闭原点在左下角必查Gerber单位/精度RS-274X2:5与钻孔文件一致必查图层完整性铜箔/阻焊/助焊/丝印全覆盖必查钻孔文件格式2:5单位与Gerber一致PTH/NPTH正确必查钻孔统计表每种孔径数量与设计一致强烈建议孔符图能清晰对照孔位与孔径符号强烈建议线宽线距满足板厂最小能力抽查关键位置必查孔环≥6mil0.15mm必查丝印是否压盘无丝印覆盖焊接区域必查阻焊桥≥4mil0.1mm极限不低于板厂能力必查铜箔到板边≥0.3mm建议坐标文件贴片板必须附带Pick Place文件视需要6. 常见Gerber/钻孔文件问题榜单与我的处理习惯6.1 漏文件占比最高的投板问题接触到的小批量问题里漏文件是最常见的。要么少导了某一层铜箔要么忘了钻孔统计表要么发了Gerber但钻孔文件缺失。我以前吃过一次亏做完双面板导出时只勾了Top和Bottom铜箔层忘了勾Bottom Overlay结果板厂做好板子后——丝印全印在了顶层底层光秃秃的。事后回想就是在CAM Editor里少看了一层。对付漏文件的办法只有一个用检查清单逐项打勾。别说你记得住版本一多、时间一长人都会出错。文件打包前逐一核对清单比事后跟板厂来回沟通划算得多。6.2 精度/单位不匹配数据没变位置全乱Gerber文件用英制2:5钻孔文件用公制2:4这种情况在跨版本协作或从其他EDA工具导入时特别常见。数据本身是完整的但因为单位基准不一样所有钻孔相对铜箔位置整体偏了板厂CAM里看到的过孔全都不在焊盘中心。检查技巧是在CAM Editor里把Gerber和NC Drill同时打开并叠加显示。如果钻孔位置和焊盘中心完全重合说明单位精度没问题如果有系统性偏移优先检查两边单位设置是否一致。6.3 丝印镜像、位号镜像什么时候该镜像什么时候切忌丝印镜像的口诀其实很简单顶层丝印正常放底层丝印要勾Mirror。用AD20时如果你把位号放在Bottom Overlay层Properties面板里有个Mirror选项勾选后字符会在底层显示为镜像方向。这样做的原因是底层丝印印出来以后要能从底面正常阅读而你在AD编辑器里默认视角是从顶层往下看所以底层文字如果不镜像实际印出来就是反的。在Gerber导出时Layers选项卡里有一个“Mirror”勾选区域那是给整层输出做镜像用的正常投板千万不要勾选。很多人把“底层丝印文字需要镜像”和“整层Gerber输出需要镜像”搞混一旦勾了整层Mirror整个图层左右翻转板厂做出来必然废板。6.4 一个针对小批量打样的快速自检习惯最后分享一个我在打样阶段坚持用的习惯。每次导出Gerber后我不会急着压缩打包而是先按一套固定顺序检查先跑DRC再打开CAM Editor导入全部Gerber和钻孔文件逐层看过铜箔、阻焊、丝印最后用测量工具抽查关键线宽和孔环。整套流程大概十分钟不到却能挡掉至少九成的低级错误。如果是批量生产项目我会额外用Output Job配置好全套输出参数把DRC结果和生成文件放在同一个工程目录里确保后续每次更新改板后生成的新文件都能自动满足之前的输出规范。这套流程跑顺之后投板变成了一件很程序化、很放心的事不用每晚睡前都在想“那个文件到底导全了没有”。