news 2026/6/13 6:36:34

AD导出Gerber文件注意事项完整示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AD导出Gerber文件注意事项完整示例

以下是对您提供的博文内容进行深度润色与工程化重构后的版本。本次优化严格遵循您的全部要求:

✅ 彻底去除AI痕迹,语言自然、专业、有“人味”,像一位资深PCB工程师在技术分享会上娓娓道来;
✅ 打破模板化结构,取消所有“引言/概述/总结”等程式化标题,代之以逻辑递进、层层深入的叙述流;
✅ 内容高度聚焦实战:每一段都指向一个具体问题、一个可执行动作、一个曾踩过的坑;
✅ 技术细节不堆砌,但关键参数(如4:6GKOLeading Zero Suppression)全部保留并赋予工程语境;
✅ 脚本与规则代码保留原意,但注释更贴近真实开发场景,去掉教学腔,增强可复用性;
✅ 全文无空泛结论,结尾落在一个可延续的技术动作上——让读者看完就想打开AD去验证。


为什么你导出的Gerber总被工厂打回来?——一位PCB工程师的七次翻车实录

去年冬天,我负责的一款工业网关板第三次被JLCPCB退回。邮件里只有一行字:“GKO layer missing — no board outline detected.”
我盯着屏幕看了两分钟,点开Mechanical 1层——那里明明画着一条闭合的矩形。再看Output Job里的层映射设置,Mechanical 1 → None
那一刻我才意识到:不是AD不会导出板框,而是它根本不知道你想让它导出什么。

这不是个例。过去三年,我参与评审的37个量产项目中,有12个在首单Gerber交付阶段卡住。其中8个问题,根源不在设计本身,而在于我们对Altium Designer导出机制的理解,还停留在“点Export → 勾全选 → 点OK”的直觉层面。

今天,我想和你一起把这件事拆开、揉碎、重装——不讲标准定义,不说IPC文档编号,只聊你在AD里真正要动的那几个开关、要改的那几行配置、要盯的那几个坐标点。


从“画得对”到“导得准”:层命名不是格式问题,是语义契约

很多工程师以为,只要PCB画得没问题,Gerber就是“自动翻译”。错。AD导出Gerber的过程,本质是一场设计意图与制造语义之间的双向翻译

比如你画了一个圆弧作为板边倒角,放在Mechanical 1层——这在AD里只是个图形;但当你把它映射为GKO.gbr时,它就变成了CAM系统眼中“不可切割、不可镀铜、必须优先识别”的物理边界。这个映射关系,不是AD猜出来的,是你亲手签下的契约。

所以第一个必须死磕的点,是层后缀命名。别再用TopLayer_Copper.gbr这种名字了。工厂的CAM软件不认识“Copper”,它只认GTL;不认识“Solder Mask”,只认GTS。这不是矫情,是行业三十年沉淀下来的最小通信公约数。

AD逻辑层名推荐Gerber后缀极性要求典型用途
Top LayerGTLPositive顶层走线
Bottom LayerGBLPositive底层走线
Top Solder MaskGTSNegative顶层阻焊开窗
Mechanical 1GKO板框轮廓(唯一合法层)
Drill DrawingGDR钻孔符号图(必须启用)

⚠️ 特别注意:GKO只能来自Mechanical 1。你哪怕把板框画在Keep-Out Layer上再复制粘贴过去,只要没在Output Job里手动绑定Mechanical 1 → GKO,AD就不会生成GKO文件——它连“这是板框”这个概念都不会建立。

我见过最离谱的一次:设计师把V-Cut槽画在Mechanical 15层,还在Output Job里映射成GKO。结果工厂收到的GKO文件里全是V-Cut线,真正的板框反而没了。CAM工程师打电话来问:“你们是要切掉整块板,还是只留V槽?”

这不是玩笑。这是每天都在发生的现实。


钻孔文件不是“附带产物”,它是独立于Gerber的第二套坐标系

很多人导出Gerber时,顺手勾上NC Drill,就以为万事大吉。直到工厂说:“PTH孔数量比焊盘少23个。”

真相往往是:你在Pad属性里忘了取消勾选Plated,于是那个本该是NPTH的定位孔,被AD当成PTH塞进了钻孔表;或者你用了混合单位——PCB原点设的是inch,而NC Drill输出却选了mm,导致所有坐标整体偏移25.4mm。

Excellon文件(.drl)和Gerber文件之间,没有自动对齐机制。它们各自拥有独立的原点、单位、精度和零点压制方式。你必须亲手把这两套系统拧在一起。

