PCB共同設計

概略

この記事では、Altium DesignerのPCB CoDesignを使用して、複数の設計者が同じPCBで共同作業を行う方法を解説します。基板のリビジョンを比較し、差分を特定して、変更の競合解決やマージを確実に進めるための手順を紹介します。また、この機能を使用するための要件やアクセス方法に加え、マージした更新内容を接続先のWorkspaceに保存する前に、PCB CoDesignパネルでレイアウト、ルール、レイヤースタック、制約、その他のPCBドキュメントの変更を確認する方法も説明します。PCBの共同編集が実際にどのように行われるのか、設計を適切に管理しながら重複する変更にどう対処すればよいのかを詳しく知りたい方は、ぜひ読み進めて、一連のワークフローをご確認ください。

- Workspaceへの接続、バージョン管理の条件、サポートされるリポジトリ構成など、PCB CoDesignを使用するための要件を学びます。
- ローカルとリモートのPCBリビジョンを比較し、検出された差分を調べ、パネルのツールを使って設計スペース内で変更を確認する方法を紹介します。
- ローカルの変更を保持する場合、リモートの更新を受け入れる場合、マージ結果をWorkspaceに保存する場合など、競合やマージの処理方法を理解します。
AIでさらに深掘り:

「人手が多ければ仕事は楽になる」ということわざがあります。基板設計者が長年抱いてきた夢の1つは、複数の人が同じ基板で同時に作業できるようになることです。専門家でなければ、この作業はそれほど複雑には思えないかもしれません。たとえば、Bobが基板のある部分で行った配線を、自分の基板のコピーに取り込むだけ、といった具合です。しかし、これを実現するには、いくつかの重要な機能を組み合わせる必要があります。

具体的には、次のような機能です。

  • 複数の設計者が同じPCB設計にアクセスし、他の設計者の作業に影響を与えずに作業して、自分の変更を保存できるシステム。

  • 同じ基板の異なるバージョンを正確に比較し、差分を特定する仕組み。

  • 検出された差分を解決し、誰の変更を優先するかを設計者が選択できるツール。

  • 大量の差分を自動的に処理し、競合を発生させずに解決できるツール。

これらの課題を解決するため、Altium DesignerにはPCB CoDesign機能が用意されています。この機能を使用すると、Workspaceからチェックアウトした基板のリビジョンと、Workspaceにある同じ基板の最新リビジョンとの差分を確認できます。PCB CoDesign機能は、PCBドキュメントに保存されているデータの変更を検出できます。対象には、PCBレイアウト、オブジェクトのプロパティ、レイヤースタック、デザインルール、制約が含まれます。

競合が検出された場合は、ローカルの変更を保持するか、最新のコミットに含まれるリモートの変更を受け入れるかを選択し、その後マージすることで、設計の重複箇所を確実に解決できます。

PCB CoDesign機能へのアクセスと操作は、PCB CoDesign パネルから行います。PCBプロジェクトが、現在接続しているWorkspaceのバージョン管理下にある必要があります。

PCB CoDesign機能は、詳細設定ダイアログでPCB.CollaborativeEditingオプションを有効にすると利用できます。

  • この機能を使用するには、Workspaceに接続している必要があります。

  • 対応しているのは、Gitリポジトリでホストされているプロジェクトのみです。SVNリポジトリでホストされているプロジェクトでPCB CoDesign機能を利用するには、まずGitリポジトリに移行する必要があります。プロジェクトが外部のSVNリポジトリに保存され、Simple Sync方式でAltium 365 Workspaceにミラーリングされている場合、またはEnterprise Server Workspaceのバージョン管理サービスを通じて管理されるSVNリポジトリに保存されている場合は、そのプロジェクトをWorkspaceの組み込みGitリポジトリに移行できます。詳しくは、外部VCSからWorkspaceネイティブVCSへの移行およびWorkspaceのSVNからWorkspaceのGitへの移行をご覧ください。

  • PCB CoDesign機能を使用する設計者は、同じバージョンのAltium Designerを使用することをお勧めします。

PCB CoDesignパネルの下部にあるLeave Feedbackコントロールを使用すると、PCB CoDesign機能に関する提案や問題について、Altiumの開発者に直接フィードバックを送信できます。

比較とマージのワークフロー

