Altium SDK の概要

 

Altium Designer の SDK(ソフトウェア開発キット)は、Altium Designer にプラグインして機能を拡張するソフトウェア拡張機能を構築するために必要なコアリソースを提供します。ソフトウェア拡張機能は、Altium Designer のクライアント/サーバーアーキテクチャにおけるサーバーとして動作し、独立したモジュール、出力ジェネレーター、ドキュメントエディターとして、それぞれ独自の設計ドキュメントにアクセスできます。

SDK には、API(アプリケーションプログラミングインターフェース)のソースユニット、ドキュメント、ソースコード例が含まれており、独自のソフトウェア拡張機能を簡単に開発できます。これらは Embarcadero Delphi、Microsoft C# または C++ を使用して DLL(ダイナミックリンクライブラリ)としてビルド・コンパイルされます。

なお、Altium SDK は Altium Developer 拡張機能の一部としてインストールされます。詳細は上記の Related documents リストをご覧ください。

SDK を使うことで、PCB エディターなど既存の設計ドキュメントエディター向けを含む、Altium Designer 用の幅広い専門機能を持つソフトウェア拡張機能を開発できます。たとえば PCB エディターと連携する場合は、ソフトウェア拡張プロジェクト内で SDK の PCB API を使用します。

Altium Designer SDK は、以下の3つのパートで構成されています。

  • Altium Designer SDK の API ソースファイル
  • 拡張サーバーのサンプル
  • Altium Designer SDK ドキュメント

SDK で開発されたソフトウェアモジュールは、これらのドキュメント内で一般的に Extensions および Servers と呼ばれます。

拡張サーバーは、その機能や Altium Designer との統合方法に応じて、さまざまな形態で実装できます。設計エディターのアドオン、スタンドアロンのファイル操作・編集ツール、出力ジェネレータープラグイン、ワークスペースの拡張など、幅広い用途に対応可能です。

すべてが Altium Designer のクライアントサーバーアーキテクチャにおけるプラグイン serversであり、すべてがextendAltium Designer の機能を拡張します。

Altium Designer SDK

SDK の構成要素

Altium Designer SDK はソースユニットで構成されており、それぞれが異なる API や独立したルーチンのセットで構成されています。これらのユニットにより、システムのオブジェクト指向構造(例:PCB 設計ドキュメント内のパッド、トラック、テキストオブジェクトなど)にアクセスできます。

Delphi、C#、C++ 用の API ソースユニットは、それぞれ対応する C:\ProgramData\Altium\Altium Designer {xxx}\Extensions\Altium Developer\SDKディレクトリ内にあります。ここで xxx は Altium Designer のインストール GUID を表します。SDK の特定の機能やクラスインターフェースを使用したい場合は、該当するユニットをプロジェクトの 'Uses'(Delphi)、'using'(C#)、'#include'(C++)句に追加する必要があります。SDK インストール先の \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]は Altium SDK のバージョン番号を表します。

その他の 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 は IClient インターフェースで表され、サーバーであるドキュメントエディターは IServerModule インターフェースで表されます。DXP Platform インターフェースは EDPClasses ユニットから機能を継承しています。Client 関数はこのユニットから呼び出され、この関数は IClient インターフェースを返します。

ワークスペースマネージャーインターフェース

ワークスペースマネージャーインターフェースは EDPInterfaces ユニットから機能を継承しています。ワークスペースマネージャー内のデータにアクセスするには、IWorkSpace インターフェースへのアクセスが必要です。IWorkSpace インターフェースにアクセスするには、EDPUtil – GetWorkspace 関数を呼び出して IWorkspace インターフェースを取得します。

PCB インターフェース

PCBインターフェースは、PCBドキュメントおよびその上のオブジェクトを指します。PCB APIはEDPClasses_PCB ユニットから機能を派生しています。PCBエディタ内のデータへアクセスするには、IPCB_ServerInterfaceインターフェースへのアクセスが必要です。PCBServer関数を呼び出すことで、IPCB_ServerInterfaceインターフェースが返されます。

回路図インターフェース

回路図インターフェースは、開かれている回路図ドキュメントおよびその上のオブジェクトを指します。回路図APIはEDPClasses_SCH ユニットから機能を派生しています。回路図エディタ内のデータへアクセスするには、 ISch_ServerInterfaceインターフェースへのアクセスが必要です。SchServer関数はISch_ServerInterfaceインターフェースを返します。

統合ライブラリインターフェース

各回路図コンポーネントは、1つ以上の設計ドメインからモデルを持つことができます。また、1つのドメインにつき複数のモデルを持つこともでき、その中の1つがそのドメインに関連するモデルとなります。

BOMエンジンインターフェース

部品表(BOM)インターフェースは、プロジェクトのBOMデータおよび関連パラメータの作成と管理を可能にします。主なクラスはBOM ManagerIBomManager)であり、特定のドキュメントデータソースタイプに対してIBomManagerFactoryEDP.Utils.GetBomManagerFactory())から呼び出されます。

  • 概要およびSDKの使用方法については、BOMエンジンインターフェースをご覧ください。
  • C#のBOMPanelサンプルプロジェクトでコーディング情報を確認できます。サンプルはDeveloperインストールの..\SDK4.0\CSharp\Examples\BOMPanelフォルダーにあります。

Altium Designer SDKユニット

実際には、Altium Designer SDKには複数のサブSDKがあり、各対応開発言語のソースコードフォルダーに格納されています。

これらはインストールされたSDK内で2つの主なグループに分類されています:

    1. DXPプラットフォームSDKユニット

    2. 電子データプラットフォーム(EDP)SDKユニット(以下を含む):

  • 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のみを使用すれば十分です。

AI-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Content