ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Altium Designer导出Gerber文件的硬核指南

Altium Designer导出Gerber文件的硬核指南 1. 为什么必须亲手导出Gerber——不是点击“导出”就完事的硬核真相在PCB设计圈里Altium Designer导出Gerber文件这件事听起来像“打开软件→点几下鼠标→保存”但实际交付工厂前踩过的坑远比你想象中更具体、更致命。我带过三届硬件新人几乎每个人都卡在同一个环节明明AD界面显示“Export completed”嘉立创/华秋/深南电路的工程反馈却是“Gerber层缺失”“钻孔文件错位”“铜皮被误判为阻焊开窗”。问题从来不在软件本身而在于——你根本没搞懂Gerber到底是什么它不是“图纸截图”而是一套由27个独立文件组成的、面向制造设备的机器语言指令集。核心关键词Altium Designer、PCB、Gerber文件这三个词连在一起本质是设计端与制造端的契约交接点。Gerber不是图片不是PDF更不是AD工程文件的压缩包它是ASCII文本格式的坐标指令流每一行都对应着光绘机喷头的启停、移动、曝光动作。比如一个简单的圆形焊盘在Gerber里会被拆解成G01直线插补X12345Y67890坐标D02抬刀D03落刀M02程序结束——这种底层逻辑直接决定了你的板子能不能做出来、做出来是不是你想要的样子。为什么AD20/AD23/AD24/AD25导出步骤看似一样但老工程师总强调“版本差异要校验”因为从AD18开始Gerber输出引擎底层重构了AD18用的是Gerber RS-274X标准兼容层AD21起强制启用IPC-2581B元数据嵌入机制AD25则默认开启“Drill Drawing Layer Mapping”智能钻孔映射。这些变化不会弹窗提醒你但会悄悄改变钻孔文件命名规则、阻焊层极性定义、甚至丝印文字的矢量填充方式。我去年帮一家医疗客户返工过一批板子问题就是AD23导出时未关闭“Use Legacy Drill File Format”导致钻孔文件里的孔径单位被识别为mil而非mm0.3mm的过孔在工厂被加工成0.012inch0.3048mm勉强能用但EMC测试全军覆没。适合谁看如果你是刚从立创EDA或嘉立创EDA转过来的设计师习惯“一键生成Gerber”那这篇必须精读——AD的Gerber导出是精密手术不是批量打包如果你是做了三年以上PCB却还在用“默认设置导出”的工程师这篇会帮你省下至少三次打样报废成本如果你是工厂CAM工程师想反向理解设计端常犯的错误这里全是真实案例还原。接下来所有内容不讲虚的只拆解你按下“Export”按钮之前必须亲手确认的每一个开关、每一处参数、每一条路径。2. Gerber文件的本质与AD导出逻辑深度拆解2.1 Gerber不是“图”是“机床指令集”——从光绘机原理反推导出逻辑很多新手以为Gerber是PCB的“高清截图”这是最危险的认知偏差。真正的Gerber文件诞生于上世纪70年代专为光绘机Photoplotter设计。这种设备没有屏幕只有一台高精度X-Y移动平台紫外激光头靠读取文本指令控制激光开关和平台位移。所以Gerber本质是数控机床G代码的PCB专用变种。一个标准Gerber文件RS-274X格式包含三类核心指令坐标系定义%MOIN*英寸单位或%MOMM*毫米单位%FSLAX24Y24*X/Y轴小数位数24代表小数点后4位即0.0001inch精度图形绘制指令X12345Y67890D02*移动到坐标、D03*曝光、G75*圆弧插补层属性声明%LNTopLayer*层名声明、%LPD*正片模式、%LPC*负片模式Altium Designer导出Gerber的过程就是把PCB编辑器里的图形对象走线、焊盘、覆铜实时翻译成这套指令流。关键点在于AD不是“截图保存”而是“实时编译”。当你在PCB界面拖动一个焊盘AD后台同步更新其Gerber坐标指令当你修改覆铜边界AD重新计算所有铜皮区域的轮廓矢量并生成新指令。这意味着导出前必须确保设计已完全编译无未处理的DRC错误、所有层叠结构已锁定Layer Stack Manager中无未应用的变更、所有网络已正确识别Netlist无悬空引脚。提示AD界面右下角状态栏显示“Ready”不代表Gerber就绪。必须手动执行Tools → Design Rule Check确认“No violations found”再检查PCB面板中“Layers”页签下的所有层是否显示“Enabled”尤其是机械层Mechanical Layers是否被意外禁用——曾有客户因机械层2Board Outline被关闭导致Gerber里缺失板框工厂按默认矩形切割边缘器件全被削掉。2.2 AD版本演进对Gerber输出的实质性影响AD20、AD23、AD24、AD25并非简单UI升级Gerber引擎底层逻辑存在代际差异。忽略版本特性等于主动埋雷版本关键变更点实操风险案例AD20及更早默认使用Legacy Drill FormatExcellon 1.0钻孔文件无单位声明工厂需人工指定mm/inch0.5mm孔易被误读为0.02inch0.508mmAD21-AD22引入IPC-2581B元数据嵌入导出Gerber时若勾选“Include IPC-2581B Data”会生成额外.xml文件部分国产工厂CAM软件无法解析报错“Unknown file format”AD23-AD24默认启用“Smart Drill Mapping”自动将Drill Drawing层映射到实际钻孔层但若设计中Drill Drawing层被误删AD会静默跳过钻孔导出生成零字节.drill文件AD25强制要求“Unified Output Job”工作流传统File → Fabrication Outputs → Gerber Files路径被弃用必须通过Output Job文件统一管理否则导出选项灰显我实测过AD25的“Unified Output Job”机制新建Output Job后添加Gerber Output其配置界面底部多出“Advanced Settings”按钮。点开后可见“Drill Origin”选项默认为“Absolute Origin”但若你的PCB原点Origin设在板边外侧工厂光绘机会以绝对坐标定位导致所有图形偏移。必须手动改为“Relative to Board Outline”才能确保坐标系与板框对齐。这个选项在AD20里根本不存在老用户凭经验导出到了AD25就会失效。2.3 为什么必须分层导出——Gerber文件的物理制造意义Gerber文件不是“一张图”而是按制造工序拆解的27个独立文件。嘉立创官网明确列出必需文件清单Top Layer顶层铜、Bottom Layer底层铜、Top Solder Mask顶层阻焊、Bottom Solder Mask底层阻焊、Top Silkscreen顶层丝印、Bottom Silkscreen底层丝印、Drill Drawing钻孔图、NC Drill钻孔坐标、Board Outline板框。少一个工厂就卡在哪个工序。铜层GTL/GBL决定电路走线和焊盘形状正片模式LPD白色区域为铜皮阻焊层GTS/GBS决定绿油覆盖范围负片模式LPC黑色区域为开窗露出铜皮丝印层GTO/GBO决定字符印刷位置正片模式白色区域为油墨钻孔层TXT/DRILL包含孔径、孔位、孔类型PTH/NPTH单位必须与工厂约定一致特别注意阻焊层的负片特性你在AD里画的阻焊开窗Solder Mask Expansion在Gerber里表现为“挖空”区域。如果导出时未勾选“Plot solder mask as negative”工厂会把整个板面涂满绿油所有焊盘都被封死。这个选项在AD23的Gerber Setup对话框中位于“Advanced”页签名称是“Create solder mask as negative image”默认关闭——意味着你必须手动打开否则90%的初学者都会翻车。3. 完整实操流程从AD界面到工厂接收的全流程拆解3.1 导出前的强制自检清单5分钟省下3天返工在点击“Export”之前必须完成以下6项检查。这不是形式主义而是制造端的硬性准入门槛DRC终极验证运行Tools → Design Rule Check勾选“All Rules”重点确认Clearance间距信号线与铜皮、焊盘与焊盘间距≥4mil0.1016mmShort-Circuit短路无未连接的重叠焊盘Un-Routed Net未布线所有网络Status显示“100% Routed”注意AD的DRC报告里“Violations”数量为0不代表Gerber就安全。曾有客户DRC全绿但Gerber里阻焊层因“Solder Mask Expansion”值设为负数导致焊盘被绿油完全覆盖。必须手动检查PCB面板→Properties→Design Rule→Manufacturing→Solder Mask Expansion确认值为正数推荐0.1mm层叠结构锁定打开Design → Layer Stack Manager确认所有层Top Layer, Inner Layer 1, Bottom Layer等厚度、材料FR-4、铜厚1oz/2oz已填写“Apply Changes”按钮呈灰色表示已应用若为蓝色必须点击应用机械层Mechanical Layers中Layer 1Board Outline必须启用且包含闭合多边形钻孔定义核查打开PCB面板→Drill Pairs确认所有钻孔对Drill Pair已定义如Top-BottomNPTH非电镀孔与PTH电镀孔已分类NPTH孔径标注为“NPTH_Φ0.8mm”钻孔表Drill Table已插入PCB且位置在板外空白区避免被裁切原点Origin重置按CtrlShiftR重置原点至板框左下角。原因工厂光绘机以板框为基准定位若原点在板内某焊盘上会导致所有坐标偏移。实测案例某客户原点设在USB接口中心Gerber坐标全为负值工厂CAM软件报错“Invalid coordinate”。字体矢量化选中所有丝印文字快捷键S→Text右键→Properties→Font将TrueType字体改为Stroke Font如Sans Serif并勾选“Convert to Polygon”。原因TrueType字体在Gerber里会丢失轮廓变成方块乱码Stroke Font转为多边形后可被光绘机精确识别。文件命名规范预设在Project → Project Options → Options页签设置“Output Path”为相对路径如“Outputs/Gerber”避免绝对路径C:\Users...导致协作时路径失效。3.2 AD25 Unified Output Job实操详解适配最新版AD25已废除旧式菜单导出必须通过Output Job统一管理。以下是完整步骤以双面板为例创建Output Job文件右键项目根目录 → Add New to Project → Output Job。命名为“Fabrication_Output.jobopts”。添加Gerber输出任务在Output Job编辑界面点击“Add Output”按钮 → 选择“Gerber Files”。此时右侧配置区出现“Gerber Setup”选项卡。配置Gerber层映射关键切换到“Layers”页签逐层勾选Top Layer → GTL顶层铜Bottom Layer → GBL底层铜Top Solder Mask → GTS顶层阻焊Bottom Solder Mask → GBS底层阻焊Top Overlay → GTO顶层丝印Bottom Overlay → GBO底层丝印Mechanical 1 → GKO板框必须勾选Drill Drawing → TXT钻孔图NC Drill → DRL钻孔坐标注意Drill Drawing层必须单独勾选且文件名后缀设为“.txt”否则工厂无法识别钻孔图。NC Drill层文件名后缀必须为“.drl”这是行业硬性约定。设置高级参数避坑核心切换到“Advanced”页签关键设置Units选择“Millimeters”国内工厂通用嘉立创/华秋均要求mmFormat设置“2:4”整数2位小数4位即0.0001mm精度Solder Mask勾选“Create solder mask as negative image”强制负片Drill Origin选择“Relative to Board Outline”避免坐标偏移Plot Layers勾选“Plot only used layers”跳过空层减小文件体积生成并验证点击右上角“Generate Content”按钮。生成后打开Outputs文件夹检查文件数量应有10个文件GTL, GBL, GTS, GBS, GTO, GBO, GKO, TXT, DRL, X2文件大小铜层文件通常100KB阻焊层50KB若某文件5KB大概率层未勾选或为空文件内容用记事本打开GTL文件首行应为%FSLAX24Y24*24位精度末尾有M02*程序结束3.3 AD20/AD23兼容导出方案老版本用户必看若你仍在用AD20或AD23流程略有不同但核心原则不变入口路径File → Fabrication Outputs → Gerber Files层设置在Gerber Setup对话框中“General”页签勾选“Plot layers used in project”然后在“Layers”页签手动勾选所需层同AD25逻辑钻孔文件单独导出File → Fabrication Outputs → NC Drill Files关键设置Units必须与Gerber一致mmFormat选择“Excellon 2.0”AD23起默认兼容性更好Zero Suppression选择“Leading”去掉前导零如00123→123板框层特殊处理Mechanical 1层必须设为“Board Outline”并在“Gerber Setup”→“Mechanical Layers”页签中勾选“Include mechanical layers”实操心得AD20导出时常遇到“Drill Drawing层不生成”问题。根源是Drill Drawing层在PCB中未被赋予“Drill Drawing”类型。解决方法PCB面板→Layers→右键Mechanical 2→Properties→Layer Type改为“Drill Drawing”再重新导出。4. 工厂拒收的12个高频问题与现场排查技巧4.1 Gerber文件级问题速查表问题现象根本原因排查工具与方法解决方案工厂反馈“无钻孔文件”NC Drill层未勾选或Drill Drawing层类型错误用记事本打开.drl文件检查首行是否有M48Excellon头标识在AD中确认Drill Drawing层类型为“Drill Drawing”NC Drill导出时勾选“Generate drill table”阻焊全覆盖焊盘不上锡未勾选“Create solder mask as negative image”用GC-Prevue打开GTS文件观察焊盘区域是否为黑色开窗AD25中Advanced页签开启该选项AD20中Gerber Setup→Advanced→勾选“Plot solder mask as negative”丝印文字全变方块使用TrueType字体未转多边形放大查看GTO文件文字区域是否为连续矢量线全选文字→右键Properties→Font→改为Stroke Font→勾选“Convert to Polygon”板边不齐器件被切Mechanical 1层无闭合多边形或原点偏移用ViewMate打开GKO文件检查板框是否闭合在PCB中绘制闭合多边形→右键→Properties→Set as Board Shape按CtrlShiftR重置原点过孔无铜信号断开PTH孔未定义为电镀孔检查PCB面板→Drill Pairs确认孔对包含“Plated”双击过孔→Properties→Hole Size→勾选“Plated”Gerber文件为0字节输出路径含中文或特殊符号查看Outputs文件夹文件大小为0将项目路径改为纯英文如“D:\PCB_Project\Outputs”4.2 GC-Prevue实战验证技巧免费神器工厂不会给你解释但你可以用GC-Prevue免费Gerber查看器提前发现90%的问题安装与加载下载GC-Prevue后打开软件→File → Load Job → 选择Gerber文件夹含所有.gtl/.gbl/.gts等文件层叠检查左侧Layers列表勾选Top Layer Top Solder Mask观察焊盘是否被阻焊层精准覆盖焊盘白阻焊黑边缘对齐钻孔验证勾选NC Drill层用Measure工具测量孔径对比BOM表中孔径规格如Φ0.3mm板框校验勾选GKO层用Zoom工具拉满查看板边确认无缺口、无毛刺坐标系确认右键→Properties→查看“Origin”坐标应为(0,0)或接近板框左下角注意GC-Prevue中绿色代表铜层红色代表阻焊开窗蓝色代表丝印。若看到焊盘区域为绿色红色重叠说明阻焊开窗正确若只有绿色说明阻焊未开窗——这就是“不上锡”的根源。4.3 嘉立创/华秋/深南电路的平台上传避坑指南不同工厂对Gerber包的要求有细微差异必须针对性调整嘉立创JLCPCB要求.zip包内不含子文件夹所有Gerber文件平铺在根目录。命名必须为*.gtl顶层铜、*.gbl底层铜、*.gts顶层阻焊...若上传后提示“文件格式错误”大概率是.zip包里多了“Outputs”文件夹需解压后重新压缩。华秋HQPCB支持IPC-2581B格式但需在上传页面勾选“Use IPC-2581B”。若用AD25导出时已嵌入元数据此处必须勾选否则解析失败。深南电路Sunway要求Drill文件必须为Excellon 1.0格式非2.0。AD25导出时在NC Drill设置中将“Format”改为“Excellon 1.0”并取消勾选“Embedded tool information”。实测案例某客户用AD25导出Excellon 2.0钻孔文件上传深南系统提示“Tool not found”原因是2.0格式的工具表T01C0.3未被识别。改为Excellon 1.0后工具表变为T01F0.3顺利通过。5. 进阶技巧自动化脚本与团队协作规范5.1 批量导出脚本PythonAD API——解放重复劳动当项目增多手动导出10次Gerber会消耗大量时间。AD提供Scripting API可用Python自动执行# gerber_export.py import os from altium_designer import Project # AD内置API模块 def export_gerber(project_path): proj Project.Open(project_path) # 设置输出路径 output_dir os.path.join(os.path.dirname(project_path), Outputs, Gerber) os.makedirs(output_dir, exist_okTrue) # 配置Gerber输出参数 gerber_job proj.CreateOutputJob(Gerber_Job) gerber_job.AddOutput(Gerber Files) gerber_job.SetProperty(Units, Millimeters) gerber_job.SetProperty(Format, 2:4) gerber_job.SetProperty(SolderMaskNegative, True) # 执行导出 gerber_job.Generate(output_dir) print(fGerber exported to {output_dir}) if __name__ __main__: export_gerber(rD:\Projects\Power_Supply.PrjPcb)注意此脚本需在AD安装目录下运行因依赖AD内核DLL。实际部署时建议封装为.bat批处理文件双击即可执行避免工程师接触代码。5.2 团队Gerber交付规范血泪教训总结我们团队推行的《Gerber交付Checklist》已迭代7版核心条款文件命名ProjectName_RevA_TopCopper.gtl含项目名、版本、层名版本控制每次ECN变更Gerber文件名增加RevB/RevC旧版存档不覆盖交付包结构Gerber_Package.zip ├─ Gerber/ # 所有Gerber文件 ├─ Drill/ # .drl和.txt文件 ├─ Readme.txt # 包含板厚、铜厚、阻焊颜色、表面处理沉金/喷锡 └─ BOM.xlsx # 与Gerber匹配的物料清单签字确认硬件工程师、PCB工程师、采购三方在Readme.txt末尾电子签名注明日期最后分享一个小技巧在AD中设置“Template Project”将所有Gerber导出参数层映射、单位、精度预设好。新项目创建时直接基于此模板省去每次重复配置。我放在公司服务器共享目录新人入职第一天就能独立导出合格Gerber——这才是真正把经验沉淀为生产力。
返回列表