简介:面向电子工程师与PCB设计人员的EDA工具互转指南,聚焦PADS、Altium Designer、Cadence三套主流软件之间的设计文件互通难题。文档按四大转换方向展开:PADS转AD(含Logic原理图与Layout PCB两条路线)、AD转Cadence(原理图转OrCAD、PCB转Allegro)、AD转PADS(转Logic与转Layout)、Cadence转PADS(OrCAD转Logic、Allegro转Layout),系统讲解每一步操作要点。其中特别说明PADS导出TXT/ASC时的版本选择、AD另存为DSN的组件处理、Allegro转PADS前必须配置的AEX_BIN_ROOT等环境变量,以及skill脚本加载与“StarOneWay Translation”执行等细节,并提醒泪滴选项可能导致导入缓慢等常见误区。资源为1个docx文档,压缩包大小1.11MB,内容结构清晰,适合按需查阅。已有4858人学习/下载,对于需要在不同EDA工具间迁移设计数据的中高级硬件工程师,是一份可直接落地的参考手册。
1. 让 PADS、AD、Cadence 互相“说人话”:这套转换流程的实战价值
在 layout 这行待久了,谁都遇到过这种时刻:客户甩过来一个 PADS 工程,你的电脑里只装了 AD;或者上游结构图是按 Allegro 画的,PCB 却必须在 PADS 里改。PADS、AD、Candence 相互转换这件事,说白了就是让三家 EDA 工具通过中间格式互相读懂对方的设计文件。它不是点两下另存为那么简单,版本、铺铜、泪滴、skill 脚本,每个环节都可能翻车。这份实操笔记把 PADS 转 AD、AD 转 Cadence、AD 转 PADS、Cadence 转 PADS 的完整路径都过了一遍,适合硬件工程师和 PCB layout 工程师在跨工具协作时直接抄作业。
2. 转换的本质:选对中间格式、版本与路径,成功率提升一半
跨 EDA 工具转换文件,最容易忽略的不是点哪个按钮,而是「用什么格式搭桥、用哪个版本号搭桥、要不要绕一圈再走」。这三件事一旦定错,后面再怎么按教程点,结果都是白费力气。我见过太多人拿高版本 ASCII 直接转,导入后网络全丢,然后开始怀疑软件坏了。实际上,问题往往出在第一步:交换格式没选对。
2.1 三种中间格式的分工:TXT、ASC、DSN 各自解决什么问题
PADS 转 AD 时,原理图走的是 TXT,PCB 走的是 ASC;AD 转 Cadence 时,原理图直接另存为 DSN;Cadence 转 PADS 时,OrCAD 转 PADS Logic 还是走 DSN。这三种后缀就是整个转换体系的三个桥墩。
| 格式 | 来源 | 用途 | 承载内容 |
|---|---|---|---|
| TXT | PADS Logic 导出 ASCII | PADS 原理图 → AD | 元件编号、引脚连接、网络标号、页面信息 |
| ASC | PADS Layout 导出 ASCII | PADS PCB → AD | 板框、走线、过孔、焊盘、铺铜、封装坐标 |
| DSN | OrCAD 原理图工程格式 | AD → OrCAD → PADS | 原理图层级、元件属性、网络连接关系 |
为什么不能直接打开对方的原生文件?因为各家 EDA 的数据库结构不公开,连库文件、封装描述、网络连接表的存储方式都完全不一样。AD 的 .PcbDoc 在 PADS 里就是一堆乱码,Allegro 的 .brd 文件 AD 也读不出来。TXT、ASC、DSN 是 ASCII 文本格式,结构相对简单,各工具都内置了解析器,所以成了事实上的“通用语”。
这里有个容易被忽略的点:PADS 导出 ASC 时,文件里不光有坐标和连线,还包含层叠信息、Design Rules、铺铜边界。AD 导入向导会逐条解析这些记录,只要遇到一条它不认识的语法,就可能跳过后续一大段。所以导出时版本号选得越低,字段越简单,AD 解析越稳。
2.2 版本号背后的兼容性逻辑:为什么 2005 和 16.2 成了“通用语”
资料里反复强调几个数字:PADS 导出原理图选 2005.2,PADS 导出 PCB 选 2005,OrCAD 另存为选 16.2。这几个版本号不是随便拍的,它们实际上就是各家工具兼容范围的“最大公约数”。
PADS ASCII 2005.2 是 AD 导入向导支持最完善的版本。AD 的 PADS ASCII Design And Library Files 导入器,从早期版本到新版本,对 2005.2 的解析都经过充分验证。如果选更高的 PADS 版本,导出文件里会混入一些 AD 不认识的对象,比如新版 PADS 的差分对属性、Net Class 规则,AD 解析到一半直接跳过或报错。
OrCAD 的 DSN 降到 16.2 同理。PADS Logic 内置的 DSN 导入器,实际上只对 OrCAD 16.2 及更早版本做过完整测试。你拿 OrCAD 17.x 甚至 22.1 的 DSN 直接喂给 PADS,经常出现“File contains unsupported data”或者导入后页面是空的。降级到 16.2,就是把原理图里那些高版本才有的属性删掉,留下 PADS 能认的骨架。
AD 另存为 DSN 时,同样受这个逻辑约束。资料里用 AD 6.9 做演示,是因为这个版本的 DSN 导出器写出来的文件版本比较老,OrCAD 打开成功率极高。新版 AD 其实也能导 DSN,但生成的文件版本往往偏新,OrCAD 打开时提示版本过高,还得再降一次。所以我的一般做法是:AD 导出 DSN 后,先拿 OrCAD 开一次,另存为 16.2,再交给 PADS。多一步,但能少踩一半的坑。
2.3 直转还是绕行:AD PCB 转 Allegro 为什么不建议一步到位
很多人拿到 AD 的 PCB,想直接转成 Allegro 能打开的格式,结果搜索一圈发现根本没有官方导出选项。资料里给的建议很实在:AD → PADS → Allegro,绕一圈再过去。
| 需求 | 推荐路径 | 原因 |
|---|---|---|
| PADS 原理图 → AD | PADS 导出 TXT → AD 导入向导 | 直转,PADS ASCII 支持完整 |
| PADS PCB → AD | PADS 导出 ASC → AD 导入向导 | 直转,但要先铺铜、去泪滴 |
| AD 原理图 → OrCAD | AD 另存为 DSN → OrCAD 打开 | 直转,记得勾选处理所有组件 |
| AD PCB → Allegro | AD → PADS → Allegro | 一步到位没有成熟通道 |
| AD 原理图 → PADS Logic | AD → OrCAD → PADS | PADS 不能直接吃 AD 工程 |
| OrCAD 原理图 → PADS Logic | OrCAD 降级 16.2 → PADS 导入 | 直转,但必须先降版本 |
| Allegro PCB → PADS | 环境变量 + skill 脚本 → PADS 导入 | 官方桥接,准备繁琐但可靠 |
为什么 AD PCB 转 Allegro 要绕 PADS?因为 AD 到 Allegro 缺少一个两边都验证过的直转解析器。Allegro 的导入器吃的是 PADS ASCII 或 PADS 导出的特定格式,AD 写出来的中间文件它不认。而 PADS 的 Translator 对 AD 的 .PcbDoc 做了多年适配,转换出来的 PADS PCB 文件再走 Allegro 转换工具,每一步都有工具链兜底。
AD 原理图转 PADS Logic 要绕 OrCAD,也是同理。PADS Logic 没有“导入 AD 工程”这个入口,但能读 DSN,所以必须先让 AD 生成 DSN,再由 OrCAD 做一次版本降级。这条路径看着绕,实际上每一步都是官方支持的正道。
3. PADS 与 AD 互转实操:从 TXT/ASC 到 Import Wizard 的完整动作
前面把格式和版本讲清楚了,现在进入真正能照做的环节。PADS 和 AD 互转有两条主流路径:原理图走 TXT/DSN,PCB 走 ASC/Translator。每一条路径我都会把菜单位置、关键选项、勾选陷阱列出来。
3.1 PADS Logic 原理图转 AD:先导出 2005.2 版 TXT
第一步是检查原理图。导出前先跑一遍 Design Rules,确认没有重复位号、没有悬空引脚警告。位号重复是 PADS 转 AD 最常见的“静默炸弹”,PADS 导出不报错,但 AD 导入时会发现两个元件共用一个 Designator,然后随机覆盖其中一个,等你在 AD 里发现已经晚了。
确认没问题后,在 PADS Logic 里执行 File → Export → ASCII。弹出的导出对话框里重点看两个地方:
| 参数 | 推荐设置 | 说明 |
|---|---|---|
| ASCII Version | 2005.2 | 兼容性最好的版本 |
| Format | TXT | AD 向导默认读取该格式 |
| Output Files | 勾选原理图数据 | 不要勾选 PCB 相关数据 |
导出完成后得到一个 .txt 文件。打开 AD,执行 File → Import Wizard,在向导里选择 PADS ASCII Design And Library Files,然后选中刚才的 TXT 文件。后面几步保持默认就好,AD 会自己建立元件库映射。如果提示某些封装找不到,不用慌,先完成导入,再到 Libraries 面板手动指认封装,这个动作不影响网络连接关系。
导入完成后,最好把 AD 下方的 Messages 面板调出来,翻一遍警告。常见警告是 “Component not found in library” 和 “Net not found”,前者是封装缺失,后者多半是网络命名里有非法字符。PADS 网络名里允许的特殊字符比 AD 少,像方括号、斜杠这类字符在 AD 里会被自动替换,替换后网络名变了,原理图逻辑上没断,但和原图逐一对不上。所以导入后一定要做一次网络名清单比对,具体方法放到最后一章。
3.2 PADS Layout PCB 转 AD:先铺铜、不勾泪滴、再导出 ASC
PCB 转换比原理图多两步准备工作。第一步是铺铜,第二步是去掉泪滴。
铺铜的原因:PADS 里的铜箔对象在未铺铜状态下是“pour outline”,只是一圈边界和规则。AD 导入时对 pour outline 的支持不稳定,经常出现边界错位或铜箔丢失。先在 PADS 里执行 Tools → Pour Manager,把整板铺一遍,让 Copper 变成实心铜,再导出 ASC,AD 收到的是已经成形的铜箔,而不是一堆待处理的边界。
第二步是泪滴。泪滴在 PADS 里是以特殊形状对象存在的,导出 ASC 时如果勾选了 Teardrops,这些对象会被写进文件。AD 导入器处理泪滴时,会把每个泪滴拆成多边形逐点计算,板子上泪滴一多,转换时间从几分钟暴涨到几十分钟,严重时直接无响应。资料里原话是“最好不要选择,否则有些时候导入 Altium 的过程非常缓慢”,以我的经验,这不是缓慢的问题,是可能卡死。
导出设置如下:
| 参数 | 推荐设置 | 说明 |
|---|---|---|
| ASCII Version | 2005 | 与原理图一致 |
| Teardrops | 不勾选 | 避免导入缓慢或卡死 |
| Split by Layer | 按需勾选 | 如果层数多,建议分层导出便于排查 |
导出 ASC 后,在 AD 中同样走 Import Wizard,选 PADS ASCII Design And Library Files,加载 ASC。等待进度条跑完。完成后第一件事不是看走线,而是按 2 键进入 2D 模式,检查板框、Keepout、铺铜边界是否在正确层上。PADS 的板框层和 AD 的机械层不是一一对应,导入器会根据映射表转换,但偶尔会把板框丢到机械层 13 而不是机械层 1,到时候出 Gerber 就麻烦了。
3.3 AD PCB 转 PADS Layout:Translator 与“修复所有”的收尾
AD PCB 转 PADS,靠的是 PADS 自带的 Layout Translator,不再用导入向导。打开 PADS Layout Translator 后,界面左侧是文件列表,右侧是转换选项。
具体操作:
- 点击 Add,选择要转换的 AD PCB 文件(.PcbDoc)。
- 设置输出目录,生成的是 PADS Layout 能直接打开的文件。
- 转换选项里,TransLator Type 下拉框选择 Protel/Altium,其他选项保持默认。
- 点 Convert,等待进度条完成。
转换完成后,打开 PADS Layout,执行 File → Import,选择刚才生成的文件。导入过程中有一步会询问是否修复所有(Repair All),这个一定要选 Yes,或者等导入完成后手动执行修复。修复动作会把断裂的铜皮连接、丢失的钻孔属性、错位的焊盘重新对齐,不修的话后续 DRC 会报一大堆错。
导入完成后如果图形区看不到任何东西,不要急着重新导入。按 Ctrl+B,这是 PADS 的“调整显示范围到全板”快捷键,板子太大或原点偏移太远时,图形在视野之外,Ctrl+B 一下就能看到。做完这些后,还要做一次走线完整性抽查:在 AD 里随机选几条关键信号,到 PADS 里用网络高亮核对,重点看差分对和内层走线。
3.4 AD 原理图转 PADS Logic:借道 OrCAD DSN 的绕行方案
AD 原理图没有直接导出 PADS Logic 格式的通道,必须借道 OrCAD 的 DSN。整个过程分四步:
- AD 中打开原理图工程,File → Save Project As。
- 保存类型选择 DSN 格式,弹窗里勾选“处理所有组件”(组件属性必须导出)。
- 用 OrCAD Capture 打开这个 DSN 文件。
- 在 OrCAD 里 File → Save As,版本选择 16.2,保存。
然后打开 PADS Logic,File → Import → DSN,选择刚才降级的文件,完成导入。
这个流程中最容易翻车的就是第 2 步。AD 另存为 DSN 时,“处理所有组件”不勾选的话,元件位号和 Value 属性会丢一部分,导入 PADS 后整张图纸全是空壳。勾选之后,AD 会把元件原理图符号上的属性全部写入 DSN,OrCAD 才能完整读出。
第 4 步的版本降级同样不能省。AD 生成的 DSN 版本可能高于 16.2,PADS Logic 的导入器只认 16.2。有人图省事,直接拿 AD 生成的 DSN 往 PADS 里导,结果要么导入按钮是灰色的,要么提示格式不支持。用 OrCAD 中间过一遍,本质上是让 OrCAD 把高版本 DSN 重写成低版本,去掉 PADS 不认识的字段。
4. Cadence 转 PADS 的硬核流程:环境变量、skill 脚本与一次性准备
Cadence 转 PADS 是所有反向路径里最繁琐的一段,尤其是 Allegro 转 PADS Layout,牵涉到环境变量、skill 脚本、pcbenv 目录,每一步都像在拆黑匣子。但只要把准备工作做扎实,这个转换比 PADS 转 AD 还稳定。
4.1 三个环境变量逐个说明:AEX_BIN_ROOT、AEX_ENABLE_JOBPREFS_LAYER_FIX、Home
Allegro 转换脚本需要知道三件事:PADS 转换器装在哪、层叠偏好怎么处理、Cadence 用户配置目录在哪。这三个信息全部通过 Windows 用户环境变量传递。
| 变量名 | 作用 | 示例值 |
|---|---|---|
| AEX_BIN_ROOT | PADS Translator 的 bin 目录路径 | C:\MentorGraphics\9.5PADS\SDD_HOME\translators\win32\bin |
| AEX_ENABLE_JOBPREFS_LAYER_FIX | 修复层叠偏好兼容问题 | 1 |
| Home | Cadence 的 pcbenv 所在目录 | C:\Cadence |
环境变量可以通过 Windows 系统设置面板添加,也可以用命令快速写入。我习惯用 setx 直接设置,因为不用在多个界面之间来回点:
setx AEX_BIN_ROOT "C:\MentorGraphics\9.5PADS\SDD_HOME\translators\win32\bin" setx AEX_ENABLE_JOBPREFS_LAYER_FIX "1" setx Home "C:\Cadence"注意 setx 设置的是用户级环境变量,设置完成后必须重启 Allegro,甚至重启电脑,否则新变量不生效。AEX_BIN_ROOT 的值要根据你电脑上 PADS 实际安装路径改,不能直接抄,特别是 PADS 版本不同,translators 深层路径会有差异。AEX_ENABLE_JOBPREFS_LAYER_FIX 这个变量是给旧版 Allegro 用的层叠映射修复开关,设为 1 后,转换脚本会跳过一些已知的 JobPrefs 兼容性错误。Home 变量指向 Cadence 的 pcbenv 目录,注意是用户配置文件所在目录,不是 Allegro 软件安装目录。
这三个变量缺一个,skill 脚本都可能运行失败,而且失败方式很隐蔽:有的报变量找不到,有的干脆不弹对话框。所以转换前先核对一遍变量值,再打开 Allegro。
4.2 把 skill 文件复制到 Allegro 的 pcbenv:一个容易错位的动作
环境变量设置好之后,下一步是找到 PADS 软件自带的 skill 脚本目录。路径一般长这样:
C:\MentorGraphics\9.5PADS\SDD_HOME\translators\skill_scripts这个目录下面有 dfl_main.il 等文件,就是 Allegro 转换要用的脚本。把整个目录下的所有文件复制到 Allegro 的 pcbenv 目录下。
这里必须强调资料里的那句话:“记住是最后一个 pcbenv 目录”。Cadence 软件装完后,磁盘上可能出现多个 pcbenv 目录:一个是软件安装目录下的模板目录,一个是用户数据目录下实际加载的目录。Allegro 启动时只会读取用户数据目录中最后一个 pcbenv,如果复制到错误的那个,脚本永远不会被加载。
怎么确认哪个是最后加载的 pcbenv?常见做法是看修改时间。启动过 Allegro 后,用户 pcbenv 目录下会有最近生成的 allegro.geo、allegro.ini 这类文件,找到这些文件所在的目录,就是正确的目标。复制完成后,建议打开 Allegro,在 Command 栏输入 skill load "dfl_main.il" 测试一下,返回 T 就说明脚本加载成功,返回 nil 就说明目录错了或路径问题。
这一套准备动作只需要做一次。以后每次转换就不用再设置环境变量和复制脚本了,直接打开 Allegro 执行转换命令即可,这也是官方 skill 方案的价值:前期麻烦换后期稳定。
4.3 Allegro Command 中的两条命令:skill load 与 main out 的细节
准备工作完成后,在 Allegro 中打开要转换的 .brd 文件,然后开始执行转换。有一类坑集中在命令行的输入格式上,看起来简单,但细节错了就是不干活。
先在 Command 栏输入:
skill load "dfl_main.il"注意三点:引号不能少;load 和引号之间必须有一个空格;文件名的 .il 后缀不能漏。输入正确后回车,Command 栏会返回 T。如果返回 nil,先检查当前目录下有没有 dfl_main.il,或者脚本有没有复制到正确的 pcbenv。
看到返回 T 后,继续输入:
main out执行后屏幕上会弹出 “Start One Way Translation” 对话框,点击它,转换开始。这一步的等待时间取决于板子复杂度,多层高密度板可能要跑十几分钟。
转换过程中注意 Command 栏的输出。资料里明确说“运行过程中不能有报错,如果有报错请查找原因并修正”。常见的报错是缺库文件、缺封装、或者某层叠定义无法识别。出现报错后不要中断,等它跑完生成文件,再从报错信息定位具体问题,修完后重跑一遍。
运行成功后,Command 栏会出现 DONE 提示。此时转换脚本已经在指定输出目录生成了 PADS Layout 能识别的文件。打开 PADS Layout,执行 File → Import,选择生成的文件,等待导入完成,整个 Allegro 转 PADS 流程就结束了。
5. 避坑指南:跨工具转换最常见的五个翻车现场
这份资料里最有价值的部分不是流程,而是流程里埋的那些“不要勾”“记得做”“一定要”的提醒。我按自己的实际经历把它们整理成五条踩坑记录,每条都按现象、原因、解决三个层面讲清楚。
5.1 带泪滴导出的 ASC 让 AD 卡到怀疑人生
现象:从 PADS Layout 导出 ASC 时勾选了 Teardrops 选项,AD 导入进度条走几下就卡住,十几分钟都不动,最后只能强杀进程。
原因:泪滴在 PADS 内部是一堆特殊形状对象,AD 导入器会把每一个泪滴拆解成多边形重新计算。整板过孔、焊盘上万个泪滴,计算量不是线性增长,是几何级增长。资料里说得很委婉,“有些时候转换非常缓慢”,实际上就是卡死。
解决:PADS 导出 ASC 前,在导出选项中取消勾选 Teardrops。如果板子已经带泪滴了,先用菜单里的 Remove Teardrops 全部删掉,再导出。AD 导入完成后如果想要泪滴,用 AD 自带的 Tools → Teardrops 功能重新添加,效果不比 PADS 差。
5.2 封装变成“未知”或网络丢失:铺铜与版本错位引起的连锁反应
现象:AD 导入 PADS 的 ASC 后,元件位号还在,但封装全部变成 Unknown,点击元件连封装属性都看不到;或者某几条网络在原理图里存在,PCB 里却找不到对应走线。
原因:这个现象通常有两个来源叠加。第一个来源是 PADS 导出时没有先铺铜,AD 对 Pour Outline 解析不完整,导致铜箔相关的网络连接丢失。第二个来源是 ASCII 版本选得太高,比如选了 PADS 9.x 的 ASCII 版本,里面部分封装描述字段 AD 不识别,直接被丢弃。
解决:导出前先执行 Pour Manager 铺铜,ASCII 版本固定选 2005。如果已经导入失败了,回到 PADS 重新导出,不要尝试在半成品上手动补封装,那比重新转一遍还费时间。AD 导入后出现 Unknown 封装,先看 Messages 面板里的具体缺失名称,再到 AD 封装库中手动指认,指认完再跑一次 DRC。
5.3 skill load 返回 nil 而不是 T:路径、空格与引号三连坑
现象:在 Allegro Command 栏输入 skill load "dfl_main.il" 后,返回 nil,或者没有任何反馈,继续输入 main out 也没有弹出转换对话框。
原因:最常见的是 skill 脚本没有复制到正确的 pcbenv 目录。Allegro 只加载用户目录下最后一个 pcbenv 里的脚本,复制到安装目录下的其他 pcbenv,等于白复制。其次是命令格式问题,load 和引号之间的空格丢失,或者引号用了中文引号,skill 解释器不认。
解决:先确认脚本复制位置,找到 Allegro 启动后实际加载的 pcbenv,重新复制一遍。再检查命令格式,对照原文档逐字符核对。如果还不行,在 Allegro Command 栏输入 getWorkingDir 看看当前工作目录,确认 dfl_main.il 就在当前目录下。返回 T 后,再执行 main out,不要跳过验证这一步。
5.4 PADS 导入后看不到 PCB:显示设置与层叠映射问题
现象:Allegro 转 PADS 完成后,PADS Layout 导入顺利,没有任何报错,但图形区一片空白,像导入了空文件。
原因:有两种可能。一种是 Allegro 转换时输出的板子坐标原点距离 PADS 显示中心太远,板子实际上存在,只是显示范围完全没覆盖到。另一种是层叠映射错误,背面层或中间层被映射到了隐藏层上,关键走线和元件都跑到看不见的层了。
解决:先按 Ctrl+B,这是 PADS 的缩放全板快捷键,大多数“空白”其实都是视图问题。按完 Ctrl+B 还是空白,按 Ctrl+D 刷新显示。如果依然没有,打开 Layer Setup,检查层叠列表里有没有未分配类型的层,把隐藏的层改为可用状态。我遇到过一次 Allegro 转出来的文件,所有走线都在一个未定义的机械层上,手动把该层映射到信号层才恢复显示。
5.5 DSN 文件导入后空白:降版本步骤漏掉的后果
现象:AD 或 OrCAD 高版本生成的 DSN 文件,在 PADS Logic 里导入后,页面显示为空白,元件区什么都没有。
原因:PADS Logic 的 DSN 导入器只支持 16.2 及更早版本的 DSN 结构。高版本 DSN 里新增的页面属性、元件属性字段,PADS 解析器遇到就不认,直接把整个 Section 跳过,最后得到一个没有内容的空页面。
解决:在 OrCAD Capture 中打开 DSN,File → Save As,选择 16.2 版本保存。保存时会提示部分高级属性会被删除,选择确认即可。降级后再导入 PADS Logic,通常就能看到完整原理图。如果是 AD 生成的 DSN,中间还要加一步:AD 另存 DSN 时勾选处理所有组件。少了组件属性,降级后虽然是 16.2,但元件符号里没有位号,看起来也像坏的。
6. 转换后的验收习惯:网络表比对与 DRC 复位
6.1 网络表比对是最后的后悔药
跨工具转换最大的风险不是转不出来,而是转出来之后看起来没问题,实际上某个网络被悄悄改写了。我吃过一次亏:AD 转 PADS 后,原理图位号、PCB 封装全部正常,结果做样机时发现一个电源网络断开了,最后查下来是转换过程中网络名被截断,两个原本相连的焊盘被拆成了两个网络。
从那以后,我每次转换完成都强制走一遍网表比对。常见做法是:转换前从源工具导出一份网表文件,转换后从目标工具再导出一份,然后用文本对比工具或小脚本做差集。
import re def parse_nets(path): nets = {} for line in open(path, encoding="utf-8", errors="ignore"): line = line.strip() # 格式: 网络名<TAB>或空格<元件位号.引脚> m = re.match(r"(\S+)\s+(\S+)", line) if m: net, pin = m.group(1), m.group(2) nets.setdefault(net, set()).add(pin) return nets before = parse_nets("before.net") after = parse_nets("after.net") print("丢失的网络:", sorted(set(before) - set(after))) print("新增的网络:", sorted(set(after) - set(before))) for net in sorted(set(before) & set(after)): if before[net] != after[net]: print("连接变化:", net)这段脚本只是示例,各家 EDA 导出的网表格式不一样,正则需要按实际文件调整。核心逻辑是:先取网络集合差异,再取每个网络的连接点差异。转换后如果网络集合完全一致,基本可以放心;只要有差异,哪怕是一个引脚,都要回到源头排查原因。
6.2 DRC 与铺铜复位:把最后一步当成新板子来验收
网表比对通过后,不要急着发板。工具转换不会保留所有的设计规则,尤其是铺铜和 DRC 相关设置,经常要重新做一遍。
AD 导入 PADS 文件后,重新执行 Tools → Polygon Manager,让铜箔按照原有的网络连接重新铺一遍。原因前面讲过,PADS 导出时虽然是铺好的实心铜,但 AD 导入后铜箔对象会变成旧版的 Polygon,直接出 Gerber 很容易出现“铜皮与焊盘间距不足”的 DRC 错误。
PADS 导入 Allegro 文件后,同样检查层叠、平面层负片设置,以及过孔盖油属性。这两类设置在转换中最容易丢。都要在目标工具里跑一次完整 DRC,重点排查安全间距、短路、未连接检查这三项。DRC 无误后,再出 Gerber 做最终检查。
转换这事,说难其实也不难,前提是每一步都别想当然。从那以后我每次让文件跨工具,都强制走一遍:先定中间格式和版本,再按路径操作,最后网表比对加 DRC 复位。这套习惯帮我把跨工具协作的出板返工率压到了很低,希望这份笔记里的流程和坑,也能帮到你少走一段弯路。
本文还有配套的精品资源,点击获取