☰
AD封装导入Allegro全流程:从导出到验证的避坑指南
2026/10/27 5:13:20 网站建设 项目流程

简介:面向PCB设计工程师与EDA初学者的封装复用实操文档,聚焦Altium Designer与Cadence Allegro之间的跨平台封装迁移问题。内容围绕在AD中新建PCB、放置目标封装、另存为PCB ASCII文件,再经Allegro的CAD Translators导入并导出库文件,最终将symbol、shape与焊盘分别归入对应库路径的完整流程展开,可帮助读者打通两款软件间的封装壁垒,减少重复建库工作。资源包共1个docx文件,约63KB,以图文步骤记录为主,篇幅精炼便于随查随用。目前已有1473人学习,适合需要快速复用既有AD封装、提升Allegro建库效率的设计人员参考,也可作为跨软件数据转换的排错思路借鉴。

1. 从一次封装导入翻车说起:AD 到 Allegro 的跨工具迁移

上周帮一个做硬件的朋友处理一块板子,他要把 Altium Designer 里攒了三年的封装库搬到 Allegro 里复用,结果导入完打开一看,焊盘全歪了,丝印层和阻焊层对不上,几个 QFN 封装的散热焊盘直接消失。他以为是 Allegro 版本问题,重装了两次软件,折腾到凌晨两点。其实问题根本不在软件,而是 AD 导出时路径里带了个中文文件夹名,加上另存格式选错,整条链路从第一步就埋了雷。AD 封装导入 Allegro 这件事,说难不难,但每一步都有硬性约束:路径不能有中文、必须存成 PCB ASCII 格式、导入后生成的 dra/psm/ssm 文件要手动归位到三个不同的库路径。装不好不会报错,只会让你在布线阶段发现封装是残的。这篇笔记适合正在做 AD 到 Allegro 封装迁移的 PCB 设计者,尤其是第一次走这条链路、被“导入成功但封装不可用”坑过的人。下面按我实际操作的顺序,把环境、步骤、参数和救火方案一次讲清。

2. 环境准备与版本选择:AD 和 Allegro 各装什么版本

2.1 两个软件的版本搭配与安装前检查

这套迁移链路对版本没有强制绑定,但有两个现实约束得先讲清楚。AD 这边,导出 PCB ASCII File(*.PcbDoc)的功能从 AD 10 之后一直稳定存在,我一般用 AD 17 到 AD 21 之间的版本,太老的 AD 9 导出的 ASCII 结构和新版 Allegro 的解析器偶发不兼容。Allegro 这边,Import → CAD Translators → Altium PCB 这个入口在 Allegro 17.2 之后的版本里位置没变过,17.4 和 22.x 我都跑通过,22.x 的转换器对 AD 的异形焊盘支持更好一些。常见做法是 AD 用 19 或 20,Allegro 用 17.4,这个组合在社区里验证最多,出问题也最容易搜到答案。

安装前先做三件事。第一,确认两个软件都装在英文路径下,C:\Cadence\SPB_17.4和C:\AD20这种就很好,别装到“新建文件夹”里。第二,检查系统临时目录%TEMP%的路径,Allegro 转换器会在里面写中间文件,如果用户名是中文,临时路径就会带中文,这是很多人忽略的暗坑。第三,把要导入的 AD 封装提前整理到一个独立库文件里,别从整个工程里直接导,工程里的封装混杂了各种层设置,转换时容易带进无关的机械层。

提示:Allegro 的转换器依赖 Microsoft Visual C++ 运行库,如果 Import 菜单里 CAD Translators 是灰的,先装一遍 VC++ 2015-2022 运行库再重启 Allegro。

2.2 库路径规划:三个目录必须先建好

Allegro 的封装体系把 symbol、shape、pad 分开存放,导入 AD 封装后会生成三类文件,必须分别落到三个路径下,否则在 Allegro 里调封装时会出现“找不到 device”或者“shape 缺失”的报错。我一般在 D 盘建一个统一的库根目录,结构如下:

D:\Allegro_Lib\ ├── symbols\ # 放 .dra 和 .psm(symbol 文件) ├── shapes\ # 放 shape 的 .dra 和 .ssm └── pads\ # 放焊盘 .pad 文件

