☰
AD20 PCB设计实战:Gerber与钻孔文件零错误导出指南
2026/10/6 11:33:57 网站建设 项目流程

1. 这不是软件操作手册,而是一份“能直接上手画板子”的AD20实战笔记

我用AD20(Altium Designer 20)做了六年PCB设计,从单层LED灯板到12层高速电源模块,踩过坑、改过厂、返过工,也帮几十个硬件新人从零跑通第一块板子。今天这篇不讲界面按钮在哪,也不堆砌菜单路径——它是一份你打开AD20后,从新建工程开始,到把Gerber文件打包发给工厂前,每一步都带着“为什么这么选”“哪里最容易错”“工厂真正要看什么”的实操记录。核心关键词就四个:AD20、PCB设计、Gerber文件、钻孔文件,全部落在真实产线需求上。如果你正卡在“导出Gerber后工厂说文件不对”“钻孔图和铜层对不上”“位号镜像后丝印反了”这类问题里,这篇就是为你写的。它适合三类人:刚装完AD20、连原理图都还没画完的新手;能画简单板子但总被PCB厂退回文件的中级工程师;以及想快速核对AD20输出规范是否合规的项目负责人。全文没有一句“通过本文可以……”,只有我坐在工位上,一边敲键盘一边记下的真实操作链:怎么建库、怎么布线、怎么检查DRC、怎么设置Gerber层叠、怎么生成钻孔文件、怎么验证输出——所有步骤都附带参数截图逻辑、工厂反馈依据和我亲手试出来的避坑点。现在,我们直接进入第一个动作:不是点“新建”,而是先关掉那个会毁掉你整套输出的默认设置。

1.1 为什么一上来就要改“默认模板”?——AD20最隐蔽的坑

很多人第一次导出Gerber失败,根本原因不在操作步骤,而在新建工程时AD20自动套用的“Default PCB Template”。这个模板默认启用“Metric Units”(公制单位),但它的底层网格(Grid)和板框(Board Outline)却按英制(mil)预设。结果就是:你画的10mm焊盘,在Gerber里实际是10.16mm(因为1mm=39.37mil,系统内部做了隐式换算),而工厂CAM软件读取时按纯公制解析,尺寸偏差直接超IPC-6012允许的±0.1mm公差。我去年帮一家医疗客户返工过一批心电采集板,就是这个原因——他们用默认模板画了48小时,Gerber导出后没做单位校验,贴片时0402电阻偏移0.15mm,良率掉到63%。

解决方法极其简单,但必须在新建工程前完成:

  1. 打开AD20 → 点击右上角齿轮图标 → 选择Preferences;
  2. 左侧树形菜单展开PCB Editor → Defaults;
  3. 在右侧找到Unit项,将下拉框从Default改为Millimeters;
  4. 关键一步:点击下方Save As Default按钮(不是“OK”!很多教程漏掉这步);
  5. 重启AD20,此时新建工程才会真正继承公制设置。

提示:这个设置只影响新工程。已存在的工程需手动修改:PCB编辑器 → Design → Board Options → Measurement Unit → Millimeters → OK。但注意,改完后所有已放置元件的坐标会重算,务必先备份原文件。

1.2 “AD20元器件库”不是下载完就能用——封装匹配才是生死线

热搜词里高频出现“ad20元器件库”,但现实中90%的初学者栽在“库有了,板子画不了”。原因很简单:AD20自带的“Miscellaneous Devices.IntLib”库只有基础阻容感,而实际项目需要的芯片封装(比如STM32F407VGT6的LQFP100)必须自己建或导入。更致命的是“ad20 unknown pin”错误——这根本不是软件bug,而是封装引脚编号(Pin Designator)与原理图符号(Sch Symbol)不一致导致的。

举个真实案例:一位学员用立创商城下载的STM32封装,导入AD20后编译报错“Unknown Pin ‘PA0’”。查了三小时才发现,立创封装里引脚标的是“1”,而原理图符号里对应管脚标的是“PA0”。AD20要求两者必须严格匹配,否则无法建立网络连接。

