☰
PADS转AD实战:原理图/PCB导入、网表比对与规则重建
2026/10/1 13:47:27 网站建设 项目流程

1. 从 PADS 迁到 AD 这件事,难点从来不在"导入"按钮上

前阵子接手一块 2013 年的工控主板的改版需求,对方发过来的压缩包里躺着一套 PADS 的 .sch 和 .pcb,而我们从原理图到投板全流程走的是 Altium Designer。第一反应很简单:丢进 AD 的导入向导,点几下就完事。真动手才发现,PADS 原理图和 PCB 导入 AD 这件事,按钮确实只有那么几个,但后面跟着的核对、重建、返工,足够吃掉一整天。

所以这篇不是"三步搞定格式转换"那种轻飘飘的教程。PADS 和 AD 是两套完全不同的设计哲学:PADS 的 Logic 和 Layout 是分离的两个程序,库以 Part Type(元件)和 Decal(封装)为单位分散管理;AD 是工程化的 PrjPcb 把原理图、PCB、库串在一起,规则、铺铜、层栈都有自己的一套模型。你按下导入按钮之后,真正发生的事情是"把一套模型翻译成另一套模型",翻译过程中必然有损耗。知道哪些东西会丢、哪些会变样、哪些必须手工补回来,才是这件事的核心。

这篇内容适合三类人:一类是公司统一工具链,要把历史项目从 PADS 迁到 AD 继续维护的硬件工程师;一类是接外协文件,只想着图、量尺寸、改一两根线的layout工程师;还有一类是做技术储备,想知道两套工具的数据边界在哪的人。不管你是哪一类,下面这套流程都能直接照着走。

1.1 先分清你的诉求,决定了这次迁移要做到什么深度

很多人一上来就问"能不能导",这个问题问得不对。应该先问"导过来之后要干什么"。

如果只是走个过场——比如客户给的是 PADS 文件,你要在上面量一下结构尺寸、提取一块区域的走线做参考——那你根本不需要做完整迁移,导进来能看、能测就够了,甚至用 Gerber 走一遍更省事。

如果是要长期维护这块板子,加器件、改网络、重新投板,那要求就完全不同了。这种情况下 PADS 导入 AD 只是第一步,后面还跟着库重建、规则重建、铺铜重灌、网表比对这四件事,任何一件偷懒,都可能在你改完板子投出去之后才暴雷。

如果是要做产品级的版本管理、多人协作,那还得额外考虑命名规范、库的统一归档、导入工程的目录结构,这些在后面的章节会展开说。

1.2 PADS 的"原稿"和 AD 的"工程"根本不是一一对应的

这一点必须先说透,不然后面全是懵的。

PADS 里,原理图是 Logic 打开的一个文件,PCB 是 Layout 打开的一个文件,两者靠网表关联。元件信息拆成两部分:Part Type 描述"这是个什么器件",Decal 描述"这个器件在板上长什么样"。库文件散着放,可能是 .p、.d、.ld7 这些格式各管一段。

AD 里,一个 PrjPcb 工程下面挂着若干 .SchDoc(原理图页)、一个 .PcbDoc(PCB 文件),元件信息收敛到原理图库(.SchLib)和 PCB 库(.PcbLib),或者更进一步的集成库(.IntLib)。规则、类、差分对、铺铜优先级这些,全都是工程内部的属性,不跟着文件走。

翻译过程大致是这样:PADS 的原理图翻译成 .SchDoc,PADS 的 PCB 翻译成 .PcbDoc,元件的图形部分会被解出来,但库不会自动帮你整理成规范的 .SchLib / .PcbLib。规则、类、差分对这些高级信息,能带过来的非常有限,大部分要重建。

2. 导入器真正读的是什么:ASCII 格式、版本兼容与文件准备

先说个让人意外的点:AD 的 PADS 导入器,读的不是你平时双击打开的那个文件。

2.1 PADS 默认存的是二进制,AD 啃不动

