应用CAM编辑器反向生成PCB
这片文章主要讨论在Altium Designer's CAM编辑器(CAMtastic®)中,直接将载入的CAM文件利用反向工程输出PCB Layout文件。
将CAM数据导入CAM文档后,无论CAM编辑器当前是什么模式(CAM或是NC),导出到PCB(Export to PCB)选项会变灰。这个选项可以让用户从CAM文件直接反向生成PCB数据。这不是一个常规的导出导入过程,而是直接将数据加载到Altium Designer的PCB编辑器中。
以下小节详细说明了将初次导入的CAM文档反向生成PCB数据所需要的步骤、所需的准备和最终在PCB编辑器得到的导出数据。
导入数据
整 个过程的开始是在新的CAM文档中载入ODB++文件,或Gerber和NC钻孔文件。如果有IPC网表,用户应该在导入Gerber文件和NC钻孔数据 时一起导入网表。在导入ODB++时,如果网表不在ODB++文件夹内则只需要导入IPC文件。IPC网表可以让用户应用网络原始名称更新提取的网表,并 且将通孔和自由(非元器件)焊盘区分开。
文件»导入(File » Import)子菜单选项会搜索一个指定文件夹有特定后缀名的所有文件。例如导入钻孔文件时,会将指定目录下,以.DR*, .ROU, .RTE, *.NC* and *.TX*为后缀名的文件筛选出。如果用户收到了除了这些后缀名之外的钻孔文件,可以在优选设置对话框(DXP» Preferences)中的CAM编辑器的Miscellaneous页面,拓展文件后缀列表。在该界面下,还可以修改Gerber,Aperture,HPGL和网表文件的后缀列表。
用户可以在优选设置对话框的CAM编辑器-导入导出页面修改Gerber文件的默认导入导出设置。例如,如果经 常收到使用P-CAD生成的CAM数据,用户可能希望将坐标精确度格式从2:3(Altium Designer默认设置)修改为4:4(P-CAD默认设置)。如果用户不在此处进行修改,每次导入作业时用户仍然可以修改默认设置。
分配层类型
单个Gerber和钻孔文件都分配在单独层。此外,CAM编辑器按文件名称导入,并尝试为每一层分配一个层类型。此操作通过层类型检测模板对话框中信息进 行。(表格»层类型检测)(Tables » Layer Type Detection) 这是一个包含文件名称片段的完全自定义的对话框(拓展名、键盘或两者都包括),这些名称片段可以通过层类型识别单个文件,比如:信号平面、导航平面、边 框、钻孔和临时层(机械的)。
Altium Designer的PCB编辑器通过后缀名区分各Gerber层,例如.gtl作为顶层,.gbl作为底层。其他设计工具可能会导入.top文件作为顶层,.sol文件作为底层阻焊层。有些工具,例如P-CAD,允许用户指定Gerber输出文件名。
在导入任意一组CAM文件后,用户应该打开层列表( Layers Table)对话框并查看自动分配的类型。
用户可以打开下拉列表查看类型,并修改分配关系。例如:用户也许会发现所有的钻孔文件都自动设为了Drill Top类型。用户可能此时想要区别顶层埋孔、底层埋孔和内部盲孔设置。然而这是不必要的,稍后我们会讨论关于包含盲孔和/或埋孔电路板的钻孔层对。
如果用户收到的Gerber或钻孔文件经常没有分配到正确的层,那么用户应该查看文件名是否包含CAM编辑器可能作为特殊区分字符的内容,并将它们加入层类型检测模版(Layer Types Detection Template)对话框。
ODB++不需要使用层类型检测模版对话框,因为所有用于区别各个层的信息都储存在了模型文件中。然而导入结束后查看层类型的分配依然是一种好的习惯。
电路板层堆栈和钻孔集
分配为信号类型(顶层、底层或内部)的层或平面会出现在创建/更新层顺序(Create/Update Layers Order)对话框(Tables » Layers Order)。在大多数情况下,CAM编辑器可以从提供的CAM数据决定堆栈,但是在某些情况下,只能得到逻辑顺序(层导入的顺序)。用户需要确保层物理顺序(Layer Physical Order)列的信息是正确的,编号为1的是顶层。请小心,不要将不同的层分配相同的编号。一旦用户指定了一个有效的堆栈,对话框重新打开后,逻辑列表列会按物理顺序列的顺序显示。
创建/更新层设置对话框(Tables » Layers Sets)也会反映相同的物理顺序,在此对话框中用户可以将钻孔文件与层设置进行匹配。考虑一个有盲孔和埋孔的6层电路板(四层信号层,两层电源平面)。设计可能包含四个独立钻孔文件:
- 一个用于顶层到底层的钻孔对(通孔)
- 一个用于顶层到内部平面1的钻孔对
- 一个用于中间层1到中间层2的钻孔对
- 一个用于底层到内部平面2的钻孔对
请注意,用户选择的是钻孔集,不只是最外层的钻孔对。对于盲孔/埋孔层,所有钻孔的层都需要包含在层集中。对于通孔层,有启始层和结束层就足够了。
提取网表
这一步骤(Tools » Netlist » Extract)依赖于之前各步骤的精确度。用户只有在为电路板中所有层都分配了层类型之后才能导出网表(需将机械层设置为临时层)。
CAM编辑器会根据数控钻文件,追踪一个层到另一个层的连接性,并建立层之间的连接。由于这个原因,在创建/更新层顺序对话框中定义的层堆栈,和在创建/更新层集对话框中定义的钻孔对,成为了从CAM数据提取精确网表的重要前提。
如果在导入的Gerber和数控钻文件中包含了IPC网表文件,用户可以在新的PCB文件中恢复原本的网络名(Tools » Netlist » Rename Nets),并将通孔和自由焊盘区分开来。但是更重要的是,IPC网表提供了对所提取出的网表进行比对的参考基础(Tools » Netlist » Compare)。
从Altium Designer的PCB编辑器生成的IPC网表中,用户可能会发现CAM编辑器的比较功能经常会找出一系列没有名称的“遗漏网络”。这是因为PCB编辑 器的IPC格式包括单引脚网络,而连接网表时,CAM编辑器会忽视没有铜箔连接的焊盘。事实上,编辑器DRC有移除无功能焊盘的选项。
边界和平面
当CAM编辑器导出PCB到Altium Designer的PCB编辑器时,会自动生成电路板轮廓。要想自动生成这一轮廓,需要在代表边界类型的层(Border-type)上存在一个封闭的多 边形。如果这一层上找不到封闭多边形,或者有多个层在层列表对话框中分配为边界层,那么用户很有可能得不到所需的板子外形。
内部平面的任何分割都必须用封闭多边形定义。要检查一个多边形是否封闭,需要查询它(Q键然后点击线条)。检查是否整个多边形都高亮显示,并查看CAM面板的信息选项卡是否报告它是一个封闭多边形。如果不是,用户可以使用加入(Join)命令( Edit » Objects)将已有的图形转化成一个封闭多边形。
分 裂平面部分可能需要额外的配置,因为每个分割平面都需要各自闭合,就像Altium Designer之前的设计工具Protel那样。所以当独立的平面区域可以通过上文所述的方式导入到当前数据中,需要重新绘制分割边界。用户自行绘制闭 合的多边形时,可以通过在放置完多边形最后一个点后,在鼠标右键菜单选择关闭选项完成放置。
暂不支持嵌套平面(分割平面中包含独立区域)。
导出多边形
优选设置对话框的CAM编辑器-导入/导出页面,提供了将多边形从CAM文档导出到PCB文档过程 的其他配置选项。如果多边形是矩形,在PCB文件中创建为填充(Fill)。对于非矩形的多边形,在PCB中创建为网状或实心多边形铺铜。可以在PCB数 据中,通过访问这两种类型的多边形铺铜选项对话框,选择铺铜的类型。
如果开启了创建网状多边形(Create Hatched Polygons)选项,CAM编辑器会使用一种独立的网格尺寸和走线宽度填充文件中所有的多边形。如果CAM数据包含很小的多边形,用户则需要确保将导出选项降低到相应级别。
多边形选项对话框(通过点击相应的网状多边形选项(Hatched Polygon Options)按钮访问),允许用户修改网格尺寸、走线宽度和多边形的最小长度。如果用户希望多边形的填充是高精度的,那么这些值应该保持在一个比较小的范围以满足最小需求。否则,多边形中可能会出现空白区域以及冗余信息,甚至整个多边形都无法导出。
另一方面,这些值会应用到所有导出的多边形,因此非常小的值会增加导出文件大小并带来相关问题(例如铜箔重绘速度)。因此,用户应该始终为电路板上的多边形使用尽可能大并且满足精度的值。
如果开启了创建实心多边形(Create Solid Polygons)选项,每个多边形都会填充一个或多个实心铜皮区域。所用铜皮区域的数量,取决于由网络对象,如走线和焊盘等,创建的多边形内部的独立区域的数量,。
导入数据
实心多边形选项对话框(通过点击对应的实心多边形选项(Solid Polygon Options)按钮打开),可以让用户决定处理铺铜孤岛和狭窄铜条的处理方式,以及铺铜时处理相同网络对象的方式:
- 覆盖所有相同网络的对象
如果用户希望多边形铺铜自动连接所有相同网络上的对象,请选择该选项。 - 仅覆盖相同网络的多边形
如果用户希望多边形铺铜仅仅自动连接边界内相同网络上的铺铜,请选择该(默认)选项。 - 不覆盖相同网络的对象
如果用户不希望铺铜连接到任何网络对象,无论是相同网络还是不同网络的,请选择该选项。
如果选择了前两个选项中的一个,并且多边形铺铜没有分配到任何网络,它将会铺在所有对象周围,无论它们属于哪个网络。
导出到PCB
如果用户持有Altium Designer软件的许可证,可以访问并使用PCB编辑器,那么从CAM数据提取网表后, File » Export » Export to PCB选项是高亮可用的。在所有必要步骤都执行完以后运行此选项,将会创建一个PCB文件,文件包含了和原设计非常相似的电路板设计。
要 真正重建一个电路板还需要一些额外的操作,例如用封装替换元器件的基本元素(用户可以复制粘贴原器件基本元素组到PCB库中创建该元件的封装,然后用新封 装替换原来的基本元素)。Altium Designer的PCB编辑器不会自动从CAM文档的层集信息自中动创建钻孔对。用户需要在层堆栈管理器对话框手动重新定义。