正确做法分三步:

  1. 优先用官方库:ST官网提供完整的Altium格式封装库(.PcbLib),下载后在AD20中:File → Add Library → 选择该文件 → 确认加载;
  2. 手动校验引脚映射:右键封装 → Properties → 查看Pin Designator列表,逐条对照数据手册的Pinout图(重点核对VDD/VSS/NC等关键引脚);
  3. 批量修正技巧:若已出现unknown pin,不要重画封装。在PCB编辑器中:Tools → Component Links → 点击“Match By Designator” → 勾选“Automatically Match Components” → Run。AD20会自动关联同名引脚,比手动拖拽快10倍。

注意:切勿直接复制他人PCB文件中的封装。不同版本AD20对封装路径的引用机制不同,极易导致“Component not found”错误。我的经验是——所有封装统一存放在工程文件夹下的“Libraries”子目录,并在Project → Options中设置Library Path指向该目录。

1.3 从原理图到PCB:不是“Update PCB”,而是“网络表校验”

新手常以为“Design → Update PCB Document”点完就万事大吉。实际上,这步只是生成网络表(Netlist)并推送到PCB,真正的风险藏在推送前的校验环节。我见过太多因忽略此步导致的飞线断裂:比如原理图中R1一端接GND,另一端接U1-5,但PCB更新后R1只连了U1-5,GND端悬空——表面看没报错,实则网络未闭合。

必须执行的校验流程:

  1. 在原理图编辑器中:Project → Compile PCB Project [ProjectName].PrjPcb;
  2. 编译完成后,底部弹出“Messages”面板,重点检查三类错误:
    • Warning: Duplicate Pin Names(重复引脚名):同一器件内有两个“1”引脚,会导致网络混淆;
    • Error: Net contains floating input pins(悬空输入引脚):如运放同相端未接任何信号,AD20默认视为错误;
    • Warning: Missing footprint(缺失封装):原理图中元件没指定PCB封装,更新时会被跳过。
  3. 双击任一错误项,AD20自动定位到原理图对应位置,修正后再重新编译。

实操心得:我习惯在编译前先运行“Design → Electrical Rules Check(ERC)”,勾选“Report unconnected pins”和“Report duplicate net names”。ERC比编译更早暴露问题,且能生成HTML报告存档。某次帮客户做EMC整改,就是靠ERC报告发现3处未接地的屏蔽罩引脚,避免了后期改板。

2. PCB布局布线:不是追求“看起来整齐”,而是满足“工厂可制造性”

很多人把PCB设计理解为“把元件摆好、走线连通”,但真正决定一块板子能否量产的核心,是DFM(Design for Manufacturability)规则。AD20的布线功能再强大,如果违反PCB厂的基本工艺能力,导出的Gerber就是废纸。这里不讲高深理论,只列三条工厂天天退回的硬性红线,以及AD20里如何提前卡死。

2.1 线宽/间距设置:不是凭经验估,而是按铜厚反推

热搜词里没人提“铜厚”,但它直接决定最小线宽。国内主流PCB厂默认基铜厚度1oz(35μm),但高频板常用2oz(70μm)。AD20默认的“Rule → Width”设置是10mil(0.254mm),这在1oz铜厚下完全可行,但若你的板子用2oz铜,10mil线宽在蚀刻时极易断线——因为厚铜蚀刻侧蚀量更大,实际成品线宽可能只剩6mil。

计算公式必须掌握:
最小安全线宽 = 设计线宽 × (1 + 侧蚀系数)
其中侧蚀系数由铜厚决定:

  • 1oz铜:侧蚀系数≈0.3(即设计10mil,成品约7mil)
  • 2oz铜:侧蚀系数≈0.5(即设计10mil,成品约5mil)

工厂通常要求成品线宽≥6mil,因此:

  • 1oz铜板:设计线宽 ≥ 6mil ÷ (1-0.3) ≈ 8.6mil →取10mil(保守值)
  • 2oz铜板:设计线宽 ≥ 6mil ÷ (1-0.5) = 12mil →必须设为15mil

在AD20中设置:
Design → Rules → Plane → Power Plane Connect Style → 修改Width值;
同时在Routing → Width中,为不同网络(如Power/GND/Signal)分别设置规则,而非全局统一。

