AD封装导入Allegro全流程:从导出到验证的避坑指南
简介面向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 或 20Allegro 用 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 和 .psmsymbol 文件 ├── shapes\ # 放 shape 的 .dra 和 .ssm └── pads\ # 放焊盘 .pad 文件建好之后打开 Allegro 的 User Preferences在 Paths → Library 里把这三个路径分别填进去。symbol 路径填D:\Allegro_Lib\symbolsshape 路径填D:\Allegro_Lib\shapespad 路径填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 并放置待导入封装打开 ADFile → 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文件看一眼如果开头是类似|RECORDBoard|这样的竖线分隔文本说明 ASCII 导出成功如果看到一堆乱码或二进制字符说明选错了格式回去重新另存。这个检查花十秒钟能省掉后面在 Allegro 里排查半小时的功夫。4. Allegro 侧导入转换器操作与文件归位4.1 新建 BRD 并调用 Altium PCB 转换器打开 Allegro PCB EditorFile → New新建一个.brd文件同样存到英文路径下比如D:\Allegro_Work\import_test.brd。这个 brd 是导入的容器导入完成后封装会以 symbol 的形式出现在这个设计里但真正的库文件是转换器另外生成的两者要区分开。新建 brd 后点菜单 Import → CAD Translators → Altium PCB。弹出的对话框里Input File 选刚才 AD 导出的ad_to_allegro.PcbDocOutput 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 类的进 symbolsSHAPE 类的进 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 就要查单位设置。第二步新建一个测试 brdPlace → 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 报告”这三步哪怕只导了一个封装也不跳过。这套流程救过我两次一次是发现散热焊盘丢了一次是发现丝印层跑到了装配层都是不验证就发现不了的问题。希望帮到你少走我踩过的那些弯路。本文还有配套的精品资源点击获取