PCB 布局中,有些器件必须被“钉”在结构图纸给定的坐标上。连接器、定位孔、USB 座、按键、天线净空区边缘的阻容,装配图上标的不是大概位置,而是一串具体的 X / Y 数值。如果只靠鼠标拖放,放大看勉强对齐一处、换个角度又偏 0.1mm,到了高速板、拼板、带金属边框的板子上就容易变成装配干涉。Allegro 里解决这个问题有专门思路:把坐标数值直接喂给命令,让器件精确落在目标点上。
这篇以 Cadence Allegro X 24.1 中文界面为例,把“根据坐标精确放置器件”完整讲一遍:先准备绘图单位和原点,再讲命令行绝对坐标、手动放置对话框、复制阵列排布三种操作方式,最后是坐标文件批量整理、放置后验证、常见排错。Allegro 30.x、23.x 以及 OrCAD 的 PCB Editor 用户也可以直接参考,多数命令完全通用,只有菜单名称在新老版本之间略有差异。
先给结论:Allegro 里坐标放置最核心的是命令行的x、ix、iy。x后面跟绝对坐标,把器件移动到某个固定位置;ix和iy是相对当前位置的增量,适合做等间距阵列。器件移动时的基准点可以选鼠标点击位置、Symbol 原点或 Pin 1,这个由 Options 面板中的 Point 类型控制。把这一套逻辑想清楚,单颗器件摆放、整排按键复制、上百颗器件的坐标表导入,都是同一件事。
1. 核心能力速览
先把能力列成一张表,方便你判断这篇文章值不值得继续看。坐标放置本质上是一个 PCB 版图操作功能,不涉及额外硬件部署,但需要理清单位、原点、基准点三个概念。
| 能力项 | 说明 |
|---|---|
| 软件版本 | Cadence Allegro X 24.1,中文界面,英文命令通用 |
| 核心功能 | 按绝对坐标、相对坐标精确移动/放置器件 |
| 坐标输入方式 | 命令行x/ix/iy、Place 对话框、脚本批量 |
| 中文界面 | 菜单和对话框可切换为中文,命令行提示仍保留英文风格 |
| 坐标单位 | mil、mm、inch,取决于图纸参数设置 |
| 批量任务 | 坐标 CSV 整理 + SKILL/脚本逐条执行 |
| 布局验证 | 属性坐标查看、Placement Report、DRC 检查 |
| 适用场景 | 结构件布局、拼板、多板一致性、连接器/定位孔摆放 |
| 上手成本 | 熟悉命令行后远快于鼠标拖动,学完即可用于实际项目 |
这套操作对电脑配置没有特殊要求。普通办公配置跑中小密度板卡,点选器件、输入命令、缩放刷新都很流畅;真正吃资源的是高密度板、动态铜箔刷新和 3D 预览,这几个场景会在第 7 节单独讲怎么观察和优化。
2. 适用场景与使用边界
什么样的人要重点掌握坐标放置?第一类是跟结构工程师配合做板卡的 Layout 工程师。结构给的 DXF、IDX 或装配图,原点通常在机箱基准点或板框一角,里面标注好了每一个连接器、螺丝孔、弹片、按键的坐标,这些器件必须按坐标摆放,否则交给工厂后会出现装不上外壳、按键对不准开口等问题。第二类是做拼板和多板一致的团队。同一套模块电路在不同项目里复用,器件坐标表可以直接迁移,省去重新摆件的时间。第三类是涉及高速 PCB 和四层板的工程师,DDR、BGA 这类器件的外围匹配电阻、去耦电容需要围绕核心芯片精确布局,虽然不一定要“钉死坐标”,但设定一个小范围网格、批量按坐标放置,能明显减少走线阶段的空间冲突。
坐标放置能解决的问题主要是三块:器件定位准确、多板布局一致、结构评审快速通过。但也要讲清楚它不适用于所有场景。常规分立器件、纯功能性布局、还没确定结构方案的预研阶段,更适合用功能分区加手动摆放,让走线流畅优先,而不是被坐标绑死。坐标放置的真正价值是在结构约束明确之后才体现的。
使用边界也需要强调:坐标的参考是 Allegro 工作区原点,器件坐标的参考点是封装原点,两块必须跟结构图一致,否则拿到坐标表也放不准;涉及第三方提供的结构图纸、保密机箱模型或未公开装配文件时,要先确认授权范围,不要把非公开坐标文件直接外发。合法合规使用 CAD 数据,是工程协作的基本前提。
3. 环境准备与前置条件
先把环境准备好,再去学操作方法,否则后面按坐标摆放时经常会碰到“命令输入了但位置不对”的问题。需要检查的三件事是:软件许可是否完整、操作界面语言是否设置好、图纸单位与原点是否统一。其中第一项最容易被忽略——许可不完整时,Place 菜单和部分编辑命令会置灰,命令行的坐标操作也不会生效,很多人以为是操作问题,其实是功能没有完全解锁。
3.1 中文界面检查
Cadence Allegro X 24.1 的中文界面,一般有两种来源:安装时选择简体中文语言组件,或者安装后在用户偏好设置里切换界面语言。具体开关位置在不同维护版本中略有差别,如果菜单栏、右键菜单已经出现“放置”“移动”“编辑”等中文项,说明语言已经生效。需要提醒的是,界面中文只覆盖菜单、对话框和部分提示,命令行底层、SKILL 脚本、部分动态提示仍是英文。这并不影响使用,反而方便你在网上搜索英文教程时对上号。如果界面切换后出现菜单错位、字体重叠,优先检查显卡驱动是否是当前版本,并把图形加速模式切换为兼容模式。
3.2 图纸单位与原点设置
坐标放置前,必须先在绘图参数里确认单位。打开 Setup → Design Parameters,在 Design 页面看 User Units 是 mils 还是 Millimeters。结构图给 mm,你就用 mm;给 mil,你就用 mil;混合单位会直接导致器件飞到板框外面。原点也要对齐:Allegro 的默认原点是 (0,0),结构图原点如果是板框左下角,那直接把板框左下角放到 (0,0) 之后再开始布局;如果结构件原点在板中心、机箱定位孔等位置,最好在画板框时就替换成统一原点。推荐的做法是把结构 DXF 作为 DXF 层导入,然后用移动板框命令把原点对齐到结构基准,后续所有坐标输入都以这个基准为准。
Allegro 里移动绘图原点可以通过绘图参数或参考点工具完成,不同版本入口不同。最稳妥的验证方式是:在结构软件里取一个基准孔坐标,在 Allegro 里也读取该孔的坐标,两者一致后再开始放器件,不一致就先调原点。
3.3 最小测试工程
建议新建或复制一个小工程来练习坐标放置,不要直接在量产板上试。画一个 50mm × 40mm 的板框,往里面放几个封装:一个 QFN 芯片、两个 USB 座、一排 0805 电容。这些封装的 Symbol 原点要能看懂在哪个位置,右键器件选择 Show Element,可以看到其 Definition Origin 和实际坐标。练习目标是把 USB 座按结构坐标精确放到板边,把两个电容按相对坐标排成间距 1.27mm 的阵列。小工程验证通过后,再应用到真实板卡。
4. 三种坐标放置操作方式
这一节是整篇的核心,按三种方式展开:命令行绝对坐标适合单颗器件快速精确定位,手动放置对话框适合连接器、定位孔这类数量少但必须边看边确认的结构件,相对坐标阵列则适合排针、LED、按键这类等间距分布的任务。三种方式不是互相替代,而是配合使用:核心器件用绝对坐标钉死,周边阵列用相对坐标快速复制,最后再用手动对话框做个别调整。建议先把第一种练熟,它是最底层的能力。
4.1 命令行绝对坐标:最直接的方法
Allegro 的 Command 窗口可以输入坐标命令,不需要打开额外对话框。操作步骤如下:
- 打开 PCB 工程,在 Find 面板中只勾选 Symbols,避免误选线、孔、铜箔。
- 鼠标点选需要放置的器件,器件高亮后,右键选择 Move;也可以直接用工具栏的 Move 图标。
- 在 Options 面板的 Point 类型中选择移动基准点。通常是 Symbol Origin,表示以封装原点为基准;这个基准点会跟随光标。
- 在底部命令行输入绝对坐标并回车,例如:
Command > x 25.4 12.7器件会立即移动到 (25.4, 12.7)。如果图纸单位为 mil,则输入的是 mil 数值,例如 x 1000 500 表示 (1000mil, 500mil)。
x是绝对坐标移动命令,核心要点是:当前选择器件上被你指定为基准的点,会被移动到输入坐标处。如果你想的是“器件中心到达某个坐标”,但 Options 面板里 Point 类型是 Pin 1,那移动结果会以引脚 1 定位,看起来器件整体偏移。练习时先确认基准点再输入坐标。
部分版本在坐标命令后还支持单位后缀,例如输入x 10mm 5mm会自动换算;如果你的版本没有响应,就统一在绘图参数里把单位改成 mm 后再输入。输入完成后,右键器件选择 Show Element,或打开属性面板,检查 Step Origin X / Y 是否等于目标坐标。
4.2 手动放置对话框:适合单颗结构件
菜单路径 Place → Manual,弹出的 Placement 对话框适合放置少量、高精度结构件。选择 By reference 模式,输入器件的 Reference Designator,例如 U1、J1,然后在 X、Y 栏中直接输入坐标,点击放置。放置时同样要注意坐标系、单位、是否放反面。如果对话框里坐标栏是灰色的,通常是因为当前没有选中器件或没有打开对应 PCB 文件。
手动放置对话框的优势是直观:你可以一边看工艺流程视图一边输入坐标,放置前还能预览封装大小和朝向。缺点是逐颗输入效率低,只适合连接器、定位孔、核心芯片这类每板通常只有几颗的器件。大量普通器件不要用它,直接用命令行或脚本来批处理。
放置后建议立刻点击放置按钮旁边的 Close/Apply,确认器件已经出现在板框内。如果发现器件出现在很远的地方,立即撤销,检查单位和原点。最常见的原因是图纸单位是 mil,却输入了 mm 数值,1000mil 约 25.4mm,两者相差接近 40 倍。
4.3 相对坐标与复制阵列
等间距阵列是 PCB 布局里另一个高频需求:一排 LED、一排按键、一排排针。法理上,可以用移动命令加相对坐标完成。
先移动第一个器件到起点坐标,例如x 5.08 5.08,然后复制这个器件。复制命令下输入相对坐标增量:
Command > ix 2.54意思是水平方向增加 2.54mm,垂直方向不变;iy 2.54则相反。如果想同时增加 X 和 Y,可以输入ix 2.54回车后继续输入iy 2.54,或者直接规划好阵列方向。复制完成后,新器件的坐标等于第一个器件坐标加上增量。这个操作对引脚间距 2.54mm 的排针、1.27mm 的电容阵列特别有效。
使用相对坐标时,注意格点设置。Allegro 鼠标移动受格点影响,但坐标命令不受格点限制,所以就算格点设置成 1mm,你也可以输入ix 0.635这类小数。为了提高鼠标操作效率,建议把格点设置为阵列间距的公因数,例如 0.635mm,或者阵列间距本身。如果只是为了局部精确,直接用坐标命令会更稳。
5. 坐标文件整理与批量放置
工程实践中,坐标往往来自结构图纸或者芯片厂商的参考设计,Excel 里几百行数据。逐颗手动输入不现实,此时要整理成坐标文件。Allegro 支持从 File → Export → Placement 导出当前器件的坐标列表,导出的文件会包含 Reference Designator、X、Y、Rotation、Side 等信息。这个文件是后续批量任务的基础。
先把现有布局导出一份,用 Excel 打开,你会看到类似下面的列结构。注意 Side 有 TOP 和 BOTTOM 两种,旋转角度顺时针为正,单位是当前图纸单位。
refdes,x,y,rotation,side U1,25.40,12.70,0,TOP U2,27.94,12.70,90,TOP LED1,5.08,3.18,0,TOP J1,10.16,20.32,180,BOTTOM拿到结构坐标后,直接修改 X、Y、Rotation、Side 四列,再通过脚本来执行。如果你会用 SKILL,可以写一个读取 CSV 并逐条选择器件、执行 move 的脚本。这里给一个思路示例,不代表可以直接在当前版本运行,真实执行前需要按你的 Allegro 版本和 SKILL 环境调整 API:
# 伪代码:读取坐标表,逐条选择器件并移动 import csv with open("placement.csv", "r", encoding="utf-8") as f: rows = list(csv.DictReader(f)) for row in rows: refdes = row["refdes"] x = float(row["x"]) y = float(row["y"]) angle = float(row["rotation"]) side = row["side"] # 在 Allegro 中,这里需要启动 SKILL 命令: # 1. 按 refdes 选择对应 Symbol # 2. 执行 move 到 (x, y) # 3. 如果需要,执行 rotate / mirror # 具体 API 以实际 SKILL 参考手册为准 print(f"Move {refdes} to {x}, {y}, rotation {angle}, side {side}")如果你不熟悉 SKILL,还有一个笨但可靠的批量方式:用脚本生成每颗器件的坐标清单,然后逐条选中器件、在 Command 窗口输入x坐标。这仍然比鼠标拖放快,因为坐标从表格复制,不容易出错。批量操作时建议一批只处理同一边、同一旋转方向的器件,避免 TOP 和 BOTTOM 混在一起导致反面放置错乱。
批量放置之后,所有器件可能重叠严重,这是正常现象。先不要急着手动拉开,直接进入第 6 节做验证,通过 DRC 报出重叠器件,再结合脚本修正个别坐标。
6. 放置后验证:坐标是不是真的正确
坐标放置是不是成功,不能只看“器件在那”,要量化验证。
第一步,读取坐标。右键器件,选择 Show Element,在弹出的窗口里查看 Step Origin。或者在右侧属性面板中直接读取 X / Y 坐标。对比设计坐标表和图纸坐标,偏差应为 0。如果出现微小偏差,检查是否因为移动时基准点不是 Symbol Origin,而是 Pin 1 或鼠标点选位置,导致读取坐标时用错了参考点。
第二步,生成 Placement Report。Allegro 的 Tools → Reports 功能可以生成器件坐标报表,包含所有器件的 RefDes、X、Y、Rotation、Side。导出后和 Excel 坐标表做 Diff,这是批量任务中最有效的校验方式。Diff 结果里多出来的器件、坐标不对的器件,可以快速筛选出来。
第三步,运行 DRC。坐标放置之后,器件间距、丝印重叠、阻焊开窗等问题会通过 DRC 暴露。高密度板卡中,两个相邻连接器按 0.1mm 间距摆放,表面看没问题,但丝印文字可能互相压住,DRC 会报告丝印冲突。先修复这些 DRC,再进入布线阶段。
7. 资源占用与性能观察
很多 PCB 教程会忽略性能观察,但实际操作中它很影响效率。器件坐标放置本身是轻量操作,但大板卡、复杂封装、开启 3D 预览后,界面可能出现卡顿。观察办法很简单:Windows 任务管理器里,查看 Cadence 相关进程的 CPU、内存占用;Allegro 自身有图形加速设置,通常在 User Preferences 的 Graphics 类别里,可以切换 OpenGL 或兼容模式。
如果你在摆放的同时打开了 3D 视图,显卡占用会明显增加。3D 视图适合检查器件高度冲突,但不要一直开着做坐标操作;建议先切换回 2D 模式,放完器件再打开 3D 看结果。动态铜箔和实时暗色显示也会占用资源,布局阶段可以关掉动态铺铜预览,等布局完成后再刷新铜箔。这样操作,坐标放置过程的响应速度会明显改善。
还有一个小技巧:命令输入过程中,如果界面卡顿,不一定是显卡问题,也可能是 DRC 开启实时检查。布局过程中建议关闭在线 DRC 或调整成 On-Demand,放完一批器件再统一运行 DRC,这样既能保证坐标精确,又不至于每输入一个命令都要等 DRC 刷新。等后续布线阶段再开启实时 DRC 也不迟。
8. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 输入 x 坐标后器件没动 | 没选中器件、未勾选 Symbols、输入焦点不在命令行 | 检查高亮状态和 Find 面板 | 先选择器件再输入命令 |
| 器件跑到板外很远 | 单位不一致或坐标数值错误 | 查看图纸单位和输入数值 | 统一 mil/mm,重新输入 |
| 坐标差半个格 | 移动基准点选错 | Show Element 查看器件原点 | 改 Point 类型为 Symbol Origin |
| 器件在反面 | Side/BOTTOM 设置错误 | 检查 Side 字段和使用属性面板 | Toggle 到 TOP 或执行 Mirror |
| 方向不对 | 未设置旋转角度 | 查看 Rotation 值 | 用 Rotate 或修改 Rotation |
| 中文输入法导致命令错误 | 全角空格、中文逗号 | 观察命令行显示字符 | 切换英文输入法再输入 |
| 批量坐标表导入失败 | 表头字段、分隔符、单位不符 | 检查 CSV 编码和列顺序 | 统一为 UTF-8、半角逗号、正确单位 |
| 放置后 DRC 重叠报错 | 坐标点冲突或封装原点不一致 | 运行 DRC 查看报告 | 按报告修正坐标后再放一次 |
排名第一的问题是输入坐标后没有反应。Allegro 命令行要求先选中被操作的 Symbol 并进入 Move 状态,如果 Find 面板里勾的是 All Off,只有鼠标框选而命令没进入状态,x坐标会变成无效输入。另一种情况是输入了中文字符——在中文输入法下,坐标后面的空格可能变成全角空格,命令解析失败。遇到这类问题,第一件事是看底部 Command 窗口是否回显了命令内容,其次按 Esc 取消当前操作重新选器件。
单位问题也值得单独说明。Allegro 图纸的 User Units 一旦设定,显示和输入都按这个单位解析。同样一组坐标数值,在 mil 图纸和 mm 图纸下含义完全不同。批量导入前,最好在 CSV 头部注明单位,或者在文件名里写明 mm/mil;每次从 Excel 复制坐标后,先输入一个小坐标确认单位,再整列导入,能省掉大量返工。
9. 最佳实践与使用建议
第一步,建立统一原点。每个新项目在导入结构 DXF 之后,先确认原点在哪里,把板框左下角或定位孔设为 (0,0),并在设计文档中记录。后续所有坐标表都以同一个原点生成,避免每次从结构软件重新取点。
第二步,维护坐标 Excel 模板。模板的列固定为 refdes、x、y、rotation、side,并带单位备注。芯片、连接器这类有专业参考坐标的器件从原始设计文件中复制,其余电容电阻按阵列规则生成。模板长期维护后,新项目可以直接套用,多板一致的布局也在几分钟内完成。
第三步,先放关键器件再放附属器件。坐标放置的优先级:定位孔、连接器、核心芯片、有特殊高度限制的器件 > 匹配电阻、去耦电容 > 普通非敏感器件。连接器一旦按坐标放好,其余器件围绕它们摆放,可以减少后续走线绕行。
第四步,给工程文件和坐标表做版本管理。Allegro 工程文件本身要入版本库,Excel 坐标表也要同步更新,并记录坐标原点、单位、修改人。避免出现“板子里已经改了位置,Excel 还是旧坐标”的脱节情况。每次导出 Placement Report 后,把报告和 Excel 表做一次 Diff,确认版本一致再发布。
第五步,批量任务加日志。如果你用 SKILL 脚本批量导入坐标,脚本里要输出每一行的处理结果,例如“U1 moved to (25.4,12.7)”“U2 not found”。几百颗器件里只要有一个 refdes 打错,日志能立刻定位,不用等 DRC 才发现。
如果是面向外发生产的板卡,还要在布局完成后做一次结构文件比对:把最终器件坐标导出,和结构装配图叠加,确认连接器、螺丝孔、天线弹片都对齐后再出 Gerber。这个环节不要省略,坐标放置的最终意义不是省操作,而是确保成品装配没有问题。
10. 总结与下一步
Allegro X 24.1 中文界面下的坐标放置,核心就三件事:统一单位、统一原点、选对基准点。命令行x负责绝对坐标,ix/iy负责相对增量,Place 对话框适合单颗结构件,CSV + 脚本负责批量导入。先在小工程里把这套流程跑通,再上正式板卡,效率会明显高于鼠标拖放。
最值得先验证的功能是:用x命令把一颗连接器精确放在结构图指定的 25.4mm 处,然后导出 Placement Report 检查坐标是否完全一致。最容易踩的坑是单位和基准点,尤其是从 Excel 复制坐标时没有检查单位,导致器件飞出板框。
下一步可以继续往两个方向扩展:一是结合四层 PCB 叠层结构和高速 PCB 设计规则,把放好位置的器件按约束区域规划,让布线阶段更顺畅;二是把坐标表做成公司内部复用模板,不同项目之间直接迁移成熟电路布局。坐标放置这个技能不大,但它决定了后续布线、开窗、装配的稳定性,值得花半天时间系统练一遍。建议把本文收藏备用,下次做结构件多的板卡时,从命令输入到批量验证一次走完。