共同の PCB 設計

Many hands make light work. (人手が多ければ仕事が楽。)と言うことわざがあります。ボード設計者が長い間、理想としてきたものとして、複数の設計者が同時に同じボードで作業できることです。この作業は素人には複雑に見えないかもしれませんが(ボードの必要な箇所から配線し、それをコピーする)、実際には、それは特定のキーとなる機能を合成してまとめる必要があります。

これらには以下のような点があります:

  • 複数の設計者が同じボードデザインへアクセスできるシステムで、これは、その他の設計者の作業に影響無く作業し変更を保存できます。
  • 同じボードの異なる複数のバージョン間の相違を正確に比較し確認するメカニズムです。
  • 検出する相違を解決できるツールで、これは、誰の変更を採用するか設計者が選択できます。
  • 多くの相違を自動で扱い、対立しないで相違を解決できるツールです。

設計ツールで作業する際、多くのその他の利点があります。それは、同じボードの異なるバージョン間の相違を表示でき、自分の作業を確認するためにこの機能を使用することもできます。週末前に配線した内容を忘れましたか? 問題ありません。PCBエディタの比較、統合機能は実行した変更を確認し検証するために使用でき、希望であれば削除することもできます。

それを作業する方法

2つのドキュメント間の相違の検出や解決、または 相違統合 は、ソフトウェア開発の分野で熟成、証明されたプロセスです。なぜなら、ソフトウェアは人、またはソフトウェアアプリケーション(多くの高品質で頑強な 3rd パーティの相違と比較ツール)が容易に読め、比較できるASCIIドキュメントで書かれ保存されているからです。 

ボード設計者がその機能を利用するために、Altium Designer の PCB エディタには相違と統合機能が内蔵されています。PCB エディタには、最も小さい物理的な2つのボード間の相違を検出できる洗練された相違エンジンがあります。その物理的な相違エンジンは、各レイヤで見つけた形状を比較し、形状を比較するレベルで働きます。 

比較と統合機能を利用するには、2つの方法があります。1つは、現在のボードと他のバージョンのボード間の相違を検出するために使用する、2つを比較する方法です。これを Difference モードと考えます。その結果を、それがどうなっているかそれがどうなっていたか を比較する
に表示します。

2つ目の方法は、他の誰かがそのボードで作業しているかどうか判別する、3つを比較する方法です。あなたと同僚が Version Control リポジトリからボードのコピーをチェックアウトする状況を想像してみてください。あなたはボードのコピーでコンポーネントの配置や配線を行います。同僚は、リポジトリに戻ってそれを確認し、担当したボード領域を完了します。あなたは、同僚が作業した内容が含まれているか確認したいと思います。そのため、Altium Designer はどのようにこの状況を扱うでしょうか? 

誰によって何が変更されたか確認するために、Altium Designer はあなたのボードと同僚のボードを比較する必要があります。また、リポジトリ(このバージョンがBaseと呼ばれます)からそれを確認した時にも比較する必要があります。これは、Altium Designer が連続した変更を認識し、それらの変更をあなたのボードのバージョンに統合するツールとコマンドを提供する、3つを比較する方法を必要とします。Collaborate, Compare and Merge パネルに Version Control Status: Merge Required がレポートされる時、あなたがボードをチェックアウトしてから、その作業を他の誰かがリポジトリにチェックインしたのを Altium Designer が検出したことを意味します。そのため、あなたのボードのバージョンにその変更を反映するために 統合 を行う必要があります。このモードを、Altium Designer では として表示する Merge モードと考えます。 

最初の配線と、あなた (Designer1) と同僚 (Designer 2) によって修正された後

Designer 1 が merge resolution 画面を表示するためにクリック する時、Altium Designer は、誰が修正したか表示するために配線に目印を付けるのと同様に、各設計者が行った配線を表示します。 

最初の設計者の統合結果の画面。

共同 PCB 設計機能を使用する方法

Altium Designer の共同 PCB 設計機能は、Collaborate, Compare and Merge パネル(ワークスペースの右下にある PCB ボタンをクリック)を通してアクセス、操作します。パネルの Actions の項目は共同機能のコントロールと status の確認のために使用します。一度、統合、または比較を実行すると、下図のようにパネルの Difference Map とメイン編集画面の両方に相違が表示されます。  

status 情報を表示するためにパネルを使用し、相違を表示するためにコマンドを実行。