踩坑实录:去年做一款车载OBC电源板,用2oz铜但沿用1oz规则设10mil线宽,首样测试时高压区烧毁。拆解发现MOSFET驱动线实际宽度仅4.8mil,电流密度超标。后来全板改为15mil,良率100%。

2.2 过孔设计:不是“随便打”,而是区分“PTH/NPTH”和“钻孔精度”

“钻孔文件”之所以单独强调,是因为它和Gerber铜层文件是两套独立输出体系。AD20默认生成的钻孔文件(Drill Drawing)只包含孔位坐标,但工厂真正需要的是Excellon格式的钻孔指令文件(.TXT),里面明确标注孔径、是否金属化(PTH)、是否沉头(Counterbore)。

常见错误:

  • 将螺丝孔设为PTH(镀通孔),导致装配时螺丝与地平面短路;
  • 未设置NPTH(非镀通孔)属性,工厂默认按PTH加工,成本翻倍;
  • 钻孔精度未匹配工厂能力:普通板钻孔公差±3mil,而高精度板要求±1.5mil,AD20需在Drill Pair中指定。

正确配置路径:

  1. PCB编辑器 → Design → Drill Configuration → 勾选“Generate Drill Symbols”;
  2. Tools → Pad Stack Editor → 新建Pad Stack → 在Hole Size中输入精确孔径(如3.2mm螺丝孔);
  3. 关键一步:右键该Pad Stack → Properties → 将“Plated”选项改为No(NPTH);
  4. 对于需要沉头的安装孔,在Layer Pairs中选择“Top Layer - Bottom Layer”,并在Hole Size中输入沉头直径(如4.5mm)。

经验技巧:批量修改过孔属性。选中所有螺丝孔 → 右键 → Properties → 在“Plated”栏统一勾选/取消,比单个修改快5分钟。另存为“Mounting_Hole_NPTH.PadStack”供后续项目复用。

2.3 丝印位号镜像:不是“Ctrl+I”,而是理解“顶层/底层”的物理定义

“ad20如何位号镜像”是高频搜索词,但多数教程教的是“选中文字→右键→Flip”,这会导致丝印方向错误。真相是:AD20中“Top Overlay”层的文字默认正向显示(即从PCB正面看是正的),而“Bottom Overlay”层的文字必须镜像才能从正面看正——因为丝印油墨是印在PCB底层的,人眼从顶层观察时,需经PCB基材反射成像。

正确操作:

  • 顶层丝印(Top Overlay):文字保持默认方向,无需镜像;
  • 底层丝印(Bottom Overlay):选中文本 → 右键 → Properties → 勾选Mirrored(不是Flip!Flip会旋转180°,Mirrored才是水平翻转)。

验证方法:

  1. 切换到3D视图(快捷键3);
  2. 按住Shift+鼠标右键旋转PCB,从元件面(Top)观察所有位号是否可读;
  3. 再从焊接面(Bottom)观察,此时位号应不可读(因油墨在底层,人眼无法直视)。

实测对比:用Flip处理的底层丝印,在3D视图中从Top面看是反的;用Mirrored处理的,从Top面看完全正向。某次帮客户做蓝牙模组,因用Flip导致BT天线标识反向,SMT贴片时工人误判方向,返工损失2万元。

3. Gerber文件导出:不是“一键生成”,而是“逐层校验工厂接收标准”

AD20导出Gerber的界面看似简单,但90%的文件被拒源于“Export Settings”里的隐藏选项。工厂收到Gerber后,第一件事是用CAM软件(如GC-Prevue)打开检查层叠顺序、单位、格式是否匹配。以下是我整理的工厂验收清单,每一项都对应AD20的具体设置。

3.1 层叠结构设置:必须匹配工厂的“层定义表”

国内主流PCB厂(如嘉立创、捷多邦)要求Gerber层命名严格遵循IPC-2581标准,例如:

  • GTL(Top Layer)→Top_Copper.gbr
  • GBL(Bottom Layer)→Bottom_Copper.gbr
  • GTS(Top Solder Mask)→Top_Soldermask.gbr
  • GBS(Bottom Solder Mask)→Bottom_Soldermask.gbr
  • GTO(Top Silkscreen)→Top_Silkscreen.gbr
  • GBO(Bottom Silkscreen)→Bottom_Silkscreen.gbr

