ARTICLE DETAIL

资讯详情

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

AD导出ODB++文件格式全流程解析与投板避坑指南

AD导出ODB++文件格式全流程解析与投板避坑指南 先说一个这两年越来越明显的趋势我手上接触的板厂陆续开始在投单系统里把 ODB 列为标准格式甚至有的厂明确表示 Gerber 只作为参考。原因不复杂——ODB 一个 .tgz 文件就能装下一整块板子的全部数据比一堆 Gerber 钻孔 坐标文件的组合可靠得多。在 Altium Designer大家习惯叫 AD这里说的是画板子那个 AD不是搞网络账号管理的那个域控里导出 ODB Files.tgz 文件格式这个功能很多人一眼扫过但真到用的时候会碰上一堆小问题导出来的文件打不开、钻孔丢了、铺铜不对、板厂说层叠缺失。这篇文章围绕 AD 导出 ODB 的完整流程把每个选项讲清楚把能提前踩平的坑先替你踩一遍。不管你是第一次投板的新手还是已经会导出但偶尔翻车的工程师读完应该都能少走几段弯路。1. 先搞清楚ODB 到底是什么为什么板厂越来越认它1.1 一个 tgz 装下整块板子的数据ODB 的出身和 Gerber 完全不同。Gerber 本质上是“图形照片”的集合每一层铜、每一层丝印、每一层阻焊都要单独导出一个文件再加上钻孔文件、坐标文件、BOM一堆文件凑在一起才勉强算一套完整的投板资料。而 ODB 是一种数据库式的数据格式把板卡的叠层、走线、钻孔、焊盘、网表、元件位置、铜皮属性等全部集成在一个统一的数据结构里最后通过 tar 打包、gzip 压缩生成一个 .tgz 压缩包也就是你在标题里看到的“AD 导出 ODBFiles.tgz 文件格式”。所以从投板角度说ODB 最大的价值是“自洽”。板厂拿到一个 tgz解压后所有信息都在里面不需要再去猜你的 Gerber 对应哪个层、你的钻孔文件是公制还是英制、你的原点是不是和坐标文件一致。这对高密度板、HDI 板、带盲埋孔的板子尤其友好因为这类板子的信息如果拆散成多个文件任何一个文件出错都可能造成整单返工。1.2 ODB 与 Gerber 的本质区别我见过不少工程师觉得“Gerber 用了十几年了换什么 ODB”。站在个人角度如果你画的板子非常简单双层板、通孔、线宽线距都很大用 Gerber 交板确实没什么问题。但一旦涉及多层、BGA 扇出、阻抗控制、盘中孔这些场景Gerber 的短板就很明显对比项ODBGerber数据结构单一数据库多类数据集成平面图形文件多文件松散组合叠层信息内含完整 Stackup 与材料信息不含需另附叠层说明文档钻孔数据自动集成在包内单独 NC Drill 文件易漏发元件与网表包含元件位置、旋转、网表不含需额外提供坐标与 BOM文件数量通常 1 个 tgz少则十几个、多则几十个文件铜皮与负片表达可保留对象与网络属性只是图形没有网络概念工厂兼容性需工厂支持 ODB 工具链几乎所有工厂都认这张表不是说 Gerber 该被淘汰而是说明 ODB 在信号完整性要求高、叠层复杂、需要自动化检查的板子上天生更占优势。板厂导入 ODB 后可以直接跑 DRC、比对网表、查连通性这些操作在纯 Gerber 时代要靠人工或额外文件才能完成。1.3 什么时候该用 ODB什么时候继续用 Gerber我个人的选择逻辑很简单四层以上、有盲埋孔、板厂明确要求 ODB这三条满足任何一条优先用 ODB。如果板厂系统里两种格式都支持我也倾向给 ODB 作为主文件Gerber 作为备份附上。反过来那种精度要求不高、工艺成熟的简单双面板或者合作的板厂只有 Gerber 流程那就老老实实出 Gerber没必要为了新格式去折腾。还有一种情况要单独说有些板厂接收 ODB 只是为了做 CAM 编辑实际生产还是内部转成自己的流程。这时候你在 AD 里设置得越规范对方处理起来越省事返工沟通成本也越低。所以接下来这几步导出前准备比点击“Export”本身更值得花时间。2. 导出前必须做好的功课别让设置坑了整块板2.1 DRC 清零是底线很多人导出 ODB 的时候特别随意DRC 报一堆错也照样点导出。结果板厂导入 ODB 后系统自带的 DRC 一跑问题全暴露出来短路、间距违规、未连网络轻则邮件来回确认重则直接退单。ODB 里带了网表信息板厂的 CAM 系统能自动做连通性检查这既是优点也是“照妖镜”——Gerber 时代藏着掖着的小毛病在 ODB 面前基本藏不住。所以我每次导出前固定流程是先跑一遍 Design Rule Check弹出 Messages 面板把 Error 级别的问题清零。Warning 可以酌情保留但 Error 必须处理干净。特别是最小间距、最短走线、未连线的 Pad这类问题在 ODB 里会被当成网络缺失或短路来报。跑完 DRC 之后再复查一下未连线的报告养成习惯能省很多后续扯皮。2.2 叠层和钻孔层对ODB 信息的源头ODB 和 Gerber 一个很大的区别是它会携带完整的叠层信息。但有个前提这些信息的源头在 AD 的 Layer Stack Manager 里。如果你画完板子从没正经配置过叠层每个内层都是一行默认的“36oz 铜厚 Core 厚度”导出的 ODB 在板厂眼里就是一份不合格的叠层档案。实操中建议检查三处每一层铜厚是否与板厂沟通的一致表底层 1oz 还是 0.5oz内层 1oz 还是 2oz必须写清楚。介质层材料名称和厚度尤其是 JLC7628 之类常见板材名称不一定能完全精确但厚度别写错。外层表面处理比如沉金厚度可以在叠层备注里注明。另外就是盲埋孔的 Layer Pairs。ODB 自动集成钻孔数据依赖你在 AD 里配置的钻孔层对。如果盲孔、埋孔没有在 Layer Pairs 里正确设置导出后的 tgz 里钻孔信息可能缺层或错乱。我的建议是在导出前打开 Drilling 相关设置逐项核对孔类型、层对、钻孔符号特别是埋孔和盲孔别指望 ODB 帮你“自动补齐”它的自动只是基于你给的数据。2.3 板框、单位、原点的统一这三样看似基础其实是导出 ODB 时最容易出现低级问题的地方。板框方面AD 里板框通常画在 Mechanical 1 层。导出 ODB 时系统需要知道哪一层代表板框这需要在导出设置里明确指定 Board Outline 对应的机械层。如果你板框层设置得乱七八糟板厂看到的 outline 可能不是你想要的封闭外形。单位方面强烈建议导出时统一使用公制 mm或者至少保证整板设计单位一致。AD 里混用 mil 和 mm 很容易导致 ODB 里的坐标数据出现 25.4 倍误差。我自己吃过一次亏设计时用 mil导出设置里误选了 mm板厂反馈整体尺寸放大了好几倍排查半天才发现是单位换算的问题。原点方面ODB 导出时坐标原点的选择会影响板厂贴片和钻孔时的基准。建议把原点设置在板框左下角或者与器件坐标文件保持一致。AD 里通过 Edit Origin 重设原点导出前确认 Origin Location 符合预期即可。其实多数板厂不会因为你原点设置位置不同就出问题但保持一致能减少很多对稿时的沟通成本。3. AD 导出 ODBFiles 的完整流程3.1 菜单入口与对话框总览在 AD 中导出 ODB 的入口不算难找但不同版本位置略有差异。较早版本里可以从 File Fabrication Outputs ODB Files 进入新一些的版本则放在 File Export ODB Files。如果你用的 AD 版本界面经常调整直接在命令搜索框输入“ODB”一般都能快速定位。点击之后会弹出导出设置对话框核心区域大致包括输出目录选择、输出类型选择、ODB 版本选择、单位选择以及层层映射表。第一次打开这个对话框的人往往会被那一大张图层列表吓到其实它只是把 AD 的各层对应到 ODB 的标准层名而已只要你设计里的层没乱基本不需要手动改。3.2 关键选项逐项怎么选我可以直接给你一套我常用的组合输出目录单独建一个和项目同名的文件夹别散落在其他目录里。输出文件类型选择生成 .tgz 压缩包而不是只输出文件夹。有的版本里选项写着“TGZ Archive”或“Compressed (TGZ)”选它就对了。ODB 版本优先选 7.0除非你的板厂明确说只支持 6.5。新版兼容性更好信息表达也更完整。单位选 mm别选 mil。层映射表确认 Top Copper、Bottom Copper、内层、Top Overlay、Bottom Overlay、Top Mask、Bottom Mask、Paste、Drill 都有对应的源层。机械层里的板框在对话框相应位置指定为 Board Outline。这里有个大多数人忽略的点层映射表里的 Solder Mask 与 Paste 是不同的东西。阻焊层是绿油开窗钢网层是贴片时的锡膏窗口两者不能搞混。AD 里 Top Solder 和 Top Paste 分别存在导出映射时一一对应即可。如果你设计的焊盘是“阻焊开窗 钢网开窗”两层都要正确映射否则板厂看到的开窗和钢网会错位。还有一类选项是关于 Netlist 和 Testpoint 的不同版本叫法不太一样。原则是保持勾选包含网表信息导出后的 tgz 才具备网表比对能力。如果为了减小文件体积去勾掉网表那等于放弃了 ODB 的核心优势我建议不要省这个空间。3.3 用 Output Job 做可复用的导出配置每次画完板都手动点一遍 File Export ODB Files 不是不行但如果你要频繁改版、多次投样手动操作很容易在某个版本里漏掉一个选项。更稳的做法是在 Output Job输出任务里配置一个固定模板把 ODB 输出和其他制造文件输出放在一起一键运行。配置的时候新增一个 Output Job 文件添加 ODB Files 输出项把输出类型、版本、单位、目录都设置好保存后这个 Output Job 可以随工程文件长期使用。后续每次投板只需要打开 Output Job点运行AD 会按预设生成 ODB 文件。我习惯还把工程 PDF含原理图和坐标文件输出也加进同一个 Output Job这样每次投板产出的资料包是固定的不会出现“这次忘了导坐标上次忘了导 BOM”这种尴尬。3.4 一次完整的 6 层板导出实录我拿最近一块 6 层板举例走一遍真实流程方便你对步骤有个整体感知。第一步DRC 清零。我习惯把 Max Violations 显示数量调到足够大让所有错误都能列出来逐条清掉。这个过程对于复杂板子可能要花半小时但比起板厂退单半小时非常值。第二步检查叠层。打开 Layer Stack Manager确认 6 层铜厚、介质厚度和板材名称都填写完整然后关闭回 PCB 编辑器。第三步重新铺铜。这一步容易被忽略——AD 里 Polygon 如果是 Hatch网格状态导出的铜皮图形和 Solid实心状态差异很大。为了 ODB 输出干净我习惯把铺铜设置为 Solid 模式再导出特殊要求网格铜除外。第四步执行导出。File Export ODB Files指定输出目录输出类型选 .tgz版本选 7.0单位选 mm确认层映射无误点确定。第五步等待 AD 生成 tgz。文件生成后不要急着发出去先按下一章的方法验证一遍。整套流程熟练之后一般两三分钟就能完成导出真正花时间的是导出前的检查和导出后的验证。4. 拿到 tgz 之后验证和投板对接4.1 先检查压缩包内部结构顺利生成 .tgz 不代表万事大吉我见过不少“生成成功但内容有问题”的情况。打开压缩包Windows 下可以用 7-Zip 直接预览 tar 内部或者先解压成文件夹再查看重点确认几个关键路径是否存在matrix文件或目录这是 ODB 的入口信息。steps/PCB/目录里面才是板卡的层数据。layers/目录存放各层的图形与属性。netlist/或类似目录验证网表是否包含。drill相关目录确认钻孔数据存在。如果这些关键路径缺失基本可以断定导出过程出了问题需要回到 AD 重新检查设置。特别提醒解压查看可以但不要在 Windows 下解压后重新压成 zip 或 tar.gz再发给板厂。ODB 内部的文件链接和权限信息在重新打包时可能被破坏直接导致板厂无法导入。正确做法是把原始生成的 .tgz 原封不动发出。4.2 用 AD 和 CAM 工具回读验证最直观的验证方式是把导出的 tgz 再导回 AD 里看一眼。AD 支持导入 ODB 文件路径一般在 File Import ODB Files。导入后AD 会尝试解析并重建出一份可查看的 PCB 文档或 CAM 文档这时候去检查层数、钻孔、铜皮、丝印是否和原设计一致。我通常重点看四样东西板框是否封闭外形尺寸是否与原设计一致。钻孔表数量和孔径是否与 PCB 上的 Pad 和 Via 对应。内层平面是否完整有没有整片变成实心铜的情况。丝印文字有没有大面积缺失或乱码。除了 AD 自带回读我还会用 CAM350 或类似工具再导入一次切换几个图层肉眼扫一遍。有人觉得两步验证重复但 AD 导入回读只能证明“AD 自己能读懂自己导出的文件”换一个第三方工具导入成功才能说明板厂工具链大概率也认。这一步能提前暴露很多 AD 兼容性之外的问题。4.3 给板厂发资料时的推荐清单ODB 虽然自洽但实际生产中板厂往往还需要一些“人话层”的信息。我给板厂发资料时包里一般放这几样文件作用项目名_版本号.ODB.tgz主制造数据叠层结构说明 PDF写清每层铜厚、介质、阻抗要求工艺要求清单板厚、表面处理、阻焊颜色、字符颜色钻孔文件可选部分工厂习惯用独立钻孔文件复核坐标文件如果板厂做贴片需要单独附上 Pick and Place拼板说明拼板方式、V-cut 位置、邮票孔尺寸文件命名上我强烈建议不要出现中文、空格、括号这些字符。很多工厂的 CAM 工作站在 Linux 环境下处理文件中文名和特殊字符可能导致解压或路径解析异常。用类似ProjectName_V1.2_20250610.tgz这种纯 ASCII 命名最省心。4.4 后续改版如何重新导出而不漏文件改版最怕的是只更新了 tgz忘了同步更新叠层说明或工艺清单。我自己的做法是每次改版都在 Output Job 里重新生成全部输出并且用一个版本号统一命名所有产出文件。比如工程名后缀从 V1.2 改为 V1.3那么 tgz 里的设计名、叠层 PDF 的标题、工艺清单的版本号全部同步更新。还有一个小技巧导出前在 PCB 编辑器里打开 Properties 面板把 Project 的描述信息填写完整。ODB 会把这些元信息带到文件里板厂工程师打开文件时能直接看到项目名、版本号和你的备注沟通效率高很多。5. 常见问题与排查速查表5.1 层、孔、铜这三类问题的排查思路投板过程中反馈最多的问题集中在层、孔、铜三个方向。我整理了一份排查表都是实战中碰到过的情况现象可能原因处理建议板厂反馈打不开 tgz导出版本太老或选了 Directory 模式确认选 .tgzODB 版本选 7.0 重新导出钻孔丢失或孔位偏移Layer Pairs 未设置或单位不一致检查钻孔层对统一单位为 mm重新导出内层负片变成整片铜负片平面层转换异常尽量采用正片铺铜或用 Solid Region铺铜网格变成实心块Polygon 设为 Solid 但导出选项未同步导出前检查铺铜模式按设计意图设置丝印中文乱码或消失ODB 字体对中文支持有限重要标识改用英文减少中文丝印层叠信息为空Layer Stack Manager 未配置完整补齐叠层材料与厚度后重新导出文件里多了无关图形机械层辅助图形未过滤层映射时把不需要的机械层设为不导出排查的时候多数情况先别怀疑 AD 出 bug先检查自己的设计数据和导出选项。我用过很多版本的 ADODB 导出功能整体相当稳定真正的不稳定因素往往是输入数据本身。5.2 与版本、文件命名相关的怪问题有一种“诡异”情况是导出时一切正常tgz 也生成了但是板厂那边解压后路径乱码。这通常是文件名或目录名里有中文导致的tar 在 Windows 下用某些压缩软件解压时编码不一致文件名就变成乱码板厂再导入 ODB 时就无法识别关键文件和目录。解决办法就是遵守上一章说的纯 ASCII 命名原则。还有一种情况是 AD 版本太老导出的 ODB 是老版本格式而板厂的新版 CAM 软件对老版本支持不完整。反过来也有板厂还在用老旧工具链你把 ODB 7.0 发过去对方反而不认。所以靠谱的做法是投板前先把导出版本告诉对方或者按对方要求的版本导出。不要默认“版本越高越好”。5.3 板厂视角的一些细节习惯做 CAM 的工程师每天和各类 PCB 数据打交道他们最怕的不是文件格式新而是资料不完整、层命名看不懂。站在他们的角度一套理想的投板数据应该是ODB 里能看到明确的叠层和网络外层丝印清楚板框封闭钻孔表格齐全再加上一页 PDF 写明工艺要求。所以我自己会额外注意两个细节。第一PCB 上如果没有明显的板名和版本号丝印我会在丝印层加上必要的标识字符这样从 ODB 导出的图片里也能一眼认出是哪一版板厂拿板核对时不会搞混。第二不同网络的大面积铜皮最好用不同颜色或不同 Hatch 风格区分虽然 ODB 里有网络属性但给到对方做人工目检时视觉上的帮助还是很大。6. 工程师视角的几句实话从我个人经验来说与其纠结“用 Gerber 还是 ODB”不如先把手里的 AD 工程数据规范起来。ODB 导出只是最后一步真正决定投板顺利与否的是前面的叠层配置、板框规范、DRC 清零和输出配置的一致性。格式之间没有绝对的高下只有配合场景的顺手与可靠。做产品的工程师都知道交板的那一刻可靠性永远比“看起来很新潮”更值钱。我也见过不少团队手里一把 Gerber 流程跑得很稳那也没必要强行换 ODB但如果你的板子复杂度上来了或者板厂已经提出了要求那就早点把 AD 这套 ODB 导出流程跑熟别等到打样截止日期前才匆忙摸索。熟练之后你会发现这玩意比堆 Gerber 文件省心太多了。
返回列表