相違の表示を管理するためにボードは一時的にセルに分割されます。セルの参照は、パネルの*Difference Map* 内のセルにカーソルを置くと表示されます。また、メイン編集画面のセルの左下にも表示されます。セルの色はそのセルを変更した人を示します。詳細についてはマップ内の legend を使用します。Difference Map には、各 PCB レイヤのレイヤタブが含まれています。メイン編集画面のセルにズームするには、レイヤを選択してからセルをクリックします。変更したオブジェクトは、以下で説明するように、色、またはゴースト化されてハイライトされることに注意してください。 

パネルの Actions の項目は、3つの項目に分割された多くのコマンドがあります:

  • Live Collaboration - を設定、表示、削除するためにこれらのコマンドを使用します。
  • Version Control Status - バージョンコントロールでボードを作業している時、コマンドを表示します。
  • Comparison - バージョンコントロールを使用 (どんなレビジョンに対しても相違を表示するためにクリック)、またはバージョンコントロールを使用しない (どんな PCB ドキュメントに対しても相違を表示するためにクリック) 場合、その他のボードと相違の比較を行うためにこれらのコマンドを使用します。 

比較を行うために Actions コマンドを使用し、Live Collaboration 機能を管理。

多くのコマンドは、有効にするために一度クリックし、無効にするには再度、クリックするトグルタイプのコマンドです。あるコマンド 意図した作業領域を手動でマーク はそれと異なり、一度、メイン編集画面にカーソルを移動してクリックすると、region を定義する操作になります。 

用語と status メッセージ

用語

定義

Head

最新のリビジョンはバージョンコントロールシステムにコミットしました。

Base

ローカルの Working Copy になるチェックアウトしたリポジトリのレビジョン。checked out revision と呼ばれます。

Working Copy

編集するドキュメントをコントロールしたローカルのバージョンのコピー。

Local changes

バージョンコントロールにコミットされない Working Copy での変更。

Status : File up to Date

Base リビジョンは Head リビジョンで、Local Change は実行されませんでした。

Status : Modified

Base リビジョンは Head リビジョンで、変更により Working Copy が作成されました。この Status はリポジトリへチェックインするための最後の1つであったことを示します。そのため、全ての相違は ローカルyour own work の結果になります。

Status : File Out of Date

Base リビジョンは Head リビジョンより古く、Working Copy へ変更はありません。この Status は、コピーをチェックアウトしたので他の誰かがチェックインしたことを示しますがコピーに変更をしていません。古いコピーをドキュメントの最新のコピーと置き換えるために Bring this document up to date with the head revision をクリックします。

Status : Merge required

Base リビジョンは Head リビジョンより古く、Local Change が実行されました。言い換えると、ドキュメントは Modified と Out of Date の両方です。この Status は、コピーをチェックアウトしたので他の誰かがその作業にチェックインしたことを示します。また、あなたはコピーに Local Changes をしました。これは、他の設計者の変更と共に変更を統合することで解決できます。

Resolve

Base リビジョン数を Head リビジョン数に更新する動作です。Base が Head より古く、コピーを Head にしたい場合、Resolve を実行する必要があります。これは、 Merge Required から Modified へ Status を変更します。

相違の比較

1人でボードで作業している時、相違の比較を行います。そして、その他の既存のバージョンに対してあなたのバージョンを確認したいかもしれません。その既存のバージョンは、バージョンコントロールリポジトリ内のボード、またはハードドライブのボードにできます。 

全ての比較は、Collaborate, Compare and Merge パネルで始まります。相違の比較を実行するには、参照するドキュメントにアクセスするために以下のコマンドの1つを選択します:

  1. Click to show differences against the head revision - リポジトリにチェックインされた最後のバージョンとあなたのボードを比較。 
  2. Click to show differences against any revision - リポジトリ内の古いバージョンとあなたのボードを比較。 
  3. Click to show differences against any PCB document - ハードドライブ、またはネットワーク上のボードとあなたのボードを比較。 

相違の比較結果を表示する方法

一度、比較コマンドを選択した場合、全ての相違は Difference Map に表示されます。メイン画面のボードの相違がある領域へジャンプするために、そのセルをクリックします。パネルの下部にある*Zoom Level* ボタンを使用して、ズームレベルを変更できます。パネルの下部に、現在、選択したセルの個々の相違の詳細が表示されます。 