PADS Logic 和 PADS Layout 默认保存出来的 .sch 和 .pcb 都是二进制格式。二进制格式紧凑、加载快,但它是给 PADS 自己读的,结构没有对外公开。

AD 的导入器吃的是 ASCII 格式的文件。这是 PADS 自己提供的一种文本化输出,本质上是把整个设计的数据库用可读的语法"倒"出来。所以流程的第一步永远是:先在 PADS 里把要迁移的设计导出成 ASCII。

具体操作:

  • PADS Layout:File » Export,在保存类型里选 ASCII;或者用File » Save As,格式选 ASCII。导出后一般得到 .asc 或 .txt 文件。
  • PADS Logic:File » Export » ASCII,或者File » Save As里选 ASCII 类型。

这一步里最容易被忽略的是导出对话框里的勾选项。它让你选"这次导出包含哪些内容",默认往往不是全选。如果你漏勾了铜皮或者属性,导进 AD 之后铜皮一个都看不见、元件属性全是空——这不是导入坏了,是你导出的源头就缺数据。

2.2 导出时这几个勾选项,直接决定后面返工几次

我把常见的导出项和漏掉的后果整理成一张表,导出前对着勾一遍:

导出项建议漏掉的后果
全部层 Layers必选PCB 层数不对,内层丢失,层栈要重建
网络 Nets必选网络全变成无名网络,走线不认网络名
元件与属性 Components / Attributes必选位号、料号、注释全空,BOM 要从头做
铜皮 Copper / Pour必选铺铜全部消失,只能重新画
设计规则 Design Rules尽力勾就算勾了 AD 也只能接一部分,但聊胜于无
丝印与文本 Text建议勾位号丝印丢失,装板时没法认位置
泪丝 Teardrop看情况一般带不过去,需要在 AD 里重加

注意:导出路径和文件名不要出现中文、空格和特殊符号。这条不是迷信,导入器在解析过程中会生成临时文件和处理中间数据结构,路径里带非 ASCII 字符导致解析中断的情况,我遇到过不止一次。老老实实放到D:\pads2ad\这种短路径下面。

2.3 版本兼容:为什么"老版本格式"反而更稳

AD 的 PADS 导入器存在很多年了,从老的 AD 版本一直保留到现在,File » Import Wizard里能找到 PADS 这个分类,下面通常有 PADS Logic(原理图)和 PADS Layout(PCB)两个入口。

问题在于,它对不同年代导出的 ASCII 格式兼容度不一样。经验上,越接近 PADS 2005 / 2007 / 9.x 这一代的 ASCII 格式,导入器的支持越成熟;新版本(比如 PADS VX 系列)导出的 ASCII,字段结构有变化,某些 AD 版本会出现元件丢失、层错位这类奇怪现象。

所以如果 PADS 的 ASCII 导出对话框里提供了"输出格式版本"之类的选项,优先选一个较低的兼容版本。这一步花你三十秒,可能省掉后面两小时排查。另外一件事:源文件(二进制的那份)动手之前先复制一份出来放着,导出和导入过程中反复读写,多一份备份永远不亏。

2.4 导入向导的实际操作路径

打开 AD,File » Import Wizard,第一页选文件类型,找到 PADS 分类,选对应的 PADS Logic 或 PADS Layout。后面依次是:添加要导入的文件(可以一次加多个)、指定输出目录、层映射确认(PCB 才会有这页)、然后 Finish。

向导跑完之后,你拿到的是一个新建的 PrjPcb 工程,里面有 .SchDoc 或 .PcbDoc。

一个实用的小策略:第一遍先用默认选项跑通,别急着改设置。先看看默认结果长什么样,知道哪些地方不对,再决定第二遍要不要调层映射、要不要单独处理某个文件。一上来就调一堆参数,最后出问题你都不知道是参数错了还是源文件本来就脏。

3. PADS Logic 原理图导入:属性、层次与元件库的保全

原理图导入的坑,主要集中在"看不见的地方"——页面上看着连线都在,但元件属性、引脚编号、网络命名这些底层信息可能已经变了样。

