先说个实打实的翻车现场:一块双层小板的Gerber打包发给板厂,第二天对方回消息问我“你顶层铜箔是不是画反了”。我打开压缩包一看,.GTL和.GBL两个文件被我按字母顺序排进了不同目录,备注里还写反了顶层底层。板子最后是救回来了,但白等三天工期。这件事之后我把KiCad绘图对话框里每一个勾选项都翻了一遍,才发现问题的根子不在手滑,而在于我从头到尾没搞清楚“Gerber到底是一堆什么东西”。KiCad导出的Gerber文件、钻孔文件、坐标文件,本质上是一套拆开的生产图纸,每一层对应PCB制造中的一道具体工序:铜箔蚀刻、阻焊印刷、丝印字符、钢网开窗、外形铣切、钻孔沉铜。.GTL和.GBL只是这套图纸里的两张,认错一张,轻则返工,重则整批报废。这篇内容适合三类人看:刚学KiCad、准备第一次下单打样的新手;画了几年板但一直让板厂“看着办”的老手;以及需要给工厂或客户整理生产文件的工程助理。下面我把KiCad导出的每一层掰开讲清楚,包括它们对应的物理工序、命名规则、参数设置和我踩过的坑。
1. 先搞清楚:Gerber不是设计文件,是拆开的“生产图纸”
1.1 从胶片时代理解Gerber的本质
Gerber这个格式的年纪比很多读者都大。它最早是给光学绘图机用的,那台机器顶着一盏灯,在一块涂了感光乳剂的胶片上按坐标曝光,画完一张胶片就拿去当掩膜用。所以Gerber从骨子里就不是“描述一个电路板”,而是“描述某一张图形胶片上哪里有黑、哪里透明”。今天没人再用光学绘图机了,但这个基因完整保留了下来:一个Gerber文件只描述一层图形,它不知道自己在整块板里的位置,也不知道别的层长什么样。
这个特性决定了一件很关键的事:Gerber里没有“板子”这个概念,只有“图形”。你把.GTL单独打开,看到的是一堆铜箔形状,没有板框、没有孔、没有阻焊,什么都判断不了。板厂的CAM工程师拿到你的压缩包之后,是把十几个文件按图层序号和文件名一个个叠起来,重新拼出一块完整的板子。叠的顺序错了、某一层缺了、某一层极性反了,拼出来的东西就是错的。理解这一点,后面所有关于“这个文件干嘛用”的疑问都会顺很多。
顺带说一句现在主流的格式,叫RS-274X,也叫扩展Gerber。比它更老的RS-274D需要单独配一个光圈表文件,容易丢、容易版本对不上,现在基本见不到了。KiCad导出的就是RS-274X,你在绘图对话框里看到的那些精度、单位、坐标格式选项,全都是这个标准的参数。知道这个背景之后,再看那些以%开头、以*结尾的文件头指令,就不会觉得是天书了。
1.2 KiCad为什么不能只导出一个文件
经常有人问,为什么别的软件能导出一个PDF让板厂看,KiCad非要拆成十几个Gerber。答案是PDF是给人看的,Gerber是给机器看的。人看图纸能脑补“这条线是铜、这个圈是孔”,机器不行。蚀刻机只认“哪里有铜”,阻焊印刷机只认“哪里要开窗露铜”,铣边机只认“沿哪条线切”。如果把这些信息混在一个文件里,机器没法区分,只能靠人手工拆层,效率低还容易出错。
所以工业生产的分工逻辑是:一道工序对应一层图形。铜箔蚀刻需要顶层铜和底层铜两张图;阻焊印刷需要顶层开窗和底层开窗两张图;丝印字符需要两张;贴片用的钢网需要两张;外形铣切需要一张板框;钻孔需要一套钻孔文件。双层板满载情况下,光是Gerber就七八个文件,加上钻孔、钻孔图、坐标文件,十几个文件是常态。四层板、六层板往上走,内层铜箔还要再加。
我个人的理解方式是:把KiCad的图层管理器想象成一个透明的亚克力叠层,每一层亚克力上印一种颜色的图案,你把它们摞起来就是一块完整的板。导出Gerber就是把这摞亚克力一层层拆开,每一层单独拍一张照片。板厂拿到这摞照片,按顺序重新摞起来,再照着做。这个类比我觉得比任何官方文档都好用。
1.3 后缀命名的规律:G加层类型加面
很多混淆其实来自命名。Protel时代留下的命名规则其实有很强的规律性,看懂了规律根本不用死记。核心结构是G+层类型缩写+面缩写:G代表Gerber,T代表Top顶层,B代表Bottom底层,中间那一位是层类型。所以.GTL是Top Layer顶层铜,.GBL是Bottom Layer底层铜,.GTS是Top Soldermask顶层阻焊,.GBS是Bottom Soldermask底层阻焊,.GTO是Top Overlay顶层丝印,.GBO是Bottom Overlay底层丝印。
记住这四个对应关系就够了:L是铜,S是阻焊,O是丝印,P是锡膏。剩下的.GKO是Keep Out板框,.GM1是老的机械层,.GDD和.GDS是钻孔图,.GG1和.GG2是内层。这套扩展名是Protel/Altium时代的行业惯例,很多老工程师和老板厂的习惯里还认这个。
但这里有个必须提前说清楚的变化:KiCad从6.0开始,默认不再用这套扩展名了。新版默认输出的是项目名-F_Cu.gbr、项目名-B_Cu.gbr、项目名-F_Mask.gbr这种带图层名的长文件名。你在绘图对话框里想恢复老式的.GTL后缀,必须手动勾上“使用Protel文件扩展名”这个选项。所以如果你在网上看到教程里全是.GTL,自己导出却是-F_Cu.gbr,不是你操作错了,是版本差异。两种命名板厂都认,我现在的习惯是新版长文件名,因为它自带层名,人眼扫一遍就知道有没有漏层,比.GG1这种需要查表的强太多。
2. KiCad导出的每一层到底干什么用
2.1 .GTL与.GBL:真正决定电路能不能通的两层
顶层铜和底层铜是整套Gerber里唯二真正承载电气功能的两层,其他层都是辅助。.GTL里的每一根走线、每一个焊盘、每一块铺铜,最后都会变成板子上实实在在的铜。板厂拿到这个文件,把它转移到覆铜板上,蚀刻掉不需要的部分,剩下的就是电路。所以这两层一旦出错,板子就是废的,没有任何补救余地。
容易搞混的地方在于“从哪一面看”。KiCad的顶层视图是从正面俯视,.GTL导出的图形和你在屏幕上看到的一模一样;.GBL是从背面看,但Gerber文件里的坐标依然是俯视视角,只是图形做了镜像处理。这个镜像关系是板厂做底层曝光时必须的,因为底层铜是从板子背面看过去的。很多人第一次把.GBL丢进查看器,发现字全是反的,以为导出错了,其实是正常的。
版面里常说的“顶层到底层”的过孔、焊盘穿透,这个信息不在铜箔层里,在钻孔文件里。铜箔层只负责“哪里要有铜”,不负责“哪里要打洞”。这个分工要记牢,因为后面讲钻孔文件的时候还会碰到。另外铺铜要注意,KiCad导出的是最终填充结果,不是铜皮边界,所以你在Gerber里看到的大块实心区域就是最终留在板上的铜,铺铜和走线之间的间距已经算好了,板厂不会二次处理。
2.2 .GTS与.GBS:阻焊层是“负片”,画的是开窗不是油
阻焊层是混淆的重灾区,因为它的逻辑和直觉相反。板子上那层绿色(或者黑色、蓝色、白色)的油,叫阻焊油,作用是盖住不该沾锡的铜,防止焊接时连锡短路。但.GTS文件里画的不是“哪里要盖油”,而是“哪里要开窗露铜”。也就是说,这个文件是负片逻辑:文件里有图形的地方,板厂会把油去掉露出铜;文件里空白的地方,板厂会盖满油。
这个逻辑想通了就很好理解:你希望焊盘露铜,所以焊盘在.GTS里是实心图形;你希望走线被油盖住,所以走线在.GTS里是空白。KiCad在你放焊盘的时候会自动在阻焊层生成一个比焊盘略大的开窗,这个“略大”就是阻焊桥的余量,一般是单边0.05mm到0.1mm。这个膨胀值可以在设计规则里改,改小了板厂印刷对不准会露铜,改大了焊盘之间容易连锡。
实际下单最容易犯的错,是把.GTO丝印层当成阻焊层发过去。这两层在查看器里看起来都是一堆白色图形,但丝印是印在板面上的字和框,阻焊是决定露不露铜的掩膜,功能差着十万八千里。判断方法很简单:打开.GTS,正常应该只能看到焊盘和一些测试点,如果满屏都是元件外框和文字,那基本可以确定拿错文件了。还有一种情况是过孔盖油和开窗,KiCad里过孔默认是盖油的(不在阻焊层生成开窗),如果你希望某些过孔露出来做测试点,需要单独在过孔属性里勾选,否则板厂做出来是盖住的。
2.3 .GTO与.GBO:丝印层,别把它当阻焊
丝印层就是板子上那些白色(或其它颜色)的文字、元件位号、极性标记、公司logo。.GTO是顶层丝印,.GBO是底层丝印。它的物理工序是在阻焊之后、表面处理之前,用丝网印刷或者喷墨的方式把油墨印上去,再固化。所以丝印是印在阻焊油上面的,不会影响电气性能,纯粹是给人看的。
丝印层最容易出的问题是“压焊盘”。元件位号如果正好压在焊盘上,板厂印上去之后焊盘上就有一层油墨,焊接的时候会影响上锡。KiCad本身不会自动帮你避让,需要你自己在布局时留意。绘图对话框里有个选项叫“从阻焊层中减去丝印”,勾上之后KiCad会自动把丝印和阻焊开窗重叠的部分挖掉,这样印出来就不会压焊盘。这个选项我建议默认勾上,代价是位号可能被切掉一角,但比焊盘沾油强。
还有一个细节:丝印的最小线宽和最小字高有工艺下限。一般板厂的丝印最小线宽0.15mm,最小字高0.8mm,低于这个值印出来会糊成一团。KiCad默认的丝印线宽是0.12mm,字高1mm,前者其实偏细,我一般会把丝印线宽统一改成0.15mm。这个改动在板子密集的时候很痛苦,因为线一粗就容易碰到焊盘,但总比做出来看不清强。底层丝印还有个额外的坑:.GBO是镜像的,因为要从背面看才对,你在KiCad的底层视图里看到的正常文字,导出后是反的,这是对的。
2.4 .GTP与.GBP:钢网层,只在贴片时才有用
锡膏层(也叫钢网层、助焊层)是这堆文件里最容易被误解的一层。.GTP和.GBP描述的是贴片元件焊盘上要刷锡膏的区域,它的使用场景不是PCB板厂,而是SMT贴片厂。贴片厂会拿这层图形去做一张不锈钢钢网,钢网上按焊盘位置开孔,刮刀把锡膏从孔里刮到板子上,然后贴元件、过回流焊。所以如果你只打裸板、自己手工焊接,这两个文件完全用不上,导出与否都不影响板厂做板。
这层的图形和阻焊开窗非常像,但尺寸略小。原因是锡膏在回流焊时会摊开,钢网开孔如果和阻焊开窗一样大,锡膏量会偏多,容易造成连锡或者立碑。一般钢网开孔比焊盘单边小0.05mm左右,具体比例看元件封装。KiCad在你放置封装的时候会自动按焊盘尺寸生成锡膏层图形,不需要手动画,只有在你自定义焊盘或者做大功率器件的散热焊盘时才需要调整。
这层还有一个隐藏知识点:有些板厂下单系统会要求你上传钢网文件,如果你没导,他们会用阻焊层代替,做出来的钢网开孔偏大,贴片良率会掉。所以我现在的习惯是,只要板子上有贴片元件,就把.GTP和.GBP一起打包,用不上就让贴片厂自己忽略,省得来回沟通。
2.5 .GKO与Edge.Cuts:板框层,一根线决定板子能不能铣出来
板框层是所有层里最“硬”的一层,因为它直接决定板子的物理外形。在Protel命名体系里它是.GKO(Keep Out),在KiCad的图层管理器里它叫Edge.Cuts。板厂拿到这一层,会把它转成铣边路径,用铣刀沿着这条线把板子从大料上切下来。所以这条线必须是闭合的、连续的、线宽统一的,中间断一个口子,CAM软件就找不到完整的轮廓,轻则报警让你重发,重则按错误轮廓铣,板子尺寸全错。
常见的板框错误有三种。第一种是线没闭合,两个端点差0.01mm,肉眼完全看不出来,但CAM软件认死理。KiCad里可以用“编辑”菜单下的选择工具检查,或者干脆全选板框线删掉重画。第二种是用了圆弧但没转换成完整的圆弧段,导出后变成折线。第三种是在板框层上画了别的东西,比如尺寸标注、文字说明、定位孔的中心线,这些都会被当成轮廓的一部分,铣出来的板子边缘会多出莫名其妙的缺口。
我的固定做法是:板框单独建一个图层规则,只允许画线段和圆弧,不允许放任何文字和标注;画完之后用测量工具量一下对角线,和设计尺寸对一遍;导出后用Gerber查看器单独打开.GKO,确认是一条闭合的框。另外定位孔、邮票孔、异形槽这些,如果是用板框层画的槽,要注意槽的宽度不能小于铣刀直径(一般1.6mm或2.0mm),太窄的槽板厂铣不出来,会改成钻孔或者直接忽略。真要开窄槽,得在钻孔文件里用槽孔指令表达。
2.6 .DRL钻孔文件:它不是Gerber,但比Gerber还容易出错
钻孔文件严格来说不属于Gerber,它是Excellon格式,一套独立的坐标系和指令集。KiCad导出的时候是在绘图对话框里点“生成钻孔文件”单独生成的,不是和Gerber一起出来的。这个分离设计坑了无数人:Gerber导完了,压缩包打好了,钻孔文件忘了导,板厂收到之后发现没有孔,只能来回沟通。
新版KiCad默认会把钻孔分成两个文件:项目名-PTH.drl和项目名-NPTH.drl。PTH是Plated Through Hole,镀通孔,就是过孔和插件元件孔,钻孔之后孔壁要沉铜导通;NPTH是Non-Plated Through Hole,非镀通孔,就是安装孔、定位孔,孔壁不沉铜。这个区分非常重要,因为如果安装孔被误当成PTH处理,孔壁会镀上一层铜,螺丝拧进去可能短路;反过来过孔被当成NPTH,整块板的层间连接全废。
导出钻孔文件时要注意三个参数。一是单位,要和Gerber保持一致,要么都mm要么都inch,混着来板厂会算错尺寸。二是格式,一般用“十进制”或者“前导零抑制”,老式的“后导零”现在很少用了。三是钻孔原点,必须和Gerber的原点一致,否则整个钻孔图案会整体偏移。我吃过一次亏,Gerber用的是绝对坐标,钻孔用的是相对坐标,结果孔全偏了5mm,板子直接报废。现在的习惯是导出前先把Drill/Place Origin设成板框左下角,Gerber和钻孔都用这个原点,一劳永逸。
2.7 内层、机械层、Fab层、User层:那些导出但板厂不一定要的文件
多层板往上走,内层铜箔会以.GG1、.GG2或者新版-In1_Cu.gbr、-In2_Cu.gbr的形式出现,逻辑和顶层底层一样,只是位置在板子中间。内层的层叠顺序和介质厚度需要在制板说明里写清楚,不能只靠文件名,因为不同板厂的层压结构不一样。
剩下那些文件就属于“存在但不一定有用”的类别了。.GM1机械层是老版本用来放外形和尺寸标注的,现在被Edge.Cuts取代了,导出来板厂也基本不看。Fab层(F.Fab、B.Fab)是KiCad给装配图用的,画的是元件的物理轮廓和丝印框,导出成Gerber之后板厂会当成丝印处理,如果你不小心把它打包进去,板子上会多出一堆元件外框线,非常难看。User.Drawings、User.Comments、User.Eco1、User.Eco2这些是给你自己画辅助线、写备注、做工程变更用的,绝对不要打包给板厂。Margin层是板子的禁止布线边界,也不是生产必需的。
新版KiCad在绘图对话框里会把所有可见层都列出来让你勾,很多人图省事直接全选,结果压缩包里有二十几个文件,板厂CAM工程师要一个个筛。我的做法是建一个固定的层组合预设:双层板只勾F.Cu、B.Cu、F.Mask、B.Mask、F.Silkscreen、B.Silkscreen、F.Paste、B.Paste、Edge.Cuts九个,多层板再加内层。这个习惯能省掉大量沟通成本,也让自己的打包内容每次都可预期。
3. KiCad导出Gerber的完整实操与参数
3.1 导出前的三项准备工作
导出之前有三件事必须先做完,否则导出来的东西大概率要重来。第一件是把所有图层的可见性整理一遍,KiCad的绘图对话框默认会勾选当前可见的层,如果你之前为了看图临时隐藏了某几层,导出时就会漏掉。我的做法是先按快捷键打开图层管理器,把所有层设为可见,再进绘图对话框手动取消不需要的层,这样是“从全到简”,不会漏。
第二件是确认板框闭合和原点位置。原点在“放置”菜单里的“Drill/Place Origin”设置,把它放在板框左下角,后面Gerber和钻孔都用这个原点,坐标就统一了。板框闭合可以用“编辑”里的“选择所有板框”加“检查”,或者直接导出后用查看器验证。
第三件是跑一遍设计规则检查(DRC)。KiCad的DRC能查出焊盘间距不足、走线太细、丝印压焊盘、板框不闭合这些问题,跑完把错误清干净再导出。这一步很多人跳过,觉得DRC是画图阶段的事,其实导出前的DRC才是最后一道保险,因为很多问题在3D视图里看不出来,但在Gerber里是硬伤。
3.2 绘图对话框里每个勾选项的含义
从“文件”菜单进“绘图”,弹出的对话框分几块。最上面是输出目录,建议单独建一个gerber文件夹,别和工程文件混在一起,方便打包。中间是格式选择,选Gerber,然后右边有几个选项:使用Protel文件扩展名决定是.GTL还是-F_Cu.gbr;使用扩展X2格式建议勾上,它会在文件头写入层功能属性,板厂软件能自动识别这层是铜还是阻焊,不依赖文件名;包含网表属性勾上之后文件里会带网络名,调试时有用,但会增加文件体积;从阻焊层中减去丝印前面说过,建议勾。
下面一大块是层列表,每一项前面有复选框,勾哪些导哪些。再往下是Gerber选项,坐标格式一般用4.6(整数4位、小数6位),单位选毫米,坐标选绝对。精度不用改,4.6对绝大多数板子够用,改小了容易丢精度,改大了文件变大没意义。最后是一个“生成钻孔文件”的按钮,点了会弹出钻孔设置。
这些选项里最值得说的是X2格式。老式Gerber只描述图形,板厂要靠文件名和后缀猜这层是什么。启用X2之后,文件头会写一行类似%TF.FileFunction,Copper,L1,Top*%的属性,直接告诉CAM软件“这是第一层顶层铜”。文件名写错了、后缀被改了,属性还在,板厂软件照样能认对。这是一个容错机制,成本几乎为零,没有理由不勾。
3.3 钻孔文件单独生成,这一步最容易漏
点“生成钻孔文件”之后弹出的对话框,参数比Gerber那边多。单位、格式、原点要和Gerber对齐,这是第一位的。然后是“钻孔文件类型”,选Excellon;“钻孔原点”选绝对;“镜像”不要勾;“最小孔数”保持默认1。下面有个“PTH和NPTH分开输出”的选项,新版默认是分开的,保持这个默认,不要合并成一个文件。
合并的后果是板厂无法区分哪些孔要沉铜、哪些不要。有些板厂会按孔径大小猜,比如小于0.3mm的当PTH、大于3mm的当NPTH,但这是赌运气,遇到安装孔是2.5mm、过孔是0.3mm的板子就可能猜错。分开输出之后,文件名里带PTH和NPTH,一目了然。
生成完钻孔文件,KiCad通常还会问要不要生成钻孔图,这个图是给人看的示意图,标了每个孔的位置和孔径,板厂不一定需要,但自己检查很有用。我一般会导一份,导出后打开对照Gerber看孔位有没有偏。
3.4 坐标文件与打包命名
如果板子要贴片,还得导坐标文件(也叫贴片文件、Pick and Place)。位置在“文件”菜单下的“制造输出”里,格式选CSV或者文本,单位选毫米,勾上“包含元件位号”和“包含元件值”。导出的文件里记录了每个元件的位号、X坐标、Y坐标、旋转角度、所在层,SMT厂的贴片机直接读这个文件就能编程。
坐标文件有个坑:Y轴方向。KiCad的坐标系原点在左下角,Y轴向上;但很多贴片机的坐标系原点在左上角,Y轴向下。导出的文件如果没有做Y轴翻转,贴片厂导入之后元件位置会整体上下颠倒。KiCad的坐标导出对话框里有个选项可以处理这个,具体选哪个要看贴片厂的要求,我的一般做法是导出后先打开看几个已知位置的元件,确认坐标和实际板子对得上再发。
打包的时候,我习惯把Gerber、钻孔、坐标文件放三个子文件夹,主目录放一个readme.txt写清楚板子层数、板厚、铜厚、阻焊颜色、表面处理、板框尺寸、是否有阻抗要求。这个readme看着多余,实际能省掉好几次来回问。压缩包名字带上项目名、版本号、日期,别用“新建文件夹”“最终版”“最终版2”这种,自己一个月后都分不清。
4. 自查:导出的Gerber怎么验证没问题
4.1 用KiCad自带Gerber查看器逐层比对
KiCad自带一个Gerber查看器,在“查看”菜单或者工具栏里能打开。它的用法是把导出的文件全部加载进来,然后逐层开关、叠加比对。我一般按这个顺序看:先只开Edge.Cuts,确认板框闭合、尺寸对;再叠加顶层铜,看走线和焊盘有没有超出板框;再叠加顶层阻焊,看开窗是不是只在焊盘上;最后叠加顶层丝印,看文字有没有压焊盘、有没有超出板框。
这个查看器还有一个很有用的功能是“显示钻孔”,能把钻孔文件叠在铜箔层上看孔位对不对。过孔如果在铜箔上但钻孔偏了,说明原点没对齐;焊盘上有孔但钻孔文件里没有,说明漏了孔。这一步花五分钟,能挡掉八成以上的返工。
需要提醒的是,KiCad的查看器和板厂CAM软件不是一回事,它能看出图形对不对,但看不出工艺问题,比如阻焊桥够不够宽、丝印线宽够不够印刷、孔到板边的距离够不够。这些要靠设计规则和制板说明来保证,不能指望查看器。
4.2 一份可以照着做的检查清单
我把常查的项目整理成一张表,导出后对着过一遍,比凭记忆靠谱。
| 检查项 | 正确状态 | 常见错误 |
|---|---|---|
| 板框层 | 一条闭合连续的轮廓线 | 断口、多余标注、圆弧变折线 |
| 顶层铜 | 走线焊盘完整,无超出板框 | 铺铜未填充、焊盘缺失 |
| 底层铜 | 镜像后图形正常 | 与顶层弄反、漏导 |
| 顶层阻焊 | 只有焊盘开窗 | 满屏元件框(拿错丝印层) |
| 丝印层 | 文字清晰不压焊盘 | 位号重叠、字太小 |
| 钻孔文件 | PTH与NPTH分开 | 合并成一个、单位不符 |
| 原点 | Gerber与钻孔一致 | 相对坐标导致整体偏移 |
| 文件数量 | 与层数匹配 | 全选导出带一堆无用层 |
这张表我贴在显示器边上用了很久,后来熟了不用看,但每次做新板子还是会过一遍。尤其是“文件数量”这一项,导出后数一下压缩包里有几个文件,和预期对不上就说明某一步勾错了。
4.3 我踩过的三个真实翻车场景
第一个是把.GBL当成.GTL发给板厂,就是开头说的那次。根因是打包时按文件名排序,.GBL排在.GTL前面,我手动重命名的时候看串了行。后来我改成不重命名,直接按KiCad默认的长文件名打包,层名写在文件名里,从根上消灭了这个错误。
第二个是漏导钻孔文件。那时候刚换新版KiCad,以为Gerber导完就完事了,压缩包发出去两天,板厂说“你这板子一个孔都没有”。补发钻孔文件之后工期延了三天。现在的习惯是导出流程固定为:Gerber → 钻孔 → 钻孔图 → 坐标 → 打包 → 查看器验证,六步走完才算完。
第三个是丝印压焊盘。一块密集的模块板,丝印位号全部压在0603电阻的焊盘上,板子做出来焊盘上有一层白油,手工焊的时候上锡很困难,最后拿烙铁一个个刮。这个问题的根因是绘图时没勾“从阻焊层中减去丝印”,也没在布局时避让。现在的做法是布局阶段就把丝印位号挪到元件外侧,导出时再勾上那个选项做双保险。
5. 常见问题速查与与板厂沟通
5.1 现象到原因的速查表
板厂反馈的问题描述往往很简短,得靠自己翻译。下面这张表是我这几年攒下来的对照。
| 板厂反馈 | 大概率原因 | 处理方式 |
|---|---|---|
| 没有板框/外形不闭合 | 板框层断线或有杂线 | 重画板框,只保留轮廓 |
| 顶层铜箔异常 | GTL与GBL弄反 | 核对层功能属性或文件名 |
| 阻焊开窗过大 | 阻焊膨胀值设太大 | 改设计规则,单边0.05-0.1mm |
| 丝印压焊盘 | 未做丝印避让 | 勾选从阻焊层减去丝印 |
| 缺少钻孔 | 钻孔文件未导或未打包 | 重新生成并确认PTH/NPTH |
| 孔位偏移 | 原点不一致 | 统一设为板框左下角 |
| 内层缺失 | 内层未勾选 | 绘图对话框勾选内层铜 |
| 板子上有多余线条 | 误打包Fab层或User层 | 只导生产必需的层 |
这张表的价值在于,很多时候板厂只说一句“有问题”,你能自己先定位到原因,回复的时候直接给解决方案,比来回问快得多。
5.2 跟板厂确认时该说哪几句话
沟通效率很影响工期。我的经验是第一次和某家板厂合作时,在备注里主动写清四件事:层数、板厚、表面处理、有无特殊工艺。层数不用说,Gerber里能看出来;板厚和表面处理Gerber里没有,必须写;特殊工艺包括阻抗控制、盲埋孔、金手指倒角、半孔这些,不写清楚板厂默认按最普通的做。另外明确说一句“Gerber为RS-274X格式,已包含X2层属性”,对方CAM工程师一看就知道你懂行,沟通会顺很多。
还有一个小技巧:如果板子有NPTH安装孔,一定在备注里单独指出“XX位置为NPTH,请勿沉铜”。因为有些板厂的自动识别逻辑会把所有孔都当PTH处理,孔壁镀了铜之后螺丝拧进去可能压到内层,出问题很难查。这一句话能省掉一次返工。
5.3 几条压箱底的避坑经验
第一条,别信“板厂会帮你改”。有些小问题板厂确实能自动修,比如丝印压焊盘会帮你挖掉,但改法不一定符合你的预期。把问题留给对方,等于把最终产品的控制权交出去。
第二条,Gerber导出后不要再用KiCad改设计。经常有人导完Gerber发现一个小错,改完设计只重新导出了改动的那一层,忘了其他层还是旧的,结果铜箔是新的、阻焊是旧的,做出来对不上。正确做法是任何改动之后全部重新导出,宁可多花两分钟。
第三条,保留每次下单的Gerber压缩包。板子做回来发现有问题,第一件事是把当时的Gerber重新打开看,很多时候能立刻判断是设计问题还是生产问题。没有存档的话,只能凭记忆吵架。
第四条,层数越少越不容易错。双层板能解决的别上四层,不是省钱的问题,是文件少一半、出错概率低一半。真要上多层板,内层单独导出后一定要在查看器里叠一遍。
最后分享一个我自己用着顺手的小流程:在KiCad工程目录下建一个release文件夹,每次导出按v1、v2、v3建子目录,导出完全部文件后在里面放一个截图,截的是Gerber查看器叠加全部层的画面。半年后回头看,哪一版改了什么,一眼就清楚,比任何命名规范都好用。