☰
Allegro中封装类型选错?Change Drawing Type转换技巧与注意事项
2026/10/21 23:49:20 网站建设 项目流程

用过 Allegro 画封装的人,基本都遇到过这个尴尬:封装画了大半天,焊盘、丝印、位号全部摆好了,才在保存前发现新建文件时选择的 Drawing Type 和实际想做的封装类型对不上——想画板框建成了 Package Symbol,想画元件封装却建成了 Mechanical Symbol。遇到这种情况,第一反应往往是删掉重画,但我后来翻菜单时发现,Allegro 其实一直留着一条官方通道,专门干这件事:File 菜单下的 Change Drawing Type。这篇文章我就把这条通道怎么用、改了之后还需要做什么,一次性讲清楚,给所有被这个操作卡住过的朋友留一份参考。

1. 先别急着删文件——Drawing Type 选错之后真正的影响面

1.1 五种 Drawing Type 各管一摊,先弄清自己错在哪

Allegro 里新建 Symbol 时,Drawing Type 下拉菜单里常驻着五种类型,很多人其实一直没分清它们各自的职责。这里先放一张表,把它们的用途和编译产物串一下:

Drawing Type主要用途常见编译文件
Package Symbol元件封装,包含焊盘、丝印、装配层、位号和器件高度等电气与贴装信息.psm
Mechanical SymbolPCB 外形、定位孔、拼板边框、安装结构等纯机械要素.osm
Format Symbol图框、标题栏、文档表格,出图时套用.fsm
Shape Symbol可复用的铜箔形状,比如特殊焊盘外形、敷铜区域.ssm
Flash Symbol过孔或焊盘与敷铜连接时的十字花热焊盘定义在 Pad Designer 中引用

Package Symbol 是大家平时最常用的,因为它才是真正意义上的"元件封装":引脚、丝印、装配层、高度、位号这些东西都要靠它来表达。Mechanical Symbol 则负责板框、螺丝孔、工艺边这些结构件,它通常不包含电气引脚。Format Symbol 做的是"画图纸的边框",Shape Symbol 和 Flash Symbol 则偏向具体图形和热焊盘定义。

如果只是画错了类型,很多人会以为改名就行,其实远没那么简单。Allegro 的库管理器和 PCB 编辑器在调用符号时,是严格按照 Drawing Type 来分类索引的:贴片和插件元件在 Placement 里调 .psm,板框在 Design Outline 里调 .osm,出图表格调 .fsm。类型不对,图形画得再完整,在真正的设计流程里根本不会被调用。

1.2 选错不是"名字问题",而是整个数据库归类问题

我见过不少新手把"画板框"和"画封装"混在一起,做完才发现类型不对。这里的关键点在于:Allegro 在保存 .dra 文件时会连同"这个符号属于哪一类"的信息一起写入数据库,而后续生成的编译文件扩展名也完全由这个类型决定。PCB 编辑器拿到一个符号时,会先看它的类型标记,再看它是否归属于正确的库目录,最后才把图形数据读进来。

你可以把 Drawing Type 理解成"证件类型":同样是证件,身份证、护照、驾照各管各的使用场景,信息可能差不多,但拿护照去过闸机、拿身份证去办登机牌,流程上就是走不通。Allegro 也一样,类型不匹配,数据就不会进入对应的调用通道。

这也解释了为什么 Change Drawing Type 不是简单地把下拉框改一个选项,而是要对当前 .dra 文件的数据库结构做一次重新归类。文件里那些通用图形元素(线段、圆弧、文字、Shape)大概率能保留,但和目标类型冲突或者不兼容的专属元素,就可能出现警告甚至丢失。

1.3 哪些情况下"改类型"真能救回来

不是所有选错类型都必须重画,大部分情况下是能救的。以我的经验,可以按下面几条来判断:

  • 如果只是画好了外形、丝印、文字这些通用图形,还没有放引脚或者放得很少,那转换基本无损,完全可以改。
  • 如果 Package Symbol 里已经放了一堆引脚,而你只是想把它改成 Mechanical Symbol,引脚在转换后通常还会留在画面上,但它已经不再具备电气引脚的语义,需要后续手动处理甚至删除。
  • 如果 Mechanical Symbol 要改成 Package Symbol,图形能保留,但引脚、位号、Device 属性这些元件封装特有的信息不会自动补出来,得重新创建。
  • 如果文件里既塞了引脚又塞了 Flash 定义这种跨类型混用内容,那转换后整理成本可能比重画还高,我建议别折腾。

说到底,"改类型"救的是那些以通用图形为主的半成品。越接近"纯图形",转换越安全;越是依赖类型专属数据的文件,越要慎重。

2. 转换之前:备份、检查、想清楚,这三件事缺一不可

2.1 先"另存为"一份,这是唯一的后悔药

Change Drawing Type 这个操作没有 Ctrl+Z。虽然 Allegro 偶尔会弹一个"转换可能导致属性丢失"的警告,但它不会帮你在确认之后自动留备份。我自己吃过一次亏:当时从 Package Symbol 改成 Mechanical Symbol,转完发现有几条丝印线的层被重置了,想退回发现原文件名已经被覆盖,最后只能靠同事电脑里的旧版文件捞回来。

所以动手之前的第一个动作,一定是给当前文件做一次备份。最简单的方式是 File > Save As,把文件命名成 xxx_backup.dra;或者直接把这个 .dra 从库目录里复制一份到临时文件夹。这样就算转换结果不满意,也只需要把备份文件复制回来,几秒钟的事。

2.2 盘点文件里有哪些"类型特有"的元素

转换之前,我还建议先快速做一个"元素盘点",看画面上到底有哪些东西。打开当前 .dra,依次检查:

  • Pin:Package Symbol 的核心元素,引脚数量、编号、位置。
  • RefDes / Device 属性:Package Symbol 通过它们和原理图元件关联。
  • 丝印、装配层、高度标注:Package 常用,但 Mechanical 也经常用到。
  • 板框、定位孔、V-cut、工艺边:这些在 Mechanical Symbol 里最典型。
  • 图框、标题栏文字:Format Symbol 里最典型。
  • 热焊盘形状:Flash Symbol 里最典型。

把"这个文件里有哪些特定类型元素"写在纸上,转换之后再逐项核对,是最稳妥的。因为很多人转换后容易忘记检查引脚,直到下次打开库管理器才突然发现 pin 没了。

2.3 三个自检问题,决定该"转换"还是"重画"

在按下那个确认按钮之前,我一般会用三个问题劝自己冷静一下:

  1. 转换后的目标类型能否顺利生成编译文件,并被正确的设计流程调用?
  2. 原文件里那些"类型特有元素"会不会大量丢失或失效?如果会,我有没有快速补齐的手段?
  3. 这个封装是否已经被现有 PCB 设计引用过?

第三点尤其重要。如果一个封装已经出现在某个板子的库列表里,那么它的编译文件可能早被旧设计锁定了。这时候你把 .dra 的类型原地改掉,旧板子后续打开就可能找不到正确的符号,库管理器也会出现版本混乱。遇到这种情况,我更推荐新建一个正确类型的符号文件,然后把图形复制过去,保留旧封装不动。

3. 改类型实操:菜单入口、转换细节与关键验证

3.1 入口在哪:菜单和命令行两条路

打开需要修改的 .dra 文件之后,在菜单栏找到 File 菜单,接近底部的位置有一项 Change Drawing Type…,点击之后会弹出一个独立的转换对话框。

如果不想动鼠标,也可以直接在 Command 窗口输入:

change drawing type

回车后效果和点击菜单完全一致。我通常偏爱命令行,因为画封装时十有八九手都停在键盘上,命令行比鼠标点菜单快不少。

需要注意的是,这个命令只有在 Symbol Edit 模式下打开 .dra 文件后才有效。如果你已经在 PCB Editor 的设计文件里,那是找不到这个入口的,因为它是纯符号编辑工具的功能。

3.2 转换时弹出的警告怎么理解

点击转换后,Allegro 可能会弹出一句提示,大意是"改变 Drawing Type 可能导致某些属性或约束丢失,是否继续"。看到这句话不用慌,它只是一个通用警告,并不代表转换一定会出问题。

对话框里会列出当前文件可以转换的所有目标类型。你只需要选中想改成的类型,点击 OK 即可。转换过程通常很快,几秒内完成,至少我在 16.x 和 17.x 两个版本里操作都没遇到卡顿。

有一点要强调:整个转换动作改的是"当前打开的这个 .dra 文件的类型标记",它不会自动帮你重新编译生成新的 .psm 或 .osm。很多人在这一步就以为大功告成了,结果回到库管理器里发现符号还是调用不了,原因就在后面第 4 章讲的编译环节。

3.3 转换后的立刻验证

转换完成后,我会做一套固定的"三级验证",确认状态正常再往下一步走:

第一级,看 Options 面板。确认当前文件类型的显示已经变成了目标类型。有些老版本不会即时刷新,可以通过执行what命令并点击画面空白处,让它重新读取类型信息。

第二级,打开 Display > Color/Visibility,检查各层显示状态。重点看原来画的那些图形所在的层有没有被隐藏,或者有没有因为类型切换而暴露出来一些原本看不到的元素。

第三级,检查特殊元素。如果是 Package 和 Mechanical 之间的转换,重点看 Pin 是否还在;如果是从 Format 转过来,看文字和表格是否还在。只要这三项确认没问题,就可以保存了。

3.4 实操案例:把误建为 Package Symbol 的板框转成 Mechanical Symbol

举一个很典型的场景。A 同学刚接手一个小项目,要做一块简单的四层板板框,结果在 File > New 的时候手滑选了 Package Symbol,然后照着结构图把外框、螺丝孔、定位孔全部画完,正准备保存才惊觉类型不对。

他的处理流程是这样的:

  1. 先把当前文件 Save As 备份为 debug_board_frame.dra。
  2. 在 Command 窗口输入change drawing type。
  3. 在弹出列表里选择 Mechanical Symbol。
  4. 转换后检查画面,外框线和螺丝孔都还在,坐标没有偏移。
  5. 保存后,通过 File > Create Symbol 相关操作重新编译,生成 .osm 文件。
  6. 回到 PCB Editor,在 Design Outline 配置中成功调用了这个板框。

