PCB CoDesign
俗话说,人多力量大。电路板设计人员长期以来的一个梦想,就是能够让多个人同时在同一块板上工作。对外行来说,这件事似乎并不复杂——把 Bob 在板子某个区域做的布线拿过来,合并到我这份板文件里——但要真正实现它,需要具备若干关键能力的组合。
这些包括:
-
一个系统,允许多位设计人员访问同一个 PCB 设计,他们可以在不影响其他设计人员工作的情况下进行编辑并保存各自的更改。
-
一种机制,能够准确比较并识别同一块板不同版本之间的差异。
-
用于处理检测到的差异的工具,使设计人员可以选择以谁的更改为准。
-
能够自动处理大量差异并在不产生冲突的情况下完成解决的工具。
为了解决这些任务,Altium Designer 提供了 PCB CoDesign 功能,使你能够查看你从 Workspace 检出的板卡修订版与 Workspace 中同一板卡的最新修订版之间的差异。PCB CoDesign 功能可以检测存储在 PCB 文档中的数据变更:PCB 布局、对象属性、层叠、设计规则以及约束。
如果检测到任何冲突,你可以选择保留本地更改或接受最新提交的远端更改,然后通过合并来有把握地解决设计重叠问题。
PCB CoDesign 功能通过 PCB CoDesign 面板进行访问和操作。它要求 PCB 项目当前处于所连接 Workspace 的版本控制之下。
比较与合并工作流
每当 Altium Designer 检测到你的 PCB 文档已过期(即自你检出文档后,有人已将其工作保存到 Workspace),或处于冲突状态(即在你保存自己编辑并保存的版本之前,有人已将该文档保存到 Workspace,see details below),你就需要更新到板卡的最新修订版,或执行合并,将对方的更改带入你的板卡版本。可通过以下方式完成:
-
在 Projects 面板中点击 VCS 状态图标,并从弹出的菜单中选择相应命令:
-
Out of date – Compare To Remote Document Version 命令
-
Modified – Compare To Remote Document Version 命令
-
Conflict Prevention – Compare To Remote Document Version & Merge 命令
-
Conflict Detected – Resolve Conflict: Compare To Remote Document Version & Merge 命令
-
-
打开 PCB CoDesign 面板并点击 Compare、Compare To Remote Document Version 或 Compare & Merge 按钮
-
对于处于 Modified 状态(
)的 PCB 文档,可在 Projects 面板中从文档条目的 History & Version Control » Compare To 右键菜单使用 Local Changes to Remote Document Version 命令,或使用主菜单中的 Projects » History & Version Control » Compare To 命令
-
对于处于 Conflict Detected 状态(
)的 PCB 文档,可在 Projects 面板中从文档条目的 History & Version Control » Resolve Conflict 右键菜单使用 Compare To Remote Version & Merge 命令
-
点击设计空间底部出现的通知中的 Compare 或 Compare & Merge 按钮。
比较完成后,检测到的差异将列在 PCB CoDesign 面板中。该列表展示了 PCB 文档的基准修订版(你检出的修订版)与 Workspace 中最新修订版(包含其他用户所做更改)之间检测到的差异。
差异列表按类别分组:Rules、Components、Polygon pours、Copper 等。展开某个类别可查看该类别中的具体差异列表,即该类别中哪些对象被新增、修改和/或删除:
-
– 该对象在最新修订版中被新增
-
– 该对象在最新修订版中被修改
-
– 该对象已从最新修订版中删除
对于 Modified 类型的差异,你也可以将光标悬停在其条目上或展开它,以查看修改详情。
你可以使用 Up Arrow / Down Arrow 键在差异列表中移动。当选中某个差异类别时,按 Spacebar 可展开/折叠该类别。
你可以从 PCB CoDesign 面板中列出的差异交叉定位到 PCB 编辑器的设计空间。
-
在 PCB CoDesign 面板的列表中点击某个类别,可在设计空间中高亮显示该类别的更改。
-
在 PCB CoDesign 面板的列表中点击某条具体更改,可在设计空间中仅高亮该更改。
-
使用
Shift+Click和/或Ctrl+Click方式在面板中选择多个条目。
通过颜色编码,你可以看到哪些对象被新增、修改、删除或未更改(当在 PCB CoDesign 面板中选中某条引脚到引脚连接时,其未更改的对象)。
点击面板顶部的
控件进入设置,以配置更改的显示方式。
-
启用 Show on PCB 选项(快捷键:
Ctrl+Shift+A)以在 PCB 文档设计空间中高亮显示差异。 -
启用 Show on PCB 选项后,你还可以启用 Zoom selected object 选项:当在 PCB CoDesign 面板中点击某条差异条目时,交叉定位到设计空间中受影响的对象。使用滑块调整用于拉近到所选对象的缩放系数。
你也可以按住 Shift+B 键盘快捷键,在当前状态与更改前状态之间切换。面板中的提示会显示当前处于哪种状态。
单击面板底部的
按钮以合并所有检测到的 差异。将会显示一个弹出窗口,提示正在进行合并。请注意,这些差异会合并到 PCB 文档的本地工作副本中;需要将其保存到 Workspace 后,其他设计人员才能使用这些更改。
当更改合并完成后,Projects 面板中 PCB 文档的 VCS 状态将变为 Merged,并带有
图标。单击该图标可将设计保存到 Workspace,或回退本地更改。
也可以在 Projects 面板中,通过项目名称旁的 Save to Server 控件将设计保存到 Workspace;或在 PCB CoDesign 面板中使用 Save to Server 按钮进行保存。
冲突解决
另一种工作方式是三方比较(3-way comparison),当其他人也在处理该板卡时使用。设想这样一个场景:你和同事 Bob 都从 Workspace 检出了一份板卡副本。你们各自在自己的板卡副本上工作,进行器件摆放与布线。Bob 完成了他负责的板卡区域并将其保存回 Workspace。与此同时,你也在自己的区域工作并将更改保存在本地。这就产生了冲突情况,可通过 PCB CoDesign 面板来处理。
要开始比较,你可以在 Projects 面板中单击 Conflict Prevention 或 Conflict Detected VCS 状态图标,并在弹出的菜单中分别选择 Compare To Remote Document Version & Merge 或 Resolve Conflict: Compare To Remote Document Version & Merge 命令;或单击 PCB CoDesign 面板中的 Compare & Merge 按钮。比较完成后,面板中会列出检测到的差异列表,并在面板底部列出检测到的冲突。
你可以从 PCB CoDesign 面板中列出的冲突进行交叉探测(cross-probe),定位到 PCB 编辑器的设计空间。
-
在 PCB CoDesign 面板的列表中单击某个类别,可在设计空间中高亮显示该类别的冲突。
-
在 PCB CoDesign 面板的列表中单击某个具体冲突,可在设计空间中仅高亮显示该冲突。
-
使用
Shift+Click和/或Ctrl+Click技巧在面板中选择多个条目。
对于每个检测到的冲突,或某一特定类别中的所有检测到的冲突,你可以选择应用本地更改(Local)还是应用 Workspace 中最新提交的更改(Remote) 。你也可以将所需设置快速应用到当前选中的所有更改条目。为此,使用 Shift+Click 和/或 Ctrl+Click 技巧选择所需条目,然后为所选条目中的某一条选择期望的设置。或者,使用检测到的冲突区域顶部横幅区域中的下拉菜单,一次性为所有检测到的冲突选择所需模式。
你可以使用 Up Arrow / Down Arrow 键遍历冲突列表。使用 Left Arrow/ Right Arrow 键在所选冲突的各模式(Combined/Local/Remote)之间切换。当选中某个冲突类别时,按 Spacebar 可展开/折叠该类别。
为所有冲突选择好所需模式后,即可将更改合并到 PCB 文档的本地副本中。







)的 System Colors 区域里 Not Changed / Modified Comparison Colors 与 Added / Removed Comparison Colors 条目的色块来配置比较颜色。