メイン編集画面で、相違が無いセルは目立たないように白色の透過表示になります。セルで相違があれば透過表示になりません。相違をより見やすくするにはシングルレイヤモード (Shift+S) に切り換えます。 

相違は、色、白色の影、ゴースト(関心のあるオブジェクトは薄く表示されます)を含む様々な技術を使用してハイライトされます。各意味の詳細は以下になります:

ハイライト

説明

追加 - これらの変更はボードのあなたの作業コピーに存在しますが、その他のドキュメントにはありません。

削除- これらの変更はボードのあなたの作業コピーに存在しますが、その他のドキュメントにはありません。

統合結果の比較

同じボードで作業している人が、2人、またはそれ以上いる時、統合結果の比較を行います。これを行うには、全ての設計者が同じリポジトリからボードのコピーをチェックアウトする必要があります。また、各設計者は他の設計者が何をしているか確認するために、 機能を設定する必要があります。

もし、パネルの Actions の領域で Version Control Status:Merge required とレポートされた場合、統合結果の比較が必要です。これをするには、Actions リスト内の Click to show merge resolution view コマンドを使用します。 

統合結果の比較相違を表示する方法

ハイライト

ハイライト

説明

(ズームアウト)

(ズームイン)

 

あなたによって実行された追加。

 

あなたによって実行された削除。

他の誰かによって実行された追加。

 

他の誰かによって実行された削除。

相違の解決

相違は、参照ドキュメントで検出された相違を現在のボードへ統合することで解決します。統合は、PCBエディタ画面、または Collaborate, Compare and Merge パネルで実行できます。パネル内の The Automatically merge in non-conflicting changes from the head revision コマンドは、Show Merge Resolution View がアクティブである時、表示されます。それは、headで行われた修正(緑色のセルで Difference Map に示された)と対立しないで作業へ反映します。 

パネルから統合するには、Add/Remove to match [ReferenceDocument] コマンドを表示するためにパネルの Difference Map 内の修正したセル上で右クリックします。コマンドを選択することで、参照ドキュメントに一致するセルのプリミティブを修正します。参照ドキュメントの名称は四角の括弧で表示されることに注意してください。複数のセルは、変更を参照ドキュメントから現在のボードへ渡すことができ、同時に(複数選択するためにshift+click、または drag+click)ハイライトできます。

もし、そのままにしたい変更やその他の変更がセルに含まれる場合、メイン PCB エディタで変更を選択して統合できます。それを行うには右クリックメニューから Merge を選択します。

右クリック Merge メニュー

メイン編集画面で相違を解決するには、相違として示されるオブジェクト上で右クリックします。ポップアップメニューには、セル内の変更の status と同様に、クリックしたプリミティブに合わせて統合する Merge サブメニューがあります。  

マークしたトラック上で右クリックし、Merge サブメニューからコマンドを選択。

Merge サブメニューで操作できるコマンンドには3つのレベルがあります:

  • Primitive - 右クリックしたトラックセグメント/ビア/コンポーネントのみがこの操作で修正されます。 
  • Route - クリックした接続について、異なる全てのトラックセグメントがこの操作で修正されます。
  • Cell - この相違の部分のセルを通して全てのトラックセグメントがこの操作で修正されます。

右クリック Merge サブメニューで利用できるコマンドは、以下の操作をサポートします:

  • Add - 参照ドキュメントに存在し、あなたのドキュメントに存在しないプリミティブ上でクリックする時、表示されます。参照ドキュメントから現在のドキュメントへプリミティブを追加しますが、プリミティブを削除しません。Add Component を実行する時、UniqueID が一致しない既存のコンポーネントを削除しようとします。 
  • Remove - 現在のドキュメントに行った変更が削除されるように、プリミティブを修正します。
  • Replace - 最終結果が比較のために使用した参照ドキュメントと一致するように、プリミティブを追加、削除します。

ライブの共同作業

Altium Designer の PCB 共同機能の重要な要素は、バージョンコントロールシステムとリポジトリです。VCS は、各設計者がどのレビジョンをチェックアウトしたか、Head レビジョンと異なるかどうか軌跡をたどります。

個々の設計者がボードで作業している他の誰かの軌跡を容易にたどれるようにするために、Altium Designer の Live CollaborationWork Regions の機能も使用できます。

Live Collaboration 機能は、どの他の設計者が同じボードで現在、作業しているか詳細を示します。現在、同じボードファイル(ローカルコピー)を開いている各設計者のログインやコンピューター名の詳細を、Collaborate, Compare and Merge パネルの Difference Map の項目に表示します。 