最关键的三个设置,藏在Output Job → NC Drill Outputs → Setup里:

  • Units:必须为Millimeters。哪怕你整个项目用inch画的,这里也得切过来。亚洲工厂99%按mm解析,差0.001inch就是0.0254mm,足够让BGA焊盘偏出阻焊窗。
  • Zero Suppression:Leading(前导零省略)。Trailing(尾零省略)会导致小数位丢失,比如12.3400变成12.34,在高密度板上可能引发坐标截断误差。
  • Route Mode:必须为Absolute。Incremental模式下每个坐标都是相对上一个点的偏移量,一旦中间某行出错,后面全乱。

还有一个隐藏陷阱:Drill Drawing层。它不是可选项,而是校验锚点。你导出的.drl文件里有127个孔,但GDR.gbr里只画了104个?那说明有23个孔没被AD识别为“需要钻的孔”——大概率是那些孔所在的Pad,Hole Size设成了0,或者Layer Stack里没给对应层分配钻孔能力。

✦ 小技巧:导出前,在PCB界面按Shift + D调出“Drill Table”,一眼看清所有钻孔工具编号、孔径、数量。如果看到T00或T99这种异常编号,立刻检查Pad Hole Size是否为0或负值。


原点不是“设计起点”,而是制造世界的经纬度原点

你有没有试过:在AD里把整个PCB往右拖了5mm,然后导出Gerber,发现丝印全偏了,但铜箔没偏?

这是因为——AD默认以“Design Origin”为Gerber坐标系原点,而这个Origin,是可以被任意拖拽的。它和你的板框、焊盘、甚至图纸边框,都没有强制绑定关系。

但工厂不行。他们的曝光机、钻孔机,只认一个原点:板框左下角内侧顶点。所有层(GTL、GTS、GKO、GDR)必须共享这个原点,否则就是灾难。

比如你导出的GTS.gbr原点在(0,0),而GKO.gbr原点在(-5,-5),那么阻焊层就会整体比板框小一圈——焊盘边缘的阻焊会缩进,裸铜变大,回流焊时极易连锡。

解决方法只有两个字:锁定

  1. 先确保Mechanical 1层画的是一个真正闭合的Region(不是Line拼的,不是Arc接的,必须是Region对象);
  2. Edit → Origin → Set,鼠标精准点在Region左下角顶点上;
  3. Output Job → Gerber Outputs → Options里,勾选Apply Board Outline as Gerber Offset

这个选项的意思是:“别管Design Origin在哪,所有Gerber层,都以Mechanical 1的闭合轮廓为基准,重新计算原点。”

✦ 验证是否生效?导出后,用GC-Prevue打开GKO.gbr和GTL.gbr,叠加查看。两者的左下角顶点必须完全重合。如果GTL漂在GKO里面或外面,说明Offset没生效。

顺便说一句:坐标精度别用默认的2:44:6(整数4位+小数6位)才是HDI板的底线。它意味着你能精确到0.001mm——这对0.3mm pitch的BGA来说,是焊盘中心不偏移的最后防线。


别靠肉眼检查Gerber,让AD自己告诉你哪里错了

我们团队现在导出Gerber前,必跑三段脚本。不是为了炫技,是因为人眼会疲劳,会跳读,会下意识忽略“看起来差不多”的偏差。

第一段,校验层命名合规性:

// CheckGerberLayerNaming.pas procedure CheckGerberLayerNames; var PCBDoc: IPCB_Document; Layer: IPCB_Layer; i: Integer; ExpectedSuffixes: array[0..5] of string = ('GTL', 'GBL', 'GTS', 'GBS', 'GTO', 'GBO'); begin PCBDoc := PCBServer.GetCurrentPCBDesign; for i := 0 to PCBDoc.LayerCount - 1 do begin Layer := PCBDoc.GetLayer(i); if (Layer.LayerName = 'Top Layer') and (not Layer.Name.EndsWith('GTL')) then ShowMessage('❌ ERROR: Top Layer must export as GTL suffix!'); end; end;

它不完美,但它能在你点击“Generate”前,弹窗提醒你:“兄弟,你又把Top Layer映射成GTP了。”

第二段,强制板框闭合检查:

// Rule: BoardOutlineMustBeClosed RuleName = "Board Outline Must Be Closed"; RuleScope = "Layer = Mechanical 1"; RuleCondition = "ObjectKind = 'Region' AND IsClosed = False"; RuleAction = "🛑 Error: Mechanical 1 region is not closed! Cannot generate valid GKO.";

这条规则一启用,只要你试图编译一个未闭合的Mechanical 1 Region,AD就会红标报错,连Gerber按钮都点不了。

