直接说结论AD和PADS的封装库迁到Allegro完全可行但别指望有哪个按钮一按就全自动搞定。我自己帮客户做过好几次这种跨平台PCB设计迁移也见过不少同事在那边一个个封装手工重画效率低到怀疑人生。手工重建不是不行但手里几百个封装真要一个个人肉去画谁都顶不住。这篇就把我现在在用的这套完整流程写出来从AD和PADS这两种平台把封装库逐步转换成Allegro能直接使用的库文件顺带把转换过程中最容易踩到的报错和坑逐条拆开讲。整个流程不需要额外采购第三方付费转换工具。Allegro自带的导入器能承担大部分工作配合一点手工修正就能把一个库从“看着能用”提升到“可以上产线”。文章会比较长建议先收藏。不管你是硬件工程师、PCB layout工程师还是团队里的EDA工具管理员只要正在面临“老平台封装库搬到Allegro”这个问题这篇都能帮你少走不少弯路。实操层面我会把每一步尽量写细包括文件选项勾哪里、单位怎么设、后处理怎么检查让第一次操作的人也能照着走完。1. 迁移前的整体思路先搞清三条路线再动手1.1 哪些场景需要把AD/PADS库迁到Allegro先说场景。我接触到的“AD/PADS转Allegro”需求大多数来自这几种情况公司从AD或PADS全面切换到Cadence工具链可能是客户要求也可能是行业合规需要尤其是通信、工控、汽车、医疗几个领域对Allegro的使用率偏高。团队被并入大厂之后总部统一规定用Allegro原来积累的封装库不能扔。个人转型平时自学用AD进新公司发现全套流程都是Allegro之前做好的封装库想带过去。外包项目周期紧张从别的工具平台拿来的板卡文件没有原始库只能靠转换提取。不管是哪种情况核心矛盾都一样板级设计文件可以转换但封装库是多年的经验积累比如焊盘尺寸、孔径公差、热焊盘设计、丝印标注习惯都是反复改版磨出来的。扔了重画代价极高带过去又存在格式壁垒。1.2 三条路线怎么选我自己实际评估过三条路线这里直接给对比方案优点缺点适合场景手动在Allegro里重建封装质量完全可控焊盘、丝印、3D体都能按新规范来速度极慢几百个封装要了命核心器件、关键封装少于20个时Allegro自带导入器 手工修正速度快能保留大部分图形数据成本低转换后需要检查修复部分参数可能丢大多数中等规模库迁移本文主角第三方付费转换工具/外包服务批量处理能力强服务商有经验按封装数量收费麻烦且要提防数据外泄千级以上封装、对工期要求极高时才考虑我倾向的策略是先走方案二把全部封装转换一遍然后把其中高功耗、高频、高密度的关键封装单独拿出来人工复核必要时重建。两条腿走路既不拖时间又能守住关键器件的质量底线。2. 文件准备与工具检查少走弯路的几个前置步骤2.1 源库文件格式盘底动手之前先把源平台的文件格式搞清楚。不同平台的库文件后缀差别很大不先理清会导致后面导出选项选错。AD平台的封装库是 .PcbLib 文件原理图库是 .SchLib。AD能把库单独另存为ASCII格式但实际转换时我更推荐用“中转PCB”的方式下文会细讲。PADS平台的封装库和焊盘库是分开的早期版本存在 .pt4 / .pt5 这类库文件里VX版本后也有自己的库目录结构。PADS的库文件是二进制格式Allegro读不了必须通过PADS Layout导出ASCII.asc再中转。Allegro这边的“库”其实是一组文件的集合封装符号文件 .psm、焊盘文件 .pad、几何图形 .dra以及老版本可能出现的 .txt 封装列表。理解这层结构很重要因为后续导出库里会看到一堆文件很容易懵。所以说穿了AD和PADS的库迁移道理是一样的先把源库封装全部摆到一块空PCB上再用各自工具的ASCII导出功能生成中间文件最后给Allegro导入。这个思路能绕开大部分格式不兼容的问题。2.2 Allegro导入功能版本与组件检查Allegro的EDA导入功能最早在17.2版本开始集成到菜单里。如果你的软件是17.2之前的老版本可能压根找不到导入AD或PADS的入口。我建议至少用17.4最好用22.1或更新的版本导入器的兼容性和稳定性会好很多。另外一个很隐蔽的坑安装Allegro时有个组件叫“EDA Interfaces”或者“Import/Export translators”如果安装时没勾选后面菜单里根本不会出现导入选项。很多人卡在这以为版本不对其实是对应组件没装。检查方法是直接在Allegro命令行输入version看版本号然后看菜单里有没有 File Import EDA。还需要确认的是单位设置。Allegro的导入器支持mil和mm两种单位但导入前最好手动确认源文件当时用的是什么单位。AD的PCB默认是milPADS通常是mil或mm都有。单位选错了整个板子的尺寸会等比错掉非常坑。3. AD封装库迁移实操用中转PCB法打通AD到Allegro3.1 第一步在AD里把封装库“摆”到空PCB上AD的 .PcbLib 文件理论上可以直接通过 Save Copy As 存成ASCII.int格式Allegro的 Altium Design 导入器也能识别。但在我的实际测试里直接导入 .int 文件经常出现封装尺寸偏移、焊盘丢失的情况稳定性不太行。目前我用得最顺手的方式是“中转PCB法”在AD里新建一个空白PCB文件建议大小设置得大一点给后续排列留空间。执行 File New PCB然后设置原点Edit Origin Set原点放在左下角比较常规。打开库文件面板选中要迁移的 .PcbLib把所有封装全部拖拽到空PCB上。排列时注意每个封装之间留3到5mm间距避免导入后重叠。可以用AD的Align功能快速对齐或者干脆写一段小脚本批量排列。放置完所有封装后一定要检查Designator有没有重复。因为后面导出库的时候Allegro会以位号或封装名来处理器件重复会导致信息覆盖。这一步最花时间的其实不是放封装而是检查源库本身。我碰到过源库里同一个封装名对应两套不同图形的情况这种脏数据在转换后会直接变成错误封装所以建议放完封装后在AD里先跑一遍DRC把重复位号、缺失封装名这类基础错误清掉。3.2 第二步导出ASCII文件并检查完整性摆放无误后接下来导出中转文件。在AD中执行 File Save Copy As。保存类型选择“ASCII”生成的文件后缀是 .int。文件名一定不要用中文路径也一定不要有中文这是老生常谈但每次都有同事踩。导出后用文本编辑器打开这个 .int 文件简单检查一下。这里有两个快速判断指标文件体积如果只有几十KB那大概率封装没放全或数据缺失正常情况下几十个封装的文件应该在几MB以上。关键词检查在文件里搜索 PCBLIB 、 LIBRARY 这类段落确认封装数据确实被写进去了。如果是比较老的AD版本可能没有“ASCII”这个保存选项那就得先把AD升级到较新版本再导出或者走另一个方向从AD导出DWG/DXF再用Allegro导入DXF但那个方式只保留图形焊盘属性会全部丢失不推荐作为主路径。3.3 第三步Allegro导入AD文件现在切到Allegro这边。打开Allegro新建一个空白PCB比如导入模板里最简单的Artwork格式即可。菜单执行 File Import EDA Altium Design。选择刚才生成的 .int 文件设置好输出目录。单位设置这里要特别小心如果AD那边默认单位是mil这里也选mil如果AD是mm这里选Millimeter。选错的话所有尺寸等比例错掉后面完全没法用。点击导入然后耐心等。小的板几分钟封装多的板可能需要更久。中间千万别乱点鼠标容易把进程搞挂。导入完成后打开log文件看一遍。重点留意两类信息一是警告级别以上的报错二是被自动忽略的对象清单。比如说某些铜皮因为格式转换失败被跳过这类信息会在log里留下关键字提前发现能省下不少后处理时间。实际导入过程中Allegro还可能出现无响应的情况。我的经验是先别急着杀掉进程打开Windows任务管理器看CPU和内存占用如果还在动就继续等如果几分钟内完全没变化再考虑结束进程并重新导入。3.4 第四步从Allegro反向导出封装库导入后的结果是一块包含所有封装“实例”的PCB但它还不是库文件。我们需要从这块PCB里把封装重新“提取”出来。在Allegro菜单执行 File Export Libraries。勾选要导出的内容封装符号.psm、焊盘.pad这些基本都要如果板上有特殊图形还需要勾选其他选项。设置输出目录点击导出。导出完成后到目录里检查文件结构。理想状态下每个封装至少对应一个 .psm 文件、一个或多个 .dra 文件还有若干 .pad 文件。到这里AD库的迁移步骤就已经打通了。但先别高兴太早导出的库必须逐项检查。我每次都会用Allegro的符号编辑器随机打开3到5个封装看一眼焊盘编号、丝印、装配层是否正常。抽样合格再进入批量应用阶段否则就得回头排查导入环节。4. PADS封装库迁移实操ASC文件导入与焊盘修正4.1 第一步PADS端导出ASC文件PADS库迁移的方法论跟AD类似但细节差异很大要单独写一章。PADS的库文件Allegro读不了所以同样要先做一块“中转PCB”。步骤是打开PADS Layout新建一块空白PCB。把需要迁移的所有封装从库管理器拖拽或添加到板面上。检查并设置原点一般放在板框左下角。保存之前先检查所有需要迁移的焊盘有没有依赖特殊库文件。PADS里有些焊盘是“库焊盘”不带库直接放上来的话导出时会缺数据。确认无误后执行 File Export格式选择ASCII生成 .asc 文件。导出时会弹出一堆选项我的建议是能勾的都勾上尤其是包含器件包含封装包含板框包含布线包含铜皮宁可多导出无用信息也不要少导出关键信息。这里有个特殊提醒PADS的 .asc 文件是文本格式可以用文本编辑器打开检查但如果文件很大几十MB文本编辑器可能会卡。检查第一行和最后一行的内容确认没有出现截断、乱码就可以。4.2 第二步Allegro导入PADS设计的操作要点Allegro导入PADS的入口在 File Import EDA PADS。选定 .asc 文件后有几个选项需要重点确认单位和源文件一致PADS常用mil。导入模式建议选择“New”而不是“Incremental”保证导入的是一个干净的结果。文件命名输出文件不要跟源文件重名避免错误的缓存覆盖。有一个容易忽略的隐藏要求Allegro的PADS导入器在转换时需要调用PADS相关组件如果电脑上没有安装PADS部分版本会直接报错或导入失败。解决办法是安装一个PADS的评估版或者找一台装有PADS的机器完成导出中转再把中间文件拷回Allegro环境。导入完成后同样先打开log看警告信息。PADS转换中常见的警告包括“Pad stack conversion incomplete”“Thermal relief not defined”等一旦在log里看到就要做好后续手工修正的心理准备。4.3 第三步焊盘与Symbol的后期修正PADS转过来的封装最麻烦的地方在焊盘。PADS支持自定义钻孔形状、异形焊盘、热风焊盘花焊盘但Allegro对复杂焊盘的定义方式不同转换后经常会变成圆孔或方孔导致可制造性下降。我实测下来最容易出现问题的焊盘类型有PADS焊盘类型转换后常见问题修正方式椭圆孔被简化成圆孔手动在Pad Designer里改钻孔形状花焊盘/热风焊盘Flash符号丢失变成实心铜重新定义Thermal Relief并关联Flash异性焊盘图形变形或变为Outline重建Shape并关联到焊盘盲埋孔层对信息丢失手动按叠层结构重新定义这个阶段没有捷径只能一个焊盘一个焊盘地核对。好消息是通常一个库里特殊焊盘只占少数大部分常规贴片和直插焊盘转换后是正常的。我习惯的做法是先在Allegro里打开几个典型封装确认普通焊盘正常再按类型抽查特殊焊盘。发现一组异常就到对应的 .pad 文件检查定义并返回到源库确认原始参数。多次核对后如果改动量太大直接重建这个封装反而更快。5. 高频报错排查这几个问题我基本每次都遇到5.1 报错一Allegro提示cell read-only怎么处理先说个老熟人Allegro提示 cell read-only。这个问题在迁移和日常使用中都会遇到表现形式是编辑封装时某些cell封装单元只读没法修改。常见的三个来源Windows文件属性被标成只读特别是从压缩包解压、从光盘复制、从服务器同步下来的文件。Allegro启动时读取的库路径下文件被其他程序占用系统自动以只读方式加载。中心库或CIS库的权限不足数据库管理器控制了写权限。排查方法很简单直接在文件管理器里找到对应的 .dra 或 .psm 文件右键属性把“只读”勾选去掉。如果属性正常还只读就把对应文件复制到本地磁盘另一个目录再打开。如果是大型团队用中心库这个问题多半是库管理权限配置的问题。不要直接在Allegro里强行改应该从库管理端检查当前用户是否有编辑权限。提示Allegro打开文件时如果检测到文件被其他进程占用会静默地以只读模式打开。排查时可以同时看一下“File Properties”里的当前文件状态。5.2 报错二导入后铜皮只剩轮廓动态铜箔丢失转换后经常看到这样的现象铜皮区域显示为一条封闭的轮廓线内部填充消失了。这在AD和PADS导入过程中都出现过。原因是动态铜皮在不同工具里的数据模型不同。AD的敷铜和PADS的Copper Pour在转换时会尝试转成静态shape但转换器对“边框”和“填充”的映射经常失败结果就是只保留了外框。处理思路分两种看具体情况如果轮廓边界完整可以选中这个shape右键Shape Fill尝试把填充状态改成“Always”有时能直接恢复。如果填充后形状错误或铜皮与焊盘的避让关系错乱就别犹豫了直接删掉重新画。我的经验是铜皮这种东西不要纠结于100%还原。迁移后重新铺一次铜的时间成本远低于手工修正转换错误铜皮的时间成本。5.3 报错三PADS定位孔/开孔删不掉的原因与解决这个问题在PADS本平台就经常出现。用户编辑PADS文件时选中某个定位孔或安装孔按Delete没有反应或者删了之后刷新又回来了。按我排查过的案例原因基本逃不出这几种这个孔不是独立过孔而是画在Board Outline层上的2D Line选中它时只是选中了图形线段孔本身是板框的一部分删掉线段后板框会报错。孔被包含在一个Reuse或者Group里整体被锁定需要先UnGroup或解锁才能编辑。孔本身是库元件的一部分比如某个封装自带定位孔你误以为它是独立的直接在PCB里删当然删不掉得去对应元件封装里修改。解决办法也简单先用Filter工具把选区类型切到“All”再点选这个孔从属性面板看它属于哪一层、哪个元件。如果是Reuse就右键Ungroup如果是板框线段就切到Board Outline层处理如果是元件自带孔就得打开对应封装去改。注意直接从AD/PADS原来的PCB文件中删除定位孔和当时的叠层设置、钻孔文件输出都有关系改完记得重新导出钻孔文件再确认。5.4 报错四导板框进PADS提示超出范围这在把DWG或者AutoCAD文件导入PADS时特别常见导入板框时提示“超出设计范围”或者类似警告速度也变得异常缓慢。我遇到的情况绝大多数都是单位不对。CAD图默认单位可能是毫米但DWG文件内部标注单位是英寸或者反过来。导入时PADS用当前设计单位去解析坐标如果单位设置差了25.4倍板框自然飘到“几千mil之外”直接被判定为超出范围。处理办法先在AutoCAD里用 DIST 命令测量一个已知尺寸的边确定文件的真实单位。在PADS导入DXF/DWG之前把当前设计单位设置成和CAD一致。如果CAD文件整体离原点太远在AutoCAD里执行移动命令把图形基点到 (0,0) 附近再导入。导入后用 Set Origin 把原点重新放到板框角落。这个问题不属于AD/PADS转Allegro的直接范畴但很多人在库迁移之前要先处理板框文件所以顺手放到这里遇到了能直接翻到解决方案。5.5 报错五转换后焊盘编号错乱或缺失AD或PADS的封装转换到Allegro后焊盘编号Pin Number偶尔会错乱。比如原本是1、2、3导入后变成1、2、5或者BGA封装引脚编号顺序乱了。主要原因有两个一是源库封装本身用了不规范的引脚编号二是转换时不同层的数据映射不完全。排查方法是在Allegro符号编辑器里执行 Tools Report Pin Report把全部焊盘编号列出来再和原厂规格书对照。如果只是个别封装有问题直接在Pin编辑模式下手工修改编号。批量检查的话可以借助Skill脚本遍历某个目录下所有 .dra 封装文件逐个打开导出Pin Report再和期望列表做比较。这个方式能省不少人力但需要有一定的Skill编程基础。6. 迁移后的验证与新库落地检查清单6.1 用Pad Designer验证焊盘定义封装库迁移完成后最基础但最重要的一步就是用Pad Designer验证焊盘。打开Allegro的Pad Designer加载每一个 .pad 文件检查三项核心内容钻孔尺寸是否与源库一致。我实测过PADS的椭圆孔转换成圆孔后孔径经常变成等效直径而不是原来的长轴尺寸。焊盘外径贴片焊盘的长宽是否变化热焊盘是否还有阻焊开窗。钻孔层对盲埋孔的起始层和结束层是否与叠层一致。不要指望批量工具能查这些最可靠的还是人工抽查按封装类型批量核对。如果库量很大可以写一个Skill脚本自动对比 .pad 文件中的关键参数和一份Excel预期表。6.2 3D体与丝印的缺失补齐AD和PADS转过来的封装一个普遍的痛点是3D模型基本清零。Allegro里有两种3D体方式一种是直接在封装里画 .3d 文件或者导入STEP模型另一种是通过封装属性关联外部STEP文件。转换器通常只保留二维图形和焊盘3D体必须重新添加。建议的处理策略优先给关键器件添加上3D体比如电源模块、连接器、继电器、电解电容等对结构干涉敏感的元件。3D模型可以从元件厂商官网下载STEP文件在Allegro封装编辑器里通过 Place 3D Body 导入。丝印层也容易丢。AD的Top Overlay对应到Allegro的Silkscreen Top但转换时有时会错位或丢失尤其是一些自定义字符、极性标识需要重新补齐。说明3D体缺失不影响电气连接但会影响结构设计、干涉检查和生产图纸审查所以属于“必须抽空补上”的任务不是可选项。6.3 在OrCAD/Allegro环境下的联调检查封装库最终是要配合原理图使用的。迁移完成后需要在OrCAD Capture或Design Entry HDL里做一个联通测试。做法是新建一个测试原理图放上一个典型的带封装器件比如一个0805电阻、一个LQFP-64单片机再到Allegro里导入网表确认每个封装都能正常调用没有封装名不匹配、焊盘编号对不上的情况。这一步相当于给整个迁移流程做一次端到端冒烟测试。如果测试器件能顺利进入PCB并跑完DRC基本说明库迁移已经打通如果连最简单的电阻都放不进去那就回去查封装名和焊盘定义。跑DRC时重点看未连接的引脚焊盘间距违规丝印与焊盘重叠封装高度与禁布区冲突全部通过后这批库才算真正可用于项目。7. 最后说几句掏心窝的经验这套AD/PADS转Allegro的流程我前后跑了少说有五六遍从一开始每转一个库都手忙脚乱到现在基本能一气呵成。说几个实际操作中才体会得到的事情。第一转换质量的上限取决于源库的规范程度。源库如果本身焊盘孔径乱七八糟、位号乱编、层叠张冠李戴那转换出来的东西就是垃圾进垃圾出。所以动手前花半天整理源库比转换后花两天修错误划算得多。第二不要一次性转几百个封装就跑。先用三五个典型封装通跑全流程确认每个环节都没问题再把全部库批量处理。别觉得这是浪费时间遇到过太多人一次性导入几百个封装出了错都不知道是哪个环节引入的。第三跨平台PCB设计迁移这种事最怕的就是“差不多”。封装库是生产底层资产焊盘差个几mil板材加工出来就是焊接不良甚至报废。所以本文里所有提到的验证步骤都不要跳过。宁可慢一点也要保证每个文件在进入项目之前是干净的。最后一个小技巧转换后的库一定要放到版本管理里比如Git或SVN。每次批量修改都提交一次变更记录后面出了问题能直接回溯。别问我为什么强调这个——用最原始的方式管理封装库我已经吃过好几次亏了。