共同サーバパス

Live Collaboration 機能で作業するために、Altium Designer では共同作業者や作業領域情報 (WIP.xml) をログする central ファイルを使用します。そのファイルは Collaboration Server Path オプション(Preferences ダイアログの PCB Editor - General ページ)で定義した場所に保存されます。この機能を使用するには、各設計者が Altium Designer のインストールで同じパスを設定する必要があります。

作業領域

各設計者は Work Regions (作業している場所を定義する領域)を定義できます。作業領域はメインワークスペースで定義します。それを定義する前に、メインワークスペースにそれらを表示するためにパネル内の Click to show work regions in the main editor オプションを有効にします。

作業領域を作成するには、パネル内の Manually mark an area as work region コマンドをクリックします。そのコーナーの1つを決めるためにカーソルを希望の位置に移動しクリックします。作業領域は多角形のオブジェクトで、その各コーナーを定義するためにクリックします。コーナーモードを切り換えるには Shift+Spacebar、コーナー方向を切り換えるには Spacebar、最終的に閉じた形状で終了するには右クリックします。

他の設計者が同じボードファイルで定義した作業領域を見るには、共通の Collaboration Server Path を設定する必要があることに注意してください。

バージョンコントロールの役割

共同設計の挑戦はソフトウェア開発分野で長い間、解決してきました。ベストなソフトウェア開発は、プロジェクトの全体の構造を反映する個々のファイルへコードを分析して、コードを配列する方法で開発することが必要です。それは、ソフトウェア開発チームが多くのコードを含むコードファイルを作成することを意味します。 

そのファイルを効果的に共同で作業するために、ソフトウェア開発者は一般的に Version Control System を使用します。Version Control System、または VCS は、以下のことが可能です:

  • 全てのプロジェクトファイルを1つのファイルで、主要な場所、または リポジトリ (容易にバックアップする)へ容易に保存。
  • 複数のファイルを含む変更を Undo。 
  • プロジェクトの開発の履歴のどんな場所からでもファイルを保存、回復。 
  • 共同、独立して作業。各チームメンバーは必要なファイルのローカルコピーを持ちます。開発が完成する時、リポジトリへ作業をチェックインできます。

もし、Version Control System で作業しなかった場合、しくじってしまったと考えが傾くかもしれません。現実的に、VCS を 利用しない 作業は、皆がすぐ忘れる特定の場所に変なファイル名でファイルのレビジョンを保存するので混乱します。実際に、電子ファイルの開発をお金にするほとんどのビジネスでは、Version Control System でそれらのファイルを保存することが適しています。 

VCS は難しい? VCSでの作業は、一度、リポジトリへのインタフェースの基礎を理解すれば難しくありません。コメントを含める作業をチェックインする時はいつでも、変更の軌跡をたどれるのでそれをうまく使用します。コメントを検討しどんなファイルのどんなレビジョンへも戻れ、チェックインの履歴を容易に確認できます。一度、プロジェクトのコピーをローカルの作業領域へチェックアウトした場合、他の人と共有できる時、更新をチェックインするだけです。Altium Designer は直接、リポジトリへ接続できます。そして、Projects パネルでファイルを右クリックするのと同様に容易に作業をチェックインしてリポジトリタスクを作成します。 

プロジェクトがバージョンコントロール下でない場合、何が起こりますか?

Altium Designer の共同 PCB 設計機能は、主要な部分で Version Control System を使用します。これは独立して作業できる個々の設計者のために必要なメカニズムを持ちます。Altium Designer の Collaborate, Compare and Merge 機能を利用するには、各設計者は同じリポジトリからチェックアウトして、同じプロジェクトのコピーで作業する必要があります。この理由は、リポジトリと一緒に通信することでリポジトリが主要な軸であるためです。Altium Designer は、各設計者がチェックアウトしたボードの各レビジョンの status を確立できます。そして、相違を検出するために比較し、必要であれば相違を統合できます。 
バージョンコントロール下でないボードで作業していても、比較や統合機能を使用できます。Collaborate, Compare and Merge パネルの Actions の項目にある Click to show differences against any PCB Document コマンドを使用して、現在のボードとその他のボード間の相違を見つけることができます。ボードがバージョンコントロール下でない場合、Live Collaboration 機能にアクセスしないことに注意してください。

You are reporting an issue with the following selected text and/or image within the active document: