Altium SDK の概要
Altium Developer
Developing Extensions primer
Altium Delphi SDK
Altium C++ SDK
Altium C# SDK BOM Engine Interfaces
Altium Designer の SDK(ソフトウェア開発キット)は、Altium Designer にプラグインして機能を拡張するソフトウェア拡張機能を構築するために必要なコアリソースを提供します。ソフトウェア拡張機能は、Altium Designer のクライアント/サーバーアーキテクチャにおけるサーバーとして動作し、独立したモジュール、出力ジェネレーター、ドキュメントエディターとして、それぞれ独自の設計ドキュメントにアクセスできます。
SDK には、API(アプリケーションプログラミングインターフェース)のソースユニット、ドキュメント、ソースコード例が含まれており、独自のソフトウェア拡張機能を簡単に開発できます。これらは Embarcadero Delphi、Microsoft C# または C++ を使用して DLL(ダイナミックリンクライブラリ)としてビルド・コンパイルされます。
SDK を使うことで、PCB エディターなど既存の設計ドキュメントエディター向けを含む、Altium Designer 用の幅広い専門機能を持つソフトウェア拡張機能を開発できます。たとえば PCB エディターと連携する場合は、ソフトウェア拡張プロジェクト内で SDK の PCB API を使用します。
Altium Designer SDK は、以下の3つのパートで構成されています。
- Altium Designer SDK の API ソースファイル
- 拡張サーバーのサンプル
- Altium Designer SDK ドキュメント
Altium Designer SDK
SDK の構成要素
Altium Designer SDK はソースユニットで構成されており、それぞれが異なる API や独立したルーチンのセットで構成されています。これらのユニットにより、システムのオブジェクト指向構造(例:PCB 設計ドキュメント内のパッド、トラック、テキストオブジェクトなど)にアクセスできます。
Delphi、C#、C++ 用の API ソースユニットは、それぞれ対応する Source Code
Altium Designer ソフトウェア拡張機能のビルドに推奨されるソフトウェア IDE は以下の通りです。
-
Embarcadero Delphi XE2 以降(Delphi SDK 用) -
Microsoft Visual Studio 2010 以降(C++/C# SDK 用)
サンプルプロジェクト
SDK インストール内の examples フォルダーには、さまざまな種類のサンプルプロジェクトがフルソースコード付きで含まれています。これらのプロジェクトは PCB および Schematic API を使用して、それぞれ PCB および Schematic エディターの機能を拡張しています。また、エディターに依存しないスタンドアロンのソフトウェアプロジェクト例もあります。Delphi、C++、C# のサンプルコードは、それぞれの SDK[nn]\*language*\Examples\[nn]
その他の SDK ドキュメント
Altium ドキュメントの SDK セクション には、Altium Designer 用ソフトウェア拡張機能の構築をすぐに始められるよう、さらに多くのドキュメントが用意されています。
- サーバー開発プロセスの概要については、Developing Extensions primer ドキュメントをご覧ください。
- Delphi SDK を使った拡張プロジェクトの構築ガイドについては、Getting started: Building a Delphi extension ドキュメントを参照してください。
- Altium Designer のコア SDK および Delphi オブジェクトインターフェース型の概要については、Delphi SDK Reference をご覧ください。
- C++ SDK についての詳細は、Altium C++ SDK ドキュメントを参照してください。
Altium Designer アーキテクチャ
Altium Designer の統合アプリケーションは、DXP Platform(クライアントモジュール)と「ロードされた」サーバーモジュールという複数の主要モジュールで構成されています。ワークスペースマネージャーに加え、通常のサーバーモジュールは PCB や Schematic 設計エディターなどのドキュメントエディター、および追加の拡張モジュールです。
クライアントモジュールである DXP Platform は、ロードされたサーバーと連携するスタンドアロン実行サブシステムです。サーバーはドキュメントエディターや、システム内で専門サービスを提供するその他のソフトウェア拡張機能を表します。DXP Platform はプロセス中心の環境であり、ユーザーがプラットフォームのユーザーインターフェースを通じて呼び出したサーバーモジュールプロセスは、自動的に適切なモジュールにディスパッチされます。コマンドを実行すると、DXP Platform はそのコマンドを適切なソフトウェア拡張機能に送信し、必要な機能をアクティブにします。
SDK は、Altium Designer の内部オブジェクトを一連の API とインターフェースを通じて公開します。基本的に、オブジェクト/クラスインターフェースはメモリ上の既存オブジェクトインスタンスを参照し、サードパーティ開発者に制御されたアクセスを提供するラッパーとして機能します。
Altium Designer インターフェース
Altium Designer SDK は、さまざまな API と一般的なルーチンやクラスで構成されています。各 API はオブジェクトクラスで構成されています。たとえば、SDK には PCB API があり、パッドや PCB ドキュメントなどの PCB オブジェクトを表すオブジェクトインターフェースを公開します。
Altium Designer SDK とその API
- クライアントおよびサーバー API – カスタムサーバープラグインやドキュメントエディターの実装用。
- ワークスペースマネージャー API – プロジェクトやドキュメントの操作用。
- PCB API – PCB ドキュメントおよびその上の PCB オブジェクトの操作用。
- Schematic API – Schematic ドキュメントおよびその上の Schematic オブジェクトの操作用。
- 統合ライブラリ API – ライブラリリンクの操作やモデルエディターの構築用。
- その他の API – BOM Engine や Output Generator API など。
クライアント / サーバーインターフェース
クライアントモジュールである DXP Platform は EDPClasses
ワークスペースマネージャーインターフェース
ワークスペースマネージャーインターフェースは EDPInterfaces
PCB インターフェース
PCBインターフェースは、PCBドキュメントおよびその上のオブジェクトを指します。PCB APIはEDPClasses_PCB
回路図インターフェース
回路図インターフェースは、開かれている回路図ドキュメントおよびその上のオブジェクトを指します。回路図APIはEDPClasses_SCH
統合ライブラリインターフェース
各回路図コンポーネントは、1つ以上の設計ドメインからモデルを持つことができます。また、1つのドメインにつき複数のモデルを持つこともでき、その中の1つがそのドメインに関連するモデルとなります。
BOMエンジンインターフェース
部品表(BOM)インターフェースは、プロジェクトのBOMデータおよび関連パラメータの作成と管理を可能にします。主なクラスはIBomManagerEDP.Utils.GetBomManagerFactory()
- 概要およびSDKの使用方法については、BOMエンジンインターフェースをご覧ください。
-
C#の
BOMPanel サンプルプロジェクトでコーディング情報を確認できます。サンプルはDeveloperインストールの フォルダーにあります。..\SDK4.0\CSharp\Examples\BOMPanel
Altium Designer SDKユニット
実際には、Altium Designer SDKには複数のサブSDKがあり、各対応開発言語のソースコードフォルダーに格納されています。
これらはインストールされたSDK内で2つの主なグループに分類されています:
- PCBエディタSDK
- 回路図エディタSDK
- 組み込みSDK
- ...など
– Altium DesignerのコアSDKおよびそのDelphiオブジェクトインターフェース型については、Delphi SDKリファレンスセクションをご覧ください。
拡張機能の機能をAltium Designerに公開する
ユーザーが利用できるソフトウェア拡張機能内のすべての機能(プリミティブの配置、ズームレベルの変更など)は、コマンドによって実行されます。メニュー項目を選択したり、ツールバーボタンをクリックしたりすると、Altium Designerでコマンドが起動されます。これらのコマンドは適切なサーバーにルーティングされ、コマンドが実行されます。コマンドは、コロンで区切られた2つの部分からなるサーバープロセス文字列で、次の形式です:name : process
本質的に、Altium Designerのクライアント/サーバーシステムで動作する拡張サーバーは、独自のプロセス群によってサポートされており、これがAltium Designerとサーバー間のリンクとなります。各サーバープロセス文字列は、ホットキー、メニュー項目、ツールバーボタンなどのユーザーインターフェース要素に紐付けることができます。これらすべてのプロセスは、サーバーインストールファイル(INS拡張子のテキストファイル)に保存されており、ソフトウェア拡張機能(コンパイル済みDLL)とともに拡張機能のインストールフォルダーに存在する必要があります。
サーバーのインストールおよび構成ファイルの詳細については、サーバー構成ファイルをご覧ください。
Altium Designer用のソフトウェア拡張機能を構築・展開するには、Altium Developer拡張機能(Altium Designer SDKを含む)と、Delphi、C++、C#用のIDE(上記参照)が必要です。コンパイル済みDLLサーバー拡張機能は、通常、Altium Designerとのインターフェース方法を指定する2つの構成ファイル(INSおよびRCS拡張子)が必要です。
まとめ
Altium Developer、Altium Designer SDK、およびDelphi、C#、C++のIDEを使うことで、Altium Designer向けに独自のソフトウェア拡張機能を構築・展開し、カスタム機能やプロセスを実装できます。
インターフェースに関しては、PCB設計ドキュメントやオブジェクトを扱うにはEDP APIとPCB APIを、回路図設計ドキュメントやオブジェクトを扱うにはEDP APIと回路図APIを利用する必要があります。独自のスタンドアロン・サーバー拡張機能(例:シミュレーション製品)を開発したい場合のみ、EDP APIのみを使用すれば十分です。