Altium Designerが、PCBドキュメントが最新ではない状態(ドキュメントのチェックアウト後に他のユーザーがWorkspaceに作業内容を保存した場合)、または競合状態(自分が編集してローカルに保存したドキュメントをWorkspaceに保存する前に、他のユーザーがそのドキュメントをWorkspaceに保存した場合。詳細は後述)であることを検出した場合は、基板を最新リビジョンに更新するか、マージを実行して、他のユーザーによる変更を自分の基板のバージョンに取り込む必要があります。これは、次の方法で実行できます。

  • 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ボタンをクリックします。

Javascript ID: PCBCoDesign_CompareMerge_AD24_7

比較が完了すると、検出された差分がPCB CoDesignパネルに一覧表示されます。この一覧には、PCBドキュメントのベースリビジョン(チェックアウトしたリビジョン)と、Workspace内の最新リビジョン(他のユーザーによる変更を含む)との間で検出された差分が表示されます。

比較の実行中に、表示されるポップアップのCancelボタンをクリックするか、Escショートカットを使用すると、比較をキャンセルできます。

差分の一覧は、Rules、Components、Polygon pours、Copperなどのカテゴリ別にグループ化されています。カテゴリを展開すると、そのカテゴリ内の具体的な差分、つまり追加、変更、削除されたオブジェクトの一覧を確認できます。

  •   – 最新リビジョンで追加されたオブジェクト

  •   – 最新リビジョンで変更されたオブジェクト

  •   – 最新リビジョンで削除されたオブジェクト

Modifiedタイプの差分の場合は、その項目にカーソルを合わせるか、項目を展開することで、変更の詳細を確認することもできます。

Up Arrow / Down Arrowキーを使用して、差分の一覧内を移動できます。差分のカテゴリを選択した状態でSpacebarを押すと、そのカテゴリを展開または折りたたむことができます。

PCB CoDesignパネルに表示されている差分から、PCBエディターのデザインスペースへクロスプローブできます。

  • PCB CoDesignパネルの一覧でカテゴリをクリックすると、そのカテゴリの変更がデザインスペースでハイライト表示されます。

  • PCB CoDesignパネルの一覧で特定の変更をクリックすると、その変更だけがデザインスペースでハイライト表示されます。

  • Shift+ClickやCtrl+Clickの操作を使用すると、パネル内の複数の項目を選択できます。

色分けにより、追加、変更、削除されたオブジェクト、または変更されていないオブジェクト(PCB CoDesignパネルでピン間接続を選択した際の、その接続内の未変更オブジェクト)を確認できます。

比較に使用する色は、View ConfigurationパネルのLayers & ColorsタブにあるSystem Colors領域で、Not Changed / Modified Comparison ColorsおよびAdded / Removed Comparison Colors項目のカラースウォッチを使用して設定できます()。

パネル上部のコントロールをクリックして表示される設定を使用して、変更の表示方法を設定します。

  • Show on PCBオプション(ショートカット:Ctrl+Shift+A)を有効にすると、PCBドキュメントのデザインスペースで差分がハイライト表示されます。

  • Show on PCBオプションが有効な場合は、Zoom selected objectオプションも有効にできます。これにより、PCB CoDesignパネルの差分項目をクリックすると、デザインスペース内の該当オブジェクトへクロスプローブできます。スライダーを使用して、選択したオブジェクトにズームインする際の倍率を調整します。

  • 大規模なネット(Copperカテゴリに表示)の変更を把握しやすくするため、ネット内の銅箔オブジェクトは、より小さな単位であるピン間接続に分割されます。

    この機能は、Advanced SettingsダイアログでPCB.CollaborativeEditing.Connectionsオプションが有効になっている場合に利用できます。

    Javascript ID: Pnl_PCBCoDesign_Pin2Pin_AD25_2
  • PCB CoDesign機能は、ユニオン(PCB上で定義されたプリミティブのグループ)の比較と変更の適用に対応しています。ユニオンに関連する変更は、PCB CoDesignパネルの変更一覧でUnionsカテゴリに表示されます。また、他のカテゴリの変更も、該当するオブジェクトがユニオンに属している場合は、ユニオンごとにグループ化されます。

  • 双方で同じオブジェクトのプロパティが変更されていても、プロパティ値に競合がなければ、それらの変更は競合せず、マージできます。

Shift+Bキーボードショートカットを押し続けることで、現在の状態と変更前の状態を切り替えることもできます。パネル内のヒントには、現在どちらの状態が表示されているかが示されます。

