スクリプトの実行

 

Altium Designer スクリプティングシステムは、Altium Designer で複雑な自動化タスクを作成する手段を提供しますが、結果として得られるスクリプトも、設計プロセス中に簡単にアクセスできる必要があります。たとえば、PCBを編集中に複雑な操作セットを実行するために作成されたスクリプトは、PCBエディタ自体で容易に利用できるべきであり、マウスクリック1つまたは2つで実行できるようにする必要があります。

Altium Designer は、スクリプトをプロセスランチャーに割り当てることを可能にし、それによってメニュー、ツールバー、ショートカットに割り当てることができるコマンドを提供します。

スクリプトの実行

スクリプトエディタで開いた場合、メインメニューのRun » Runコマンド(ショートカット:F9)を使用してスクリプトを実行できます。Run » Set Project Startup Procedureコマンドで参照されている現在のスクリプトが実行されます。

プロジェクトのスタートアップ手順を設定コマンドが設定されていない場合、実行する項目を選択ダイアログが表示され、実行するスクリプトとその手順を選択するように求められます。

スクリプトにエラーがある場合、スクリプトは停止され、さまざまなデバッグコマンドを使用してエラーを解決し、再度実行を試みることができます。

Runコマンドは、スクリプトプロジェクトがAltium Designerで開かれている必要がありますが、これは例えばPCBデザインプロセス中に必要なスクリプトにアクセスするのに便利な方法ではありません。代わりに、Select Item To Run ダイアログ(File » Run Script)を使用すると、ローカルハードドライブや接続されたワークスペースでスクリプトを参照したり、プロジェクトパネルで開かれているスクリプトを選択して、希望するプロセスを実行できます。スクリプトは現在のセッションでロードされたままになります。

Select Item to Run ダイアログを使用してスクリプトプロセスランチャーを介してスクリプトを実行しています。

スクリプトにエラーが存在する場合、Select Item To Run ダイアログで OK をクリックした後、エラーダイアログが開き、エラーが存在することを警告します。ダイアログにはエラーに関する情報が表示され、ソーススクリプトドキュメントが開かれ、エラーのある行がハイライト表示されます。このダイアログを OK ボタンをクリックして閉じ、メインメニューから Run » Stop コマンドを選択することでスクリプトシステムを停止します(ショートカット:Ctrl+F3)。

エラーダイアログは最初に遭遇したスクリプトエラーのみを指摘します。それ以外にも存在する可能性があり、スクリプトを実行しようとする度に見つかるかもしれません。

頻繁に使用するスクリプトにアクセスするより適切な方法は、プロジェクトをグローバルプロジェクトとしてインストールすることです。これは、環境設定ダイアログのScripting System – Global Projectsページから行います。この場合、プロジェクトはAltium Designerが起動すると自動的にロードされ、File » Run Scriptコマンドを通じていつでも実行できます。

しかし、スクリプトの機能にアクセスする理想的な方法は、それをAltium DesignerのGUIにメニューやツールバーコマンドとして統合することです。これは通常、2段階のプロセスです。スクリプトをコマンドとして実装(オプションでショートカット付き)、次にそのコマンドをメニュー(静的またはポップアップ)やツールバーに割り当てます。

コマンドとしてのスクリプト

スクリプトは、Altium Designerの組み込みサーバープロセス、具体的にはScriptingSystem:RunScriptプロセスを活用することで、アプリケーションコマンドとして実装できます。

コマンドは実行されるアクションを表し、パッケージ化されたプロセスランチャーを介してプロセス文字列によってサポートされます。ScriptingSystem:RunScriptプロセスの場合、特定のスクリプトプロジェクトファイル、構成要素のスクリプトファイル(*.pas)、およびそのスクリプト内のプロセスを指すパラメータが含まれます。これらの要素が適切に配置されると、コマンド文字列を構成します。

このアプローチの利点は、スクリプトをプロセスとして実行することで、直接スクリプトを開いたり、グローバルプロジェクトとしてロードする必要がないことです。スクリプトをプロセス方法で実行することの2つ目でより重要な利点は、それをアクセス可能なAltium Designerコマンドとして実装できることです。これは、Altium Designerのメニューシステムをカスタマイズすることによって行われ、スクリプトを指定されたサーバーのコマンドに割り当てることができます。つまり、ファイルシステムやデザインドキュメントエディターなどのサブアプリケーションです。

コマンドを作成する

たとえば、HelloWorldスクリプトをPCBエディタのコマンドとして割り当てるには、まずPCBドキュメント(したがってエディタ)を開き、メインメニューからView » Tools » Customizeを選択して、Customizing PCB Editorズダイアログを開きます。このダイアログは、メニューバーやツールバー上で右クリックしてドロップダウンメニューからCustomizeを選択するか、メニューバーやツールバーのコマンドがない空白部分をダブルクリックすることでもアクセスできます。

新しいコマンドを作成するには、ダイアログのNewボタンをクリックしてコマンドの編集ダイアログを開き、サーバープロセスとスクリプトパスの詳細を含めます。スクリプトからコマンドを作成する場合は、[Scripts]カテゴリが選択されていないことを確認してください。

ダイアログのActionエントリは以下の形式を取ります:

Process: ScriptingSystem:RunScript
Parameters: ProjectName|ProcName>Process

スクリプトへのソースパスに応じて、パラメータ文字列は以下のようになります:

ProjectName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\General\HelloWorld.PRJSCR|ProcName=HelloWorld.pas>HelloWorld

ワークスペースでホストされているスクリプトプロジェクトの場合、パス、そしてコマンドのパラメーターエントリは、ワークスペーススクリプトのGUID参照に基づいた正しいワークスペースの位置を指す必要があります。したがって、この参照リンクは、新しいスクリプトコマンドエントリを作成しようとする前に取得されなければなりません。ワークスペースからインストールされたスクリプトの正しいパラメータをキャプチャするには、Select Item To Runダイアログ(File » Run Script)を開き、スクリプト内の望ましい手順を右クリックし、コンテキストメニューからCopy script parametersコマンドを選択します。これにより、パス全体、プロセス名、手順がクリップボードにコピーされます。

ワークスペーススクリプトプロジェクトで必要なプロセス/手順を選択し、その後スクリプトのパラメータをコピーします。

Edit Command ダイアログには、コマンドのキャプション、説明、ショートカット、関連付けられたビットマップ画像(BMP/GIF/PNG; 18 x 18ピクセル)のための入力フィールドも提供されています。これらの設定はコマンドと共に保存され、メニュー、ツールバー、ポップアップに挿入されるすべてのインスタンスに適用されます。これは下記のAssigning Menu Commandsセクションで説明されています。

必要なパラメータは、スクリプトが現在ロードされている場合、Customize PCB Editorダイアログの[Scripts]カテゴリー下の実際のスクリプトエントリからコピーできます。スクリプトを一時的にロードするには、File » Run Scriptコマンドを介して開きます。コピーしたら、カテゴリーエントリが[Scripts]に設定されていないことを確認し、Newボタンでコマンドを作成してください。

例の画像を見る

詳細が完成し、編集ダイアログが閉じられた後()、HelloWorldスクリプトはPCBエディターのカスタムコマンド([Custom]の下)として利用可能になります。

コマンドはサーバーベースで実装されるため、PCBエディター用に作成されたカスタムコマンド(上記のように)は、スキーマティックエディターやスクリプティングシステムなど、他の機能では利用できないことに注意してください。

RunScriptFile プロセスを使用したスクリプトの実行

Altium Designer の DelphiScript ユニットスクリプト(*.pas 拡張子)は、RunScriptFile プロセスを使用して実行できます。注意点として、DelphiScript ユニットスクリプトのみが使用可能です - フォームを持つスクリプトは使用できません。この場合、ダイアログの Action エントリは以下の形式を取ります:

Process: ScriptingSystem:RunScriptFile
Parameters: FileName|ProcName

スクリプトファイルへのソースパスに応じて、パラメータ 文字列は以下のようになります:

FileName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\Processes\ShowNetList.pas|ProcName=RunNetList

RunScriptTextプロセスを使用したスクリプトの実行

このプロセスは、Begin End; ブロック内の一連のコマンドを実行するために使用できます。この場合、ダイアログのアクションエントリは以下の形式を取ります:

Process: ScriptingSystem:RunScriptText
Parameters: Text

たとえば、Microsoft Notepadのような外部アプリケーションは、ソフトウェア制御を通じてAltium Designerから起動することができます。この場合、コマンドプロセスとパラメータのエントリは以下の通りです:

 Process: ScriptingSystem:RunScriptText
 Parameters: Text=Begin RunApplication('notepad.exe'); End;

この場合のソフトウェアプロセス、ScriptingSystem:RunScriptTextは、上述のように特定のスクリプトファイルを開いて実行するのではなく、スクリプト文のシーケンスを実際に実行しています。

代替的なアプローチは、いくつかの同等のコード行でスクリプトを作成し、その後で従来のScriptingSystem:RunScriptコマンドエントリーを作成することです。

Procedure RunNotepad;
Begin
    RunApplication('notepad.exe');
End;

外部のNotepadコマンドを実装する両方のアプローチにおいて、RunApplicationのパラメータとしてアプリケーションの完全なパスとファイル名を指定するのではなく、単に'notepad.exe'と入力するだけで十分です。電卓やメモ帳などのWindowsアプリケーションは、オペレーティングシステムによって既にパスが指定されています。

Altium Designer で Windows のパスが固有でないアプリケーションを起動するには、アプリケーションの完全なパスとファイル名を指定する必要があります(パス内の空白を考慮して単一引用符で)。例えば、Altium Designer の別のコピーを起動する場合、RunApplication プロセスとパラメータは以下のようになります:

RunApplication('C:\Program Files\Altium\xx\X2.EXE') – ここで xx は Altium Designer のバージョンフォルダ名を表します。

コマンドは、カスタマイズダイアログ(この場合は Customizing PCB Editor ダイアログ)から直接、ダイアログの下部にあるボタンを使用して編集、複製、削除することができます。

 

メニューコマンドの割り当て

Altium Designerのカスタマイズ機能(View » Toolbars » Customize)を通じて実装されたスクリプトは、上記のように詳細に説明されている通り、サーバーGUIに簡単なドラッグアンドドロッププロセスで割り当てることができます。

► またご覧ください デザインスペースのカスタマイズ

ツールバー

たとえば、PCBエディタのメインメニューやツールバーメニューにカスタムコマンドを割り当てるには、Customizing PCB Editorダイアログを開き、カスタムコマンドを見つけて目的のメニュー位置にドラッグします。PCBエディタのメニューにアクセスするためには、PCBドキュメントを開いている必要があります。カスタマイズダイアログを閉じると、PCBエディタでいつでも新しいメニューコマンドにアクセスできます。


カスタムコマンドを必要なメニュー位置にドラッグできます。

コマンドは、メニューの右クリックオプションからInsert Linkオプションを使用して追加することもできます。

この例では新しいカスタムコマンドがPCBアクティブバーに割り当てられているため、Customizing PCB EditorダイアログのPCB Active Barコマンドカテゴリーの下に表示されます。


メニューに割り当てられた場合、カスタムスクリプトコマンドはカスタマイズダイアログのそのメニューのカテゴリーの下に表示されます。

メニューからコマンドを削除するには、カスタムダイアログを開いてから、メニューコマンドアイコンをダイアログに戻すようにドラッグします。

ツールバーに割り当てられたコマンドを削除する。
ツールバーに割り当てられたコマンドを削除する。

カスタマイズモード時には、メニューに割り当てられたコマンドも、そのメニューコマンド自体を右クリックすることで編集や削除ができます。

メニュー

