这次我们来看一个在 PCB 设计后期至关重要,却又常被新手工程师忽略的环节:如何从 Cadence Allegro 中正确、高效地输出坐标文件。坐标文件是连接 PCB 设计与 SMT 贴片生产的桥梁,文件格式、单位、原点设置稍有偏差,就可能导致整批板子贴片错位,损失巨大。对于使用 Allegro 进行复杂高速板设计的工程师来说,掌握生成坐标文件的正确姿势,是保证设计顺利转化为实物的必备技能。
本文将直接切入主题,不讲复杂概念,重点解决“能不能用”和“怎么用”的问题。我们将系统梳理在 Allegro 中输出坐标文件的完整流程,涵盖从软件版本选择、单位设置、原点校准,到生成标准格式文件、批量处理技巧,以及如何与嘉立创等国内主流 PCB 厂商的 SMT 要求进行对接。无论你是刚接触 Allegro 的新手,还是需要处理多版本、多拼板项目的资深工程师,这篇文章都能提供一套清晰、可落地的操作指南和避坑清单。
1. 核心能力速览
在深入操作细节前,我们先通过一个表格快速了解 Allegro 输出坐标文件的核心要点和边界,让你对整个过程有个全局认识。
| 能力项 | 说明与要点 |
|---|---|
| 核心功能 | 从 Allegro PCB 设计中提取所有器件的精确位置(X, Y)、旋转角度(Rotation)、封装名(Ref Des)、位号(Value)等信息,生成 SMT 贴片机可识别的标准文件。 |
| 输出格式 | 最常见为CSV或TXT格式。关键在于文件内容必须包含标准列,如Ref Des,X,Y,Rotation,Side(Top/Bottom)。 |
| 单位控制 | 支持mil(英制)和mm(公制)两种单位输出。必须与 PCB 设计单位及 SMT 厂商要求严格一致,否则坐标值会差一个数量级。 |
| 原点设置 | 坐标的参考原点至关重要。通常需将原点设置在板框的左下角或某个定位孔,需在输出前于 Allegro 中精确设置。 |
| 软件版本 | 流程在 Allegro 16.6, 17.4, 22.1, 24.1 等主流版本中通用,但菜单位置或对话框样式可能有细微差异。本文以通用流程为主。 |
| 前置条件 | 1. 已完成布局的.brd文件。2. 器件位号(Ref Des)清晰、无重复。 3. 板框(Outline)已正确定义。 |
| 适合场景 | 1. 提交给 PCB+SMT 一站式厂商(如嘉立创)进行贴片。 2. 内部归档或与生产部门交接。 3. 进行器件位置的可制造性检查(DFM)。 |
| 不适合场景 | 1. 仅用于原理图或逻辑设计阶段。 2. 设计尚未完成布局,器件位置可能大幅变动。 |
2. 适用场景与使用边界
坐标文件是 PCB 设计数据流向物理世界的最后一个关键数字节点。它的正确性直接决定了成千上万个微型元器件能否被机器精准地放置到正确位置。
主要适用场景:
- SMT 贴片生产:这是最主要用途。文件提供给贴片厂,用于编程贴片机。
- 钢网制作:部分钢网厂商也需要坐标文件来核对开口位置。
- 三维模型装配检查:将坐标文件导入 ECAD-MCAD 协同工具(如 STEP 输出),可在结构软件中预览器件实际摆放,检查干涉。
- 设计评审与归档:作为设计输出物的一部分,用于团队内部或客户评审。
重要使用边界与合规提醒:
- 设计冻结:必须在 PCB 布局完全冻结、不再移动器件后,再生成最终坐标文件。任何后续的布局调整都必须重新输出坐标文件。
- 单位与原点:必须与生产方(如嘉立创 SMT)明确确认其要求的文件格式、单位(mm 或 mil)和坐标原点定义。单方面按照自己习惯输出是最大风险点。
- 器件确认:坐标文件应包含所有需要贴片的器件。对于手焊器件、测试点或不贴片的器件,需在输出时进行筛选,或在提供给厂商的说明中明确标注。
- 文件安全:坐标文件包含了设计的物理布局信息,在对外发送时,应作为生产数据包的一部分进行管理,避免设计细节泄露。
3. 环境准备与前置条件
在开始输出坐标文件之前,请确保你的 Allegro 工作环境和设计文件已满足以下条件,这能避免很多后续的麻烦。
软件环境:
- Cadence Allegro PCB Editor:确保已正确安装并授权。本文所述流程不依赖特定小版本。
- 设计文件:一个已完成布局布线、DRC 检查基本通过的
.brd文件。 - 备份:强烈建议在操作前另存一份设计文件副本,或在版本控制系统中提交当前状态。
设计状态检查(关键步骤):
- 板框(Outline):确认板框层(如
BOARD GEOMETRY/OUTLINE)是连续的闭合图形,这定义了 PCB 的物理边界和坐标范围。 - 器件位号(Ref Des):
- 打开
Display -> Color/Visibility,确保Components -> Ref Des的丝印层(如SILKSCREEN_TOP/BOTTOM)已打开并可见。 - 使用
Tools -> Quick Reports -> Bill of Materials Report快速检查,确保没有位号缺失或重复。
- 打开
- 单位统一:在 Allegro 底部状态栏确认当前设计单位是
mil还是mm。记住这个设置,输出时需要与之匹配或进行转换。 - 原点认知:理解当前设计的绝对原点
(0,0)在哪里。通常它可能在板框外,这不是我们想要的贴片坐标原点。
4. 设置正确的坐标原点
这是整个流程中最关键、最容易出错的一步。贴片机的坐标系需要与 PCB 板上的一个固定点对齐,这个点就是坐标原点。
为什么必须设置原点?如果直接使用 Allegro 的默认绝对原点(0,0),这个点可能位于板框之外甚至很远的地方,导致导出的所有器件坐标都是很大的正数或负数,贴片机无法直接使用。
标准做法:将原点设置到板框左下角(推荐)这是最常用、最不易出错的方法,因为左下角是一个明确、唯一的物理位置。
操作步骤:
- 移动光标:在 Allegro 命令窗口中,输入
x 0 0并回车,将光标移动到绝对原点(可能需要放大才能看到光标)。观察这个点与你的板框的相对位置,确认它不是你想要的。 - 设置新的原点:
- 输入命令
setup -> change drawing origin或通过菜单Setup -> Change Drawing Origin。 - 此时命令行会提示
Pick new origin:。 - 精准捕捉:将鼠标移动到板框外形的左下角顶点。为了精确,需要:
- 确保
Options侧边栏中Active Class and Subclass为Board Geometry和Outline。 - 或者,输入
i打开Zoom Points面板,直接输入你已知的板框左下角坐标(例如,如果板框从(1000, 1000) mil开始,则输入x 1000 1000)。
- 确保
- 在板框左下角顶点处单击鼠标左键。
- 输入命令
- 验证原点:
- 再次输入
x 0 0并回车。此时光标应精确地跳到板框左下角。 - 在板框左下角放置一个非电气元素(如一个
Board Geometry/Origin层的标记点)作为视觉参考,这是个好习惯。
- 再次输入
替代原点方案:
- 定位孔:如果板上有用作定位的安装孔,可以将原点设在该孔的中心。命令操作同上,捕捉圆心即可。
- 板中心:较少用,除非厂商特殊要求。
重要提示:设置Drawing Origin会移动整个设计的坐标系,但不会移动任何实体对象。设置后,之前的所有坐标(包括走线、过孔)的数值都会变化,但这不影响设计本身,只影响导出数据的基准。
5. 输出坐标文件标准流程
原点设置好后,我们就可以开始输出坐标文件了。Allegro 主要通过File -> Export -> Placement功能来实现。
5.1 基础输出步骤
- 打开你的
.brd文件。 - 点击菜单
File -> Export -> Placement...。 - 会弹出
Export Placement对话框,这是所有配置的核心。
5.2 对话框参数详解与配置
下图展示了Export Placement对话框的关键配置区域,我们将逐一拆解: (注:此处用文字描述对话框布局,因无法嵌入图片) 对话框通常包含以下几个部分:
- Placement File:输出文件的路径和名称。
- Placement Origin:极其重要!选择
Absolute还是Relative。 - Units:选择输出文件的单位。
- Components:选择输出哪些器件。
- File Format:选择输出格式。
- Contents:选择输出文件包含哪些列。
推荐配置方案(以对接嘉立创等常见 SMT 要求为例):
# 这不是命令,而是配置项总结 Placement File: [例如:./output/placement_$(board_name)_$(date).txt] Placement Origin: **Absolute** (必须选择此项,以上一步设置的 Drawing Origin 为基准) Units: **Millimeters** 或 **Mils** (必须与 PCB 设计单位及厂商要求一致!) Components: **Placement List** (输出已放置的器件) File Format: **Text** (生成 .txt 文件,兼容性好) Contents: 确保勾选至少以下列: - `Ref Des` (位号) - `X` (X坐标) - `Y` (Y坐标) - `Rotation` (旋转角度) - `Side` (Top/Bottom) - `Value` (可选,元件参数) - `Package` (可选,封装名)关键参数解析:
- Placement Origin: Absolute:这是最常用的设置。它意味着坐标值是基于我们刚刚设置的
Drawing Origin(板框左下角) 来计算的。如果选择Relative,则会基于每个器件的封装原点,这通常会导致混乱,不推荐。 - Units:如果 PCB 设计单位是
mil,但厂商要求mm,你可以直接在此处选择Millimeters,Allegro 会自动进行单位换算。但最稳妥的做法是:设计时就用厂商要求的单位。 - Rotation:注意 Allegro 的旋转角度方向(通常是逆时针为正)。不同贴片机软件对角度的定义可能不同,需与厂商确认。通常 0° 是器件原始方向。
5.3 执行输出与文件验证
- 配置好所有参数后,点击
Export按钮。 - 在指定路径下会生成一个文本文件。
- 用文本编辑器(如 Notepad++、VS Code)打开文件进行验证:
一个正确的坐标文件内容示例:
# Allegro Placement Export # Units: Millimeters Ref Des X Y Rotation Side Value Package C1 12.345 45.678 90.000 TOP 0.1uF 0402C R2 23.456 56.789 0.000 TOP 10K 0402R U1 34.567 67.890 270.000 TOP MCU QFP48 ...验证要点:
- 检查X, Y 坐标是否均为正数(如果原点设在板框左下角)。
- 检查单位是否与预期一致。
- 抽查几个关键器件(如板角、中心的大器件),在 Allegro 中用
Tools -> Reports里的Symbol Library Path Report查看其坐标,与导出的文件对比,看是否一致。 - 检查
Side列是否正确区分了TOP和BOTTOM。
6. 高级技巧与批量处理
对于复杂项目,基础输出可能不够用。下面介绍几个提升效率和可靠性的高级技巧。
6.1 处理背面(Bottom)器件
默认导出包含正反两面器件。但有时需要分开文件。在Export Placement对话框的Components部分,可以通过Selection筛选:
- 在 Allegro 主界面,使用
Edit -> Move命令,在Options侧边栏勾选Temp Group。 - 框选所有背面器件。
- 然后在
Export Placement的Components中选择Selection,即可只导出选中的背面器件。
6.2 使用 Skill 脚本进行批量与定制输出
对于需要频繁输出、或格式有特殊要求(如增加自定义列)的情况,可以借助 Allegro 的 Skill 脚本。Skill 是 Cadence 的扩展脚本语言。
示例:一个简单的 Skill 脚本,用于导出坐标并自动添加时间戳
; 这是一个示例 Skill 脚本 (export_coord.il) ; 将其保存为 .il 文件,在 Allegro 中通过 `File -> Script...` 加载并执行 axlCmdRegister("my_export" 'myExportCoord) defun(myExportCoord () let((outFile) ; 设置输出文件名,包含板名和日期 outFile = sprintf(nil "./output/coord_%s_%s.txt" axlDBGetDesign()->name axlTimeToString(getCurrentTime() "%Y%m%d_%H%M%S")) ; 执行导出命令,参数与GUI操作对应 axlExportPlacement(outFile ?origin "absolute" ; 绝对坐标 ?units "millimeters" ; 单位毫米 ?components "placed" ; 已放置器件 ?format "text" ; 文本格式 ?contents '("Ref Des" "X" "Y" "Rotation" "Side" "Value")) printf("坐标文件已导出至: %s\n" outFile) );let );defun使用方法:
- 将上述代码保存为
export_coord.il。 - 在 Allegro 命令行输入
skill load("export_coord.il的完整路径")加载。 - 输入
my_export命令即可运行。
6.3 处理多拼板(Panel)与 Step-and-Repeat
如果设计文件是单板,但生产是多拼板(Panel),坐标文件需要反映器件在拼板上的全局坐标。
- 在 Allegro 中创建拼板:使用
Manufacture -> Create Module或专门的拼板工具生成包含多个子板的.mdd文件或直接在.brd中阵列。 - 导出坐标:在拼板文件(.brd 或 .mdd)上执行上述
Export Placement操作。此时导出的坐标已经是基于拼板原点的全局坐标。 - 关键点:必须确保拼板时,每个子板的原点(即我们之前设置的板框左下角)与拼板的阵列基准点关系正确。
6.4 与嘉立创 SMT 系统对接要点
国内很多工程师使用嘉立创的 PCB 制造和 SMT 服务。其系统对坐标文件有明确要求:
- 格式:接受
.txt或.csv。 - 编码:建议使用UTF-8 或 ANSI,避免乱码。
- 内容:必须包含
标识(Ref Des),X,Y,角度(Rotation),面(Side)。X/Y单位需统一为毫米(mm)。 - 原点:嘉立创通常要求坐标原点在板框左下角(与本文推荐一致)。
- 角度:确认其角度定义(通常 0° 为12点钟方向,逆时针旋转为正,但务必在其上传界面核对示例)。
- 文件上传:在嘉立创下单系统 SMT 贴片环节,直接上传此坐标文件即可,系统会自动解析。
7. 常见问题与排查方法
即使按照流程操作,也可能遇到问题。下表列出了常见问题及其解决方法。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 导出的坐标全是0或极小/极大值 | 1.Placement Origin选成了Relative。2. 未正确设置 Drawing Origin,绝对原点仍在默认位置。 | 1. 检查导出对话框的Placement Origin设置。2. 在 Allegro 中输入 x 0 0,看光标落在何处。 | 1. 改为Absolute。2. 按照第4章重新设置 Drawing Origin到板框左下角。 |
| 坐标单位错误(数值差25.4倍) | 导出时选择的Units与 PCB 设计单位或厂商要求不匹配。 | 对比 Allegro 状态栏单位与导出文件头声明单位。用尺规工具量一个已知距离验证。 | 统一单位。设计时最好就用最终生产单位(如 mm)。导出时再次确认单位选项。 |
| 缺少背面(Bottom)器件 | 导出时未包含背面器件,或背面器件被过滤。 | 检查导出文件的Side列是否只有TOP。在 Allegro 中查看背面器件是否已放置。 | 确保Export Placement的Components选择了Placement List(所有已放置器件)。 |
| 器件旋转角度与预期不符 | Allegro 的旋转方向(逆时针)与贴片机软件定义不同。 | 找一个旋转了90°的器件,对比 Allegro 中显示的角度与导出文件中的角度。 | 与 SMT 厂商确认角度定义。如需调整,可在导出后用 Excel 公式批量转换(如新角度 = MOD(360 - 原角度, 360))。 |
| 文件上传到生产平台报错或解析失败 | 1. 文件格式不对(如用了制表符以外的分隔符)。 2. 文件包含特殊字符或中文乱码。 3. 列名不标准。 | 用纯文本编辑器打开文件,检查分隔符。检查文件编码。对照平台要求的样例文件。 | 1. 确保是纯文本,用制表符(Tab)分隔列。 2. 另存为 UTF-8 或 ANSI 编码。 3. 将列名改为平台要求的名称(如改 Ref Des为标识)。 |
| 导出时提示部分器件无坐标 | 这些器件可能未真正放置(在板外),或其封装原点异常。 | 使用Display -> Element,选择Comps,点击问题器件查看其属性。 | 确保所有需贴片的器件都已移动到板框内。检查并修复异常封装。 |
8. 最佳实践与工程化建议
将坐标文件输出从一个临时操作变为可靠的设计发布环节,需要建立规范。
建立检查清单(Checklist):
- [ ] PCB 布局已冻结,无未完成的移动。
- [ ] 板框(Outline)层正确定义且闭合。
- [ ] 坐标原点已设置为板框左下角,并已验证
(0,0)点位置。 - [ ] 确认最终生产要求的单位(mm/mil)和角度方向。
- [ ] 在
Export Placement对话框中确认参数:AbsoluteOrigin, 正确Units,Placement List,Text格式。 - [ ] 导出后,用文本编辑器打开文件进行视觉检查:正数坐标、单位正确、正反面器件齐全。
- [ ] 在 Allegro 中抽查 2-3 个关键器件的坐标,与文件中的数据对比验证。
文件命名与版本管理:
- 使用包含项目名、版本号、日期信息的文件名,例如
ProjectA_V1.2_Placement_20231027.txt。 - 将坐标文件与 Gerber 文件、BOM 表一起归档,作为同一版本的设计发布包。
- 使用包含项目名、版本号、日期信息的文件名,例如
输出脚本化:
- 对于团队或频繁发布的情况,将第6.2节的 Skill 脚本完善,并加入更多检查(如单位一致性、原点确认提示),形成一键输出工具,减少人为错误。
与 BOM 文件交叉验证:
- 将坐标文件与物料清单(BOM)在 Excel 中使用
Ref Des进行关联核对,确保没有器件遗漏或位号错误。
- 将坐标文件与物料清单(BOM)在 Excel 中使用
掌握从 Cadence Allegro 中输出坐标文件的技能,是 PCB 设计工程师从“绘图”走向“制造”的关键一步。整个过程的核心可以归结为三个关键点:原点、单位和验证。设置正确的原点决定了坐标系统的基准,统一单位避免了数量级错误,而严格的输出后验证则是交付前的最后一道保险。
最先应该验证的功能,就是按照本文第4、5章,在一个简单的测试板或现有项目上,完成从设置原点到导出文件的全流程,并亲自用计算器核对一两个器件的坐标。最容易踩的坑莫过于忽略原点设置和单位混淆,务必在第一次操作时就形成肌肉记忆。
对于更复杂的场景,如拼板、异形板、或需要特殊格式,可以进一步研究 Allegro 的AXLSkill 函数,实现高度定制化的输出。将这一过程脚本化、标准化,能极大提升设计发布的效率和可靠性,确保每一次设计意图都能被准确无误地传递到生产线。