建好之后,打开 Allegro 的 User Preferences,在 Paths → Library 里把这三个路径分别填进去。symbol 路径填D:\Allegro_Lib\symbols,shape 路径填D:\Allegro_Lib\shapes,pad 路径填D:\Allegro_Lib\pads。这里有个参数取舍:psmpath 和 padpath 可以填多个路径,用分号隔开,但我建议迁移阶段只填这一个自定义路径,避免 Allegro 从自带库里匹配到同名焊盘,导致导入的封装用了错误的 padstack。等验证通过后再把自带库路径加回来。

# Allegro User Preferences 中 Library 路径的典型填法 psmpath = D:\Allegro_Lib\symbols padpath = D:\Allegro_Lib\pads shapepath = D:\Allegro_Lib\shapes

这三行对应的是 Allegro 环境变量里的psmpath、padpath、shapepath,分别控制 symbol、焊盘、shape 的搜索顺序。填完之后点 Apply 再 OK,不要只点 OK,否则部分版本的 Allegro 不会立即刷新路径缓存。这一步做完,环境底座就算搭好了,接下来才是真正的导入操作。

3. AD 侧导出:从封装放置到 ASCII 文件落地

3.1 新建空 PCB 并放置待导入封装

打开 AD,File → New → PCB,新建一个空白 PCB 文件。这个文件的作用是“搬运载体”,不需要画任何走线,只用来承载你要导出的封装。新建后立刻做一件事:File → Save As,把它存到一个纯英文路径下,比如D:\AD_Export\ad_to_allegro.PcbDoc。我见过有人直接存在桌面,而桌面路径里带着中文用户名,后面 Allegro 转换器读文件时直接报“Invalid file path”,连导入窗口都弹不出来。

存好之后,打开 AD 的 Libraries 面板,找到你要导入的封装所在库,把封装拖到空白 PCB 的任意位置。这里有个细节:如果封装是从别的工程里复制过来的,先确认它的 3D 体(3D Body)和机械层轮廓是否完整,AD 导出 ASCII 时会把 3D 体信息一并写进去,Allegro 转换器对这部分解析不稳定,容易在 log 里刷一堆 warning。我一般会在放置前把封装的 3D 体暂时隐藏或删除,只保留焊盘、丝印、阻焊、装配这几个必要层,转换干净得多。

放置完成后,检查封装的参考点(Reference Point)是否在合理位置。AD 里封装的原点默认在封装中心或 1 脚,Allegro 导入后会以这个原点作为 symbol 的放置基准。如果原点偏得离谱,导入后封装在 Allegro 里会“飘”到很远的地方,虽然不影响电气连接,但摆放时很别扭。常见做法是在 AD 里 Edit → Set Reference → Pin 1,把参考点定在 1 脚。

3.2 另存为 PCB ASCII File 的参数与坑

这是整条链路里最容易出错的一步。在 AD 里选 File → Save As,文件类型下拉框里选“PCB ASCII File (.PcbDoc)”,文件名保持英文,存到刚才那个D:\AD_Export\目录下。注意,AD 的 Save As 对话框里有两个容易混淆的选项:一个是“PCB ASCII File (.PcbDoc)”,另一个是“PCB 4.0 Binary File (*.PcbDoc)”,必须选前者,后者是二进制格式,Allegro 的 Altium PCB 转换器不认。

保存时 AD 会弹出一个 ASCII 导出选项窗口,里面有几个勾选项。我一般只勾“Include Components”和“Include Nets”,把“Include Design Rules”和“Include Layer Stack”去掉。原因是设计规则和层叠信息在跨工具迁移时没有对应关系,勾上反而会让转换器在 log 里写大量“rule not mapped”的警告,干扰排查真正的问题。焊盘和封装几何信息在“Include Components”里已经包含,不会丢。

# AD 导出后的目录结构示例 D:\AD_Export\ ├── ad_to_allegro.PcbDoc # ASCII 格式的 PCB 文件 └── ad_to_allegro.log # AD 导出的日志,可留作对照

导出完成后,用文本编辑器打开这个.PcbDoc文件看一眼,如果开头是类似|RECORD=Board|这样的竖线分隔文本,说明 ASCII 导出成功;如果看到一堆乱码或二进制字符,说明选错了格式,回去重新另存。这个检查花十秒钟,能省掉后面在 Allegro 里排查半小时的功夫。

4. Allegro 侧导入:转换器操作与文件归位