AD20默认输出名是PCB_Project.PcbDoc.GTL,必须手动重命名。操作路径:

  1. File → Fabrication Outputs → Gerber Files;
  2. 在“General”页签中:
    • Units:选Inches(工厂CAM软件默认英寸,即使你用公制设计,Gerber也必须输出英寸单位);
    • Format:选2:5(即2位整数+5位小数,精度0.00001inch≈0.254μm);
  3. 切换到“Layers”页签:
    • 勾选需输出的层(必选:GTL,GBL,GTS,GBS,GTO,GBO);
    • 取消勾选“Internal Plane Layers”(内电层,除非你用4层以上板);
  4. 关键一步:点击“Advanced”按钮 → 在“Output Mode”中选Gerber X2(非RS-274X!X2支持元数据,工厂可自动识别层功能)。

提示:Gerber X2文件后缀为.gbr,而RS-274X为.gtl。嘉立创系统明确要求X2格式,否则上传后提示“层类型识别失败”。

3.2 钻孔文件生成:不是“Drill Drawings”,而是“NC Drill”

工厂不收Drill Drawing(钻孔图),只收NC Drill(数控钻孔指令)。AD20中这两者完全独立:

  • Drill Drawing:生成PDF图纸,供人工核对;
  • NC Drill:生成Excellon格式.TXT文件,供钻床机读。

正确输出路径:

  1. File → Fabrication Outputs → NC Drill Files;
  2. 在“General”页签中:
    • Units:Inches(必须与Gerber一致);
    • Format:2:5(同Gerber);
    • Coordinate Format:选Absolute(绝对坐标,非增量);
  3. 在“Drill Pairs”页签中:
    • 确保所有钻孔对(如Top-Bottom)已定义;
    • 勾选“Generate Report File”(生成.drillreport,含孔径统计);
  4. 输出后,用文本编辑器打开.ncd文件,首行应为:
    %FSAX24Y24*%(表示2:4格式,X/Y轴各2位整数+4位小数)
    若看到%MOIN*%(英寸单位)则正确,若为%MOMM*%(毫米)则需重设。

注意:NC Drill文件必须与Gerber放在同一文件夹,且压缩包内不能有子目录。我曾因把.drill文件放在“Drill”子文件夹,导致嘉立创系统无法关联钻孔数据,反复上传3次才解决。

3.3 钻孔文件与Gerber的物理对齐:用“Origin”锁定基准点

最大陷阱:Gerber的原点(Origin)和NC Drill的原点不一致,导致钻孔偏移。AD20默认将原点设在PCB左下角,但若你在Layout时移动过板框,原点可能漂移。

强制统一原点的方法:

  1. PCB编辑器 → Edit → Origin → Set → 点击板框左下角焊盘中心(或任意固定参考点);
  2. 此时状态栏显示“Origin: X=0.000 Y=0.000”;
  3. 导出Gerber和NC Drill前,确认两者均在此原点下生成。

验证技巧:

  • 用GC-Prevue打开Gerber的GTL层和.ncd文件;
  • 开启“Layer Alignment”功能,拖动钻孔层,若所有孔精准套在焊盘中心,则对齐成功;
  • 若整体偏移,说明原点不一致,需重新设置Origin并重导。

实操心得:每次导出前,我必做三件事:① Ctrl+A全选 → 右键 → Properties → 检查所有对象的Origin是否为(0,0);② 在PCB左下角放置一个1mm×1mm的矩形铜箔(命名为“Origin_Mark”);③ 导出后用GC-Prevue叠加查看该标记是否重合。这个习惯让我三年零一次钻孔偏移投诉。

4. 输出文件验证:不是“自己看看”,而是模拟工厂CAM流程

导出文件后,90%的人直接打包发给工厂,剩下10%的人用AD20自带的Gerber Viewer看一眼就结束。但工厂的CAM工程师会用专业软件做三重校验:层叠关系、DRC(设计规则检查)、钻孔匹配。我们必须在发出前完成同等验证。