コントロールのポップアップでZoom selected objectオプションが有効になっている場合、Shift+Bショートカットを使用すると、デザインスペースもズームされ、対応する変更領域が表示されます。

Javascript ID: PCBCoDesign_States_24_7

パネル下部のボタンをクリックすると、検出されたすべての差分がマージされます。マージ中であることを示すポップアップが表示されます。差分はPCBドキュメントのローカル作業コピーにマージされるため、他の設計者が利用できるようにするには、Workspaceに保存する必要があります。

変更がマージされると、Projectsパネル内のPCBドキュメントのVCSステータスがMergedに変わり、アイコンが表示されます。このアイコンをクリックすると、設計をWorkspaceに保存するか、ローカルの変更を元に戻すことができます。

設計は、Projectsパネルでプロジェクト名の横にあるSave to Serverコントロールを使用するか、PCB CoDesignパネルでSave to Serverボタンを使用して、Workspaceに保存することもできます。

  • 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の動作です)。

  • 必要に応じて、マージが正常に完了した後にパネルに表示されるボタンを使用して、マージ結果を元に戻すことができます。

競合の解決

もう1つの作業方法は3方向比較で、他のユーザーも同じ基板で作業している場合に使用します。自分と同僚のBobが、それぞれWorkspaceから基板のコピーをチェックアウトする場面を考えてみましょう。2人はそれぞれ自分の基板コピーで部品の配置と配線を行います。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パネルに一覧表示された競合から、PCBエディターのデザインスペースへクロスプローブできます。

  • PCB CoDesignパネルの一覧でカテゴリをクリックすると、そのカテゴリの競合がデザインスペースでハイライト表示されます。

  • PCB CoDesignパネルの一覧で特定の競合をクリックすると、その競合のみがデザインスペースでハイライト表示されます。

  • Shift+ClickやCtrl+Clickの操作方法を使用して、パネル内の複数の項目を選択します。

検出された競合ごと、または特定のカテゴリ内のすべての競合について、ローカルの変更(Local)とWorkspace内の最新コミットの変更(Remote)のどちらを適用するかを選択できます。また、現在選択されているすべての変更項目に、必要な設定をすばやく適用することもできます。これを行うには、Shift+ClickやCtrl+Click を使用して必要な項目を選択し、選択した項目のいずれかで目的の設定を選択します。または、検出された競合領域の上部にあるバナー内のドロップダウンを使用して、検出されたすべての競合に対するモードを一括で選択できます。

  • ポリゴンポアが競合している場合は、競合する2つのオブジェクトを1つのポリゴンポアに結合することもできます(Combined)。 

  • 銅箔オブジェクトが競合している場合は、ピン間の接続ごとに、ローカルとリモートのどちらの変更を適用するかを選択できます。

Up Arrow / Down Arrow キーを使用して、競合のリスト内を移動できます。Left Arrow/ Right Arrow キーを使用すると、選択した競合のモード(Combined/Local/Remote)を切り替えられます。競合のカテゴリが選択されている場合は、Spacebar を押して展開または折りたたみます。

すべての競合に対して目的のモードを選択したら、変更をPCBドキュメントのローカルコピーにマージできます。

  • ポリゴンポアをマージする際にCombinedまたはRemoteオプションを選択した場合は、マージ後のポリゴンを再ポアする必要があることに注意してください(たとえば、デザインスペースでポリゴンを右クリックし、コンテキストメニューからPolygon Actions » Repour Selectedを選択すると実行できます)。 PreferencesダイアログのPCB Editor – GeneralページでRepour Polygons After Modification オプションが有効になっている場合、ポリゴンポアはマージ後に自動的に再ポアされます。

  • 検出された競合を一覧表示する際、次のプロパティは無視されます。

    • ポリゴンポアのPourIndex プロパティ。

    • コンポーネントの ChannelOffsetプロパティ。

    • ルールの RulePriorityプロパティ。

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
Contents
機能の提供状況

ご利用可能な機能は、お使いのAltiumソリューション(Altium Develop、Altium Agile Teams、Altium Agile Enterprise、または有効な契約期間中のAltium Designer)によって異なります。

実際にお使いのソフトウェアに文書化されている機能が表示されない場合は、詳細についてAltium Sales までお問い合わせください。

従来のドキュメント

Altium Designer のドキュメントは、バージョンごとに掲載されなくなりました。Altium Designer の旧バージョンのドキュメントは、Other Installers ページの Legacy Documentation の項目をご覧ください。

Contents