Altium Designerからの出力生成の自動化
Output generation is not a manual step at the end of a project – it is a configurable, automatable process that should run the same way every time.
Altium Designer の出力生成システムは、Output Job ファイル(OutJob)を中心に構築されています。OutJob は、製造データ、実装データ、ドキュメント、BOM、検証チェック、カスタムレポートなどの出力をまとめて設定した集合であり、各出力の設定、形式、出力先を一度定義すれば済みます。同じ OutJob をどのプロジェクトでも実行できます。プロジェクトが変更された場合は、OutJob を実行することで、すべての出力が現在の状態に基づいて再生成されます。出力要件が変わった場合も、OutJob を一度更新するだけで対応できます。
OutJob は、個々のエンジニアにとって便利なだけの機能ではありません。チームレベルでは、何を、どの形式で生成し、どこへ出力するのかを標準化するための仕組みであり、各エンジニアがそれぞれ独自の設定で手動生成することによって生じるばらつきを排除します。
出力生成アーキテクチャ – OutJob で生成されるもの
-
Fabrication outputs: Gerber ファイル(RS-274X、X2)、NC ドリルファイル、ODB++、IPC-2581、基板スタックレポート。
-
Assembly outputs: マウンタ用ファイル、組立図、テストポイントレポート。
-
Documentation outputs: 回路図印刷、PCB 印刷、3D モデル(STEP)、組立図。
-
BOM outputs: 標準形式およびカスタム形式の BOM レポート。
-
Validation outputs: DRC レポート、ERC レポート、差分レポート、フットプリント比較レポート。これらは、失敗した場合に出力生成をブロックするよう設定できます。
-
Netlist outputs: 下流ツール向けの各種ネットリスト形式。
-
Custom outputs: OutJob に組み込まれたスクリプトにより、ワークフローで必要な任意の形式で出力を生成できます。
リリースによる出力生成の自動化
プロジェクトを Workspace 経由でリリースする場合、OutJob の実行はリリースプロセスに統合されます。まず検証チェックが実行され、いずれかが失敗するとリリースは停止します。出力は、検証済みの設計状態から生成され、バージョン管理されたリリース成果物として Workspace に保存されます。これにより、リリース出力は常に設計の特定のリビジョンに追跡可能であり、既知の正常な状態から生成され、チーム全体がアクセスできる場所に保存されることが保証されます。
これは、ローカルで出力を生成してファイルを共有する方法とは本質的に異なります。出力がどの設計リビジョンに対応しているのか不明になることはなく、異なる設定で再生成されるリスクもなく、特定のエンジニアのマシンや設定に依存することもありません。
カスタム出力ジェネレーター
Altium Designer がネイティブではサポートしていない出力形式については、SDK が Output Generator API を提供しています。カスタム出力ジェネレーター拡張は、OutJob システムに正式な出力タイプとして組み込まれます。つまり、OutJob エディター上では組み込み出力と同様に表示され、設定を持たせることができ、出力コンテナーに割り当てられ、自動リリースの一部として実行できます。ユーザーの視点では、カスタム出力ジェネレーターはネイティブのものと見分けがつきません。
これは、独自の製造フォーマット、社内ドキュメントテンプレート、社内ツール向けのカスタムネットリスト形式、または Altium が標準で提供しているものに合致しないあらゆる出力要件に対して適したアプローチです。
出力管理でよくある失敗パターン
-
Manual generation with per-engineer settings – 各エンジニアが自分のマシンで自分の設定を使って出力を生成する。結果として、エンジニア間でも実行ごとでも微妙な差異が生じます。製造時に問題が発生すると、出力が設計のどのリビジョンから生成されたのか、また使用された設定が正しかったのかを把握するのが困難になります。
-
Outputs stored outside the Workspace – ローカルまたは共有ネットワークフォルダーに保存された出力ファイルが、それを生成した設計から切り離されてしまう。特に改訂が行われた後は、どの設計リビジョンがどの出力セットに対応しているのかが不明確になります。Workspace のリリース機構は、出力をバージョン管理された成果物として特定の設計リビジョンに結び付けることで、この問題を解決します。
-
Validation and output generation as separate manual steps – エンジニアが出力生成前に DRC や ERC を手動で実行している場合、チェックと生成は形式的には結び付いていません。ある設計が 1 時間前に検証を通過していても、その後誰かが変更を加えた状態で次の時間に出力が生成される可能性があります。検証を OutJob に組み込むことで、出力を生成するのと同じ設計状態に対して検証が実行されるようになります。
-
OutJob configuration drift between projects – OutJob がプロジェクト間でコピーされ、それぞれ独立に変更されると、設定が時間とともに乖離していきます。出力要件の変更のたびに、複数の OutJob を更新しなければなりません。OutJob を Workspace 内の共有テンプレートとして管理し、更新を各プロジェクトに反映させることで、このずれを防げます。
カスタム出力ジェネレーターに投資すべきタイミング
カスタム出力ジェネレーターが有効なのは、製造パートナーや下流ツールが Altium ではネイティブに生成できない形式を必要としており、かつその出力を管理されたリリースプロセスの一部として一貫して生成する必要がある場合です。形式が Altium のネイティブ出力を後処理することで生成可能であれば、たとえば BOM の CSV を特定の構造に変換するようなケースでは、OutJob 内のスクリプトを使う方が SDK 拡張を完全に作るよりシンプルな場合が多いです。設計オブジェクトへのアクセスがスクリプトシステムでは届かないレベルで必要な場合、あるいは出力タイプを適切に設定可能な正式な出力として OutJob UI に統合する必要がある場合に、拡張を構築してください。