1. 工程输出这件事,远比想象中要命
画完PCB最后一步是什么?导出文件发给板厂和贴片厂。听起来简单,但我见过太多人在这里翻车——原理图PDF模糊得看不清网络标号,Gerber少了一层阻焊导致板子回来焊盘全被盖住,BOM里封装名和实际物料对不上导致贴片厂打电话来骂人。这些问题不会在画图阶段暴露,偏偏卡在最后交付的环节,轻则返工两三天,重则整批板子报废。
Altium Designer作为国内使用最广的EDA工具之一,它的输出体系其实相当完善,核心就是OutJob(输出作业)这个机制。但很多人画了几年板子,还是一个个菜单去点“File → Export”,效率低不说,还容易漏。这篇内容就是把我这些年从AD09到AD24各个版本踩过的输出坑,以及一套可复用的标准化输出流程,完整地拆开讲清楚。不管你是刚画完第一块两层板的新手,还是已经做过几十款产品的老手,这套流程都能直接拿去用。
整篇内容会围绕四条输出主线展开:原理图PDF、Gerber文件、钻孔文件、BOM清单。每一条线我都会讲清楚配置逻辑、参数含义、常见坑点和验证方法。最后给出一套用OutJob一键打包的完整方案,让你以后每次输出只需要点一次按钮。
2. 输出前的准备工作:别急着点导出
2.1 工程完整性检查清单
在动任何导出操作之前,有几项检查必须做完。我吃过亏:有一次原理图改了一版,PCB没同步,导出的Gerber是旧的,板子回来发现少了个电阻的位置。所以导出前请逐项确认:
- 原理图与PCB同步:在PCB界面执行
Design → Update PCB Document,确认没有未同步的改动。反过来也要检查,原理图里有没有PCB中已删除的元件还挂着。 - DRC检查通过:
Tools → Design Rule Check,至少确保没有短路、间距违规和未布线网络。板厂不会帮你检查这些,他们只按Gerber做。 - 层设置确认:
Design → Layer Stack Manager,确认层数、板厚、铜厚和实际需求一致。特别是多层板,层叠顺序搞反了阻抗就对不上。 - 原点设置:
Edit → Origin → Set,把原点设在板框左下角。这样Gerber坐标从零开始,板厂和贴片厂都好定位。 - 板框闭合检查:板框必须在Keep-Out层或Mechanical层形成闭合轮廓,否则板厂无法识别外形。
注意:以上检查做完后,建议把工程文件做一次完整备份。输出过程中如果发现需要改设计,有备份可以快速回退。
2.2 版本差异与兼容性说明
Altium Designer的版本跨度很大,从早期的AD09到现在的AD24,输出界面和选项有差异。我整理了一个对照表,方便你对照自己用的版本:
| 功能项 | AD09-AD17 | AD18-AD20 | AD21-AD24 |
|---|---|---|---|
| OutJob入口 | File → Smart PDF / 单独菜单 | File → Smart PDF / OutJob | File → Smart PDF / OutJob |
| Gerber导出 | File → Fabrication Outputs | File → Fabrication Outputs | File → Fabrication Outputs |
| BOM导出 | Reports → Bill of Materials | Reports → Bill of Materials | Reports → Bill of Materials |
| 3D PDF | 不支持 | 支持 | 支持 |
| 输出预览 | 有限 | 较完善 | 完善 |
版本越新,OutJob的功能越强,特别是AD21之后支持输出前的实时预览,能省掉很多反复导出的时间。如果你还在用AD09或AD14,建议至少升级到AD20以上,输出体验差距很大。
2.3 输出目录结构规划
我习惯在工程目录下建一个Output文件夹,里面按类型分子目录:
Project/ ├── Project.PrjPcb ├── Schematic/ ├── PCB/ └── Output/ ├── PDF/ ├── Gerber/ ├── Drill/ └── BOM/这样做的好处是:发给板厂时直接打包Gerber和Drill两个文件夹,发给贴片厂时给BOM和坐标文件,不会混在一起。而且每次重新输出时覆盖对应目录,不会产生一堆带时间戳的垃圾文件。
3. 原理图PDF输出:清晰度是底线
3.1 Smart PDF的配置要点
原理图PDF是给谁看的?硬件评审的同事、写驱动的软件工程师、做测试的产线人员。如果PDF模糊到看不清网络标号,这份文档就是废的。AD自带的Smart PDF功能其实很好用,但默认设置导出的质量往往不够。
操作路径:File → Smart PDF,然后按向导走。关键在几个地方:
纸张大小和方向:建议选A3横向。A4竖版对于稍复杂的原理图会挤成一团,A3横向能容纳更多内容,打印出来也清楚。
缩放模式:选“Fit Document to Page”还是“Custom Scale”?我的经验是,如果原理图页数少、元件密度低,用Fit Document;如果页数多、每页内容密集,用Custom Scale设成1.5倍或2倍,然后分页输出。宁可多几页,也不要挤在一起看不清。
颜色模式:彩色还是黑白?彩色PDF文件大但信息全,黑白文件小但可能丢失层次。我一般选彩色,因为现在没人缺那点存储空间。
输出内容选择:在向导的“Export Options”里,可以勾选要输出的内容。至少勾选:
- Schematic Sheets(原理图页)
- Component Parameters(元件参数)
- Net Labels(网络标号)
- Pin Numbers(引脚编号)
3.2 解决PDF模糊的实操方法
“AD09原理图导出PDF怎么不清晰”这个问题在搜索里出现频率很高。根本原因通常是两个:一是缩放比例太小,二是字体渲染方式不对。
方法一:调整缩放比例。在Smart PDF向导的“Page Settings”里,把缩放从默认的“Fit Document”改成“Custom”,然后设成200%或300%。这样导出的PDF放大后依然清晰。
方法二:更换字体。有些字体在PDF渲染时会发虚,特别是宋体。把原理图里的字体统一改成Arial或Consolas,这两种字体在PDF里渲染最清晰。批量改字体的方法:在原理图界面按Shift+F调出查找相似对象,选中所有Text,然后在属性面板里统一改字体。
方法三:用虚拟打印机。如果Smart PDF怎么调都不满意,可以装一个PDF虚拟打印机(比如PDFCreator),然后在AD里执行File → Print,选择虚拟打印机,在打印设置里把DPI设成600以上。这样出来的PDF质量最高,缺点是文件会比较大。
实操心得:我一般用Smart PDF的Custom Scale 200% + Arial字体,出来的PDF在100%缩放下清晰可读,放大到400%也不糊。这个组合用了好几年,没出过问题。
3.3 多页原理图的合并与书签
复杂项目原理图动辄几十页,导出的PDF如果没有书签,找一页要翻半天。Smart PDF支持自动生成书签,在向导的“Additional Options”里勾选“Generate Bookmarks”就行。
另外,如果原理图分成了多个子工程,可以分别导出PDF然后用PDF合并工具合并。我常用的是PDF24 Creator,免费且支持批量合并和书签保留。
4. Gerber文件输出:板厂只认这个
4.1 Gerber格式选择:RS-274X还是X2
AD支持两种Gerber格式:RS-274X(扩展Gerber)和X2(扩展Gerber X2)。选哪个?
RS-274X:兼容性最好,所有板厂都支持。缺点是文件里不包含网络名、元件位号等属性信息。
X2:在RS-274X基础上增加了属性信息,板厂可以做更智能的DFM检查。但有些小厂的老设备可能不认。
我的建议:默认用RS-274X,除非板厂明确说支持X2。兼容性优先,少给自己找麻烦。
4.2 层输出配置详解
操作路径:File → Fabrication Outputs → Gerber Files。打开后有几个标签页,逐个说:
General标签:
- Units选Inches还是Millimeters?国内板厂大多习惯Millimeters,但Inches也没问题。关键是和板厂确认好,别一个用英制一个用公制。
- Format选2:4还是2:5?2:4表示整数2位小数4位,精度0.1mil;2:5精度更高,0.01mil。一般选2:4就够了,选2:5文件会大一些但更精确。
Layers标签:
- 在“Plot Layers”里选“Used On”,AD会自动勾选用到的层。
- 必须确保勾选了:Top Layer、Bottom Layer、Top Overlay、Bottom Overlay、Top Solder、Bottom Solder、Keep-Out Layer、Mechanical 1(板框)。
- 如果是多层板,还要勾选内层和对应的阻焊、助焊层。
Drill Drawing标签:
- 这个标签是生成钻孔图的,但注意:这里生成的钻孔图只是给人工看的参考图,真正的钻孔文件要单独导出。很多人在这里勾了钻孔图就以为完事了,结果板厂说没有钻孔文件。
Apertures标签:
- 勾选“Embedded Apertures”把光圈信息嵌入Gerber文件,这样板厂不需要额外的光圈文件。
Advanced标签:
- 勾选“Use Software Arcs”让AD用软件方式生成圆弧,兼容性更好。
- “Batch Mode”选“Separate Files”,每个层生成独立的Gerber文件。
配置完后点OK,AD会在工程目录下生成一个ProjectName.Cam文件夹,里面是各个层的Gerber文件。
4.3 Gerber验证:别等板厂告诉你错了
导出Gerber后,必须验证。我见过太多人导出后直接打包发走,结果板厂反馈文件有问题,来回耽误好几天。
验证方法有两种:
方法一:用AD自带的CAM编辑器。在File → Fabrication Outputs → Gerber Files导出后,AD会自动打开CAM编辑器。在里面可以逐层查看,确认:
- 每层的图形是否完整
- 阻焊层是否覆盖了不该覆盖的焊盘
- 丝印层是否压到了焊盘上
- 板框是否闭合
方法二:用第三方Gerber查看器。我常用的是免费的Gerber Viewer(比如KiCad自带的Gerber查看器,或者在线工具)。把导出的Gerber文件拖进去,能直观看到每一层的效果。
注意:验证时重点看阻焊层。阻焊层是负片逻辑——画了的地方是开窗(不盖油),没画的地方是盖油。如果阻焊层画反了,板子回来焊盘全被绿油盖住,没法焊接。
4.4 常见Gerber输出问题速查
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 板厂说缺少某层 | 导出时未勾选该层 | 重新导出,在Layers标签勾选所有需要的层 |
| 焊盘被绿油盖住 | 阻焊层画反或未导出 | 检查阻焊层负片逻辑,确认导出时勾选了Solder层 |
| 板框不闭合 | Keep-Out层有缺口 | 在Keep-Out层补全板框,确保闭合 |
| 丝印压焊盘 | 丝印层设计违规 | 调整丝印位置,或让板厂做丝印裁剪 |
| 钻孔位置偏移 | 原点设置不一致 | 统一在板框左下角设原点,重新导出 |
5. 钻孔文件输出:和Gerber同等重要
5.1 钻孔文件与钻孔图的区别
这是最容易混淆的地方。钻孔文件(NC Drill File)是给数控钻机用的,包含每个孔的位置、孔径、类型(通孔/盲孔/埋孔)。钻孔图(Drill Drawing)是给人工看的参考图,画在Gerber层上。
板厂需要的是钻孔文件,不是钻孔图。但很多板厂也会要钻孔图作为核对参考。所以两个都导出,打包时一起给。
5.2 NC Drill文件导出步骤
操作路径:File → Fabrication Outputs → NC Drill Files。
关键配置:
- Format:和Gerber保持一致,选2:4或2:5。
- Units:和Gerber一致,Millimeters或Inches。
- Zero Suppression:选“Suppress Leading Zeros”或“Suppress Trailing Zeros”,和板厂确认。一般选Suppress Leading Zeros。
- Coordinate Positions:选“Reference to Absolute Origin”,确保和Gerber用同一个原点。
点OK后生成.txt格式的钻孔文件,通常命名为ProjectName.DRR和ProjectName.TXT。
5.3 钻孔表与孔径统计
导出钻孔文件后,AD会同时生成一个钻孔表(Drill Table),列出所有孔径和数量。这个表要核对:
- 孔径种类是否合理?比如0.3mm的孔太多,可能是过孔设计得太小,板厂加工成本会高。
- 有没有异常孔径?比如0.1mm的孔,可能是误操作产生的。
- 槽孔(Slot)是否正确识别?如果有槽孔,确认钻孔文件里包含了槽孔信息。
实操心得:我一般会把钻孔表截图发给板厂确认,特别是第一次合作的板厂。确认孔径和数量没问题后再批量生产,能避免很多扯皮。
5.4 钻孔文件常见问题
问题一:钻孔文件和Gerber对不上。通常是原点设置不一致导致的。解决方法是重新设原点,然后重新导出Gerber和钻孔文件。
问题二:槽孔丢失。AD里用槽孔(Slot)需要在Pad属性里设置“Hole Shape”为Slot。如果导出后槽孔变成圆孔,检查这个设置。
问题三:盲埋孔未正确输出。多层板如果有盲埋孔,需要在Layer Stack Manager里正确定义孔类型,否则钻孔文件里不会包含。
6. BOM清单生成:贴片厂的命根子
6.1 BOM的核心字段
一份合格的BOM至少包含以下字段:
| 字段名 | 说明 | 是否必须 |
|---|---|---|
| Comment | 元件值/型号 | 必须 |
| Designator | 位号 | 必须 |
| Footprint | 封装名 | 必须 |
| Quantity | 数量 | 必须 |
| Manufacturer Part Number | 厂家料号 | 推荐 |
| Description | 描述 | 推荐 |
| Supplier | 供应商 | 可选 |
操作路径:Reports → Bill of Materials。打开后是一个配置界面,左边是可选字段,右边是当前BOM包含的字段。把需要的字段拖到右边,调整顺序。
6.2 BOM分组与合并
AD的BOM默认按Comment分组,但有时候同一个Comment对应不同封装,或者同一个物料有不同的位号前缀。这时候需要调整分组规则。
在BOM配置界面的“Grouped Columns”里,可以设置按哪些字段分组。我一般按Comment + Footprint分组,这样同一个值但不同封装的元件会分开列出,避免贴片厂拿错料。
导出格式:选Excel格式(.xlsx),方便贴片厂直接使用。CSV格式也可以,但Excel更通用。
6.3 BOM导出后的核对清单
BOM导出后,必须逐项核对:
- 位号连续性:有没有跳号?比如R1、R2、R4,缺了R3。可能是原理图里删了元件但位号没重新编号。
- 数量一致性:BOM总数量是否和PCB上的元件数量一致?
- 封装匹配:BOM里的封装名是否和PCB里的实际封装一致?我遇到过BOM写0603但PCB用的是0805的情况,贴片厂按BOM备料,结果料大了焊不上。
- 极性元件方向:二极管、电解电容、IC的极性是否在BOM里有标注?最好在BOM里加一列“Orientation”说明方向。
- 替代料信息:如果有替代料,在BOM里备注清楚,让贴片厂知道哪些可以替换。
注意:BOM里的“Comment”字段最好写具体型号,不要只写“10K”或“100nF”。写“10K 1% 0603”比只写“10K”更明确,贴片厂不会拿错精度。
6.4 坐标文件输出
贴片厂除了BOM,还需要坐标文件(Pick and Place File),告诉贴片机每个元件的位置和旋转角度。
操作路径:File → Assembly Outputs → Generates Pick and Place Files。
配置要点:
- Units:和Gerber一致。
- Format:选CSV或TXT,贴片厂一般都能读。
- Include:勾选Top Layer和Bottom Layer,双层贴片都要输出。
坐标文件导出后,和BOM一起打包发给贴片厂。有些贴片厂会要求把BOM和坐标文件合并成一个文件,这个看具体要求。
7. OutJob:一键打包所有输出
7.1 为什么要用OutJob
前面讲的每一步都是手动操作,一个项目下来要点七八次菜单,容易漏。OutJob的作用就是把这些输出配置保存下来,以后每次输出只需要点一次“Run”,所有文件自动生成到指定目录。
操作路径:File → New → Output Job File。新建后是一个矩阵式的配置界面,左边是输出类型,右边是输出目标。
7.2 OutJob配置详解
添加输出项:在“Outputs”区域右键 → Add Output → 选择需要的输出类型。把前面讲的PDF、Gerber、NC Drill、BOM、Pick and Place都加进去。
设置输出目标:每个输出项右边有“Output Container”列,可以选:
- PDF Output:生成PDF文件
- Folder Structure:生成文件夹结构
- Generated Files:生成到指定目录
我一般选“Folder Structure”,然后在“Output Directory”里指定Output/目录,这样所有文件自动分门别类放好。
配置每个输出项的详细参数:双击每个输出项,会打开对应的配置对话框,和手动操作时一样。配置一次,以后就不用再配了。
添加Run Script:如果需要在输出前后执行脚本(比如自动重命名文件),可以在OutJob里添加Script。这个高级功能一般用不到,但知道有这回事。
7.3 OutJob的复用与模板化
配置好一个OutJob后,可以把它保存为模板,以后新项目直接复制过去用。方法:把.OutJob文件复制到新工程目录,然后在AD里打开,修改输出路径即可。
更彻底的做法是做一个工程模板(Project Template),把OutJob、层叠设置、设计规则都预置好。新建项目时直接基于模板创建,省掉大量重复配置。
实操心得:我维护了一套自己的工程模板,包含常用的两层板和四层板配置,OutJob里预置了所有输出项。新项目从模板创建,画完图直接Run OutJob,五分钟内所有输出文件齐活。这个习惯帮我省了至少几百个小时的重复劳动。
8. 输出后的验证与交付
8.1 文件打包规范
所有输出文件生成后,按以下结构打包:
ProjectName_Output_YYYYMMDD/ ├── Gerber/ │ ├── ProjectName.GTL │ ├── ProjectName.GTS │ ├── ProjectName.GTO │ ├── ProjectName.GBL │ ├── ProjectName.GBS │ ├── ProjectName.GBO │ ├── ProjectName.GKO │ └── ... ├── Drill/ │ ├── ProjectName.TXT │ └── ProjectName.DRR ├── BOM/ │ ├── ProjectName_BOM.xlsx │ └── ProjectName_PnP.csv └── PDF/ └── ProjectName_Schematic.pdf打包时用ZIP格式,文件名包含项目名和日期,方便版本管理。
8.2 发给板厂的检查清单
发给板厂前,最后确认:
- Gerber文件是否包含所有层?
- 钻孔文件是否和Gerber原点一致?
- 板框是否闭合?
- 阻焊层是否正确?
- 有没有特殊的工艺要求需要备注?(比如阻抗控制、沉金厚度、板厚公差)
8.3 发给贴片厂的检查清单
发给贴片厂前,确认:
- BOM字段是否完整?
- 坐标文件是否包含所有元件?
- 极性元件方向是否标注?
- 有没有需要提前备料的长交期物料?
9. 那些年我踩过的输出坑
9.1 阻焊层反了,整批板子报废
这是我早期最惨痛的一次教训。当时导出Gerber时没注意阻焊层的负片逻辑,结果板子回来所有焊盘都被绿油盖住。板厂说文件没问题,是我设计的问题。后来才搞明白:阻焊层画了的地方是开窗,没画的地方是盖油。我画反了,把该开窗的地方全盖上了。
教训:导出Gerber后一定要用CAM编辑器逐层检查,特别是阻焊层。现在我的习惯是导出后先看Top Solder层,确认焊盘位置是空的(开窗),非焊盘位置是实的(盖油)。
9.2 BOM封装名和实际不符
有一次BOM里写的是0603封装,但PCB里实际用的是0805。贴片厂按BOM备料,料到了发现焊不上,整批板子返工。原因是原理图里改了封装,但BOM没重新生成。
教训:每次改完设计,BOM必须重新生成。不要用旧的BOM文件。现在我的OutJob里BOM是必选项,每次Run都会重新生成,杜绝了这个问题。
9.3 钻孔文件原点偏移
有一次板厂反馈钻孔位置整体偏移了2mm。查了半天发现是Gerber和钻孔文件用了不同的原点。Gerber用的是绝对原点,钻孔文件用的是相对原点。
教训:导出前统一设原点,Gerber和钻孔文件都用同一个原点。现在我的流程里,设原点是第一步,设完就不再动。
9.4 PDF模糊被同事吐槽
早期导出的原理图PDF模糊得看不清网络标号,硬件评审时被同事吐槽。后来调整了缩放比例和字体,问题解决。
教训:PDF是给人看的,清晰度是底线。宁可多花几分钟调整设置,也不要输出一份看不清的文档。
10. 进阶技巧:让输出更快更稳
10.1 用脚本自动化输出
AD支持脚本(Script)自动化。可以写一个Delphi Script或VBScript,自动执行OutJob。对于需要频繁输出的项目,这个能省不少时间。
一个简单的VBScript示例:
' 自动运行OutJob并导出所有文件 Procedure RunOutJob; Begin ResetParameters; AddStringParameter('Action', 'Run'); AddStringParameter('ObjectKind', 'OutputJob'); RunProcess('WorkspaceManager:RunOutJob'); End;把脚本绑定到快捷键,一键输出。
10.2 版本控制与输出管理
如果项目用Git或SVN做版本控制,建议把Output目录加入.gitignore,不纳入版本管理。因为输出文件是派生物,每次都能重新生成,没必要占版本库空间。
但OutJob文件要纳入版本管理,因为它是配置,需要跟踪变更。
10.3 多板拼板的输出处理
如果是拼板(Panel),输出时要注意:
- Gerber按拼板后的整体输出,不是单板。
- 钻孔文件包含拼板后的所有孔。
- BOM和坐标文件按单板输出,贴片厂自己按拼板方式处理。
有些板厂提供拼板服务,可以只给单板Gerber,让他们拼。这个看具体要求。
11. 不同版本AD的输出差异与应对
11.1 AD09到AD17:老版本的特殊处理
老版本AD没有OutJob的完整功能,输出主要靠手动。但可以通过“Smart PDF”和“Fabrication Outputs”组合完成。老版本导出Gerber时,光圈文件(Aperture)需要单独生成,记得勾选“Embedded Apertures”。
11.2 AD18到AD20:过渡版本
这个区间AD引入了很多新功能,OutJob已经比较完善。但有些版本的BOM导出有bug,导出的Excel格式可能有问题。如果遇到,改用CSV格式。
11.3 AD21到AD24:现代版本
新版本AD的输出功能最完善,支持实时预览和更智能的DFM检查。如果条件允许,建议用AD21以上版本。AD24还增加了AI辅助检查功能,能在输出前发现一些潜在问题。
12. 写给新手的快速上手建议
如果你刚接触AD,或者第一次做完整的工程输出,按这个顺序来:
- 先手动走一遍完整流程:Smart PDF → Gerber → NC Drill → BOM → Pick and Place。每一步都亲手操作,理解每个参数的含义。
- 走通一遍后,配置OutJob,把刚才的手动操作固化下来。
- 用OutJob重新输出一遍,对比手动输出的结果,确认一致。
- 把OutJob保存为模板,以后新项目直接复用。
- 每次输出后,用CAM编辑器验证Gerber,用Excel打开BOM核对。
这个流程走三遍,你就能形成肌肉记忆,以后输出就是几分钟的事。
13. 最后分享几个压箱底的小技巧
技巧一:Gerber文件命名规范化。AD默认的Gerber文件名是ProjectName.GTL、ProjectName.GBL这种,板厂能识别但不够直观。可以在OutJob里配置输出文件名,改成TopLayer.gtl、BottomLayer.gbl这种,板厂一看就懂。
技巧二:BOM里加一列“位号范围”。比如“R1-R10, R15-R20”,这样贴片厂核对数量时更方便。AD的BOM导出支持位号合并,在配置里勾选“Designator”列的“Merge”选项。
技巧三:钻孔文件里加注释。在NC Drill导出时,可以勾选“Generate Drill Table”生成钻孔表,里面包含孔径和数量。把这个表也打包给板厂,他们核对起来更快。
技巧四:PDF加水印。如果原理图PDF要发给外部人员,可以在Smart PDF里加“Confidential”水印,防止泄露。这个选项在“Additional Options”里。
技巧五:定期清理旧输出。Output目录会越积越多,建议每次输出前清空旧文件,或者用带日期的子目录管理。我一般保留最近三个版本,更早的删掉。
这套流程我从AD09用到AD24,中间踩了无数坑,也优化了无数次。现在我的输出环节基本不会出问题,板厂和贴片厂也很少因为文件问题找我。希望这些经验能帮你少走弯路,把更多时间花在设计本身,而不是在输出环节反复折腾。