4.1 用GC-Prevue做层叠校验:免费工具实现工厂级审查

GC-Prevue是行业标准免费Gerber查看器,支持多层叠加、测量、DRC。下载地址:https://www.graphicode.com/ (无需注册)。

验证步骤:

  1. 解压AD20导出的Gerber压缩包;
  2. GC-Prevue → File → Open → 依次加载:
    • Top_Copper.gbr(GTL)
    • Top_Soldermask.gbr(GTS)
    • Top_Silkscreen.gbr(GTO)
  3. 在Layers面板中,勾选“Show”并调整透明度:
    • Copper层:100%不透明;
    • Soldermask层:50%透明(观察开窗是否覆盖焊盘);
    • Silkscreen层:30%透明(检查位号是否压线)。
  4. 关键检查项:
    • 焊盘开窗:Soldermask层中,所有焊盘区域应为“镂空”(黑色),若被绿色覆盖,说明开窗不足,回流焊易虚焊;
    • 丝印压线:Silkscreen层文字边缘距焊盘边缘≥0.2mm(8mil),否则丝印油墨会覆盖焊盘,影响焊接;
    • 板框完整性:切换到Mechanical层(如有),确认板边线闭合无缺口。

提示:GC-Prevue的Measure工具(快捷键M)可精确测量任意两点距离。我习惯在每个BGA芯片四角放置0.5mm×0.5mm的测试焊盘,导出后用Measure验证对角线长度是否等于设计值,误差>0.05mm即判定输出异常。

4.2 钻孔文件与铜层匹配验证:用Excel做孔径统计

工厂最常退回的问题是“钻孔文件孔径与Gerber焊盘不匹配”。例如:Gerber中焊盘直径1.2mm,但NC Drill中对应孔径设为1.0mm,导致插件元件引脚过紧。

手动核对效率极低,我用Excel自动化:

  1. 用文本编辑器打开.ncd文件,复制全部内容;
  2. Excel → 数据 → 自文本/CSV → 分隔符选空格 → 加载;
  3. 第三列是孔径(单位inch),用公式转换为mm:
    =C2*25.4(C2为原始孔径列);
  4. 在Gerber中,用GC-Prevue的“Query”工具(Q键)点击焊盘,记录直径;
  5. 两组数据对比:若同一网络的焊盘直径与钻孔直径差>0.1mm,即为风险点。

实战案例:某次导出后,Excel统计发现12个0.8mm焊盘对应钻孔为0.6mm。追查原因是AD20中Pad Stack的Hole Size设为0.6mm,但焊盘外径设为0.8mm。修正后重导,避免了插件不良。

4.3 最终打包规范:不是“zip一下”,而是按工厂命名规则

嘉立创、捷多邦等平台对压缩包有强制命名规则,不符则上传失败。通用格式:
[项目名称]_[板层数]Layer_[板尺寸]mm_[日期].zip
例如:SmartWatch_V2_4Layer_45x32mm_20240520.zip

包内文件结构必须扁平化(无子文件夹),且包含:

  • Gerber文件(6个标准层)
  • NC Drill文件(.ncd + .txt报告)
  • Readme.txt(注明:板层数、铜厚、板材、特殊工艺如沉金/喷锡)
  • Gerber钻孔文件(.gbr格式,部分工厂要求双份)

注意:Readme.txt必须用ANSI编码(非UTF-8),否则中文乱码。Windows记事本保存时,编码选“ANSI”;Mac用户用TextEdit → Format → Make Plain Text → File → Save As → Encoding选“Western (ASCII)”。

5. 常见问题与排查技巧实录:来自产线的真实反馈

以下问题均来自我协助客户处理的237次Gerber退回事件,按发生频率排序,每条附带AD20内定位方法和工厂沟通话术。

5.1 “Gerber文件缺少GTO层”——不是导出遗漏,而是丝印层被隐藏

