PCB CoDesign

俗话说,人多力量大。电路板设计人员长期以来的一个梦想,就是能够让多个人同时在同一块板上工作。对外行来说,这件事似乎并不复杂——把 Bob 在板子某个区域做的布线拿过来,合并到我这份板文件里——但要真正实现它,需要具备若干关键能力的组合。

这些包括:

  • 一个系统,允许多位设计人员访问同一个 PCB 设计,他们可以在不影响其他设计人员工作的情况下进行编辑并保存各自的更改。

  • 一种机制,能够准确比较并识别同一块板不同版本之间的差异。

  • 用于处理检测到的差异的工具,使设计人员可以选择以谁的更改为准。

  • 能够自动处理大量差异并在不产生冲突的情况下完成解决的工具。

为了解决这些任务,Altium Designer 提供了 PCB CoDesign 功能,使你能够查看你从 Workspace 检出的板卡修订版与 Workspace 中同一板卡的最新修订版之间的差异。PCB CoDesign 功能可以检测存储在 PCB 文档中的数据变更:PCB 布局、对象属性、层叠、设计规则以及约束。

如果检测到任何冲突,你可以选择保留本地更改或接受最新提交的远端更改,然后通过合并来有把握地解决设计重叠问题。

PCB CoDesign 功能通过 PCB CoDesign 面板进行访问和操作。它要求 PCB 项目当前处于所连接 Workspace 的版本控制之下。

当在 Advanced Settings dialog 中启用 PCB.CollaborativeEditing 选项时,即可使用 PCB CoDesign 功能。

  • 你必须连接到 Workspace 才能使用此功能。

  • 请注意,仅支持由 Git 仓库托管的项目。若要在 SVN 仓库托管的项目中使用 PCB CoDesign 功能,必须先将其迁移到 Git 仓库。当项目存储在外部 SVN 仓库中,并通过 Simple Sync 方式镜像到 Altium 365 Workspace,或当项目存储在由 Enterprise Server Workspace 的 Version Control Service 管理的 SVN 仓库中时,你可以将该项目迁移到 Workspace 内置的 Git 仓库。了解更多:Moving from External VCS to Workspace Native VCS 以及 Moving from the Workspace's SVN to the Workspace's Git

  • 建议使用 PCB CoDesign 功能的设计人员使用相同版本的 Altium Designer。

使用 PCB CoDesign 面板底部的 Leave Feedback 控件,可将仅与 PCB CoDesign 功能相关的建议或问题直接反馈给 Altium 开发人员。

比较与合并工作流

每当 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 面板并点击 CompareCompare To Remote Document VersionCompare & 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 按钮。

Javascript ID: PCBCoDesign_CompareMerge_AD24_7

比较完成后,检测到的差异将列在 PCB CoDesign 面板中。该列表展示了 PCB 文档的基准修订版(你检出的修订版)与 Workspace 中最新修订版(包含其他用户所做更改)之间检测到的差异。

比较进行中时,可点击比较过程弹窗中的 Cancel 按钮,或使用 Esc 快捷键取消比较。

差异列表按类别分组:RulesComponentsPolygon poursCopper 等。展开某个类别可查看该类别中的具体差异列表,即该类别中哪些对象被新增、修改和/或删除:

  •   – 该对象在最新修订版中被新增

  •   – 该对象在最新修订版中被修改

  •   – 该对象已从最新修订版中删除

对于 Modified 类型的差异,你也可以将光标悬停在其条目上或展开它,以查看修改详情。

你可以使用 Up Arrow / Down Arrow 键在差异列表中移动。当选中某个差异类别时,按 Spacebar 可展开/折叠该类别。

你可以从 PCB CoDesign 面板中列出的差异交叉定位到 PCB 编辑器的设计空间。

  • PCB CoDesign 面板的列表中点击某个类别,可在设计空间中高亮显示该类别的更改。

  • PCB CoDesign 面板的列表中点击某条具体更改,可在设计空间中仅高亮该更改。

  • 使用 Shift+Click 和/或 Ctrl+Click 方式在面板中选择多个条目。

通过颜色编码,你可以看到哪些对象被新增、修改、删除或未更改(当在 PCB CoDesign 面板中选中某条引脚到引脚连接时,其未更改的对象)。

可在 View Configuration panel 中,通过面板 Layers & Colors 选项卡()的 System Colors 区域里 Not Changed / Modified Comparison ColorsAdded / Removed Comparison Colors 条目的色块来配置比较颜色。