3.1 层次结构:PADS 的 Sheets 到了 AD 会变成什么

PADS Logic 支持多 Sheet 和层次化设计。导入 AD 之后,多页结构通常会保留成多个 .SchDoc,但图纸符号、端口(Port)、跨页连接符(Off-page Connector)的转换表现不太一致。

实际做法是:导完之后先在 AD 的 Projects 面板里把工程展开,数一下页数对不对。如果 PADS 里是层次设计,AD 这边有可能是拍平成多个独立页,那样跨页网络就得靠 AD 的 Net Label 或 Port 来重建连接关系。这一步不检查,后面 PCB 导入完做网络同步时,你会发现某些网络莫名其妙是断的。

另外 PADS 里图纸的边框、标题栏这些是标准的图框对象,AD 有自己的模板系统(Sheet Template),转换过来往往是一堆散线,需要重新套模板。这个不影响电气正确性,但要投出去给同事看,还是整理一下比较得体。

3.2 Part Type、Decal 和多 Gate 元件的对应关系

这是最容易出错的一块。

PADS 的 Part Type 对应 AD 的原理图元件(SchLib 里的 Symbol),Decal 对应 AD 的封装(PcbLib 里的 Footprint)。听起来是一一对应,实际上不是。

问题出在多 Gate 元件上。像 74 系列逻辑门、运放、排阻这类一个器件有多个功能单元的东西,PADS 里是一个 Part Type 下挂多个 Gate,AD 里是一个元件下挂多个 Part。两边的门/部件分配逻辑不同,导入过程中"哪个门对应哪个部分"很容易错位。表现就是:原理图上 U1 画了三个门,但引脚编号跟 PCB 上对不上,或者 Comment 字段全乱了。

导完之后,对这类元件一定要逐个核对引脚编号。判断方法很直接:在原理图上选中元件,看属性里的 Designator 和 Part 编号,再在 PCB 上找到对应的封装,比对焊盘编号。不一致的地方在 AD 里手工改回来,别指望导入器。

3.3 网络标签、总线与电源符号的转换表现

PADS 里画电源,常见的做法是直接拉一根带网络的线,或者用 Net Label 标一下。到了 AD,这种"普通网络"是能识别的,但它不是 Power Port。

区别在哪?AD 的 Power Port(比如 GND、VCC 那种带专用图形的符号)有一个内置的"全局连接"语义——所有同名的 Power Port 自动连在一起,不管在哪个图页上。而普通的 Net Label 只在同一张图页内有效,跨页要靠 Port 或离页连接符。

所以导完之后,你会发现原来在 PADS 里靠命名连起来的 VCC,到了 AD 变成一堆互不相干的局部网络。处理办法是在 AD 里把电源网络统一替换成 Power Port:选中网络标签,用Find Similar Objects挑出来,批量改属性。这一步做完,跨页网络才真正连上。

总线(Bus)的转换基本可靠,PADS 的总线在 AD 里仍然是总线,但总线成员的网络命名规则可能变,尤其是 PADS 里用了自定义总线别名的情况下。

3.4 导完原理图第一件事:生成原理图库做核对

原理图一导进来,别急着看画面,先做一件事:Design » Make Schematic Library。AD 会把当前工程用到的所有原理图元件解出来,生成一个 .SchLib。

这个库是后面所有工作的基础。有了它,你才能用Project » Component Links把原理图里的元件和库里的元件做关联,才能手工修正那些错位的引脚编号和多 Gate 分配,才能把库整理成规范的资产。

核对的时候重点看这几项:

检查项常见问题处理方式
位号前缀PADS 里用了非标准前缀在库和原理图里统一
引脚编号多 Gate 元件错位逐个比对 PCB 焊盘编号
引脚电气类型全变成 Passive按需改成 Input/Output/Power
Comment / 料号为空或乱码从 PADS 侧导出 BOM 对照补回
图形线条散线、缺圆点在库里重画或修整

引脚电气类型这件事很多人不在意,但它会影响 ERC(电气规则检查)的结果。全 Passive 的话 ERC 基本不会报警,看着省事,实际上把 ERC 的价值废掉了。如果这块板子后续要做电源域检查,还是建议把电源脚和输出脚的类型改对。

4. 把 PADS Layout 变成 .PcbDoc:层映射、铜皮和板框的真实表现

PCB 导入比原理图复杂一个量级。原理图错了好歹能肉眼看出来,PCB 的问题往往是"看着没问题,投板才发现"。

4.1 层结构映射:正片、负片和内层顺序

AD 导入 PADS PCB 的向导里,有一页专门做层映射,会列出 PADS 的层和 AD 的层的对应关系,让你确认或调整。

PADS 的层类型分三种:Routing(普通布线层,正片)、CAM Plane(负片平面层)、Split/Mixed(分割混合层)。AD 这边对应的是 Top Layer、Mid-Layer 1..n、Bottom Layer(都是正片),以及 Internal Plane(负片)。

映射规则大致是:

PADS 层类型AD 对应说明
Routing(正片走线层)Signal Layer(Top/Mid/Bottom)直接对应,最省心
CAM Plane(负片平面)Internal Plane(负片)概念接近,但要检查反焊盘和热焊盘
Split/Mixed(分割层)Internal Plane 或 Signal Layer看实际情况,容易出错
Solder Mask / Paste阻焊层 / 钢网层一般能正常映射
Silkscreen丝印层能映射,但文本位置常错位

风险最大的是负片层。PADS 的 CAM Plane 用"负片"逻辑表达——整层是铜,用反焊盘(anti-pad)挖出隔离区。AD 的 Internal Plane 也是负片逻辑,所以概念上是通的,但导入之后必须逐个检查 plane 层的分割和 pullback 设置,尤其是多电源分割的层。

Split/Mixed 这种层更麻烦。它在 PADS 里既有正片走线,又有分割的铜区,导入 AD 之后可能被拆成一个 Internal Plane 加若干 Region 对象,也可能被拍成普通信号层。判断办法是看层里有没有走线:如果有走线,那不能当 Internal Plane 处理,得映射成信号层。

4.2 板框重建:从 Board Outline 到 Board Shape

这是导入后第一件要修的事,也是最常被卡住的地方。

PADS 里板框是画在 Board Outline 层上的一条闭合线。导入 AD 之后,它通常变成一条 2D 线,落在 Keep-Out Layer 或者某个机械层上,而 AD 的板形(Board Shape)还是默认的矩形。

重建步骤:

  1. 找到导入进来的板框线,确认它是闭合的。有断点的话,先在 AD 里把缺口补上——用Edit » Select All配合Tools » Convert » Create Board Outline from Selected Objects之前,闭合性必须保证。
  2. 全选板框线。
  3. 执行Design » Board Shape » Define from Selected Objects。

这一步做完,AD 的板形才真正是你这块板的形状。不做的后果是:后面放器件、跑 DRC、出 Gerber,全都以那个默认矩形为准,机械层和外形层对不上。

顺便说个反向的情况:如果 PADS 里那块板的边框根本不是画在 Board Outline 层,而是随手画的 2D 线,那导入 AD 之后更是要靠手工重建。这也是为什么在 PADS 侧交付文件之前,最好确认板框在正确的层上。

4.3 铺铜:Copper Pour 和 Copper 不是一回事

PADS 里跟"铜"有关的东西有两种,性质完全不同:

  • Copper Pour:动态灌铜,跟网络绑定,会随走线自动避让。对应 AD 的 Polygon Pour。
  • Copper:静态铜区,一块固定形状的铜,不自动避让。对应 AD 的 Region 或 Fill。

导入 AD 时,Copper Pour 通常能转成 Polygon Pour,Copper 转成 Region。但转过来之后,所有 Polygon 都要重新灌注一遍(Tools » Polygon Pours » Repour All)。原因有两个:一是网络归属和优先级可能在转换中错乱;二是 AD 的避让算法和 PADS 不一样,不重灌的话铜皮边界是旧的。