4.1 新建 BRD 并调用 Altium PCB 转换器

打开 Allegro PCB Editor,File → New,新建一个.brd文件,同样存到英文路径下,比如D:\Allegro_Work\import_test.brd。这个 brd 是导入的容器,导入完成后封装会以 symbol 的形式出现在这个设计里,但真正的库文件是转换器另外生成的,两者要区分开。

新建 brd 后,点菜单 Import → CAD Translators → Altium PCB。弹出的对话框里,Input File 选刚才 AD 导出的ad_to_allegro.PcbDoc,Output Directory 选一个空的英文目录,比如D:\Allegro_Work\trans_out\。转换器会在输出目录里生成一批文件,包括.dra、.psm、.ssm、.pad以及一个.log日志文件。对话框里还有一个“Units”选项,默认是 mil,如果你 AD 里用的是 mm,这里要改成 mm,否则导入后封装尺寸会差 25.4 倍,焊盘小得肉眼几乎看不见。

点 Translate 开始转换,过程通常几秒到几十秒,取决于封装复杂度。转换完成后先别急着关窗口,点“View Log”看一眼日志。日志里出现“Translation completed”不代表万事大吉,要重点搜两类信息:一是“Warning: padstack not found”,说明某个焊盘没转换成功;二是“Error: shape skipped”,说明 shape 被跳过了。有 warning 不一定要重来,但要知道哪个封装受了影响,后面验证时重点检查。

4.2 三类文件的归位规则与路径对应

转换器输出的文件是混在一个目录里的,必须按类型分到第 2 章建好的三个路径下。这一步是手工活,但规则很清晰:

文件类型扩展名目标路径作用
Symbol 文件.dra + .psmD:\Allegro_Lib\symbols封装的电气符号定义
Shape 文件.dra + .ssmD:\Allegro_Lib\shapes封装的物理形状
焊盘文件.padD:\Allegro_Lib\pads焊盘堆栈定义

复制的时候注意,symbol 的.dra和 shape 的.dra同名不同目录是正常的,Allegro 靠路径区分,不靠文件名。但.psm必须和 symbol 的.dra放在同一目录,.ssm必须和 shape 的.dra放在同一目录,放错了在 Allegro 里调封装时会报“Could not find symbol”或“Shape not found”。

# 归位操作的批处理示例(Windows 命令行) copy D:\Allegro_Work\trans_out\*.dra D:\Allegro_Lib\symbols\ copy D:\Allegro_Work\trans_out\*.psm D:\Allegro_Lib\symbols\ copy D:\Allegro_Work\trans_out\*.ssm D:\Allegro_Lib\shapes\ copy D:\Allegro_Work\trans_out\*.pad D:\Allegro_Lib\pads\

这里有个容易踩的坑:shape 的.dra和 symbol 的.dra扩展名一样,如果直接用copy *.dra到 symbols 目录,会把 shape 的 dra 也复制进去,导致 symbols 目录里混入 shape 文件。正确做法是先按文件名区分,或者手动挑。我一般会在转换输出目录里先按修改时间排序,symbol 和 shape 的 dra 通常成对出现但内容不同,打开 dra 看里面的 CLASS 属性,SYMBOL 类的进 symbols,SHAPE 类的进 shapes。批量操作时宁可慢一点,也别把两类 dra 混在一起。

注意:.ssm文件是 Allegro 的 shape symbol 编译产物,必须和 shape 的.dra同目录,且文件名前缀一致。如果转换器只生成了.dra没生成.ssm,说明 shape 编译失败,回 Allegro 里用 Shape → Compile 手动编译一次。

5. 避坑与排查:五条血泪记录

5.1 导入后焊盘全部偏移或尺寸不对

现象:Allegro 里调出封装,焊盘位置整体偏移,或者焊盘尺寸明显偏小。原因通常是两个:一是 AD 导出时单位没对齐,AD 用 mm 而 Allegro 转换器按 mil 解析;二是 AD 封装的参考点不在 1 脚,导入后基准错位。解决方法是回 AD 里确认封装单位(Design → Board Options 里看 Measurement Unit),导出时在 Allegro 转换器对话框把 Units 改成一致;参考点问题则在 AD 里重设 Reference Point 后重新导出。我现在的习惯是导出前先在 AD 里把单位统一成 mil,因为 Allegro 默认 mil,少一次换算少一次错。

