ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Allegro修改原点的两种方法:从绘图原点设置到整体移动避坑指南

Allegro修改原点的两种方法:从绘图原点设置到整体移动避坑指南 PCB板子的“原点”看起来只是个坐标参考真正踩过坑的人才知道它有多重要。实战中碰得最多的就是这种场景结构工程师发过来一块DXF板框你高高兴兴导入Allegro结果板框左下角落在坐标值三四千甚至上万的位置或者干脆飞到负坐标区域。你要是硬着头皮继续做后面出装配坐标、光绘文件、DXF反导出去每一样都会对不上。这篇文章我把两个最常用的改原点方法完整拆一遍一个是直接重设绘图原点的 Setup Change Drawing Origin另一个是用 Move 移动整个设计把参考点搬到绝对原点。此外还会把临时原点、原点不显示、移动后铜皮出问题、坐标文件变负等常见坑一并说清楚。做 PCB Layout 的、从结构图转板框的、甚至要跟 SMT 厂对接的工程师都能在这里找到对症的解法。1. 先搞懂 Allegro 里的原点是什么以及为什么你会被它坑1.1 原点与坐标体系Allegro PCB Editor 里的绘图原点Drawing Origin相当于整个设计的坐标基准。你在状态栏上看到的 X、Y 数值所有对象的绝对坐标还有出 Gerber 文件时客户要求对原点全部以它为基准。它就像是你拿尺子量东西时的那个“0刻度线”尺子往哪放测出来的数值就会完全不同。原点不是物理实体它只是一个概念上的参考点。Allegro 默认显示一个带十字箭头的小符号来标记它但这个符号本身不影响 PCB 生产除非你把它放得太偏导致某些流程里参考位置异常。这个标记的位置就是当前坐标系中 (0,0) 的位置。你可以通过命令把布局空间中的任意一点定义成新的 (0,0)。这里要特别提醒一点Allegro 的坐标体系分成绝对坐标和相对坐标。绝对坐标就是相对当前原点的坐标值相对坐标则是相对某个临时参考点的偏量。你平时在命令行输入ix 5 5意思是相对当前光标位置向右上偏移 5 个单位这就是相对坐标。而修改原点影响的是绝对坐标的基准所以改动后所有对象的绝对坐标都会被重新计算。1.2 哪些场景必须动原点结合平时接到的求助用户改原点基本就是这三类需求新画板框时希望把板框左下角正好放在 (0,0)方便后续用绝对坐标摆放元器件和标注尺寸。导入 DXF 或从工程软件同步的板框原始结构文件里的基准点很乱没有落在 Allegro 图面的原点需要整体对齐。已经画完的板子要改基准比如下游厂家要求原点必须在板框中心某个定位孔或者装配图需要把原点放到光学定位点上。这三种情况对应的诉求不一样前两种建议用方法一最后一种往往要结合方法二先把布局的位置理顺。还有一种容易被忽略的情况当你需要把一块板子复制到另一个设计文件里做拼板时也会希望两块板的原点定义一致否则拼板坐标根本没法对齐。1.3 临时原点与绘图原点别混淆Allegro 还有个“临时原点”功能。很多人会问我在右下角坐标显示栏点右键设了一个临时原点怎么状态栏坐标还是不对临时原点只是让你在测量时多一个参考。它的作用是当你后续输入相对坐标或者查看偏移量的时候以这个临时点作为偏移基准方便你不用心算。你执行 Setup Change Drawing Origin 之后临时原点并不会被删除两个“原点”是两套完全独立的机制。改绘图原点影响输出文件临时原点只影响当前操作界面的坐标偏移显示。项目里真正要动的是前者。实际操作中临时原点还有一个非常实用的用法当你想知道某个点到另一个点的准确距离又不想切到测量工具时可以把临时原点设在起点然后看状态栏光标位置的坐标值直接读出相对偏移。但这跟本文要讲的原点修改完全是两码事。2. 方法一用 Change Drawing Origin 重新定义坐标系这一节说的方法简单说就是不搬动任何对象只把坐标系的原点挪到你想让它去的位置。整个操作可以概括为“先告诉 Allegro 你打算改原点然后用手点一下或者输入精确坐标”。2.1 操作流程图形化点击第一步打开需要修改的 PCB 文件。改之前养成好习惯先另存为一个副本万一改坏了还能回到原状态。我习惯在文件名后面加_origin_bak这样万一后面哪里不对还能直接对比。第二步执行菜单命令Setup Change Drawing Origin。Allegro 16.x 和 17.x 的菜单位置一致区别不大。17.4 版本里也是同样的路径没有额外隐藏。第三步在命令窗口会有提示大意是让你选择新的原点位置此时光标进入拾取状态。直接用鼠标点击目标位置就能完成。如果你只是想放到板框的某个角建议开启捕捉右键选择 Snap Pick to Segment Vertex再去点击板框的边线端点或者 Snap Pick to Grid Point 来吸附到格点。第四步操作完成后命令窗口会提示命令完成。此时你在屏幕上移动光标会发现状态栏坐标整体变了。原来坐标 (1000, 500) 的板角在你把它设为新原点后会变成 (0, 0)。这里面有一个很多人第一次操作会懵掉的现象改完原点后视图并没变但屏幕上的坐标读数全变了原来在旧原点附近的对象现在很可能显示成负坐标。这说明坐标系已经被重新定义了对象本身一个都没动。2.2 用命令行输入精确坐标图形化点击对于精度要求高的场景不够稳妥尤其是在“我要把某个已知坐标点设为新原点”的时候。比如你知道板框左下角当前在 (352.1, 268.4)希望把它变成 (0,0)那直接在命令窗口操作就行。在命令激活后命令窗口提示选择新原点此时不要用鼠标点直接输入Command change drawing origin Pick new origin: x 352.1 268.4输入 x 后跟两个数字表示“跳到绝对坐标 (352.1, 268.4) 这个位置”回车后该坐标点会被精确定位到十字光标下此时点击左键确认即可。这个方法可以避开手动点击带来的捕捉误差尤其适合那些机械坐标系与 Allegro 坐标系之间有固定转换关系的项目。还有一种更粗暴的用法如果你想把原点设置到当前绝对坐标的原点位置也就是让一切恢复到“出厂状态”你可以输入Pick new origin: x 0 0这样原点会回到当前的 (0,0)。这个操作看起来有点多余但当你从别的软件导入文件原点被带乱时先用这个方法把坐标系归零再重新设定目标原点整个思路会清爽很多。2.3 这个方法的特点和注意点方法一的最大优势是快、安全。它不移动任何走线、铜皮、器件不会产生“移动漏选”的风险也不会引发布线长度突变。它最典型的应用场景就是刚导入 DXF 板框时把板框的基准点快速对齐到原点。它的短板在于它是“改坐标系”所以已经存在的对象坐标都会被重新解释。比如板子布局完成后板框左下角距离旧原点很远此时你用方法一直接把左下角设成 (0,0)那原来靠近旧原点的一堆元件坐标就会全部变成负值。如果下游的坐标文件处理程序不接受负坐标这种方法就会让你后面多折腾一轮。另外说一下操作禁忌不要在布局布线做到一半时乱改原点。很多人调原点只是为了“让坐标看起来顺眼”却不知道改完之后之前用绝对坐标定义的各种规则、间距约束、装配坐标文件、光绘输出全部跟着变。轻则输出文件重做重则板厂那边对不上光绘层。要改最好在画板框阶段就改。3. 方法二用 Move 把设计平移到目标原点第二种方法思路完全相反。它不是去改坐标系而是把整块板子或者板框 结构层整体平移让某个参考点正好落在 (0,0) 上。这种方法最典型的场景是电路板布到一半发现原点位置和板框位置差得太远已经有不少元件、布线、铜皮附在上面不能简单靠改坐标系解决。3.1 操作流程移动所有对象让板角归零第一步先确认要移动的对象范围。理想情况下应该把整块板子的所有内容一起移动。由于 Allegro 的对象种类非常多元件、走线、铜皮、文本、板框、机械符号等执行移动前最好把需要移动的对象都选中。第二步启动移动命令执行 Edit Move或者直接在绘图区右键选择 Move。第三步在右侧 Find 面板中把对象类型全部打开。如果你点“All On”不熟练就直接打开如下几类Symbols、Vias、Clines、Shapes、Lines、Text、Other 等。需要注意有些元素被设置了 Fixed 属性默认是移动不了的后续单独讲。第四步框选或按 CtrlA 选取需要移动的对象。Allegro 支持直接执行 Edit Select All 把当前打开的所有层选中。如果只想移动板框和结构层不移动已经布好的走线和器件就不要用 Select All而是用右键选择 Bounding Box框选或者按类型选择。第五步命令窗口提示选择参考点。此时右键选择 Snap Pick to Segment Vertex然后点选板框的一个角作为整个设计平移的基准。第六步命令窗口会接着提示输入目标点此时在命令窗口输入x 0 0回车。你会发现整个选中的对象全部平移了刚才点选的那个板角现在准确落在 (0,0) 上。第七步按右键菜单选择 Done 完成操作。然后立刻跑一遍 Update Shapes让动态铜皮重新铺铜。操作完成后从最终效果上看板角坐标变成了 (0,0)跟方法一的效果一致。但它俩的原理完全不同方法一是“地板不动尺子动”方法二是“尺子不动地板动”。3.2 选择与捕捉的关键细节整个操作里最容易翻车的是“没选全”。如果只选中了走线没选中铜皮移动之后铜皮还在老位置通电后的安全间距检查大概率全红。所以我每次移动前会做一个动作执行 Edit Select All然后在命令窗口输入Show Selection确认选中的对象数量合理再继续。还有一个高频坑是“固定对象”。Allegro 里很多元器件或者结构符号会被设置为 Fixed 属性。Fixed 的对象在 Move 时无法被选中移动完你会发现板框走了但某些符号纹丝不动。解决办法是先把这些对象解除固定执行 Edit Properties在 Find 面板勾选需要解除固定的类型选中对象后在属性表里把 Fixed 改成 no再执行 Move。捕捉精度也一样重要。移动的参考点如果没吸准板角看起来是在角上实际上还差 0.1mm平移过后板角坐标就不是严格的 (0,0)。要确保捕捉准确右键要用的捕捉方式是 Snap Pick to Segment Vertex。对于圆弧或斜线边角也可以用 Snap Pick to Arc/Circle Center 等选项。3.3 这个方法的特点和注意点方法二的好处是它把所有对象连同坐标一起搬走最终整个设计的对象之间相对位置完全不变不会出现方法一那种“对象没动但坐标突然变负数”的错愕感。只要你把板子完整地移到原点后续出坐标文件、Gerber 对接都会很干净。它的麻烦在于操作对象多、风险高。任何一个对象被落下后面 DRC 就有一堆坑。而且如果板子上有动态铜皮移动后铜皮往往不会自动重铺必须先 Update Shapes否则你看到的铜皮只有轮廓里面没有填充你甚至可能看到“allegro 铜皮只有轮廓”这种搜索词。另外如果你用的是多叠层设计多 Step移动操作必须确认当前激活的是哪个 Step别只在某一个 Step 里移动导致每个 Step 的基准错位。我在一个双 Step 的项目里就吃过亏光顾着移动主 Step结果另一个 Step 的板框和器件全部留在原地出加工图的时候简直是一场灾难。4. 两种方法怎么选对比表与实战取舍4.1 核心对比为了让你快速决策我把两种方法的差异做成了表格对比项方法一Change Drawing Origin方法二Move 移动对象本质改变坐标系参考点平移所有对象操作速度快一条命令加一次点击中需要选择大量对象对已有对象的影响对象位置不变坐标重新解释对象位置整体变化负坐标风险原有对象可能变负坐标取决于移动方向和范围适合阶段新建板框、刚导入 DXF布局布线完成后的整体调整选择遗漏风险低高容易漏选铜皮处理基本无影响需要重新 Update Shapes固定对象处理无影响需要先解除 Fix从表格里能看出来方法一更适合“早期设定”方法二更适合“后期纠偏”。两者不是竞争关系而是互补关系。实际项目里很多板子先导入 DXF用方法一快速把基准点放到 (0,0)之后继续画板框、摆元件等到板子快完成时如果客户要求变更基准再用方法二把整个板子重新对齐到新的原点。4.2 我常用的选择逻辑我自己在项目里有一条固定逻辑大家可以参考先问自己一个问题这次要动的是“参考基准”还是“板子位置”如果答案是想让某个点成为新的坐标零点并且板子还没有价值很高的布线结果选方法一如果问题是“板子整体都偏移了连板框和已经布好的线路都不在希望的位置”那必须用方法二。如果板子上有已经画好的铜皮和布线我更倾向于方法二而不是方法一。原因很现实方法一改完坐标系你看到一整片负坐标各种内部评审和下游文件对接时解释成本太高方法二直接把板子整体搬到原点图纸上所有元素的坐标都是正的PCB 加工厂、贴片厂的工程师看着也舒服。不过方法二有个隐藏前提你用了绝对坐标标注尺寸或者引用了当前原点位置来设置约束规则时移动之后这些标注不会自动更新位置需要手动检查。这一点相当容易被忽略。我见过一个同事用方法二把板子整体搬到原点后发现钻孔文件里一个阵列孔的坐标还是老的原因是那组孔当初是用绝对坐标数组定义的移动后没有一起更新。5. 改完原点后一定会遇到的几个坑及排查办法5.1 原点不显示的 3 个排查步骤很多同学改完原点后发现图面上看不到原点标记以为是没改成功。其实原点大概率已经改了只是显示没跟上。我建议按下面顺序排查。第一步检查原点标记显示开关。在 Setup Design Parameter Editor设计参数设置里找到 Display 选项卡确认 Display origin marker 是勾选状态。不同版本描述略有不同有的叫 Display Drawing Origin。第二步看视图范围。按一下 FZoom Fit把整块板子缩放到可视区域。如果原点距离板子太远不缩放是看不到的。第三步调整颜色显示。Allegro 里原点标记的颜色默认跟 Board Geometry 相关层一致如果你把某些层颜色关闭了标记可能不显示。可以在 Display Color/Visibility 里把 Board Geometry 相关的颜色打开或者临时用 Color Dialog 把 Drawing Format 打开。如果做完这三步还是看不到基本可以确认你误设了临时原点或者视图在板框外赶紧用 Zoom Fit 兜底。5.2 铜皮、DRC、坐标文件异常的处理移动整个板子之后最典型的问题就是铜皮只显示轮廓、不显示填充。这是因为动态铜皮在对象被移动后需要重新计算而 Allegro 默认不会自动更新。解决办法右键选择所有 Shape选择 Update Shapes或者进入 Shape 菜单执行 Update Shapes 命令选择 All 更新全部。DRC 突然大量报错通常分两种情况。一种是移动时漏选了对象导致原本亲密接触的间距被拉开或叠在一起。你只要对比移动前后两个版本的坐标差异就能判断漏选的是哪一类对象。另一种是铜皮没有重铺之前DRC 基于旧的铜皮边界在算跑完 Update Shapes 再重新检查 DRC 就会恢复。坐标文件异常更多出现在方法一中。比如你出 Pick and Place 装配坐标文件时元件坐标出现了大片负数。这时不要急着把板子移回去而是先确认下游文件是否真的不接受负坐标。如果不接受最干净的做法是用方法二把所有对象做一次整体平移让板框左下角对齐 (0,0)让绝大多数元件坐标落到正区域。5.3 其他彩蛋Skill 自动化与自定义脚本思路如果你需要频繁给几十块板子统一设置原点手动操作肯定不现实。Allegro 支持 Skill 脚本编程。正常情况下你可以录制一个简单的脚本启动 Change Drawing Origin等待输入坐标直接执行再结束。录制命令用 File Script 菜单。录制脚本的优点是你不需要懂太多代码只需要把操作过程录下来下次在另一块板子上回放脚本再手工点一次目标位置即可。缺点是无法实现“自动识别板框角点并设置”因为每次板框角点的坐标可能不同。要彻底自动化得写 Skill 程序读取板框外形对象的坐标极值然后调用 Change Drawing Origin 命令或者直接修改原点参数。这需要一定的二次开发基础但思路非常简单拿到板框 bounding box 的左下角坐标把它作为新原点传入。关于原点我最后再分享一个我保持了很多年的习惯画新板子的时候第一步不是放板框而是先把原点摆到一个确定的位置通常就是板框的左下角。然后所有结构尺寸、元器件坐标、标注都尽量用绝对坐标去摆。这样后期无论是出光绘、装配图还是跟结构工程师对图都不需要再花时间聊“原点在哪”这种问题。原点这种基础设置改起来越晚代价越高。看完这篇下次你在 Allegro 里遇到原点不听话应该就知道怎么收拾它了。
返回列表