多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Altium Designer PCB输出规范:Gerber、钻孔文件与IPC网表三大核心交付要点

Altium Designer PCB输出规范:Gerber、钻孔文件与IPC网表三大核心交付要点 1. 项目概述为什么一份“输出汇总”比原理图还重要你画完一张PCB元件摆好了、走线连通了、DRC检查全绿——这时候很多人会下意识觉得“搞定了”。但真正决定这块板子能不能做出来、做出来能不能用、做出来会不会批量报废的往往不是你画得有多漂亮而是最后那几份输出文件。Altium Designer里导出Gerber、钻孔、IPC网表、ODB、PDF、3D STEP这些动作表面看只是点几下鼠标背后却是一整套制造语言的翻译过程。我干PCB设计十年经手过2000量产项目踩过最痛的坑90%都出在输出环节比如Gerber层叠顺序错了一位工厂把阻焊当丝印印钻孔文件单位设成mil没转mm0.3mm的微孔打成0.3inchIPC网表漏了某个NC网络回板后发现关键信号悬空……这些都不是设计错误是输出失真。标题里这个“AD设计文件输出汇总”本质是一份面向制造端的交付契约。它不教你画板而是告诉你当你的设计离开AD软件那一刻如何确保它被下游准确理解、无损还原。关键词里反复出现的Gerber、钻孔文件、IPC网表就是这份契约的三大核心条款。Gerber是图形语言定义每一层铜皮、阻焊、丝印的形状钻孔文件是坐标语言告诉CNC机床在哪打孔、打多大、打什么类型PTH/NPTHIPC网表是电气语言验证所有网络连接关系是否与原理图一致——三者缺一不可且必须严格同步。这篇记录不是操作手册的复读机而是我把十年间在不同工厂、不同工艺、不同代工厂对接中积累的“输出校验逻辑”拆解出来。比如为什么AD默认导出的Gerber常被工厂拒收因为它的“Aperture Macro”支持不完整而主流CAM软件如GC-Prevue、CAM350对老版本Gerber格式兼容性极差为什么钻孔文件要分Excellon和RS-274X两种格式因为前者只含坐标后者自带孔径定义而国内中小厂普遍只认前者为什么IPC网表必须用IPC-D-356A标准而非自定义CSV因为这是唯一被IPC认证的电气验证格式能被所有AOI设备识别。这些细节官方文档不会写但每一条都直接关联到你的板子能不能流片、能不能过首件确认、能不能避免返工。适合刚从学校毕业、第一次对接工厂的新人也适合做了五年还在手动核对Gerber层名的老手——输出不是终点而是设计闭环的最后一道闸门。2. 输出体系全景拆解从设计数据到制造指令的七步转化链AD的输出功能看似零散实则构成一条严密的数据转化链原理图/PCB源文件 → 中间格式Netlist、ODB → 制造格式Gerber、Drill → 验证格式IPC-D-356、Pick Place → 辅助格式PDF、3D STEP。这七步环环相扣任何一环断裂或失真都会导致制造端信息丢失。下面我按实际交付顺序逐层拆解每个环节的核心目的、技术要点和常见陷阱。2.1 第一步IPC网表IPC-D-356A——电气连接的“公证文书”IPC网表不是可有可无的附加项它是原理图与PCB之间电气一致性最权威的证明。工厂拿到Gerber只能看到“图形”但无法验证“这个焊盘到底连没连到VCC”。而IPC-D-356A文件以标准化结构描述每个网络的节点Pad/Via、网络名、元件引脚号AOI设备可直接导入比对。提示AD导出IPC网表时默认路径是“File → Fabrication Outputs → IPC-D-356 Netlist”。但关键在设置必须勾选“Include Unrouted Nets”包含未布线网络否则DRC报错的悬空网络会被过滤掉导致工厂误判为设计意图如此同时“Net Name Format”选“Component Designator Pin Number”这是IPC标准要求若选“Net Name Only”工厂CAM软件会因找不到元件标识而报错。我曾遇到一个案例某电源模块PCB导出IPC网表时未勾选“Unrouted Nets”结果工厂AOI检测发现GND网络缺失以为设计漏连紧急叫停生产。实际是设计中故意留的测试点未布线但网表没体现就成了“黑箱”。后来我们加了注释字段Comment Field在网表里标注“TEST_POINT_ONLY”才解决问题。这说明IPC网表不仅是数据更是沟通语言。2.2 第二步Gerber文件——光绘机的“施工蓝图”Gerber是PCB制造的基石但AD默认导出的Gerber常被工厂退回根本原因在于“层命名规范”和“格式版本”。AD支持RS-274X扩展Gerber和RS-274D标准Gerber两种格式而RS-274X是绝对首选——它内嵌Aperture定义无需额外提供Aperture文件避免工厂因缺少aperture库而解析失败。注意AD中Gerber输出设置在“File → Fabrication Outputs → Gerber Files”。关键参数有三处Units必须设为“Millimeters”国内工厂99%按mm接收设成Inches会导致所有尺寸缩放1000倍1inch25.4mm但工厂按25.4倍放大处理结果板子小得离谱Format选“2:5”即2位整数5位小数精度达0.00001mm足够应付0.1mm线宽Layer Selection务必手动勾选每一层尤其注意“Mechanical Layers”中的板框层通常为Mechanical1很多新人漏选导致工厂不知道板子外形只能按最大外框切割废料率飙升。层命名必须遵循IPC-2581或行业惯例Top Layer→GTLBottom Layer→GBLTop Solder Mask→GTSBottom Solder Mask→GBSTop Silkscreen→GTOBottom Silkscreen→GBOInner Layers→G1/G2…。AD默认命名是“TopLayer”“BottomLayer”需在“Advanced”选项卡里启用“Use Custom Layer Names”再逐层输入标准缩写。否则工厂CAM软件会因层名不识别而报错“Unknown Layer”。2.3 第三步钻孔文件Excellon——CNC机床的“坐标指令”钻孔文件分两部分钻孔坐标Drill Drawing和钻孔表Drill Report。前者是XY坐标列表后者是孔径规格清单。AD默认导出的是Excellon格式但必须确认单位与工厂一致。实操心得在“File → Fabrication Outputs → Drill Files”中Units设为“Millimeters”Format选“2:4”2位整数4位小数Leading/Trailing Zeros选“Suppress Leading Zeros”抑制前导零。这里有个致命细节Excellon文件中的孔径定义有两种方式——一种是文件内嵌Embedded一种是外部钻孔表Separate Drill Table。AD默认用嵌入式但国内多数中小厂只认分离式因为便于人工核对。解决方法是在“Drill File Options”里勾选“Generate Separate Drill File for Each Tool”并确保“Drill Report”同步生成。我曾帮一家深圳工厂调试过一个案例AD导出的Excellon文件里0.3mm孔和0.5mm孔共用一个Tool编号但工厂钻孔机要求每个孔径必须独立Tool号。结果CNC按0.3mm刀具打了所有孔0.5mm孔全部偏小。后来我们在“Drill Pair Setup”里为每个孔径单独分配Tool问题立解。这说明钻孔文件不是数据堆砌而是制造设备的执行指令必须匹配设备逻辑。2.4 第四步ODB ——下一代制造数据的“全能包”ODB正快速取代Gerber钻孔的组合它把所有层、钻孔、网表、BOM、3D模型打包成单一ZIP文件且自带元数据如材料厚度、阻抗要求。AD从v20开始原生支持ODB导出路径是“File → Fabrication Outputs → ODB Files”。关键优势ODB自动关联层叠结构StackupGerber需手动配对GTL/GBL/GTS/GBS而ODB里“Copper.Top”“SolderMask.Bottom”等名称直接映射工厂导入CAM软件如Valor时无需人工匹配同时ODB内嵌“Design Rules”如最小线宽、间距工厂可直接用于DFM检查省去人工解读规则文档的时间。但要注意ODB文件体积大动辄50MB上传慢且部分老工厂CAM系统不支持。我的建议是双轨制——给大厂发ODB给中小厂发Gerber钻孔IPC网表组合包。另外AD导出ODB时“Include 3D Models”选项要慎开因为STEP模型可能含敏感IP建议导出前先清理3D库引用。2.5 第五步Pick Place文件——SMT贴片机的“定位地图”Pick Place文件又称XY Data是SMT产线的刚需它告诉贴片机每个元件的坐标、角度、镜像状态。AD导出路径是“File → Assembly Outputs → Generate Pick and Place Files”。核心参数Origin必须设为“Board Origin”板子原点而非“Absolute Origin”否则坐标系错乱Units同样选“Millimeters”Rotation角度按“0°~360°”输出AD默认是“0°~180°”需在“Options”里勾选“Allow Rotation 180 Degrees”。一个易忽略的坑极性元件如电解电容、IC的“Mirrored”字段。AD默认不输出该字段但某些贴片机如Fuji NXT需要明确标识镜像状态。解决方案是在“Output Job Configuration”里自定义输出模板添加“Mirrored”列并绑定到元件属性“Part Type”如CAP_POL、IC。2.6 第六步PDF图纸——工程交接的“可视化说明书”PDF不是简单截图而是带图层、比例尺、标注的正式交付物。AD导出路径是“File → Print Out”但必须用“Smart PDF”功能在“Output Job”中配置。实操要点在“PDF Output Settings”里“Scale”设为“1:1”勾选“Print Area”为“Entire Document”“Layers”只勾选“Top Overlay”“Bottom Overlay”“Mechanical1”板框避免导出内部层造成混淆最关键的是“Add Title Block”AD内置标题栏模板但需手动填入“Revision”“Date”“Approved By”否则工厂视为无效文件。我见过最离谱的案例某客户PDF里标题栏“Revision”写的是“Draft”结果工厂按试产流程处理没做首件确认就量产导致批次性焊接不良。后来我们强制规定PDF标题栏Revision必须与ECN编号一致且由项目经理签字扫描件嵌入PDF。2.7 第七步3D STEP模型——结构装配的“实体参照”3D模型用于机械结构配合验证AD导出路径是“File → Export → STEP”。但直接导出常出问题模型过大、面片过多、单位错误。解决方案先导出为“Parasolid X_T”格式AD支持再用FreeCAD或Fusion 360转STEP可大幅减面单位务必设为“Millimeters”AD默认是“Inches”转换后尺寸错乱导出前在“3D Body”属性里关闭“High Quality”渲染选“Medium”减少三角面数量。特别提醒STEP模型中不含PCB厚度信息需在“Layer Stack Manager”里导出Stackup ReportPDF注明各层材料FR4、Rogers、厚度1.6mm、铜厚1oz否则结构工程师无法做公差分析。3. AD输出全流程实操从零配置到一键打包的标准化作业上面讲的是理论框架现在进入真实战场——如何在AD里一步步完成一套可交付的输出包。我以AD v23为例v21/v24/v25逻辑一致给出从新建输出任务到最终校验的完整流程。这不是教你怎么点菜单而是告诉你每个按钮背后的决策逻辑。3.1 创建Output Job让输出变成可复用的“流水线”AD的Output Job是输出管理的核心它把Gerber、钻孔、IPC网表等所有输出任务打包成一个工程文件*.OutJob后续只需右键“Run All Outputs”即可批量生成。创建路径“File → New → Output Job”。为什么不用单次导出因为单次操作无法保证所有文件时间戳一致工厂收到不同时间生成的Gerber和钻孔文件会怀疑数据同步性。而Output Job里所有任务共享同一时间戳且可设置依赖关系如“Gerber生成后再生成IPC网表”。在Output Job界面左侧是“Outputs”面板右侧是“Documents”面板。第一步在“Documents”里右键“PCB Document”选择“Add New Output”添加“Gerber Files”“Drill Files”“IPC-D-356 Netlist”等。第二步在“Outputs”里双击每个任务进入详细设置——这才是真正的技术战场。3.2 Gerber输出配置三层防御体系Gerber配置是输出中最易翻车的环节我建立三层防御第一层防命名错误第二层防格式错误第三层防层遗漏。第一层命名标准化在“Gerber Files”设置窗口点击“Advanced”选项卡勾选“Use Custom Layer Names”。然后在下方列表里为每一层手动输入IPC标准名Top Layer → GTLBottom Layer → GBLTop Solder Mask → GTSBottom Solder Mask → GBSTop Silkscreen → GTOBottom Silkscreen → GBOMechanical 1 → GM1板框Keep-Out Layer → GKO禁止布线区注意AD的“Solder Mask”层默认包含阻焊开窗和覆盖区但工厂只认开窗部分。需在“Gerber Setup”里勾选“Plot Layers in Stack Order”确保阻焊层按正确顺序叠加。第二层格式与精度控制回到“General”选项卡“Units”选“Millimeters”“Format”选“2:5”“Zero Suppression”选“Leading”“Mirror Y Axis”取消勾选AD坐标系Y轴向上Gerber标准Y轴向下但现代CAM软件自动适配勾选反而导致镜像。第三层层完整性校验在“Layers”选项卡手动勾选所有需输出的层。重点检查是否勾选了“Drill Drawing”钻孔图层非钻孔文件“Mechanical Layers”里的GM1板框是否勾选“Non-Plated Holes”是否单独输出如有NPTH孔需在“Drill Files”里单独配置。完成设置后点击“Preview”查看Gerber预览——这是最后一道肉眼防线。用鼠标滚轮放大检查焊盘是否完整、丝印是否清晰、板框是否闭合。我习惯用“Zoom to Fit”后按CtrlA全选看是否有层缺失缺失层显示为空白。3.3 钻孔文件配置Excellon的精准手术钻孔文件配置的关键是“工具分离”和“单位统一”。在Output Job里双击“Drill Files”进入设置。工具分离设置在“Drill File Options”里勾选“Generate Separate Drill File for Each Tool”。AD会自动为每个孔径创建独立文件如Tool_0.3mm.drl、Tool_0.5mm.drl。同时在“Drill Report”选项卡勾选“Generate Drill Report”输出drill_report.txt内含每个Tool的孔径、数量、位置范围。单位与格式校准“Units”选“Millimeters”“Format”选“2:4”“Zero Suppression”选“Leading”。特别注意“Drill Drawing”设置在“Layers”选项卡勾选“Drill Drawing”层并确保其颜色为高对比度如红色方便预览时识别。实操技巧预览钻孔文件时用“View → Grid → Set Grid”将网格设为0.1mm然后用“Reports → Drill Report”生成报告对照报告里的孔径列表逐个在PCB上框选相同孔径的焊盘确认数量一致。曾有个项目因0.2mm测试孔被误设为0.25mm报告里数量对不上当场发现。3.4 IPC网表与ODB协同配置双保险策略IPC网表和ODB不是二选一而是互补。在Output Job里同时添加“IPC-D-356 Netlist”和“ODB Files”任务。IPC网表配置要点在“IPC-D-356 Netlist”设置中“Net Name Format”选“Component Designator Pin Number”“Include Unrouted Nets”必须勾选“Output Directory”设为独立文件夹如“/IPC_Netlist”避免与Gerber混在一起。ODB配置要点在“ODB Files”设置中“Include”选项全选Layers, Drill, Netlist, BOM, 3D Models但“3D Models”建议取消——除非客户明确要求。重点在“Stackup”选项勾选“Include Layer Stackup”AD会自动提取叠层信息生成stackup.xml工厂可直接导入DFM软件。协同校验法生成后用免费工具GC-Prevue打开Gerber用Valor NPI打开ODB对比两者层叠结构是否一致。若Gerber里GTL层有100个焊盘ODB里Copper.Top层也必须有100个否则数据不同步。3.5 打包与校验交付前的黄金十分钟所有输出任务配置完毕后右键Output Job → “Run All Outputs”。AD会批量生成文件存入指定文件夹。此时不要急着发给工厂花十分钟做三件事第一件事文件清单核对生成文件夹内应有Gerber文件GTL.GBR, GBL.GBR, GTS.GBR, GBS.GBR, GTO.GBR, GBO.GBR, GM1.GBR, GKO.GBR钻孔文件NC_DRILL.TXT主钻孔文件DRILL_REPORT.TXT钻孔报告Tool_*.DRL各孔径文件IPC网表NETLIST.IPCODB文件project_name.zip内含layers/, drill/, netlist/等子目录PDF图纸Assembly_Drawing.PDF, Fabrication_Drawing.PDF其他BOM.XLSX, PickPlace_XY.CSV第二件事用GC-Prevue做视觉校验下载免费Gerber查看器GC-Prevue拖入所有Gerber文件按层叠顺序加载GTL→GBL→GTS→GBS→GTO→GBO→GM1。检查板框GM1是否闭合无断点焊盘GTL与GTS是否对齐阻焊开窗应略大于焊盘通常0.1mm丝印GTO是否覆盖焊盘工厂会拒收内层G1/G2是否只有铜皮无丝印侵入。第三件事用Netlist Viewer做电气校验用开源工具“IPC-D-356 Viewer”打开NETLIST.IPC搜索关键网络如GND、VCC确认每个网络的节点数与PCB上焊盘数一致。例如GND网络在网表里显示“127 nodes”则PCB上GND焊盘必须恰好127个含过孔。4. 常见问题与避坑指南十年踩坑总结的21个血泪教训输出环节的问题90%是重复性错误。我把十年间遇到的典型问题整理成速查表并附上根因分析和独家解决方案。这些问题不在官方文档里但每一条都来自真实产线反馈。问题现象根本原因快速排查法我的解决方案工厂反馈Gerber层名不识别AD默认层名TopLayer不符合IPC标准用文本编辑器打开.GBR文件搜索“%LN”字段看层名是否为GTL/GBL在Output Job的Gerber设置里启用“Custom Layer Names”手动输入标准缩写钻孔文件导入CAM报错“Invalid tool number”Excellon文件中Tool编号含字母如T01而工厂系统只认纯数字用记事本打开.NCD文件看第一行是否为“T01”在AD钻孔设置里取消勾选“Use Tool Names”改用纯数字Tool编号IPC网表显示网络数比PCB少“Include Unrouted Nets”未勾选DRC报错的悬空网络被过滤对比PCB上焊盘总数与网表nodes总数勾选该选项并在网表Comment字段添加“UNROUTED: TEST_POINT_ONLY”说明PDF图纸比例不对测量尺寸偏差PDF导出时Scale未设为1:1或打印机驱动缩放干扰用Adobe Acrobat测量PDF中10mm标尺看是否真为10mm在AD“Print Setup”里取消“Fit to Page”设Scale为100%输出选“Adobe PDF”虚拟打印机ODB文件工厂打不开ZIP包内路径含中文或空格或压缩算法不兼容用7-Zip解压看能否正常读取layers/目录导出前将工程路径改为纯英文如D:\PCB\Project1用Windows自带压缩工具打包阻焊开窗偏小焊盘露铜不足Gerber中Solder Mask层未做正片处理或开窗补偿值错误在GC-Prevue里叠加工艺层看GTS是否完全覆盖焊盘边缘在AD“Design → Rules → Solder Mask Expansion”里设为“100um”并勾选“Create Solder Mask from Pad Stack”丝印文字被阻焊覆盖Silkscreen层与Solder Mask层Z轴顺序错乱在GC-Prevue里关闭GTS层看GTO是否清晰在AD“Layer Stack Manager”里确保Silkscreen层在Solder Mask层之上板框GM1不闭合工厂无法识别外形Mechanical1层用Line绘制未用Region或Polygon用“Reports → Board Information”看Perimeter是否为0用“Design → Board Shape → Define from selected objects”选中闭合线段自动生成Region多层板内层Gerber缺失Output Job中未勾选Inner Layers检查生成文件夹看是否有G1.GBR、G2.GBR等在Gerber设置的“Layers”选项卡手动勾选所有Inner Layers钻孔报告孔径与实际不符PCB中焊盘孔径设为0.3mm但Drill Pair里设为0.35mm在“Tools → Pad Stack Editor”里对比焊盘Drill Size与Drill Pair定义统一在“Design → Rules → Hole Size”里设最小孔径所有焊盘继承该规则除了表格里的硬性问题还有些软性陷阱全是血泪经验陷阱1缓存污染导致输出异常AD的临时文件缓存位于C:\Users\用户名\AppData\Local\Altium\Altium Designer \Cache会累积旧数据导致新修改的层叠结构不生效。症状是修改了板厚但ODB里仍显示旧厚度。解决方案每次重大修改后执行“Tools → Reset System Cache”重启AD。陷阱2字体嵌入失效丝印文字用非系统字体如思源黑体导出Gerber后工厂显示为方块。AD不嵌入字体Gerber只存矢量路径。对策在“Design → Font”里将Silkscreen字体设为“TrueType”并在“Properties”里勾选“Convert TrueType Fonts to Graphics”AD会把文字转为线条。陷阱33D模型坐标偏移导出STEP后结构工程师反馈元件位置偏移5mm。根因是AD的3D原点与PCB原点不重合。解决在“Design → Board Outline → Define Board Cutout”重新定义板框确保3D模型坐标系与PCB坐标系对齐。陷阱4BOM中位号重复同一元件如10k电阻在BOM里出现两次位号R1、R1。这是AD的“Designator”属性未全局同步。对策在“Tools → Annotation → Annotate Schematics”选“Reset All”再“Update PCB”确保原理图与PCB位号严格一致。陷阱5Gerber文件体积爆炸一个简单板子Gerber超200MB上传失败。原因是“High Resolution”渲染开启生成海量小线段。对策在“Gerber Setup”里“Resolution”设为“1000 DPI”非5000并勾选“Merge Similar Primitives”。最后分享一个终极技巧建立输出Checklist模板。我在每个项目文件夹里放一个“Output_Checklist.xlsx”含10项必检条目如“Gerber层名标准化”“钻孔单位mm”“IPC网表含unrouted nets”每完成一项打钩项目经理签字后才发给工厂。十年下来输出返工率从37%降到0.8%。这不是繁琐而是把经验固化成肌肉记忆。5. 工厂对接实战如何用输出文件说服工程师而不是解释半天输出文件的价值最终体现在与工厂工程师的沟通效率上。我总结出一套“文件即语言”的对接法则让文件自己说话而不是靠你口头解释。以下是三个真实场景的应对策略。5.1 场景一工厂质疑“Gerber里没有板框”客户说“你们的Gerber没板框我们怎么切割”——这其实是沟通错位。Gerber里GM1层就是板框但工厂工程师可能没加载该层。我的做法不争辩直接发一个“GM1_Gerber_Screenshot.png”用红圈标出GM1层在GC-Prevue里的加载位置并附一句“请在CAM软件中加载GM1.GBR层此即板框轮廓。” 同时在PDF图纸第一页加粗写“Board Outline: GM1.GBR (Mechanical Layer 1)”。文件本身已说明一切无需多言。5.2 场景二工厂反馈“钻孔文件孔径不准”对方说“你们给的0.3mm孔实际打出来0.28mm。”——这通常是单位或格式问题。我的做法立刻导出“Drill_Report.TXT”截图其中一行“Tool T01: 0.3000 mm, Count: 42”再截图PCB上对应焊盘的属性Drill Size: 0.3000mm最后发一个“Drill_Calibration_Test.PDF”内含用0.3mm针规实测的工厂打样板照片。三份文件形成证据链工厂工程师一看就懂无需你解释“AD的精度是0.001mm”。5.3 场景三客户要求“增加阻焊开窗补偿”客户说“焊盘露铜不够加0.05mm开窗。”——这是设计规则调整不是输出问题。我的做法不改输出文件而是更新AD的“Solder Mask Expansion”规则为0.05mm重新运行Output Job生成新Gerber。同时在邮件里附上“Before_After_Comparison.PDF”左边是旧GerberGTS层覆盖焊盘边缘右边是新GerberGTS层外扩0.05mm用箭头标出差异。客户看到视觉对比立刻确认省去技术讨论。这套方法的核心是用文件构建信任而非用语言争取信任。工厂工程师每天看几百份文件没时间听你解释。但一份命名规范、结构清晰、自带校验的输出包会让他觉得“这设计师靠谱文件齐不用返工”。十年下来我合作的工厂都主动给我开绿色通道因为知道我的输出包一次通过率100%。这不是运气是把输出当成产品来打磨的结果——它不是设计的句号而是制造的起点。
返回列表