サーバー設定ファイル
拡張機能サーバーの構成ファイルにより、Altium Designer は起動時に拡張機能のシステム機能と構成を判断できます。本ドキュメントでは、Altium Designer におけるソフトウェア拡張 DLL(ドキュメントエディターやシンプルなアドオンサーバーなど)の構成と配置について詳しく説明します。
構成ファイル セット
ソフトウェア拡張機能の主な構成ファイルには、リソースファイル、インストールファイル、ツールロケーションファイルがあります。拡張プロジェクトに含まれるファイルは、その機能と Altium Designer とのインターフェース方法によって異なります。
拡張機能の構成ファイル
- リソースファイル (.rcs)
- インストールファイル (.ins)
- Tools Layout ファイル (.tlt)
- ボタンファイル(通常は .bmp)
- アイコンファイル (.ico)
構成ファイルは通常、メインプロジェクトフォルダー内の \Installation\Installation\Buttons
よりシンプルなプロジェクト、たとえばアドオン拡張機能(既存のドキュメントエディターに機能を“追加する”もの)では、Altium Designer にコマンドを実装するためにインストール構成ファイルのみを含める場合があります。モデルエディターや出力ジェネレーターなど、他の種類の拡張サーバーも Altium Designer で開発および配置できます。これらの種類の拡張プロジェクトには、次のものが含まれる場合があります。
- サーバー実装モデルファイル
- 出力ジェネレーターまたは実装の構成ファイル
リソースファイル
Altium Designer 環境では、操作はユーザーがメニュー、ツールバー、ホットキーを通じて開始します。そのため、拡張機能の観点では、メニュー、ツールバー、キーボードのホットキーリストは、この環境ではリソースとして扱われます。ツールバーアイコンやメニュー項目などの各リソース項目の背後には、リソース項目が選択されたときにコマンドを起動する、あらかじめ用意されたプロセスランチャーがあります。
リソースファイルは、プロセスランチャーブロックとユーザーインターフェース要素を含む ASCII テキストファイルです。リソースファイルは、サーバーのユーザーインターフェースにプロセスランチャーを割り当てるために使用され、拡張子は .RCS です。キーショートカット、メニュー項目、ツールバーボタンを割り当てることができます。要するに、Altium Designer の起動時に、まず \ExtensionsExtensionsRegistry.xml
リソースファイルの構造
プロセスランチャーは、メニュー項目、ツールバーボタン、ショートカットキーという 3 種類のリソース項目にリンクできます。プロセスランチャーはパラメトリックプロセスにすることもでき、Altium Designer のメニュー項目などのユーザーインターフェース要素にプロセスランチャーがリンクされると、これをコマンドと呼びます。プロセスランチャーはリソースファイルに格納され、プロセス(コマンド)はインストールファイルに格納されます。
リソースファイルの構造は 2 つのセクションで構成されます。
- 最初のセクションには、定義されたプロセスランチャーの一覧があります。
- 2 番目のセクションには、プロセスランチャーツリーの一覧があります。
2 番目のセクションでは、拡張サーバーのメニュー、ツールバー、キーテーブルを定義でき、このサーバーのどのプロセスランチャーをどのユーザーインターフェース要素にリンクするかを指定できます。リソースファイルには、コメント文字列の前に二重バックスラッシュを付けることでコメントを記述できます。
Process Launchers セクション
リソースファイルの Process Launchers セクションには、PL と End のブロックから成るプロセスランチャーステートメントの一覧があります。各ブロック内には、PLName、Command、Params、Caption、Image、ShortCut、Description の各識別子があります。
各プロセスランチャーは、PLServerName: ProcessName 文字列によって参照されます。これらのプロセスランチャーは、リソースファイルの次のセクションで使用され、特定のメニュー項目、ツールバーボタン、またはホットキーにリンクされます。
PL PLName: Process Command = 'Server: Process' Params = 'Parameter1 = Value1\|Parameter2=Value2' Caption = 'text' Image ='Name.BMP' ShortCut1 = '' Description = '' End
Process Launcher 識別子 |
説明 |
|---|---|
PL |
PL は Process Launcher ブロックを表します。このブロックは終端文字列 End で終了します。 |
PLName: Process |
各プロセスランチャーブロックには、サーバー名とそのプロセスを表す一意の PLName: Process 文字列があります。この文字列は、プロセスランチャーに割り当てられたプロセスの一意名を表します。例として PLSch:Undo があります。プロセスがパラメトリックである場合、各パラメトリックプロセスに対して異なるプロセスランチャーを持つことができます。 |
Command = Server: Process |
Command 句は、実際のサーバープロセスを表します。Command 句に割り当てられる Server: Process 文字列は、サーバーのインストールファイル内にある Command Name 句のいずれかから識別されます。PLName: Process 文字列は PL End ブロックの名前であり、Command 句と Params 句によって特定のプロセスランチャーが識別されます。 |
Params ='Parameter1 = value1 | .. ParameterN = Value N' |
サーバープロセスに複数のパラメーターを割り当てます。同じサーバープロセスであっても、異なる Process Launcher ブロック内で個別のプロセスランチャーおよび異なる Params 句を持つことができる点に注意してください。 |
Caption |
プロセスランチャーベースのメニュー項目に対するキャプションの定義です。Caption 文字列内では '&' 文字を使用でき、これはホットキー / アクセラレータキーを示し、& の直後の文字に下線が引かれます。たとえば、キャプション文字列 &File は File メニュー上で File として表示されます。 |
Image |
プロセスランチャーベースのツールバー項目またはメニュー項目用ビットマップ画像へのパスです。画像は Altium Designer インストール内の |
ShortCut1 |
メニュー項目のアクセラレータキーショートカットです。 |
ShortCut2 |
同じメニュー項目に対する 2 つ目のアクセラレータキーショートカットです。 |
Description |
ツールチップおよび Altium Designer のステータスバーに使用されるテキストメッセージです。 |
PLRepeat |
PLRepeat 識別子は、繰り返しコマンドの範囲を定義するために必要です。繰り返される類似コマンドの範囲を定義するには、PLName: Process 識別子、Symbol1、BeginIndex1、EndIndex1 識別子が必要である点に注意してください。 |
End |
プロセスランチャーブロックの終了を示す終端文字列です。 |
PL PLSch:Undo Command='Sch:Undo' Caption='&Undo ' Image='UNDO.BMP' Shortcut1='Ctrl+Z' Shortcut2='Alt+Backspace' Description='Undo' End
Process Launcher Trees セクション
リソースファイルの 2 番目のセクションには Process Launcher Trees が含まれます。各ツリーは、3 種類のリソースのいずれか 1 つ、すなわちメニュー、ツールバー、ホットキーテーブルを指定します。また、1 つのツリー内にサブツリー(たとえばメニューのサブメニューを表すもの)を持つこともできます。同じプロセスランチャーを複数の process launcher identifier(PLID)に割り当てることができます。各ツリー内では、Link 句がプロセスランチャーを指し、一意のリンク名を持つ必要があります。
Altium Designer は、すべてのアクティブサーバーについて、ユーザーインターフェース リソース用のプロセスランチャーテーブルを維持します。したがって、process launcher clause への各リンクには一意の Link 識別子が必要です。プロセスランチャーのショートカットは、利用可能な process launcher tree のいずれかに含まれていれば有効になります。
プロセスランチャーにはショートカットが(2 つ)あるため、ショートカットそのものを保持するためにホットキーテーブルを用意する必要はありません。ただし、ホットキーテーブルを使うことで、プロセスランチャー(コマンド)がメニュー内にも表示中のツールバー内にもない場合でも、そのショートカットを機能させることができます。ショートカットテーブルがなければ、そのショートカットは機能しません。そのため、ファイルの PL セクションには別のツリーカテゴリがあり、これは基本的に、他の利用可能な process launcher tree に含まれている場合も含まれていない場合もあるプロセスランチャーの一覧ですが、ショートカットを有効にしたいものを列挙するものです。概念的には、ホットキーテーブルは実質的に不可視のツールバーです。
以下の例は、Altium Designer における 3 種類の異なるリソースに対して、Process Launcher Trees がどのように構築されるかを示しています。
Tree NameOfUniqueTreeResource Caption = '' TopLevel = Boolean
TreeCopy NameOfTree_N OriginalID = NameOfTreeToCopy IDSuffix = '' End
Separator Name End
Link NameOfUniqueResourceItem PLID=PLName: Process End
End
この基本的な process launcher tree には必要な要素が含まれますが、既存の Process Launcher tree を別の拡張サーバーのリソースから自分のサーバーリソースへコピーすることもできます。これは、拡張機能のリソースが、たとえば PCB エディターや Schematic エディターなどのドキュメントエディターのリソースに依存している場合に便利です。
Process Launcher Tree 識別子 |
説明 |
|---|---|
Tree |
process launcher tree の開始ブロックを示します。 |
NameOfUniqueTreeResource |
指定したサーバー用の新しい process launcher tree を構築するには、このツリーに一意の名前が必要です。 |
Caption |
メニュー項目に表示されるキャプション文字列です。 |
TopLevel |
メニュー階層の最上位レベルと、サブメニューを定義するためのサブツリーの使用を記述します。 |
Popup |
Altium Designer のアクティブなドキュメント上にフローティング表示されるポップアップメニューを示します。各ポップアップメニューには一意の文字を割り当てる必要があります。Popup 識別子は Tree 句の一部です。ポップアップメニューに関連付けられたキーが押されると、このポップアップメニューがマウスカーソル位置に表示されます。 ポップアップメニューは既存のメニューと同じ内容にすることもできます。たとえば、ユーザーはメニューバーの File メニューへ移動する方法を 2 つ持つことになります。ポップアップメニュー用に F を押すと、File メニューと同じメニュー項目を持つ File メニューがアクティブになります。 |
TreeCopy |
既存の process launcher tree をプライマリサーバーのリソースファイル(たとえば PCB リソース)からコピーします。この機能は、たとえば File メニューや Edit メニュー項目のような最新の共通ユーザーインターフェース要素を維持するために使用できます。 今後の Altium Designer の更新によりメニュー構造が変更される可能性があるため、TreeCopy 句を使用する拡張サーバーでは、プライマリサーバーと同じユーザーインターフェースが保証されます。ただし、各 Link 識別子が一意になるように IDSuffix 識別子を使用する必要があり、またコピー元の元のプロセスランチャーを識別するために OriginalID 識別子も必要です。 |
Separator |
Separator 識別子は、メニューまたはツールバー内で、あるプロセスランチャーと次のプロセスランチャーの間に空白行を挿入します。 |
Link |
指定したプロセスランチャーをユーザーインターフェース要素にリンクします。Altium Designer はアクティブなすべてのサーバーのプロセスランチャーのテーブルを保持しているため、各 Link 文は一意の識別子を持つ必要があります。 |
IDSuffix |
IDSuffix は、既存の Process Launcher Tree を別のサーバーのリソースからコピーする場合に使用します。コピーされた Tree では、Process Launcher Tree ID に IDSuffix 識別子が追加されます。繰り返しになりますが、Altium Designer はロードされたすべてのサーバーについてプロセスランチャーのテーブルを保持しているため、Link 句内のすべての Link 識別子は一意である必要があります。 |
PLID |
リソースファイル内の process launchers セクションから特定のプロセスランチャーを参照する PLID 識別子です。 |
LinkRepeat |
この LinkRepeat 句は tree または sub tree 内で使用され、後続の Symbol、BeginIndex、および EndIndex の各サブ句を使って、類似した Process Launcher の範囲を定義します。 |
OriginalId |
|
BeginIndex |
BeginIndex は、繰り返される類似プロセスランチャーの範囲の開始を示します。LinkRepeat 句は tree または sub tree 内で使用され、後続の Symbol、BeginIndex、および EndIndex の各サブ句を使って、類似した Process Launcher の範囲を定義します。 |
EndIndex |
EndIndex は、繰り返される類似プロセスランチャーの範囲の終端を示します。LinkRepeat 句は tree または sub tree 内で使用され、後続の Symbol、BeginIndex、および EndIndex の各サブ句を使って、類似した Process Launcher の範囲を定義します。 |
End |
Tree、TreeCopy、および Link 句の終了文字列です。 |
Process Launchers Tree の例
Tree MNPCB_AutoRoute10 Caption='&Auto Route' Popup='A'
Link MNPCB_AutoRoute20 PLID='PLPCB:AutorouteAll' End
End
メニューでは、メニュー Tree 識別子の短縮形として 'MN' が使用され、各メニュー項目の識別子でも同様に MN が短縮形として使用されます。Tree 句の末尾に Popup='A' 識別子がある点に注意してください。
Tree TLFindSelections Caption='Find Selections' TopLevel=True
Link TBPCB_FindSelections20 PLID='PLPCB:JumpFirstSelection' End
End
ツールバー tree では、Toolbar Tree 識別子の短縮形として 'TL' が使用され、各 Toolbar Button の識別子では TB が短縮形として使用されます。tree 内には sub-tree を含めることができるため、最も外側の tree では TopLevel を true に設定する必要があります。sub tree では、TopLevel を false に設定するか、TopLevel 識別子自体を省略します。
Tree HTPCBHotKeys Caption='PCB Shortcuts' TopLevel=True
Link HKPCBHotKeys20 PLID='PLPCB: PopupZoomIn' End
End
キー テーブルでは、Keys Tree 識別子の短縮形として 'HT' が使用され、各キーボタンの識別子では HK が短縮形として使用されます。
これら 3 種類のリソース tree が resources ファイル内でどのように定義されるかを理解するには、Altium Designer の AdvPCB.RCSAdvPCB.RCS\System
//.......................................................................... //********\* Top Level Autoroute Menu //.......................................................................... Tree MNPCB_AutoRoute10 Caption='&Auto Route' Popup='A' Link MNPCB_AutoRoute20 PLID='PLPCB:AutorouteAll' End Separator MNPCB_AutoRoute30 End Link MNPCB_AutoRoute40 PLID='PLPCB:AutorouteNet' End Separator MNPCB_AutoRoute90 End Tree MNPCB_Fanout Caption='&Fanout' Link MNPCB_Fanout20 PLID='PLPCB:FanoutAll' End Link MNPCB_Fanout30 PLID='PLPCB:FanoutPowerPlaneNets' End Separator MNPCB_Fanout50 End Link MNPCB_Fanout60 PLID='PLPCB:FanoutNet' End Link MNPCB_Fanout70 PLID='PLPCB:FanoutConnection' End End Separator MNPCB_AutoRoute95 End Link MNPCB_AutoRoute100 PLID='PLPCB:AutorouteSetup' End Link MNPCB_AutoRoute110 PLID='PLPCB:AutorouteStop' End End Toolbar example: Tree TLFindSelections Caption='Find Selections' TopLevel=True Link TBPCB_FindSelections20 PLID='PLPCB:JumpFirstSelection' End Link TBPCB_FindSelections30 PLID='PLPCB:JumpPreviousSelection' End Link TBPCB_FindSelections40 PLID='PLPCB:JumpNextSelection' End Link TBPCB_FindSelections50 PLID='PLPCB:JumpLastSelection' End Separator TBPCB_FindSelections60 End Link TBPCB_FindSelections70 PLID='PLPCB:JumpFirstGroup' End Link TBPCB_FindSelections80 PLID='PLPCB:JumpPreviousGroup' End Link TBPCB_FindSelections90 PLID='PLPCB:JumpNextGroup' End Link TBPCB_FindSelections100 PLID='PLPCB:JumpLastGroup' End End Hot key Table example Tree HTPCBHotKeys Caption='PCB Shortcuts' TopLevel=True Tree HTPCBHotKeys Caption='PCB Shortcuts' Link HKPCBHotKeys20 PLID='PLPCB: PopupZoomIn' End Link HKPCBHotKeys30 PLID='PLPCB: PopupZoomOut' End Link HKPCBHotKeys40 PLID='PLPCB:ViewZoomOut' End Link HKPCBHotKeys50 PLID='PLPCB:ViewZoomIn' End Link HKPCBHotKeys60 PLID='PLPCB:ViewFitDocument' End Link HKPCBHotKeys70 PLID='PLPCB:ToggleElectricalGrid' End Link HKPCBHotKeys80 PLID='PLPCB:Redo' End Link HKPCBHotKeys90 PLID='PLPCB:Undo' End Link HKPCBHotKeys110 PLID='PLPCB: PopupSnapGridOther' End Link HKPCBHotKeys120 PLID='PLPCB:MeasureDistance' End End End
Resources ファイルのカスタマイズ
Altium Designer に拡張サーバーをインストールすると、システムは自動的にそのサーバーの resources script file (RCS) を探します。メニュー、ツールバー、キーボード ホットキーなどのリソースは、サーバーの installation file (INS) から定義される点に注意してください。
この installation file 内の EditorBars 識別子は、そのサーバーのツールバー、ホットキー テーブル、およびメニュー バーを指定します。installation file の詳細については、Server's Installation File セクションを参照してください。リソースの実際の実装は、.RCS
補助拡張機能からの新しい Process Launcher の挿入
ターゲットのソフトウェア拡張機能(たとえば PCB editor)のリソースを更新するには、補助拡張機能の resources script でリソースを定義し、その後、補助拡張機能の installation file に Updates 句を挿入する必要があります。process launcher を挿入するには、補助 resources file 内で Insertion - End ブロックを定義します。process launcher は一度に 1 つずつしか挿入できません。つまり、一度に挿入できるのは 1 つの Menu tree、1 つの Toolbar、または 1 つのキー割り当てだけです。そのため、複数の process launcher を挿入するには、複数の Insertion ブロックが必要です。
The TargetID 識別子は、プライマリ resources file からリンクする Process Launcher tree を識別します。たとえば、この識別子はメニューを指すことができます。
The RefID0(数値 0 を持つ)識別子は、新しいリソース項目をどの参照メニュー項目に挿入するかを示します。ツールバー ボタンおよびホットキーでもこの処理は同様ですが、通常、挿入本体内では tree は使用されません。必要なのは process launcher へのリンクのみです。たとえば、RefID0 識別子はメニュー項目を指すことができます。
基本的に、Insertion 構造は次のとおりです。
Insertion UniqueNameOfResource TargetID= InsertType= RefID= Link ResourceItem PLID= End End
次の 3 つの一般的な例は、process launcher を 3 種類の異なるユーザーインターフェース要素(ホットキー、ツールバー、メニュー項目)にリンクする方法を示しています。
Insertion NameOfMenuTree TargetID='NameOfMenuTreeFromServer' InsertType=After RefID0='ReferenceMenuItemFromServer' Tree PopUp Caption='CaptionText to appear on menu item' Link MenuItem1 PLID='PLName: Process' End Link MenuItem2 PLID='PLName: Process' End Separator MenuItem3 Link MenuItem4 PLID='PLName: Process' End End End
Insertion UniqueToolBarName TargetID='ToolbarName' InsertType=After RefID0='ToolBarItemName' Link UniqueToolBarItemName PLID='PLName: Process' End End
Insertion UniqueHotKeyName TargetID='HotKeyTreeNameFromServer' InsertType=After RefID0='HotKeyItemNameFromServer' Link UniqueHotKeyItemName PLID='PLName: Process' End End
ただし、複数のツールバー ボタンを挿入する場合は、複数の insert が必要です。各 insert には異なる RefID0 句を割り当てる必要がある点に注意してください。そうしないと、前のユーザーインターフェース要素が現在の RefID0 挿入で上書きされます。
サーバーのユーザーインターフェース要素は、Insertion 識別子の代わりに Deletion 識別子を使用して削除でき、削除対象の process launcher を識別するために複数の RefID 識別子を使用できます。
ターゲットへの新しいツールバーの追加
Add-on project の例のコマンド(process launcher)を含む新しいツールバーを実装し、それらのコマンドをターゲット拡張機能(たとえば PCB editor ワークスペース上の新しいツールバー)に表示するには、補助サーバーの installation file(たとえば addon.insaddon.rcs
次に、EditorBar 句をターゲット installation file(たとえば advpcb.ins
Addon.INS installation file example:
ClientInsFile 0.0 Server EditorName = 'AddOn' EditorExePath = 'AddOn.DLL' EditorDescription = 'A demonstratory AddOn module' Version = 'Version 8.4.03.3664' Date = '31-Dec-2004' HelpAboutInfo = 'This software is protected by copyright law and international treaties.' CopyRight = 'Copyright © Altium Limited 2005' Updates = 'AdvPCB' End Command Name = 'CountPads' LongSummary 'Find how many pads on a PCB document' End Command Name = 'RunAPCBProcess' LongSummary 'Invoke a PCB process' End
Resources の例
SDK の \Examples\AddOn Complete
Addon.rcs resources file
PL PLAddon:CountPadsAndShowDialog Command='Addon:CountPads' Caption='&Count...' Image='Pad1.bmp' Shortcut1='d' Shortcut2='' Params='Display=False' Description='Count pads' End PL PLAddon:CountPadsAndShowDocument Command='Addon:CountPads' Caption='&Count...' Image='Pad2.bmp' Shortcut1='t' Shortcut2='' Params='Display=True' Description='Count pads' End PL PLAddon:RunAPCBProcess Command='Addon:RunAPCBProcess' Caption='&RunAPCBCProcess...' Image='' Shortcut1='r' Shortcut2='' Params='' Description='Runs a PCB Process' End // Inserts three addon processes in the PCB's View menu Insertion \_AddOnMenu TargetID='MNPCB_View10' RefID0='MNPCB_View140' Tree AddonMenuTree Caption='&Addon Menu' Link AddonMenu1 PLID='PLAddon:CountPadsAndShowDialog' End Link AddonMenu2 PLID='PLAddon:CountPadsAndShowDocument' End Separator AddonSeparator1 End Link AddonMenu3 PLID='PLAddon:RunAPCBProcess' End End End // Inserts two toolbar buttons on a new floating toolbar Tree TLAddon Caption = 'Addon Tools' Link TBAddon_Item1 PLID= 'PLAddon:CountPadsAndShowDialog' End Separator TBAddon_Item2 End Link TBAddon_Item3 PLID = 'PLAddon:CountPadsAndShowDocument' End End
この resources script では、3 つの process launcher が定義されています。PCB resources の TargetID 値および RefID 値を確認するための参考として、AdvPCB.RCS\Buttons
editor に拡張機能の process launcher を追加する流れを要約すると、次のとおりです。
-
このサーバーの resources file で process launcher と process launcher tree を定義し、PCB または Schematic editor に新しいコマンドを挿入します。
またはAdvSch.RCS ファイルは、AdvPCB.RCS フォルダー内で Target 番号および RefID 番号の参照元となります。\System - 拡張機能プロジェクトの installation file に Updates 'NameOfEditor' 文(ターゲット サーバー)を追加します。
Installation File
ソフトウェア拡張機能の installation file は、サーバー プロセス、リソース種別、ファイル保存/読み込み種別、および設定を含む ASCII テキスト ファイルです。
すべてのソフトウェア拡張機能には、それ自体と同じファイル名に基づく専用の installation file (*.INS) があります。このようにして、Altium Designer は installation file のデータに基づいてその拡張機能を登録します。
Installation file の構造
editor を構築する際には、ドキュメントの種類とリソースを指定する必要があります(たとえば Schematic Editor には 2 種類の document type、すなわち schematic sheets と schematic libraries があります)。installation file は、document kind を定義できる場所の 1 つです。システムのテキストベースの構成ファイルは、document extension に対する document type の関連付けを指定するため、DXP アプリケーションは特定の document type が生成およびオープンされる際に、どのサーバーを呼び出すべきかを認識できます。
これを行うには、システムの FileFilters および FileExtensions テキストファイルを更新して、document extension に関連付けられた document type を指定する必要があります。file filters の適用例については、SDK の
ClientInsFile 1.0 Server EditorName = <Description> EditorExePath = <DLL FileName> EditorDescription = <Description> Version = <Version> Date = <Day-Month-Year> HelpAboutInfo = <Description> CopyRight = <Description> StartupBitmap = <BMP Filename> Updates = <ServerName> ResourceDependencies <SupportingServer Name1> <SupportingServer NameN> End End EditorWindowKind Name = <NameString> NewWindowCaption = <NewWindowCaptionString> NewWindowExtension = <NewWindowExtensionString> WindowKindDescription = <WindowKindDescriptionString> IconName = <IconNameString> EditorBar Name = <Name> BarType = <Menu,HotKeyTable,Toolbar> End EditorClasses End LoadFilters <File Format Name> <FileExtension> End SaveFilters <File Format Name> <FileExtension> End End PanelInfo Name = <NameString> Category = <CategoryString> BitMap = <Bitmap> Hotkey = <HotKey> ButtonVisible = <Boolean> CanDockVertical = <Boolean> CanDockHorizontal= <Boolean> DocumentKinds <DocumentKinds> End ProjectTypes <ProjectTypes> End End Options Page OptionsPage Caption = <CaptionName> FormName = <FormName> OrderIndex = <Integer> End End Command Name= <ProcessName> LongSummary = <Description> End Command Name= <ProcessName> LongSummary = <Description> End Command Name= <ProcessName> LongSummary = <Description> End
Installation 句 |
説明 |
|---|---|
|
|
EditorName = <Description> |
サーバー名を定義する文字列 |
EditorExePath = <DLL FileName> |
サーバーのパス名を定義する文字列 |
EditorDescription = <Description> |
editor の説明を定義する文字列。 |
Version = <Version> |
Altium Designer のバージョン ビルドに基づいてサーバーのバージョンを定義する文字列です。Build Number は DXP の About ダイアログで確認してください。 |
Date= <Day-Month-Year> |
このサーバーがビルドまたは配布された日付を定義する文字列。 |
HelpAboutInfo = <Description> |
サーバーの概要を定義する文字列です。 |
CopyRight = <Description> |
サーバーの著作権情報を定義する文字列です。 |
StartupBitmap = <BMP Filename> |
StartupBitmap が true の場合、サーバーの起動時には毎回、サーバーの読み込み中であることを示すビットマップを表示できます。これは、大規模で複雑なデータ構造を持ち、Altium Designer での読み込みに時間がかかる可能性があるサーバーで役立ちます。 |
|
|
ResourceDependencies = <Supporting ServerName> |
これは、サーバー A がサーバー B のリソースを更新する場合を指し、つまりサーバー A がサーバー B にリソースを追加することを意味します。そのため、Altium Designer が B のリソースを読み込むたびに、続いてサーバー A のリソースが読み込まれます。 これは「プロセスランチャーツリーのコピー」(treecopy)に必要であり、サーバー B がサーバー A によってコピーされるプロセスランチャーツリーを定義している場合に必要です。この場合、Altium Designer はサーバー A のリソースを読み込む前に、まずサーバー B のリソースを読み込みます。具体例として、PCB エディターのようなターゲットサーバーが PCB リソースファイル内で拡張サーバーのプロセスランチャーにリンクしている場合、PCB のインストールファイル内に、その拡張の名前を持つ ResourcesDependency 句が必要になります。 |
Updates <Target Editor Server> |
サポート側サーバーのインストールファイルには updates 句が必要であり、これによって、そのターゲットサーバー文書向けのターゲットサーバーのユーザーインターフェースに新しいプロセスランチャーをリンクすることが指定されます。たとえば、HoleSize 拡張サーバーでは、Updates 句にターゲットサーバーとして AdvPCB が割り当てられ、HoleSize のプロセスランチャーがリンクされます。 |
|
|
EditorWindowKind |
この EditorWindowKind はドキュメントの種類を示します。 |
EditorBar Name = <DocumentType> <Tree Id> <Resource Type> |
エディターバーには 3 種類あります |
|
|
PanelInfo <PanelName> <DocumentType> <Bitmap> <HotKey> <Button Visible> <Dock Vertical> <Dock Horizontal> <DocumentKinds> <ProjectTypes> |
この PanelInfo 句は、サーバーがサポートするパネルを示します。 |
|
|
Command Name = <ProcessName> LongSummary = <Description> HelpFilename <HLPFilename> END |
CommandName 句には、このサーバーでサポートされるサーバープロセス定義が含まれます。 |
インストールファイルの例
各サーバーは、それぞれ INS 拡張子のインストールファイルを持ちます。インストールファイルとサーバーファイルは同じファイル名を持つため、Altium Designer はサーバーの存在を認識し、登録できます。
ドキュメントエディターを構築する場合、そのドキュメントタイプとリソースは、インストールファイル内の EditorFileLoadKind 句および EditorFileSaveKind 句で指定する必要があります。拡張機能固有のドキュメントタイプを扱う場合は、Altium Designer の FileExtensions および FileFilters テキストファイル(\SystemAdvSch.ins
ClientInsFile 1.0 Server EditorName = 'Sch' EditorExePath = 'AdvSch.dll' EditorDescription = 'Schematic Capture' Version = 'Version 8.4.03.3664' Date = '20-July-2005' HelpAboutInfo = 'This software is protected by copyright law and international treaties.' Copyright = 'Copyright © Altium Limited 2005' StartupBitmap = 'Startup_Schematic.bmp' ResourceDependencies 'Sim' 'LoadPCADSCH' 'Macro' 'SavePCADSCH' 'SchDwgUtility' 'SignalIntegrity' 'EditVHDL' End End EditorWindowKind Name = 'Sch' NewWindowCaption = 'Sheet' NewWindowExtention = 'SchDoc' WindowKindDescription = 'Schematic Document' IconName = 'SCH' EditorBar Name = 'MNSchematicMenu' BarType = Menu End EditorBar Name = 'HTSchematicHotKeys' BarType = HotkeyTable End EditorBar Name = 'TLSchematicTools' BarType = Toolbar End EditorBar Name = 'TLSimulationSources' BarType = Toolbar End EditorBar Name = 'TLAdvSimTools' BarType = Toolbar End EditorBar Name = 'TLSignalIntegrity' BarType = Toolbar End EditorBar Name = 'TLFormatting' BarType = Toolbar End EditorBar Name = 'TLFocusedProject' BarType = Toolbar End EditorBar Name = 'TLSchUtilities' BarType = Toolbar End EditorBar Name = 'TLWiringTools' BarType = Toolbar End EditorBar Name = 'TBNavigation' BarType = Toolbar End EditorBar Name = 'TBLayout' BarType = Toolbar End EditorClasses 'PCBSource' 'FPGASource' 'CoreSource' End LoadFilters 'Advanced Schematic binary files (*.schdoc)' 'Advanced Schematic binary files (*.sch)' 'Advanced Schematic ascii files (*.schdoc)' 'Protel DOS Schematic files (*.s??)' 'Orcad SDT Schematic files (*.sch)' End SaveFilters 'Advanced Schematic binary (*.schdoc)' 'Advanced Schematic ascii (*.schdoc)' 'Schematic binary 4.0 (*.sch)' 'Orcad SDT Schematic (*.sch)' 'Advanced Schematic template (*.schdot)' 'Export AutoCAD Files (.dwg;.dxf)' End End PanelInfo Name = 'SchLibraryPanel' Category = 'S&CH' Bitmap = '' Hotkey = 'B' ButtonVisible = True CanDockVertical = True CanDockHorizontal = False End Command Name = 'AddComponentPart' LongSummary = 'Add a new part to the currently displayed component 'End Command Name = 'AddRemoveLibraryInSchEditor' LongSummary = 'Add and remove libraries from the schematic editor library list' End
上記の AdvSch.INS
ToolBar Locations ファイル
ツールバーとパネルを持つエディターでは、これらのツールバーおよびパネルの位置はツールバー位置ファイル servername.tlt
Altium Designer は、サーバーの toolbar locations ファイル (.TLT) から、そのサーバーのツールバーおよびパネルレイアウトのデフォルトを読み込みます。次に、それらのデフォルトを上書きする独自の UserTools.TLT..\*UserName\AppData\Roaming\AD{xxx}
ToolsLayout ブロック内には、任意の数の BarLayout ブロックおよび FrameLayout ブロックを含めることができます。BarLayout ブロックはツールバーを定義し、 FrameLayout ブロックは各フレーム内および各フレームに関連付けられたパネルを定義します。アクティブにできるパネルは 1 つだけです。
ToolsLayout BarLayout BarName= < Name > BarState= < State > BarDockSite= < DockSite > BarDockRow= < DockRow > BarDockOffset= < NoOfPixels > BarFloatLeft= < NoOfPixels > BarFloatTop= < NoOfPixels > BarFloatWidth= < NoOfPixels > BarActive= < Boolean > BarHotkey= < Key > BarDocumentKind = < Server Document Name > End FrameLayout FrameState= < State > FrameDockSite= < DockSite > FrameDockedWidth= < NoOfPixels > FrameDockedHeight= < NoOfPixels > FrameFloatLeft= < NoOfPixels > FrameFloatTop= < NoOfPixels > FrameFloatWidth= < NoOfPixels > FrameFloatHeight= < NoOfPixels > SectionLayout SectionSplitRatio=50 SectionSplitType=Horizontal ActivePanels <Name Of Document Kind> <NameOfPanel> End PanelLayout PanelName= < Name > PanelVisible= < Boolean > PanelFloatWidth= < NoOfPixels > PanelFloatHeight= < NoOfPixels > PanelCanDockHorizontally= < Boolean > PanelCanDockVertically= < Boolean > PanelHotkey= < Key > PanelButtonVisible= < Boolean > End End End
ツールバー レイアウト識別子
以下の表では、ツールバーとパネルの tools layout 構造を定義しています。ツールバーとパネルはフローティングとして定義でき、モニター画面の左上隅を基準とした位置に設定できます。
この構造内では、BarLayout ブロックおよび FrameLayout ブロックを定義できます。FrameLayout ブロック内では、PanelLayout ブロックおよび ActivePanel ブロックを定義できます。
Tools Identifier |
説明 |
|---|---|
ToolsLayout |
tools layout ブロックの概要を示す最上位識別子です。ブロックは End 識別子で終了します。 |
BarLayout |
ツールバーの位置です。フローティングツールバーまたはドッキングされたツールバーとして定義できます。 |
FrameLayout |
FrameLayout 内では、PanelLayout ブロックおよび ActivePanels ブロックを定義できます。 |
SectionLayout |
section layout は、フレームセクションのレイアウトを表します。フレームセクションとは、フレーム内で複数のパネルが上下に「積み重ね」られる領域のことです。 |
PanelLayout |
サーバーパネルの設定です。 |
ActivePanels |
FrameLayout ブロック内でどのパネルをアクティブにするかを指定するために使用します。ActivePanels 句は、そのパネルが他のパネルを含むフレームにドッキングされている場合に適用され、このパネルにフォーカスが当たります。 |
End |
ToolsLayout ブロック、BarLayout ブロック、FrameLayout ブロック、PanelLayout ブロック、および ActivePanels ブロックの終了識別子です。 |
FrameLayout Identifiers |
説明 |
|---|---|
FrameState |
フレームの状態です。FrameStateFloating、FrameStateDocked、Unpinned |
FrameDockSite |
パネルをドッキングする位置です。これは、FrameState 識別子に FrameStateDocked 値が割り当てられている場合にのみ適用されます(上記参照)。この DockSite 識別子には次のパラメーターがあります。DockSiteNone、DockSiteTop、DockSiteLeft |
FrameDockedWidth |
ドッキングされたフレームの幅を、モニター画面の 0,0 を基準にしたピクセル単位で指定します。 |
FrameDockedHeight |
ドッキングされたフレームの高さを、モニター画面の 0,0 を基準にしたピクセル単位で指定します。 |
FrameFloatLeft |
フローティングフレームの位置を、モニター画面の 0,0 を基準にしたピクセル単位で指定します。 |
FrameFloatTop |
フローティングフレームの位置を、モニター画面の 0,0 を基準にしたピクセル単位で指定します。 |
FrameFloatWidth |
フローティングフレームの幅を、モニター画面の 0,0 を基準にして指定します。 |
FrameFloatHeight |
フローティングフレームの高さを、モニター画面の 0,0 を基準にして指定します。 |
PanelLayout Identifiers |
説明 |
|---|---|
PanelName |
サーバーパネルの一意の名前です。 |
PanelVisible |
ブール値。起動時のパネル表示状態を設定します。 |
PanelFloatWidth |
フローティングパネルの位置を、モニター画面の左上隅を基準にしたピクセル単位で指定します。 |
PanelFloatHeight |
フローティングパネルの位置を、モニター画面の左上隅を基準にしたピクセル単位で指定します。 |
PanelCanDockHorizontally |
ブール値。パネルを水平方向にドッキングできるかどうかを設定します。 |
PanelCanDockVertically |
ブール値。パネルを垂直方向にドッキングできるかどうかを設定します。 |
PanelHotkey |
このパネルにホットキー文字を割り当てます。 |
PanelButtonVisible |
ブール値。パネルボタンを他のパネルボタンとともに Altium Designer のステータスバーに表示するかどうかを設定します。 |
ActivePanels Identifiers |
説明 |
|---|---|
< サーバー名 > |
ドキュメント種別の名前を含む文字列。 |
< パネル名 > |
FrameLayout ブロック内における、このサーバーのアクティブなパネル名を含む文字列。 |
バー レイアウト識別子 |
説明 |
|---|---|
BarName |
このツールバーの一意の名前。このツールバーは、サーバーのインストール ファイル内の EditorBar 句によっても定義されます。 |
BarState |
ツールバーの状態。BarStateFloating、BarStateDocked。 |
BarDockSite |
ツールバーをドッキングする位置。これは、BarState 識別子に BarStateDocked 値が割り当てられている場合にのみ適用されます。この DockSite 識別子には次のパラメーターがあります。DockSiteNone、DockSiteTop、DockSiteLeft、DockSiteRight、DockSiteBottom。 |
BarDockRow |
3 つのドッキング行オプション (0,1,2) のうち、どこにドッキングするかを指定します。 |
BarDockOffset |
ツールバーが左側からドッキングされる位置のオフセットをピクセル単位で指定します。 |
BarFloatLeft |
Altium Designer の左上隅を基準にしたツールバーの位置をピクセル単位で指定します。 |
BarFloatTop |
Altium Designer の左上隅を基準にしたツールバーの位置をピクセル単位で指定します。 |
BarFloatWidth |
フローティング時のツールバーの幅を指定します。 |
BarActive |
ブール値。ツールバーを有効または無効にします。 |
BarHotKey |
このツールバーにホットキーを割り当てます。 |
BarDocumentKind |
ツールバーを関連付けるドキュメントを指定します。PCB ドキュメントには 'PCB'、回路図ドキュメントには 'SCH' を指定します。 |
PCB エディターへの新しいツールバーの挿入
例として、拡張機能をサポートするプロセス ランチャーを備えたターゲット拡張サーバーに新しいツールバーを配置するには、次のようにします。
- このサポート サーバー用に、BarLayout ブロックを含む新しい tool locations ファイルを定義する必要があります。
- ツールバーの process launchers ツリー ブロックを含めるように、サポート サーバーの resources ファイルを更新する必要があります。
- PCB ワークスペース用の新しいツールバーを含めるために、サポート対象の拡張サーバーのインストール ファイルに Updates 句を追加する必要があります。
また、ターゲット拡張機能のインストール ファイルも変更する必要があります。具体的には、EditorWindowKind ブロック内の既存リストに EditorBar 句を追加します。さらに、ResourceDependencies ブロックの末尾に、たとえば 'AddOn' のようなサポート サーバー名のエントリを追加する必要があります。
この場合、新しいツールバー (TLAddon) は、Add-on プロジェクトの resources ファイルで定義された process launchers とともに呼び出され、インストール ファイルには Updates 句および EditorBar 句が追加されます。完全なソース コード ファイルは SDK の ..\Examples\Addon Complete
Addon.rcs):
PL PLAddon:CountPadsAndShowDialog Command='Addon:CountPads' Caption='&Pad Count on Dialog...' Image='Pad1.bmp' Shortcut1='d' Shortcut2='' Params='Display=False' Description='Display pad count in a dialog.' End PL PLAddon:CountPadsAndShowDocument Command='Addon:CountPads' Caption='&Pad Count on Document...' Image='Pad2.bmp' Shortcut1='t' Shortcut2='' Params='Display=True' Description='Display pad count in a text document.' End // two tool bar buttons added to the new toolbar Tree TLAddon Caption='Addon Tools' TopLevel=True Link TBAddon_Item1 PLID='PLAddon:CountPadsAndShowDialog' End Separator TBAddon_Item2 End Link TBAddon_Item3 PLID='PLAddon:CountPadsAndShowDocument' End End
この resources ファイルでは、2 つのツール ボタンが既存の 2 つの process launchers にリンクされています。指定されたツールバー名 TLAddon は、以下の tool locations ファイルでも使用されています。
Addon.tlt):
ToolsLayout BarLayout BarName='TLAddon' BarState=BarStateFloating BarDockSite=DockSiteNone BarDockRow=0 BarDockOffset=563 BarFloatLeft=299 BarFloatTop=201 BarFloatWidth=46 BarActive=True BarDocumentKind = PCB End End
tool locations ファイルはサポート サーバー用に定義されており、新しいツールバーがフローティングに設定され、その位置とサイズが PCB ワークスペース内で指定されています。
Addon.ins):
ClientInsFile 1.0 Server EditorName = 'AddOn' EditorExePath = 'AddOn.DLL' EditorDescription = 'Demonstratory AddOn module' Version = 'Version 8.3.03.3231' Date = '23-Apr-2005' HelpAboutInfo = 'This software is protected by copyright law and international treaties.' Copyright = 'Copyright © Altium Limited 2005' Updates = 'ADVPCB' End EditorWindowKind Name = 'Pcb' EditorBar Name = 'TLAddon' BarType = Toolbar End End Command Name = 'CountPads' LongSummary = 'Find how many pads' End Command Name = 'RunAPCBProcess' LongSummary = 'Invoke a PCB process' End
EditorBar 句には、ツールバーの一意名 (TLAddon) とリソース項目のタイプ (toolbar、hotkeytable、または menu) が含まれていることに注意してください。
拡張機能のツールバーとパネルの位置
Altium Designer は、ツールバーおよびパネルの位置情報を保持します。拡張機能では、パネルやツールバーを再配置してから Altium Designer を終了すると、新しいパネル/ツールバーの位置は UserTools.TLT..\*username*\AppData\AD{xxx}