重灌之前,先处理这几个设置,不然会灌出一堆问题:

  • 优先级(Pour Order):PADS 里每个 Pour 有自己的优先级,大铜皮优先级低、小铜皮优先级高,这样小铜皮不会被吃掉。导入 AD 后要检查 Polygon 的 Pour Order,数值越大优先级越低(AD 的规则和 PADS 相反,容易搞混)。
  • 连接方式(Polygon Connect Style):焊盘跟铜皮的连接是全连接还是热焊盘(Thermal Relief),这个在 AD 里是在设计规则里控制的,不是 Polygon 自己的属性。PADS 里每个 Pour 单独设的热焊盘参数,到 AD 这边统一由规则管,需要重建。
  • 孤岛处理:PADS 里对孤岛铜(跟网络不连通的碎铜)有自己的处理策略,AD 里对应的是 Polygon 属性里的 Remove Islands 设置。老设计里如果留了孤岛铜做散热,要注意别被 AD 默认删掉。

还有个细节很多人不知道:PADS 的铺铜有"实心灌注"和"网格灌注"两种模式。老设计里网格铜很常见,因为它散热特性好、不容易起泡。AD 里对应的是 Hatched Polygon,但导入时往往默认变成实心(Solid)。如果这块板子对热性能有要求,要手工把 Polygon 的填充模式改回网格,并设置好网格线宽和间距。这个改动看起来只是外观,实际上影响的是回流焊时的热分布。

4.4 焊盘栈、过孔与泪丝的转换情况

焊盘栈(Pad Stack)是 PADS 的强项,它允许每个焊盘在不同层用不同形状和尺寸。AD 也有分层焊盘(Full Stack 模式),但两边表达方式不一样。

导入后,如果 PADS 里用过自定义分层焊盘,AD 里会以 Full Stack 模式呈现。这种焊盘改起来很麻烦——你想统一改个焊盘尺寸,得逐层改。建议在导入之后先扫一遍焊盘,把能用 Simple 模式表达的改回 Simple,减少后期维护成本。

过孔方面,PADS 的过孔分 Standard、Blind/Buried 等类型,AD 有对应的 Via 类型。导入后建议把所有过孔的尺寸和类型收敛到 AD 的设计规则里(Design » Rules » Routing Via Style),而不是让每个过孔带自己的独立属性。这样做的好处是:以后改过孔尺寸,改规则就行,不用一个个改。

盲埋孔要额外核对层对。PADS 里定义盲孔是从哪层到哪层,AD 里也一样,但转换过程中如果层序号变了(比如内层顺序调整过),盲孔的起止层就会错。这类孔一旦错了,投板就是废板。核对方法:在 AD 里打开 Layer Stack Manager,逐个检查每个盲埋孔的起始层和终止层。

泪丝(Teardrop)基本带不过来,需要在 AD 里重加:Tools » Teardrops,可以针对所有焊盘和过孔批量添加。加的时候注意参数——泪丝长度一般设成焊盘宽度的 1.5 到 2 倍,太大容易碰到旁边的走线。

5. 导入完成不等于能用:网表比对与 DRC 收尾的排查链路

导入向导跑完,画面能打开,不代表这块板子能用。必须做两件事:网络比对和规则重建。顺序不能反。

5.1 第一步先比网络,别急着跑 DRC

跑 DRC 之前先比网络,是因为 DRC 报的错误里百分之八十跟网络无关,一上来就跑会被淹死。

比对的方法有好几种,我按可靠性从高到低排:

第一种,两边都出 ODB++。ODB++ 里包含完整的网络信息和层结构,用 CAM 工具打开对比网络数量、每个网络的节点数、元件数、钻孔数。这个方法最完整,但需要 ODB++ 的查看工具。

第二种,两边都出 Gerber 加钻孔文件,用 CAM 工具叠加比对。这个方法看的是几何,网络信息要自己推。好处是免费工具很多,缺点是发现不了"网络名错了但走线一样"这类问题。