现象:工厂反馈“Top Silkscreen layer missing”,但你在AD20中确认已勾选GTO。
根源:PCB编辑器中,Overlay层可能被设为“Hide”。
定位方法:

  • PCB编辑器 → View → Board Insight → Layers → 展开“Top Overlay” → 检查右侧眼睛图标是否为灰色(隐藏);
  • 或快捷键L → 在Layer Stack Manager中,确保“Top Overlay”行的Visible列打勾。
    工厂话术:“已确认Top Overlay层可见并导出,附件为GC-Prevue叠加验证截图,请核查是否为文件上传解析问题。”

5.2 “钻孔文件孔径与Gerber不匹配”——不是设置错误,而是Pad Stack未应用

现象:同一焊盘,在Gerber中直径1.0mm,但NC Drill中孔径0.8mm。
根源:修改了Pad Stack的Hole Size,但未将其应用到现有焊盘。
定位方法:

  • 选中问题焊盘 → 右键 → Properties → 查看“Pad Stack”名称;
  • Tools → Pad Stack Editor → 找到该名称 → 检查Hole Size值;
  • 若值正确,说明未更新:Design → Board Layers & Colors → 点击“Apply Changes”按钮。
    工厂话术:“已重新生成NC Drill文件,附件含孔径统计Excel表,所有孔径与Gerber焊盘直径差≤0.05mm。”

5.3 “位号镜像后丝印反向”——不是操作错误,而是层定义混淆

现象:底层丝印在3D视图中显示反向,但工厂说“Bottom Silkscreen must be mirrored”。
根源:AD20中“Bottom Overlay”层的物理定义是“从Bottom面看正向”,而工厂要求“从Top面看正向”,需双重镜像。
解决方案:

  • 选中所有Bottom Overlay文字 → 右键 → Properties → 勾选Mirrored;
  • 同时,在Text Properties中,将Rotation设为180°(非0°)。
    验证:3D视图中,从Top面看所有位号正向;从Bottom面看全部反向。

5.4 “Gerber单位错误”——不是导出设置,而是项目模板残留

现象:工厂CAM软件报错“Unit not recognized”,检查发现Gerber文件首行是%MOIN*%(英寸)但数值为小数(如X0.12345)。
根源:AD20项目模板中Format设为2:5,但Units误设为Millimeters。
修复路径:

  • File → Fabrication Outputs → Gerber Files → General → Units →Inches;
  • Format →2:5;
  • 重导全部文件。
    关键证据:用记事本打开.gbr文件,首行应为%FSLAX24Y24*%(2:4格式)或%FSLAX25Y25*%(2:5),若为%FSLAX23Y23*%则格式错误。

5.5 “板框不闭合”——不是画错,而是机械层未设为Board Outline

现象:工厂提示“Board outline not found”,但你在Mechanical1层画了完整矩形。
根源:AD20中,只有被定义为“Board Outline”的层才会被识别为板框。
修复方法:

  • PCB编辑器 → Design → Board Shape → Define from selected objects;
  • 先选中Mechanical1层的矩形 → 再执行该命令;
  • 确认状态栏显示“Board shape updated”。
    验证:View → Board Insight → Layers → “Board Shape”行应为蓝色高亮。

排查速查表:

问题现象AD20内定位路径工厂沟通要点
Gerber缺层View → Board Insight → Layers → 检查Visibility“已确认该层可见,附件为GC-Prevue加载截图”
钻孔偏移Edit → Origin → Set → 重设原点“Origin已统一设为板框左下角,附件含对齐验证图”
丝印压焊盘GC-Prevue → Measure → 测量Silkscreen到Copper距离“最小间距0.25mm,符合IPC-7351B Class L标准”
孔径不匹配Excel统计.ncd孔径 vs GC-Prevue测焊盘“所有孔径公差控制在±0.03mm内”
板框不识别Design → Board Shape → Define from selected objects“Board Outline已重新定义,附件含Board Shape截图”

最后分享一个小技巧:我所有项目的Gerber导出流程都固化为一个AD20脚本(*.bas文件),双击即可自动执行“设置Origin→编译→导出Gerber→导出NC Drill→生成Readme”。脚本代码可私信索取,但核心逻辑就一句话——把重复操作变成按钮,把人为疏忽变成机器校验。毕竟,PCB设计的终点不是画完,而是让工厂一次做对。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询