5.2 转换器菜单灰色不可点

现象:Allegro 的 Import → CAD Translators → Altium PCB 是灰的,点不动。原因是 Allegro 安装时没勾选 CAD Translators 组件,或者 VC++ 运行库缺失导致转换器 DLL 加载失败。解决方法是先装 VC++ 2015-2022 运行库并重启,如果还是灰的,运行 Allegro 安装程序选 Modify,把“CAD Translators”勾上补装。这个组件不大,补装很快,不用重装整个 Allegro。

5.3 路径带中文导致导入直接失败

现象:转换器弹窗报“Invalid input file”或“Cannot open file”,但文件明明存在。原因是 AD 导出的 PcbDoc 路径或 Allegro 输出目录路径里含中文字符,转换器的底层解析库对非 ASCII 路径支持不好。解决方法:把 AD 导出目录、Allegro 输出目录、库路径全部改成纯英文,包括用户名下的临时目录。如果用户名本身是中文,在系统环境变量里把TEMP和TMP指向C:\Temp,再重启 Allegro。

5.4 封装能调出但 device 缺失

现象:在 Allegro 的 Place → Manually 里能看到封装名,但放置时报“Device file not found”。原因是.psm文件没放到 psmpath 路径下,或者 psm 文件名和 dra 文件名不一致。解决方法是检查D:\Allegro_Lib\symbols下是否有同名.psm,没有就从转换输出目录补拷;有的话检查文件名大小写,Allegro 在部分系统上对大小写敏感。另外确认 User Preferences 里 psmpath 填的是这个目录,改完路径要重启 Allegro 才生效。

5.5 异形焊盘或散热焊盘丢失

现象:QFN 或 BGA 封装的散热焊盘、异形焊盘导入后消失,只剩规则矩形焊盘。原因是 AD 的异形焊盘在 ASCII 导出时被简化,或者 Allegro 转换器不支持某种 pad shape。解决方法是回 AD 里把异形焊盘改成用多个规则焊盘拼接的等效形状再导出,或者在 Allegro 里用 Padstack Designer 手动重建这个焊盘,重建后把.pad放进 padpath,再重新编译 symbol。复杂封装建议导入后逐个焊盘核对,别等布线时才发现。

6. 装完怎么验证:三步确认封装真正可用

导入完成不等于封装可用,我一般走三步验证,缺一步都不放心。第一步,在 Allegro 里 File → Open,直接打开D:\Allegro_Lib\symbols下的.dra文件,看封装图形是否完整,焊盘、丝印、阻焊层是否都在,用 Display → Measure 量一下关键尺寸,和 AD 里的封装尺寸对一遍,误差超过 0.05mm 就要查单位设置。第二步,新建一个测试 brd,Place → Manually 调出这个封装,放上去后打开约束管理器,看焊盘的 pin number 是否和 AD 里一致,有没有多出或缺失的引脚。第三步,用 Tools → Reports 生成一份 DRC 报告,重点看“Padstack”和“Symbol”相关的条目,确认没有未定义的焊盘或缺失的 shape。

# 验证时常用的 Allegro 命令行检查(在 Allegro 命令窗口输入) skill getCurrentDesign()->symbols # 列出当前设计所有 symbol skill axlDBGetDesign()->padstacks # 列出所有 padstack,核对焊盘数量

这两行 Skill 命令用来快速核对 symbol 和 padstack 的加载情况,比在图形界面里一个个点快得多。如果symbols列表里没有你导入的封装名,说明 psmpath 没配对;如果padstacks数量比预期少,说明有焊盘没归位到 padpath。

验证通过后,建议把这次导入的封装在 Allegro 里另存一份到正式库,别直接拿转换输出目录当长期库用,转换目录里的文件命名和层设置比较乱,后续维护容易混。我现在的习惯是每次做完 AD 到 Allegro 的封装迁移,都强制走一遍“打开 dra 量尺寸 → 放置测试 → DRC 报告”这三步,哪怕只导了一个封装也不跳过。这套流程救过我两次,一次是发现散热焊盘丢了,一次是发现丝印层跑到了装配层,都是不验证就发现不了的问题。希望帮到你,少走我踩过的那些弯路。

本文还有配套的精品资源,点击获取

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

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

立即咨询