第三种,直接人工抽检。从 PADS 里导出网络清单(File » Reports 里有网络报告),在 AD 里用Design » Netlist » Edit Nets看网络列表,对比总数和几个关键网络的节点。

我一般先做第三种快速摸底,数字对不上就上第一种深挖。比对的核心指标就这几个:

比对项PADS 侧来源AD 侧来源合格标准
元件数量BOM 或布局报告PCB 面板统计完全一致
网络数量网络报告Netlist 面板完全一致
钻孔总数钻孔报告Drill 报告完全一致
层数层设置Layer Stack Manager一致
板框尺寸尺寸标注Board Shape 属性误差在 0.05mm 内
关键网络节点数网络报告Netlist 面板逐个抽查

元件数和网络数这两项只要有一个对不上,就说明转换过程中丢了东西,别往下走,先查原因。

5.2 规则必须重建,别指望导入带过来

AD 的导入器会尝试翻译一部分 PADS 的设计规则,但覆盖率很低。差距有多大?PADS 里设的间距规则、线宽规则、过孔规则、平面层规则,AD 这边能接过来的大概只有最基本的线宽和间距,而且经常是笼统地套一个全局规则。

所以正确的做法是:把 AD 的规则当成空白从零建。具体分几类:

  • Clearance(间距):先设一个全局最小值(比如 6mil 或者 0.15mm,看工艺能力),再针对特殊网络设单独规则,比如高压网络加大间距、差分对内部间距单独设。
  • Width(线宽):按网络类(Net Class)设。电源网络、差分对、普通信号各一类,每类一个最小/推荐/最大线宽。
  • Via Style:定义几种标准过孔尺寸,别让每个过孔带独立属性。
  • Plane(平面层):反焊盘尺寸、热焊盘连接方式、pullback 距离。
  • Polygon Connect Style:铜皮跟焊盘的连接方式,按网络或按焊盘类型设。

建规则的时候有个省事的办法:如果你手上有类似的 AD 工程,直接把它的规则导出成 .RUL 文件,在新工程里导入,再改几个数值。规则这东西各个项目大同小异,没必要每次从零敲。

5.3 值得逐个核对的几类"假报警"

规则建好之后跑 DRC(Tools » Design Rule Check),会报出一堆问题。这里面有真错误,也有假报警,得分清楚:

Un-Routed Net(未布线网络),但肉眼看着明明连上了。这多半是 PADS 的 Copper 铜块和走线没有归到同一个网络,或者铺铜没重灌导致网络识别不到。处理办法:检查那块铜的 Net 属性,重灌铺铜,再看。

Clearance(间距)大量报警。基本可以断定是规则设得太严。AD 默认的间距规则是按最小值 0 处理,但如果你手工填了个偏大的值,全板都会报。先确认规则数值,再看是不是有几处特殊的密集区域需要单独放规则。

Silk to Solder Mask(丝印压阻焊)。这是最常见的假报警。老设计里丝印压焊盘非常普遍,PADS 里根本不当回事,AD 里默认规则会报。如果你的板厂不介意(大部分不介意),可以把这条规则关掉,或者调小它的检查范围。

Component Clearance(元件间距)。PADS 里元件的间距是靠 3D 高度和人工判断的,AD 有专门的元件间距规则,但导入的封装大多没有 3D 模型,这条检查没法正确执行。要么关掉,要么给关键元件补上 3D 体。

我的处理顺序是:先看 Short-Circuit(短路),这是真错误,必须清零;再看 Un-Routed Net,逐个确认;然后处理 Clearance;最后才处理丝印这类外观问题。这个顺序能把排查范围一层层收窄,不至于一上来就被上千条报告劝退。

5.4 一份可以照着走的收尾清单