点击面板顶部的 控件进入设置,以配置更改的显示方式。

  • 启用 Show on PCB 选项(快捷键:Ctrl+Shift+A)以在 PCB 文档设计空间中高亮显示差异。

  • 启用 Show on PCB 选项后,你还可以启用 Zoom selected object 选项:当在 PCB CoDesign 面板中点击某条差异条目时,交叉定位到设计空间中受影响的对象。使用滑块调整用于拉近到所选对象的缩放系数。

  • 为便于理解大型网络(显示在 Copper 类别中)中的更改,网络中的铜对象会被拆分为更小的实体——引脚到引脚连接。

    当在 Advanced Settings dialog 中启用 PCB.CollaborativeEditing.Connections 选项时,此功能可用。

    Javascript ID: Pnl_PCBCoDesign_Pin2Pin_AD25_2
  • PCB CoDesign 功能支持对 unions(在 PCB 上定义的一组原语的分组)进行比较并应用更改。与 union 相关的更改会显示在 PCB CoDesign 面板更改列表的 Unions 类别中。此外,如果其他类别中的相应对象属于某个 union,则这些类别中的更改也会按 union 分组。

  • 当同一对象属性在双方都发生更改且属性值不存在冲突时,这些更改不会产生冲突,并且可以合并。

你也可以按住 Shift+B 键盘快捷键,在当前状态与更改前状态之间切换。面板中的提示会显示当前处于哪种状态。

当在 控件弹窗中启用 Zoom selected object 选项时,使用 Shift+B 快捷键时,设计空间也会缩放以显示相应的更改区域。

Javascript ID: PCBCoDesign_States_24_7

单击面板底部的  按钮以合并所有检测到的 差异。将会显示一个弹出窗口,提示正在进行合并。请注意,这些差异会合并到 PCB 文档的本地工作副本中;需要将其保存到 Workspace 后,其他设计人员才能使用这些更改。

当更改合并完成后,Projects 面板中 PCB 文档的 VCS 状态将变为 Merged,并带有  图标。单击该图标可将设计保存到 Workspace,或回退本地更改。

也可以在 Projects 面板中,通过项目名称旁的 Save to Server 控件将设计保存到 Workspace;或在 PCB CoDesign 面板中使用 Save to Server 按钮进行保存。

  • PCB 文档将保持在 Merged 状态,直到出现新的冲突。在本地保存更改不会将状态变为 Modified

  • 当 PCB CoDesign 面板当前显示比较结果时,如果另一位用户将项目保存到 Workspace,或你在本地修改了 PCB,则会在 PCB CoDesign 面板中出现一条通知,提示需要更新比较,并提供一个按钮用于刷新比较数据。

     

  • 当在 PCB CoDesign 面板中使用 Save to Server 按钮,或在 Projects 面板中通过 Merged 图标使用 Save to Server 命令时,请注意:在弹出的 Save to Server 对话框中,默认只会选中已合并的 PCB 文档以保存到 Workspace。处于 Merged 状态的文档在 Save to Server 对话框中始终允许保存到 Workspace,且无法禁用。请按需选择其他也要保存到 Workspace 的文档。

  • 请注意,从 Git 版本控制的角度来看,Merged 状态仍然是一个冲突;在将项目保存到 Workspace 后才会解决(这就是 Git 在合并冲突时的工作方式)。

  • 如有需要,可使用面板在成功合并后出现的  按钮来回退合并结果。

冲突解决

另一种工作方式是三方比较(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 技巧选择所需条目,然后为所选条目中的某一条选择期望的设置。或者,使用检测到的冲突区域顶部横幅区域中的下拉菜单,一次性为所有检测到的冲突选择所需模式。

  • 对于存在冲突的多边形覆铜(polygon pour),你还可以将两个冲突对象合并为一个单一的多边形覆铜(Combined)。 

  • 对于存在冲突的铜对象,你可以针对每一条引脚到引脚(pin-to-pin)的连接选择应用本地更改还是远端更改。

你可以使用 Up Arrow / Down Arrow 键遍历冲突列表。使用 Left ArrowRight Arrow 键在所选冲突的各模式(Combined/Local/Remote)之间切换。当选中某个冲突类别时,按 Spacebar 可展开/折叠该类别。

为所有冲突选择好所需模式后,即可将更改合并到 PCB 文档的本地副本中。

  • 在合并多边形覆铜并选择 CombinedRemote 选项时,请注意:合并后的多边形需要重新覆铜(例如,可在设计空间中右键单击该多边形,并从上下文菜单中选择 Polygon Actions » Repour Selected)。 如果在 Preferences 对话框的 PCB Editor – General page 上启用了 Repour Polygons After Modification 选项,则多边形覆铜会在合并后自动重新覆铜。

  • 在列出检测到的冲突时,将忽略以下属性:

    • 多边形覆铜的 PourIndex 属性。

    • 器件的 ChannelOffset 属性。

    • 规则的 RulePriority 属性。

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
功能可用性

您可使用的功能取决于您所选择的 Altium 解决方案 —— Altium DevelopAltium Agile(Agile Teams 或 Agile Enterprise 版本),或仍在有效订阅期内的 Altium Designer。

如果您在软件中未找到文中提及的功能,请联系 Altium 销售团队了解更多信息。

旧版文档

Altium Designer 文档不再提供版本区分。如果您需要访问 Altium Designer 旧版本的文档,请前往其他安装程序页面的旧版文档部分。

Content