スクリプトの実行
Altium Designer スクリプティングシステムは、Altium Designer 用の複雑な自動化タスクを作成する手段を提供しますが、結果として得られるスクリプトも、設計プロセス中に簡単にアクセスできる必要があります。例えば、PCBを編集する際に複雑な操作セットを実行するために作成されたスクリプトは、PCBエディタ自体で簡単に利用できるべきであり、マウスクリック1つまたは2つで実行できるようにする必要があります。
Altium Designer は、スクリプトをプロセスランチャーに割り当てることを可能にし、それによりメニュー、ツールバー、ショートカットに割り当てることができるコマンドを提供します。
スクリプトの実行
簡単に要約すると、スクリプトエディターで開いている間、エディターのRunコマンドを使用してスクリプトを実行できます。これには、スクリプトプロジェクトがAltium Designerで開かれている必要がありますが、例えばPCB設計プロセス中に必要なスクリプトにアクセスするには不便な方法です。代わりに、Select Item To Runダイアログ(File » Run Script)を使用すると、ローカルハードドライブまたは接続されたAltiumサーバーからスクリプトを参照し、希望するプロセスを実行できます。スクリプトは現在のセッションでロードされたままになります。
Select Item to Runダイアログを介してスクリプトプロセスランチャーを使用してスクリプトを実行します。
頻繁に使用されるスクリプトにアクセスするためのより適切な方法は、PreferencesダイアログのScripting System – Global ProjectsページからプロジェクトをGlobal Projectとしてインストールすることです。この場合、プロジェクトは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ボタンをクリックしてEdit Commandダイアログを開き、サーバープロセスとスクリプトパスの詳細を含めることができます - スクリプトからコマンドを作成する場合は、[Scripts]
カテゴリが選択されていないことを確認してください。ダイアログのActionエントリは以下の形式を取ります:
プロセス: ScriptingSystem:RunScript
パラメータ: ProjectName|ProcName>Process
スクリプトへのソースパスに応じて、パラメータ文字列は以下のようになります:
ProjectName=C:\Users\Public\Documents\Altium\Delphiscript Scripts\General\HelloWorld.PRJSCR|ProcName=HelloWorld.pas>HelloWorld
このダイアログには、コマンドのキャプション、説明、ショートカット、関連するビットマップ画像(BMP/GIF/PNG; 18 x 18ピクセル)の入力フィールドも提供されています。これらの設定はコマンドと共に保存され、メニュー、ツールバー、ポップアップに挿入されるすべてのインスタンスに適用されます。これは下記のメニューコマンドの割り当てセクションで説明されています。
詳細が完了し、編集ダイアログが閉じられた後()、HelloWorldスクリプトはPCBエディターのカスタムコマンド([Custom]
の下)として利用可能になります。
外部アプリケーションコマンド
Microsoft Notepadのような外部アプリケーションは、Altium Designerからソフトウェア制御を通じて起動することができます。この場合、コマンドプロセスとパラメータエントリは以下の通りです:
プロセス: ScriptingSystem:RunScriptText
パラメータ: Text=Begin RunApplication('notepad.exe'); End;
この場合のソフトウェアプロセス、ScriptingSystem:RunScriptText
は、上述のように特定のスクリプトファイルを開いて実行するのではなく、スクリプト文のシーケンスを実行しています。
代替アプローチとしては、いくつかの同等のコード行を含むスクリプトを作成し、従来のScriptingSystem:RunScript
コマンドエントリを作成する方法があります。
Procedure RunNotepad; Begin RunApplication('notepad.exe'); End;
外部のNotepadコマンドを実装する両方のアプローチにおいて、アプリケーションの完全なパスとファイル名を指定する代わりに、'notepad.exe'
をRunApplication
のパラメータとしてただ入力するだけで十分です。電卓やNotepadなどのWindowsアプリケーションは、オペレーティングシステムによって既にパスが指定されています。
Windowsのパスが組み込まれていないアプリケーションをAltium Designerから起動する場合、アプリケーションの完全なパスとファイル名を指定する必要があります(パス内の空白を考慮してシングルクォートで囲みます)。例えば、Altium Designerの2つ目のコピーを起動する場合、RunApplication
プロセスとパラメータは以下のようになります:
RunApplication('C:\Program Files\Altium\xx\X2.EXE')
– ここでxxはAltium Designerのバージョンフォルダ名を表します。
メニューコマンドの割り当て
上記のように、Altium Designerのカスタマイズ機能(View » Toolbars » Customize)を介してカスタムサーバーコマンドとして実装されたスクリプトは、サーバーGUIにドラッグアンドドロップの簡単なプロセスで割り当てることができます。
► 詳細はデザインスペースのカスタマイズも参照してください
ツールバー
PCBエディタのメインメニューやツールバーメニューにカスタムコマンドを割り当てるには、例えば、Customizing PCB Editorダイアログを開き、カスタムコマンドを見つけて、希望のメニュー位置にドラッグします。PCBエディタのメニューにアクセスするには、PCBドキュメントを開いている必要があることに注意してください。カスタマイズダイアログを閉じると、PCBエディタで新しいメニューコマンドはいつでもアクセスできるようになります。
カスタムコマンドを必要なメニュー位置にドラッグできます。
この例では新しいカスタムコマンドがPCBアクティブバーに割り当てられているため、PCBエディタのカスタマイズダイアログのPCBアクティブバー
コマンドカテゴリーの下に表示されます。
メニューに割り当てられた場合、カスタムスクリプトコマンドはカスタマイズダイアログのそのメニューのカテゴリーの下に表示されます。
メニューからコマンドを削除するには、カスタムダイアログを開いてから、メニューコマンドアイコンをダイアログに戻すようにドラッグします。
ツールバーに割り当てられたコマンドを削除する。
メニュー
カスタムコマンドは、上記で説明されたドラッグ&ドロップのプロセスを使用して、任意のメニューの深さにメニューに割り当てることができます。
サーバーがカスタマイズモードにあるとき、メニューはマウスポインターに反応して適宜展開や収縮を行います。例えば、コマンドをPCBエディタのReportsメニューに配置するには、そのコマンドをメニューにドラッグして、適切な位置にドロップできるリストの中へと移動します。カスタマイズダイアログを閉じると、新しいメニューコマンド - ここではNotepad - がReportsメニュー内からアクセスできるようになります。
カスタマイズ中にアクティブなメニューは、ドロップダウンメニューにカスタムコマンドをドラッグして入れることができます。
ポップアップメニュー
上記で説明したように、サブメニューの深さによる制限なしで、コマンドを右クリックのポップアップメニューに割り当てることができます。
この例では、コマンドがPCB Popups » Right Mouse Click Free Spaceのメニューパスを通ってドラッグされ、以下に示すようにサブメニューにドロップされます。割り当てられたカスタムNotepadスクリプトコマンドは、フリースペースで右クリックするとPCBエディタで利用可能になります。
右クリックのサブメニューに割り当てられたカスタムコマンド
直接スクリプト割り当て
スクリプトから再利用可能なカスタムコマンドを作成してメニューに割り当てる代わりに、スクリプトをメニューに直接適用することで、迅速な一回限りのアプローチが可能です。
これは、カスタムコマンドステップの作成をバイパスし、ロードされたスクリプトを直接メニューに割り当てることで行います。一致するカスタムコマンドの存在がない場合、これはスクリプトメニューアクセスのための単一の解決策です。この直接的な方法は、複数のメニューに完全に設定されたコマンドとして適用できるカスタムコマンドがない場合にのみ使用されます。そのため、Caption、Description、Image、Shortcutsなどのさまざまなコマンド設定は、割り当てられたインスタンスにのみ適用されます。
スクリプトを直接メニューに割り当てるには、スクリプトプロジェクトをロードし、サーバーのCustomizingダイアログ(View » Toolbars » Customize)を開き、カテゴリリストで[スクリプト]を選択し、希望のスクリプトを見つけてメニュー位置にドラッグします。 をクリックしてEdit Commandダイアログを閉じます。
コマンドではなく、スクリプトも直接メニューに割り当てることができます。
すべてのメニュー配置と同様に、新しいメニューアイテムがまだデフォルト設定(キャプション名、ショートカットなど)の場合、メニューエントリを右クリックしてサブメニューからEditを選択することで修正できます。これにより、適切な設定を入力できるEdit Commandダイアログが開きます。
一度設定されると、新しいメニューは、スクリプトプロジェクトを明示的にロードしたり、グローバルプロジェクトとしてインストールしたりする必要なく、設計時に利用可能になります。
このアプローチでは、スクリプトをメニューに適用することで、必要なコマンドが自動的に作成されます。これは、上記の方法で説明されているような、再割り当て可能なカスタムで完全に設定されたコマンドではなく、その直接のメニューエントリー用に作成されたコマンドです。
これは、カスタマイズダイアログの実際のメニューカテゴリーエントリーで観察できます。上記の例では、個別に設定されたコマンドがCustomizing PCB EditorダイアログのReports
カテゴリーに表示されます。