カスタムコマンドは、上記で説明されたドラッグ&ドロップのプロセスを使用して、任意のメニューの深さにメニューに割り当てることができます。

サーバーがカスタマイズモードにある場合、メニューはマウスポインターに反応し、それに応じて展開または縮小します。たとえば、コマンドをPCBエディタのReports メニューに配置するには、そのコマンドをメニューにドラッグして、適切な位置にドロップできるリストの中へと移動します。カスタマイズダイアログを閉じると、新しいメニューコマンド(ここでは、ノートパッド)にReports メニュー内からアクセスできます。


カスタマイズ中にアクティブなメニューは、ドロップダウンメニューにカスタムコマンドをドラッグして配置できます。

ポップアップメニュー

上記と同じ方法で、サブメニューの深さによる制限なしに、コマンドを右クリックのポップアップメニューに割り当てることができます。

この例では、コマンドがPCB Popups » Right Mouse Click Free Spaceのメニューパスを通ってドラッグされ、以下に示すようにサブメニューにドロップされます。割り当てられたカスタムNotepadスクリプトコマンドは、空白部分を右クリックするとPCBエディタで利用可能になります。

右クリックサブメニューに割り当てられたカスタムコマンド
右クリックサブメニューに割り当てられたカスタムコマンド

ダイレクトスクリプト割り当て

スクリプトから再利用可能なカスタムコマンドを作成し、それをメニューに割り当てる代わりに、スクリプトを直接メニューに適用することも、一度限りの迅速なアプローチとして可能です。

これは、カスタムコマンドの作成ステップをバイパスし、ロードされたスクリプトを直接メニューに割り当てることによります。完全に設定されたコマンドとして複数のメニューに適用できる対応するカスタムコマンドの存在なしに、この直接的な方法はスクリプトメニューアクセスのための一回限りの解決策です。そのため、Caption、Description、Image、Shortcutsなどのさまざまなコマンド設定は、割り当てられたインスタンスにのみ適用されます。

スクリプトを直接メニューに割り当てるには、スクリプトプロジェクトを読み込み、サーバーのカスタマイズダイアログ(View » Toolbars » Customize)を開き、カテゴリリストで[スクリプト]を選択し、目的のスクリプトを見つけてメニュー位置にドラッグします。 をクリックしてコマンドの編集ダイアログを閉じます。


コマンドではなく、スクリプトも直接メニューに割り当てることができます。

すべてのメニュー配置と同様に、新しいメニューアイテムがまだデフォルト設定(キャプション名、ショートカットなど)の場合、メニューエントリを右クリックしてサブメニューからEditを選択することで修正できます。これにより、適切な設定を入力できるコマンドの編集ダイアログが開きます。


カスタマイズモードでは、メニューを右クリックしてそのパラメータにアクセスします。

一度設定されると、新しいメニューは、スクリプトプロジェクトを明示的にロードしたり、グローバルプロジェクトとしてインストールする必要なく、設計時に利用可能になります。

このアプローチでは、スクリプトをメニューに自動的に適用することで、必要なコマンドが自動的に作成されます。これは、上記の方法で説明されているような、再割り当て可能なカスタムで完全に設定されたコマンドではなく、その直接のメニューエントリー用に作成されたコマンドです。

これは、Customizingダイアログの実際のメニューカテゴリーエントリーで観察できます。上記の例では、個別に設定されたコマンドがCustomizing PCB EditorダイアログのReportsカテゴリーに表示されます。

スクリプトを直接メニューに適用すると、そのメニューエントリーに対応するコマンドが作成されます。
スクリプトを直接メニューに適用すると、そのメニューエントリーに対応するコマンドが作成されます。

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
注記

利用できる機能は、Altium 製品のアクセスレベルによって異なります。Altium Designer ソフトウェア サブスクリプション の様々なレベルに含まれる機能と、Altium 365 プラットフォーム で提供されるアプリケーションを通じて提供される機能を比較してください。

ソフトウェアの機能が見つからない場合は、Altium の営業担当者に連絡して 詳細を確認してください。

Content