
用AD封装库无缝转出Allegro封装这套操作流程我踩了两个星期的坑才理顺很多做PCB设计的工程师手头同时握着Altium Designer和Cadence Allegro两套工具。AD上手快、封装库资源多Allegro在高速板、复杂板、生产端生态上又是绝对主力于是“AD封装导入Allegro”就成了跨工具协作里绕不开的活儿。更常见的场景是公司里老前辈用AD画了几年板子积累了整整一套器件库现在整体切到Allegro流程摆在面前的第一个问题就是——这几千个封装总不能手搓吧。这篇内容就是针对这个场景来的。我会从方案选型、文件格式处理、Allegro导入向导的详细操作、导入后的封装修整再到各种见鬼的报错与排查完整捋一遍。适合正在做工具迁移的PCB工程师、刚接手公司封装库维护的硬件新人也包括那些偶尔需要跨工具借用单个封装的兼职画板人。先说结论AD封装导入Allegro完全可行但绝不是点一下鼠标就100%干净完成中间涉及焊盘映射、字体替换、层叠对照、位号文本修正等一系列细节。把这些细节理顺了一个几十脚的芯片封装五分钟内就能完成导入校验入库效率相当可观。1. 整体设计思路为什么选择导入而不是第三方工具1.1 先明确你要的“Allegro封装”到底是什么形态在动手之前必须先搞清楚目标格式。Allegro的封装文件通常有两种存在形式一种是单文件封装扩展名是.dra这是Allegro封装编辑器PCB Editor里可以直接打开和保存的设计源文件另一种是编译后的库文件扩展名是.psm元件封装、.pad焊盘、.ssm机械符号、.fsm格式符号等这些是Allegro在布局布线时真正调用的库文件。如果你从AD那边拿到的封装要进入Allegro的库管理流程最终需要的是.dra源文件 .psm编译文件 一组.pad焊盘文件这三件套。很多时候新人只导出了.dra就往共用库里放结果放完板子上一调用Allegro提示找不到焊盘场面一度很难看。在Allegro 16.6及以上版本里菜单File - Import - CAD Translators - Altium就是官方提供的AD导入入口。这个入口的主要作用是把AD的.PcbLib或.IntLib封装库文件直接转换成Allegro格式它会自动处理焊盘、丝印、器件位号、装配层等信息是我们这套方案的主路径。1.2 方案对比官方导入器、第三方转换器、手动重建谁更靠谱处理跨工具封装转换圈子里大致有三条路我分别聊一下各自的情况。一是官方导入器也就是上面提到的Allegro自带Altium Translator。它的优势在于免费、随软件附带、且对于焊盘和封装结构的映射做得比较规范尤其是针对BGA、QFN这类多引脚器件生成的焊盘文件和封装文件是一一对应的不容易搞出“焊盘尺寸对不上引脚”这种低级错误。缺点也明显对AD版本有要求太老的AD库文件可能读取不了对字体和文本映射属于“能用但不好看”的水平导入后经常需要手动调整位号字高和位置。二是第三方转换工具比如一些老牌EDA数据转换平台如Omnityne、Translator系列提供的Allegro/AD互转服务。这类工具处理大批量库转换时速度很快但基本都是付费的而且转换完之后你拿到的还是那三件套焊盘、封装、丝印照样要人眼抽查一遍质量属于“花钱买效率不买保险”。对于小团队或偶尔转几个封装的场景经济上不太划算。三是纯手动重建。在Allegro里用Pad Designer做焊盘再用Package Symbol编辑器画封装。这条路精度最高、最可控但效率极低。一个48脚QFN快的话半小时慢的话折腾一个上午。只适合个别高精模拟器件或特殊封装批量做的话人会崩溃。综合下来我的建议路径是优先用官方导入器做批量转换导入后用一套自检清单一层层过一遍发现问题再用封装编辑器手动修正。这个方案兼顾了效率和可靠性也是下面所有实操细节展开的基础。1.3 一次完整转换的链路图拆解我们来理一下完整的数据流你心里先有个全局概念后面对照着操作会顺畅很多AD封装库源文件.PcbLib/.IntLib→ 预处理检查引脚定义、确认焊盘类型→ Allegro导入向导Altium Translator→ 生成中间文件.dra.pad 临时文本→ 封装编辑器打开校验 → 修正焊盘、丝印、位号 → 生成.psm文件 → 入库管理。这里有个小细节值得提前说Allegro导入AD库时并不是直接从.PcbLib文件一步到位变成.psm的而是先生成.dra和.pad你在封装编辑器里检查无误后保存时会自动编译出.psm。所以整个流程里最关键的检查动作要在.dra打开状态下完成如果这一步漏了后面发现问题就得回去改.dra再重新生成多一轮循环。2. 准备工作AD侧文件处理与Allegro环境检查2.1 AD封装库的导出格式选择AD这边的封装库常见的有集成库.IntLib和封装库.PcbLib两种。如果你手里只有.IntLib建议先在AD里打开集成库然后在左侧Projects面板里找到Source Documents下的对应.PcbLib右键选择Save Copy As把它另存为一个独立的.PcbLib文件。这么做的原因很简单Allegro的Altium Translator对.PcbLib的读取支持度最好直接喂.IntLib经常会有解析失败的情况。如果你手里连.PcbLib都没有那就用AD打开PCB文件在PCB面板里选中某个封装右键选择Design - Make PCB Library就可以从现有板子上提取生成一个封装库文件亲测可行。然后有一个很关键但容易忽略的检查项在AD里把封装库打开后逐项检查每个封装的Designator位号和Comment注释值是否都在合理范围内。Allegro导入会把AD的Designator文本映射成Allegro的RefDes文本把Comment映射成Device或Value文本。如果AD库里有某些封装的位号是空字符串或者填了一长串乱码导入后在Allegro里就会显示成奇怪的文本或者干脆缺失后期逐个清起来极其痛苦。2.2 Allegro环境变量与库路径预设在Allegro这边打开导入功能之前先把库路径环境配置好。主要涉及两个变量padpath焊盘库路径和psmpath封装库路径。你可以在Setup - User Preferences里查到当前值也可以在HOME目录下的allegro.ilinit文件里加上自定义路径。我习惯的做法是为这次转换单独建一个工作目录比如D:\Allegro_Lib_Convert目录下再建Pads、Symbols和Exported三个子文件夹分别存放生成的焊盘、封装源文件和编译文件。然后临时把padpath和psmpath都指向这个工作目录。这么做有什么好处路径隔离能让你在批量导入时快速定位生成的文件同时在导入失败后清场重来也很干净不会把一堆烂文件混进公司的正式库里。正式库是拿来给几千块板子用的慎之又慎。另外提醒一句Allegro版本不同Altium Translator的表现有细微差别。16.6版本稳定性尚可但界面老17.2以上版本的导入速度有提升并且对AD 19、AD 20导出的库文件兼容性更好。如果你的AD库版本很新AD21以后建议用17.4或22.1版本的Allegro来跑导入能省掉很多版本兼容类的报错。2.3 先读懂AD封装里的核心元素与Allegro的对应关系在点导入按钮之前强烈建议你先花十分钟确认AD封装里都有哪些元素以及它们进到Allegro之后分别落在哪里。我整理了一个常用映射表贴在下面方便对照AD封装内容Allegro对应对象常见异常焊盘Pad独立焊盘文件.pad 封装的Pin焊盘文件丢失、命名冲突顶层丝印Top OverlaySilkScreen Top封装几何线宽异常、文本乱码装配层Top AssemblyAssembly Top元件装配体文本缺失阻焊层Top Solder MaskSoldermask Top开窗几何开窗尺寸被自动放大器件位号DesignatorRefDes文本Silk层/装配层字高变形、坐标偏移器件注释CommentDevice文本乱码或对不上物料3D模型/STEP不自动映射丢失需手动挂STEP模型高度/面积属性不直接映射需在封装属性里重新填写这个表格里的内容基本决定了导入后你需要花多少时间修整。如果你发现某个AD封装里丝印用的是细线爆炸边框导入后丝印大概率会变成一堆破碎的线段甚至缺块这类情况要提前有心理准备。3. 核心实操从导入向导到封装成型的每一个关键步骤3.1 Allegro侧启动Altium导入器打开Allegro PCB Designer不需要新建板子直接进入主界面。在菜单栏依次找到File - Import - CAD Translators - Altium。我用的Allegro 17.4界面下路径是这样的File - Import - CAD Translators - Altium...点击后会弹出导入对话框。首先是选择需要转换的AD文件支持.PcbLib、.IntLib在部分版本里也支持直接选.PcbDocPCB文件并从中提取封装。这里有一个选项建议勾选上Enable ECO based import它的意思是导入时生成一个工程变更记录文件类似ECO方便你在后期Audit的时候追踪哪些对象发生了变化。因为Allegro的库文件本身不直接带ECO这个选项查错时很好使。3.2 设置单位、精度与导出路径在导入对话框中最重要的一组设置是单位与精度。AD库默认单位是mil或mm你需要在导入设置里明确转换为Allegro的工作单位。我这边所有新库统一用mm和4位小数精度这能有效避免转换过程中因四舍五入导致的焊盘坐标偏移。设置项里还有一个Output directory可以指定生成文件的输出目录。这里特别建议不要使用默认输出路径而是手动选择一个空的输出目录原因我在前面2.2里说过——路径隔离好排查、好清理。如果你的AD封装库文件非常大比如集成了500个以上封装导入前建议把不需要的封装先从AD库里删掉或者单独建库——这个操作看似简单却能让Allegro导入时间从三四十分钟缩短到几分钟。有次我导入一个两千多个封装的巨型库中途直接卡死无响应后来发现Allegro的Translator在大库时存在内存泄漏风险分批导入才是王道。3.3 导入过程中的文件映射与层映射点击Translate后Allegro会花一段时间解析AD文件。在这个过程中你会看到转换日志窗口里面逐条列出每个封装的转换状态。这里需要注意的地方有两点第一层映射。AD的层体系Top Layer、Bottom Layer、Top Overlay、Bottom Overlay、Top Solder等与Allegro的层体系ETCH、SILKSCREEN_TOP、SOLDERMASK_TOP等不是一字不差对应的。Allegro Translator内置了默认映射表多数情况下能自动对上但偶尔也会出现莫名其妙把丝印层的东西搬到装配层去的情况。转换完成后你打开几个样本封装第一时间看Silkscreen层是否只有丝印线框和位号文本装配层是否只有元件轮廓与位号如果有串层就需要在导入设置里手动调整映射关系。第二焊盘生成。Allegro会为每个AD焊盘生成一个独立的.pad文件。因为你输出路径指定了单独的Pads目录转换结束后你会看到满满一文件夹的.pad文件文件名通常是类似PAD_1_1_SMD_RECT_X0.6_Y0.6这样带有尺寸描述的形式。这些文件名不要乱改Allegro的封装文件会在内部引用它们你一旦改了焊盘文件名封装里对应的引用就断了打开封装时会报找不到pad。3.4 打开封装编辑器检查每一个Pin与几何对象导入完成后Allegro不会直接弹出一个可以编辑的封装界面你需要用File - Open选择刚才输出目录下的.dra文件在打开对话框里把文件类型切换为Package Symbol这样才能在封装编辑器里打开它。打开后第一件事按快捷键Display - Status看看有没有DRC错误。封装阶段的DRC主要是针对焊盘间距、丝印线宽、文本重叠等做检查。常见的有两类一类是焊盘间距过近报错尤其是0.5mm脚距的BGA或QFN封装在AD里能通过DRC不代表到Allegro里也能过——因为Allegro的焊盘间距规则默认值和AD不一样而且Allegro更严格。如果你的封装报这种错优先检查焊盘尺寸是否在导入时被异常放大了很多时候是转换过程中的单位换算差异导致的。另一类是丝印文本异常。AD里文本用的是一种叫TrueType的字体Allegro导入后会尝试映射成自己的herb或stroke字体。这个映射做得并不完美我见过很多次导入后位号文本从1.2mm高变成0.3mm高或者歪歪扭扭挤成一团。这种情况没有别的诀窍只能在封装编辑器里全选文本对象统一在Edit - Properties里重新设置字高和线宽。3.5 修正焊盘命名与转存psm文件当你在封装编辑器里确认封装几何、焊盘、丝印都正确后接下来的收尾工作就是把.dra源文件保存好并生成.psm编译文件。保存.dra的时候Allegro会自动在同目录下生成同名.psm文件在你的输出目录或psmpath下。但有个前提封装的RefDes位号必须是合法字符如果RefDes里有空格或特殊符号Allegro会拒绝保存并提示你修正。大多数情况下保存成功即表示psm生成成功。你可以回到Allegro主界面用Setup - User Preferences - Design Paths - Library - psmpath把刚才的输出目录加进库路径然后在PCB编辑器里试着放置这个封装检查是否能从库管理器中正常调出。我在实际项目里还遇到过一种情况批量导入的几十个封装里有几个保存时提示“Pin number mismatch or pad missing”表面意思是封装里某些引脚的焊盘文件不存在或者编号对不上。这种问题通常是源AD库的焊盘命名里包含了中文或特殊字符导致转换时焊盘文件名被截断。解决办法很粗暴但有效回到AD源库把出问题的焊盘重命名成纯英文描述再重新导出导入一次。3.6 批量导入的进阶操作用一个空板做落盘验证单个封装搞定了不代表批量导入就万事大吉。我强烈建议你在做完几个封装的抽查后新建一个临时电路板把这些封装全部摆上去做一次落盘验证。具体操作不复杂新建PCB从库管理器中搜索这批封装逐个放置到板上然后运行Tools - Reports - Library Report或者简单目测检查每个封装的丝印、位号、焊盘是否都在合理位置。重点抽查之前AD库里常用的物料比如0402、0603电阻电容、SOIC-8、TQFP-48、QFN-32、BGA-256这类主流封装。如果在这步发现某些元件封装缺了丝印框或者位号偏出板外那就说明导入时这个封装的文本映射有遗漏需要回到.dra里手动补。这种逐件修补虽然琐碎但比到布板后期发现封装丝印叠成一团再返工要节省太多时间。4. 常见问题与排查技巧实录我踩过的坑希望你别再踩4.1 表格高频报错与解决方案速查报错或现象根因分析解决办法“pad not found”或符号不可放置封装引用的焊盘文件名与实际的.pad文件不匹配检查封装所在目录和padpath确认焊盘文件名一致必要时用文本编辑器打开.dra里引用的pad名打开封装时一直转圈无响应封装文件太大或库路径包含网络驱动器将输出目录迁移到本地磁盘拆分库减少单次导入数量位号文本缩小或重叠AD字体映射异常导致字高丢失全选文本在Edit - Properties里统一重设字高推荐0.8-1.2mm丝印层多了很多细碎线段AD的中文丝印字符或特殊线宽被错误转换在封装编辑器里逐条删除或用查找相似对象功能批量清理非闭合细线导入后焊盘偏移0.01mm以上源库AD使用了英制单位且精度不足回到AD把库单位切换成公制并设置高精度再次导出导入保存.dra时提示RefDes非法位号文本中含空格、斜杠或括号在封装编辑器里把RefDes改成纯字母数字组合例如U1、R12QFN底部散热焊盘变成了多个小方盘AD中散热焊盘用多个小Pad绘制转换后没有合并在封装编辑器里用Shape重新绘制散热焊盘区域或手工放置一个大SMD焊盘封装能入库但引脚编号与原理图网表对不上AD库的Pin Designator映射出错用Tools - Reports - Component Report对比原理图符号引脚逐项修正4.2 独家经验三个最容易坑新人的细节第一个细节是焊盘的“热风焊盘”类型转换。AD里的焊盘可以设置成实心、散热十字或花孔焊盘而Allegro对焊盘的处理方式是“焊盘本身是什么形状就是什么形状”散热十字是在铺铜时的Thermal Relief设置里控制的不是焊盘文件里自带的。如果你从AD导入的焊盘是散热十字花形式在Allegro里它会被原样保留成一个带缺口的异形焊盘这在贴片电阻电容上会引发严重的立碑和焊接质量问题。解决办法导入后把所有SMD贴片焊盘统一替换成实心矩形或圆形焊盘散热处理全部交给Allegro的负片铺铜规则来管。第二个细节是Hole Size钻孔尺寸与Finished Size成品孔径的区分。AD里一个通孔焊盘通常只设置一个孔径值而Allegro的焊盘文件需要分别定义钻孔直径和完成孔径两者差值一般在0.1mm-0.2mm之间用于预留沉铜厚度。导入器在这个值上经常直接按1:1转导致钻孔偏小后续制板时过孔镀铜后孔径不够用。对策是在Pad Designer里统一检查所有通孔类焊盘把Drill值手动加上0.1-0.15mm余量。我一般通过批量方式处理不逐个焊盘去看效率太低。第三个细节是3D模型的丢失。AD库里很多封装都绑定了STEP模型导入Allegro时官方Translator不支持3D数据迁移。如果你公司的板级仿真或结构干涉检查依赖3D模型那得在Allegro封装编辑器里手动挂载STEP文件Setup - Step Package Mapping选择对应模型文件并做坐标对齐。这是个纯体力活只能按物料优先级逐个来一般是先把结构敏感的大器件和高器件挂了小电阻电容可以后补。4.3 排查流程一个真实案例的排错思路曾经有个朋友拿着一个80pin的连接器封装来问我说从AD导入Allegro之后封装放置时总是提示“Pin numbers do not match the schematic”网表比对一跑就一堆错。我让他把.dra发过来打开一看控制面板的Pin列表里引脚编号从A1到A80的排序完全乱掉了有些引脚编号还缺失导致导入到PCB后网络连接全部乱套。排查思路是这样的先对比AD源库的引脚定义看看是源库不干净还是转换没转好。结果发现AD源库里这个连接器的引脚是用矩阵方式排列的每个引脚的Designator是一个字符串其中有1、2、10这类数字还有A1这种字母数字混合。Allegro Translator在解析这类混合引脚编号时会认为非纯数字的引脚是特殊引脚优先级排到了最后于是顺序乱了。解决办法也不复杂在AD源库里把这个连接器的引脚Designator改成统一的纯数字编号比如把A1改成1、B1改成2这种规则命名然后重新导入或者导入后在Allegro封装编辑器的Pin列表里手动批量重排引脚编号。前者最省事后者耗时且容易手滑不推荐。这个案例说明一件事AD源库的数据规范化程度决定了导入的顺利程度。想在Allegro这边少遭罪先回头把AD库弄干净再过来导入事半功倍。5. 实操后的延伸库管理流程与后续维护建议完成批量导入并验证通过后剩下的事情就是把这些封装正式纳入公司封装库管理体系了。这里我根据自己的经验提几条建议。第一给每个封装补全属性字段。Allegro封装文件里可以附带COMPANY、PART NUMBER、VALUE、TOLERANCE等自定义属性建议在封装编辑器里把物料对应的关键属性填完整。因为在做BOM输出和PLM对接时这些属性是唯一的关联桥缺了它后面上ERP系统就很头疼。第二定期抽查导入后的封装与AD原库的一致性。尤其是孔径值、焊盘尺寸这些直接影响可制造性的参数建议每季度或每半年抽一次sample和原库做对照评审。防止某次AD库更新后Allegro这边的库没同步形成“双库分叉”的重大质量隐患。第三这批导入进来的封装要专门走一次封样流程。别只看库里的图形觉得没问题最好打样一批板子拿实物贴片验证一下封装尺寸、丝印极性标记、定位孔位置是否准确。库的验收必须以实物为准尤其是从别的工具迁移过来的库这个环节省不得。如果你后续还想做更复杂的操作比如在Allegro里直接把AD的某个完整工程转换过来那同样可以从File - Import - CAD Translators - Altium里选择.PcbDoc文件转换后原理图和PCB的映射关系也能基本保留。不过这个流程比单转封装复杂得多涉及约束规则、叠层、布线策略的转换以后有机会再展开讲。我在实际把AD库往Allegro迁移的过程中最深的体会是跨工具转换本身不复杂复杂的是库的数据规范化意识和验证体系。工具只是执行命令但封装质量最终考验的是工程师对器件物理尺寸、制造工艺和装配要求的理解程度。每次在封装编辑器里修一个焊盘、补一段丝印其实都是在给整条硬件链路的可靠性上保险。最后再分享一个小技巧导入完成后不要把输出目录里的.dra文件与正式库混在一起。正式库建议只保留.psm和.pad文件.dra源文件单独归档到版本管理系统的source目录。原因是.dra文件在Allegro里是可以被编辑的如果和只读的发布库放在一起容易误操作改坏封装本体而且多人协同时还会触发文件锁定问题。把源文件和编译文件分开管理出问题随时能恢复重建这个习惯值得养起来。