每次导入完,我都会把这几项过一遍:

  • 板形(Board Shape)是否已按板框重建,尺寸是否吻合
  • 层栈(Layer Stack Manager)层数、层序、介质厚度是否正确
  • 负片平面层是否有正确的分割和反焊盘
  • 所有 Polygon 是否已重灌,优先级顺序是否正确
  • 过孔尺寸是否已收敛到规则里,盲埋孔层对是否正确
  • 泪丝是否已重新添加
  • 规则是否已建(间距、线宽、过孔、平面、铺铜连接)
  • 网络数、元件数、钻孔数三项比对是否通过
  • DRC 的真错误(短路、未布线)是否清零
  • 原点位置和单位是否设置正确(建议统一用 mm,方便跟结构对接)

6. 绕道方案:什么情况下 EDIF、DXF、ODB++、Gerber 更省事

直连导入不是唯一的路。有些场景下,绕一下反而更快更稳。

6.1 EDIF:只搬原理图连线关系

EDIF 是一种中性的网表交换格式,PADS Logic 可以导出,AD 也能读。它擅长搬的东西是"器件之间的连接关系"——哪个引脚连到哪个网络。它不带你画的符号长什么样、也不带 PCB。

适用场景:PADS 原理图导进 AD 之后符号乱七八糟、你干脆不想看图形,只想拿到连线关系重新画一张干净的原理图。这时候用 EDIF 把网表搬过来,配合 AD 里已有的标准库,重新画一遍比修导入的图还快。

6.2 DXF:结构和板框的搬运工

DXF 是通用的二维图形格式,结构工程师习惯用它。PADS 能导 DXF,AD 也能导 DXF。

用 DXF 最常见的两个场景:一是把板框和定位孔从 PADS 搬到 AD(其实直连导入也能做,只是 DXF 更可控);二是把结构给的限高区、禁布区、接插件外形导进 AD 当参考。DXF 进来之后是 2D 线,落在机械层上,需要手工指定层和用途。

要提醒的是 DXF 的单位。导出和导入两边都要确认单位是 mm 还是 mil,错了就是 25.4 倍的尺寸偏差,这种错在装配的时候才暴露出来。

6.3 ODB++ 与 Gerber:制造数据路线,以及"Gerber 转 PCB"的边界

ODB++ 是给制造用的数据包,包含层、钻孔、网络信息。AD 的 CAM 编辑器能打开 ODB++ 和 Gerber,也能做一定程度的反向转换。

这里必须把边界讲清楚:把 Gerber 转成 PcbDoc,得到的是"图形",不是"设计"。转过来之后,走线只是一堆线段,焊盘只是一堆填充块,网络和元件属性都没有。你能做的只有测量、比对、当底图参考。

所以这条路适合什么场景?抄板。别人给你一块板子的 Gerber,你要在 AD 里复刻一块功能一样的板子——这时候可以用 Gerber 当底图,在上面重新铺走线、重新放焊盘、手工补网络。整个过程是"重画",不是"转换"。

如果你的目标是维护和改版,千万别走 Gerber 这条路,工作量比直连导入大十倍。

6.4 四条路线横向对比

路线带网络带元件属性带设计规则适合场景主要代价
直连导入(ASCII)是大部分少量长期维护、改版需重建库、规则、铺铜
EDIF是部分否只想要连线关系重画图形全丢,要重新画
DXF否否否板框、结构、禁布区只是图形,无电气信息
ODB++ / Gerber部分/否否否抄板、比对、参考只能重画,不能改

7. 把这套流程固化下来:库整理、命名规范与批量处理

如果你只做一次迁移,前面六节的内容够用了。如果你所在的公司有一批历史项目要迁,那就要考虑把这套动作变成可复用的规范。

7.1 从导入的工程反向产出库,并做去重

导入完成后,做两件事:

  • Design » Make Schematic Library:把工程里所有原理图元件解出来生成 .SchLib。
  • Design » Make PCB Library:把工程里所有封装解出来生成 .PcbLib。

这两个库是后面所有工作的资产基础。但直接生成的库不能直接用,问题有一堆:

第一,命名混乱。PADS 的 Decal 名可能带空格、带斜杠、带各种 AD 库不适配的字符,也可能出现同名不同形的封装。AD 的库不允许重名,导入时会被自动改名,改出来的名字往往是 Package1、Package2 这种,看名字完全不知道是什么器件。