第三段,是我在JLCPCB拒收邮件里抄来的检查项——钻孔与焊盘匹配度:

// CheckDrillToPadMatch.pas procedure CheckDrillToPadMatch; var Pad: IPCB_Pad; DrillCount, PadCount: Integer; begin DrillCount := 0; PadCount := 0; for Pad in PCBServer.GetAllPads do begin if Pad.HoleSize > 0 then begin Inc(PadCount); if Pad.Plated then Inc(DrillCount); end; end; if DrillCount <> PadCount then ShowMessage(Format('⚠️ Warning: %d plated pads but %d drill holes.', [PadCount, DrillCount])); end;

它不保证100%正确,但它能揪出最典型的“漏钻孔”错误。

这些脚本,我们都放在团队共享服务器上,新同事入职第一天,就要学会运行它们。因为经验告诉我们:所有靠“下次注意”的问题,都会在某个凌晨三点重现。


最后一句实在话

Gerber导出,从来不是设计流程的终点,而是制造流程的起点。
你导出的每一个.gbr.drl.rep,都不是冰冷的文本,而是你和工厂工程师之间,一份无声的、不容歧义的技术承诺。

所以别再说“AD导出Gerber很简单”。
它简单,是因为你已经踩过所有坑;
它复杂,是因为你还没开始认真对待那几个被灰色遮住的复选框、那几行被折叠的脚本、还有那个你以为“随便点哪都一样”的原点。

如果你刚改完Mechanical 1的板框,正准备导出Gerber——
不妨暂停30秒,打开Output Job,确认Mechanical 1 → GKO已勾选;
再按Shift+D看一眼Drill Table,数数T01到T05加起来是不是等于焊盘上的钻孔数;
最后,用GC-Prevue加载GKO和GTL,叠在一起,眯起眼睛,看看左下角是不是严丝合缝。

做完这些,再点Export。

你导出的,就不再是一堆文件。
而是一块,能一次点亮的板子。

如果你在实际操作中遇到了其他“看似合理、实则致命”的配置组合,欢迎在评论区贴出截图,我们一起解剖。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 13:37:46

通义千问3-14B工具链测评:vLLM/Ollama/LMStudio对比推荐

通义千问3-14B工具链测评&#xff1a;vLLM/Ollama/LMStudio对比推荐 1. 为什么Qwen3-14B值得你花5分钟了解 你有没有遇到过这样的困境&#xff1a;想用一个真正好用的大模型做本地开发&#xff0c;但发现30B级别的性能总要牺牲部署便利性——要么得租云服务器&#xff0c;要么…

作者头像 李华
网站建设 2026/6/10 13:51:33

Glyph环保监测应用:卫星图像分析系统部署教程

Glyph环保监测应用&#xff1a;卫星图像分析系统部署教程 1. 为什么用Glyph做环保监测&#xff1f; 你可能已经注意到&#xff0c;现在很多环保部门、科研团队和公益组织都在用卫星图看森林变化、水体污染、城市扩张这些事。但问题来了——传统方法要么靠人工目视判读&#x…

作者头像 李华
网站建设 2026/6/10 23:14:40

开发者首选工具推荐:YOLO26预装镜像免配置部署

开发者首选工具推荐&#xff1a;YOLO26预装镜像免配置部署 你是否还在为部署目标检测环境反复踩坑&#xff1f;CUDA版本不匹配、PyTorch与torchvision版本冲突、OpenCV编译失败、依赖包缺失……这些曾让无数开发者深夜抓狂的问题&#xff0c;现在只需一键启动就能彻底告别。本…

作者头像 李华
网站建设 2026/5/28 16:34:28

宠物行为识别项目:用YOLOv12镜像快速搭建

宠物行为识别项目&#xff1a;用YOLOv12镜像快速搭建 你有没有想过&#xff0c;家里的猫主子跳上沙发时尾巴怎么摆、狗狗拆家前会不会有特定动作预兆、仓鼠啃笼子和玩耍时的肢体语言有什么区别&#xff1f;这些看似日常的细节&#xff0c;其实藏着大量可量化的动物行为特征。而…

作者头像 李华
网站建设 2026/6/12 12:16:45

Llama3-8B边缘设备部署探索:轻量化适配实战案例

Llama3-8B边缘设备部署探索&#xff1a;轻量化适配实战案例 1. 为什么是 Llama3-8B&#xff1f;一张显卡跑起来的实用主义选择 很多人一听到“大模型”&#xff0c;下意识就想到A100、H100、多卡并行、千兆显存……但现实是&#xff0c;绝大多数开发者、学生、中小团队手头只…

作者头像 李华