整个过程不到十分钟,比重新画一遍省了一个多小时。这套操作能成功的前提,正是因为这个文件里全是通用图形元素,没有 Package Symbol 特有的引脚数据,所以转换得非常干净。

4. 转完不等于完事——编译文件、遗留引脚和后续坑

4.1 最关键的一步:重新生成编译文件

这是整个转换流程里最容易翻车的一步。Allegro 的符号编辑文件是 .dra,但 PCB 编辑器真正读的是编译后的符号文件,比如 .psm、.osm、.fsm。你改了 Drawing Type,只等于改了"编辑稿"的类型,但库里那个旧编译文件还顶着一个旧类型标识。

所以转换类型之后,一定要重新执行编译,生成与目标类型匹配的新符号文件。在 Symbol Edit 环境下,通常是 File 菜单下 Create Symbol 这一类命令,Allegro 会根据当前 Drawing Type 自动选择输出格式。比如 Package Symbol 编译成 .psm,Mechanical Symbol 编译成 .osm。

最稳妥的做法是:在编译之前,先到库目录里把旧的编译文件改名或者直接删掉,再执行编译。我见过有人转换后顺手编译,结果因为旧文件还在,库管理器读取时优先找到了旧文件,导致新类型一直不生效。

4.2 Package 转 Mechanical 后,遗留的 Pin 怎么处理

Package Symbol 转成 Mechanical Symbol 后,画面上的引脚不会自动消失,这一点不少人都没心理准备。但注意,这些引脚已经不再被当作真正的电气 Pin 对待了,它的属性语义已经失效。换句话说,它只是"看起来像 pin 的图形残留"。

如果这个文件将来是要当板框用的,那么这些残留 pin 就是纯多余的东西,建议直接在编辑界面里用删除命令逐个清掉。删完后重新检查一遍,确认没有遗留,再重新编译。我在实际项目里遇到过一次没删干净的情况,结果机械符号被某个下阶流程读取时,多出来几个"幽灵引脚",排查了很久才发现是这个残留导致的。

反过来,如果是 Mechanical Symbol 转成 Package Symbol,那你就得手动补上真正的引脚定义。这一步没有捷径,只能通过 Symbol 编辑环境里的引脚添加功能逐个放置,同时还要补位号属性。所以遇到这个方向,我通常会重新评估一遍:如果封装原来就已经画得很复杂,直接新建一个 Package Symbol,然后把旧图形复制过去,反而更干净。

4.3 层叠归属和颜色显示问题

转换后另一个容易被忽略的问题是层的显示状态。不同 Drawing Type 对默认层的侧重不一样:Package Symbol 里常见的 PACKAGE GEOMETRY 层、COMPONENT 层,在 Mechanical Symbol 里就不一定处于显眼位置;而 BOARD GEOMETRY、DESIGN OUTLINE 这类层在 Mechanical 里会更常用。

转换之后,画在 PACKAGE GEOMETRY 上的丝印可能还在,但颜色开关可能默认被关掉,看起来就像丢了。经验是:转换完成后,第一时间打开 Color/Visibility,把所有层都点开看一眼,确认图形真的都在,再根据目标类型的习惯把元素重新归属到合适的层上。

举个常见的例子:原来画在 PACKAGE GEOMETRY 上的文字,转成 Mechanical Symbol 后,最好手动移动到 BOARD GEOMETRY 或 REF DES 对应的层,这样后续调用时显示逻辑才正常。

4.4 什么情况下还是"重画"更划算

Change Drawing Type 确实能救急,但它不是万能药。根据我的实践,下面这些情况更适合重画而不是硬转:

场景建议
只画了框架图形,没有特殊电气元素直接转换,很划算
封装引脚和位号都已建好,且数量较多可以转,但要充分评估引脚残留问题
文件里同时混入了 Pin、Flash、Shape 等跨类型元素重画更省心
封装已经被旧设计库大量引用不要原地改,新建一个正确类型的符号
对 Allegro 编译机制还不熟悉更建议新建正确类型文件,复制图形

如果你决定走"新建正确类型 + 复制图形"的替代方案,操作方式也很简单:先在 File > New 里建一个目标类型的空符号,然后在原文件里框选全部图形,复制,再到新文件里粘贴。这样你绕过了类型转换的数据库重排过程,只把纯图形搬过来,逻辑上更可控,对新手尤其友好。

最后分享一个我个人的小习惯:现在每次新建符号前,我都会先看一眼 Drawing Type 再动手,同时在库里准备几个"空模板"——一个空 Package Symbol、一个空 Mechanical Symbol、一个空 Format Symbol,图形框架都提前画好了。真要做新封装时,复制模板再改,很少再碰到选错类型这种问题。这个习惯帮我省掉了很多和 Change Drawing Type 打交道的场景,但真遇上了,知道这个入口在哪、转完该做哪些收尾,心里的底气还是完全不一样的。

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

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

立即咨询