第二,重复封装多。一块老板上可能有十几个形状几乎一样的 0603 封装,只是命名不同。整理的时候要合并。

我的处理办法是:先把库导出一个文本形式的封装清单(或者在库里用 Report 功能导出),按焊盘数量、外形尺寸、焊盘间距做分组,人工过一遍合并。这个过程费时间,但做一次能受益很多个项目。

还有一个容易被忽略的点:导入的封装没有 3D 模型。如果后续要做结构干涉检查,需要给关键器件补 3D 体。来源可以是厂商的 STEP 模型,用Place » 3D Body导入,或者去器件官网下 STEP 文件。对于高度敏感的元件(大电解、屏蔽罩、接插件),这一步值得做。

7.2 用脚本把重复劳动压下去

AD 支持脚本,DelphiScript 和 VBScript 都能用。哪些活适合脚本化?

  • 批量重灌铺铜:导进来的板子上有几十个 Polygon,手工一个个 Repour 太慢。
  • 批量生成库:一次给多个工程生成 .SchLib / .PcbLib。
  • 批量设置规则:把一套标准规则应用到多个工程。
  • 批量改名:统一位号前缀、统一网络命名。

思路大概是这样(以批量重灌铺铜为例):

// DelphiScript 思路示意,不是可直接运行的完整脚本 打开当前 PcbDoc 遍历 Board.Polygons 集合 对每个 Polygon 调用 Repour 刷新视图 输出处理了多少个铜皮

我不建议一上来就写复杂脚本。先手工做一遍,把动作和顺序记下来,再把这套动作翻译成脚本。脚本的价值在于重复执行,第一次写的时候目标应该是"能跑通",不是"写得漂亮"。

7.3 命名规范:位号、网名、层的统一

迁移过来的老项目,命名往往是历史遗留的产物。位号前缀可能五花八门,网名可能是 $Net123 这种自动生成的,层名可能是 Layer1、Layer2 这种没意义的。

如果这块板子以后还要维护,花点时间统一命名是值得的:

  • 位号前缀按 AD 的标准走(R、C、L、U、J、D、Q……),不标准的批量改。
  • 网络名去掉自动生成的编号,改成有意义的名字。电源网络、地网络、时钟、差分对各有一套命名规则。
  • 层名改成人能看懂的,比如 Top、GND、PWR、Signal3、Bottom,别留 Layer1 到 Layer6。

这些改动不影响电气正确性,但影响的是后续每一个打开这块板子的人的时间。

7.4 归档:把源文件和中间产物一起存下来

最后说个流程上的事。一次完整的迁移会产生这些文件:原始的 PADS 二进制文件、导出的 ASCII 文件、导入生成的 AD 工程、生成的库、比对报告。

这些东西别只存 AD 工程。老项目改版的典型场景是:两年之后客户说"我要看看当初的原始文件",或者"我这边要出一个跟 AD 版本对应的 PADS 版本"。这时候如果没有原始文件和 ASCII,你会很难受。

我的习惯是在工程目录下建一个_source子目录,把 PADS 原始文件、ASCII、导出时用的勾选设置截图、导入向导的层映射截图,全部放进去。同一个目录下再放一个_compare目录存比对报告。这套东西占不了多少空间,但省掉的是将来无穷无尽的来回找文件。

再补一句实操教训:导入过程中不要在原文件所在的目录里操作。AD 导入时会创建工程文件、临时文件、日志,全部塞进源文件目录里会搞得一团乱,而且万一某个操作把源文件覆盖了(历史上不是没发生过),你连回退的机会都没有。源文件只读、导入到独立目录,这个规矩守住就行。

至于最后怎么判断这次迁移算成功了,我的标准很简单:网络比对通过、DRC 真错误清零、出一次 Gerber 跟原板叠加对比板框和钻孔位置完全重合。这三条都过了,这块板子你就能放心在上面改东西了。前面那些库、规则、命名的工作,本质上都是为了让"改东西"这件事在半年后、一年后还能顺利做下去。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询