コンテンツにスキップ

スクリプトコレクション(スクリプトライブラリ)の作成#

VisualAppletsにはScript Collection機能が用意されており、これを使用すると、VisualAppletsのGUIから直接、非常に便利にスクリプト内のプロシージャを使用できます。VisualAppletsでは、Script Collection内でTclスクリプトとPythonスクリプトがサポートされています。

まず初めに、個々のコマンドを含むスクリプトコレクションを作成します。各コマンドは、指定されたTclスクリプトまたはPythonスクリプト内の特定のプロシージャを呼び出すように定義します。

その後、個々のコマンドがVisualAppletsのGUI上で直接グラフィカルに利用可能になり、マウスクリックやドラッグ&ドロップで起動できるようになります。これにより、TclまたはPythonのプロシージャをライブラリ要素として活用できます。呼び出されたコマンドは、Scripting Consoleで実行されます。Scripting Consoleを開くと、コマンドがどのように実行されているかを確認できます。

Script Collectionペインでは、VisualAppletsのインストール環境で既に利用可能なスクリプトコレクションや、各コレクションに含まれているコマンドを確認できます。

Script Collectionペインを開くには、Windowメニューを開き、Dock Windowsを選択してからScripting Collectionを選択します。

VA Open Script Collection Pane

Scrip CollectionペインがVisualAppletsメインウィンドウの右側に開きます。

VA Script Collection Window in Main Window

スクリプトコレクションは、次のいずれかの方法で定義できます。

情報

VisualAppletsは、PythonおよびTclで記述されたスクリプトのスクリプトコレクションをサポートしています。Scripting Consoleは、Pythonスクリプトコレクション要素を使用している場合は自動的にPythonに切り替わり、コンソールがTclに設定されている場合はTclに戻ります。Pythonスクリプトコレクションは、Python Version SettingsダイアログでActive Versionとして選択されているPython環境で実行されます。詳細については、Managing Python Versionsを参照してください。

情報

すべてのコレクション情報をXMLファイルに保存することで、個々のスクリプトだけでなく、スクリプトコレクションの構造やコンテンツの定義に対してもバージョン管理システムを使用できるようになります。

スクリプトコレクションの構造#

各スクリプトコレクションには、複数のコマンド(スクリプトコレクションの要素)が含まれています。

これはGUIにも反映されます。

Script Collection Pane

各コマンドは、特定のスクリプト内の1つの特定のプロシージャを指します。コマンドが実行されると、それが指すプロシージャが呼び出されます。

Structure of Script Collection Pane

スクリプトコレクションを定義するには、次を定義する必要があります。

  • コレクションの名前
  • コレクションに含まれるコマンド
  • オプション:バージョン番号、説明などの詳細情報
  • オプション:スクリプトコレクションを表すGUIアイコン
  • 個々のコマンドについて:

1つのスクリプトコレクションを記述する、リストされたすべての情報は、1つのXMLファイルに保存されます。

複数のスクリプトコレクションを定義できます。

GUIの裏側の動作#

バックグラウンドで、コレクションを定義するXMLファイル用に指定したディレクトリに新しいXMLファイルが作成されます(「必要な設定」を参照してください):

スクリプトコレクションのXML保存場所

ファイル名は、GUIで定義したスクリプトコレクション名と同じになります。XMLファイルには、現在定義されているコレクションに関するすべての情報が含まれます。

スクリプトコレクションのXMLファイル

As you haven't specified any commands for your script collection yet, the <Elements> element is still empty.

情報

新しいスクリプトコレクションを作成するには、GUIを使用するか、最初からXMLファイルを作成します。結果は同じです。GUIには常にXMLファイルで定義された情報が表示されます。

コマンドオプション#

コマンドを定義する際に、ボタンを介して 実行ボタン (つまりTrigger Mode)またはドラッグ&ドロップでコマンドを開始できるかどうかを定義できます。これはGUI上で手のアイコンで示されます 手のアイコン。また、コマンド用のボタンをツールバーに追加することもできます。

Trigger Modeに設定されたコマンドについては、コマンドスコープを定義できます。コマンドスコープでは、コマンドがこれらの要素のみに適用されるように、特定のデザイン要素(モジュールやリンクなど)にコマンドを制限できます。

要件#

ファイル要件#

スクリプトコレクションは、以下のファイルで構成されています。

  • スクリプトコレクションを定義するXMLファイル。XMLファイルには、コレクション自体の定義と、コレクションに含まれるコマンドの定義が含まれています。
  • 実際のスクリプトを含むTclまたはPythonファイル。これらのファイルは以下の要件を満たす必要があります:
    • これらはTclまたはPythonスクリプトです。
    • ファイルにはプロシージャのみが含まれます。スクリプトファイルの読み込み時に実行されるコマンドは含まれません。
    • 名前の競合を回避するため、コマンド CMD_NAMEについては、次の命名規則に従ってください:
      • Command_CMD_NAME
    • .tclまたは.pyファイルを、コレクションファイル(*.xml)と同じディレクトリ、またはそのサブディレクトリに保存します。
  • オプション:VA GUI上の個別コレクションまたはコマンドアイコン用のPNGアイコンファイル。PNGファイルは以下の要件を満たす必要があります:
    • 正方形の画像である必要があります。
    • 最小解像度は16 x 16です。
    • アイコンファイルを、コレクションファイル(*.xml)と同じディレクトリ、またはそのサブディレクトリに保存します。アイコンファイルを提供しない場合は、GUIでのコマンドの表現を表すためにデフォルトのアイコンが使用されます。

情報

正常に動作するスクリプトコレクションに必要なすべてのファイルはプレーンテキストファイルです。これにより、スクリプトコレクションの定義をバージョン管理システムに保存できます。

必要な設定#

VisualAppletsでスクリプトコレクション定義ファイル(XMLファイル)の保存場所を指定できます。コレクションスクリプトファイルの保存場所は1つのみ定義できるため、すべてのコレクション定義用XMLファイルを同じディレクトリに保存することをBaslerでは推奨しています。

スクリプトコレクションディレクトリへのパスを設定するには:

  1. Settingsメニューから、System Settingsを選択します。
  2. Pathsタブを選択します。
  3. Under Script Collection, specify the path to the directory where you store the collection-defining XML files you want to use. The default setting is <VA installation directory>/ScriptCollection:

スクリプトコレクションディレクトリのパスの定義

GUI経由で作成するスクリプトコレクションごとに、1つのXMLファイルが指定されたディレクトリに書き込まれます。新しいコレクション記述用のXMLファイルをディレクトリに追加するか、そこに保存されている既存のXMLファイルを編集した場合、VisualAppletsのGUIに変更を反映させることができます。VisualAppletsを再起動せずに変更を表示するには、Script Collectionペインを右クリックし、Rescan Script Collection Directoryを選択します。

スクリプトコレクション:スクリプトコレクションディレクトリのスキャン

GUIを使用したスクリプトコレクションの作成#

背後にあるXMLファイルに触れることなく、GUI経由でスクリプトコレクションを完全に定義できます。XMLファイルはバックグラウンドで作成および更新されます。コレクションとそれに含まれるコマンドを定義するとすぐに、そのコレクションがVisualApplets GUIに表示されます。

新しいスクリプトコレクションの作成#

グラフィカルユーザーインターフェイス経由で新しいスクリプトコレクションを作成するには:

  1. Script Collectionペインを右クリックします。
  2. コンテキストメニューから、Create New Script Collectionを選択します。

    新しいスクリプトコレクションの作成

    ダイアログが開きます。

  3. 新しいスクリプトコレクションの名前を入力し、OKで確定します。

    新しいスクリプトコレクション名の入力

    新しいコレクションがScript Collectionペインに表示されます:

    新しいスクリプトコレクションの作成

スクリプトコレクションへのコマンドの追加#

GUI経由でスクリプトコレクションにコマンドを追加するには:

  1. スクリプトコレクションの名前を右クリックします。
  2. コンテキストメニューからCreate Elementを選択します。

    スクリプトコレクション:要素の作成

    追加するコマンドを記述するためのダイアログが開きます。赤色でハイライトされたフィールドは必須です:

    スクリプトコレクション:スクリプトコマンドの編集

  3. Command Name(必須):コマンドの名前を入力します。

  4. Version:コマンドのバージョン情報を指定できます。
  5. Description:説明はツールチップ情報として表示されます。コマンドが呼び出すプロシージャの説明を入力します。
  6. Icon File:Script Collectionペインまたはツールバーに特定のコマンドアイコンを表示したい場合は、ここにアイコンファイルへのパスを指定できます。絶対パスまたはコレクションファイル(*.xml)からの相対パスを設定できます(詳細はFile Requirementsを参照してください)。アイコンファイルを選択しない場合は、GUI上で新しいコマンドを表すためにデフォルトのアイコンが使用されます。
  7. Script File:コマンドを介して起動するプロシージャを含むスクリプトへのパスと名前を指定します。コレクションファイル(.xml)からの相対パスを定義できます。または、コマンドが呼び出すプロシージャを含むスクリプトファイルを定義する代わりに、TclまたはPythonプロシージャをコマンドに直接入力することもできます。コマンドに直接定義されたTclまたはPythonプロシージャは、コマンドを呼び出すたびに実行されます。このオプションを選択する場合は、Script Fileフィールドを空のままにし、コマンドが表すTclまたはPythonプロシージャ全体をCommand CallのTemplateフィールドに入力します。

    スクリプトコレクション:スクリプトコマンドの編集

    コマンドスコープとして定義されたデザイン要素を選択せずにコマンドを実行しようとすると、Invalid Scopeメッセージが開きます:

    Invalid Scope

  8. Command Options:VisualApplets GUI上でコマンドをどのように起動するかを定義します。コマンドは、ボタンをクリックする(Trigger Mode)、またはデザインウィンドウにドラッグ&ドロップする(Drag & Dropモード)ことで起動できます。Trigger Modeを使用する場合、プログラムウィンドウのツールバーにコマンド用の追加ボタンを追加し、コマンドが実行される条件(スコープ)を定義できます。

    スクリプトコレクション:コマンドオプション

    1. Trigger Mode:クリックするとすぐにコマンドを起動するボタンを作成するには、Drag & Dropフィールドをクリアします。コマンドはRunボタンと共にScript Collectionペインに表示されます:

      スクリプトコレクション:Trigger Mode

      コマンドの実行を開始するには、Runボタンをクリックします。

    2. ツールバーオプション(Trigger Modeのみ):VisualAppletsのツールバーでコマンドを使用できるようにするには、Add to Toolbarオプションにチェックを入れます。これは、Drag & Dropチェックボックスをクリアしている場合にのみ可能です。GUI上でコレクション用の新しいツールバーが作成され、コマンドアイコンが表示されます:

      スクリプトコレクション:ツールバーオプション

      ツールバーのコマンドアイコンをクリックすると、Runボタンをクリックしたときと同じ効果が得られます。Descriptionの下に入力したテキストが、ツールバーのツールチップとして表示されます:

      スクリプトコレクション:ツールバー

    3. Drag & Dropモード:GUIでのドラッグ&ドロップ操作によって実行を開始する場合は、Drag & Dropチェックボックスを選択します。この場合、ハンドアイコンがAction列に表示されます:

      スクリプトコレクション:Drag & Dropモード

  9. Define Command Scope (Trigger Modeでのみ有効): デザイン内の特定の部分にコマンドを制限する場合は、Define Command Scopeチェックボックスを選択します。このオプションは、Drag & Dropが無効になっている場合にのみ使用できます。

    Script Collection: Define Command Scope

    次のオプションが使用できます。

    • Module: このコマンドを開始するには、ちょうど1つのモジュールを選択する必要があります。
    • Link: このコマンドを開始するには、ちょうど1つのリンクを選択する必要があります。
    • CommentBox: このコマンドを開始するには、ちょうど1つのコメントボックスを選択する必要があります。
    • SimModule: このコマンドを開始するには、ちょうど1つのシミュレーションモジュールを選択する必要があります。
    • SingleSelect: このコマンドを開始するには、ちょうど1つのデザイン要素を選択する必要があります。選択する要素の種類(モジュール、リンクなど)は問いません。
    • MultiSelect: このコマンドを開始するには、2つ以上のデザイン要素を選択する必要があります。選択する要素の種類(モジュール、リンクなど)は問いません。

    これらのオプションは組み合わせることができます。たとえば、ModuleとLinkのオプションを組み合わせた場合、ちょうど1つのモジュール、またはちょうど1つのリンクのいずれかを選択するとコマンドが実行されます。SingleSelectとMultiSelectを組み合わせると、1つ以上のデザイン要素が選択されている場合にコマンドを開始できるようになります。

    コマンドのスコープ(つまり、Tclプロシージャのスコープ)は、VisualApplets GUIのScript Collectionペインに表示されます。

    スクリプトコレクション:ツールバー

    コマンドスコープとして定義されたデザイン要素を選択せずにコマンドを実行しようとすると、Invalid Scopeメッセージが開きます:

    Invalid Scope

  10. Command Call: コマンドの呼び出し方法をここで定義します。

    スクリプトコレクション:ツールバー

    1. Template: コマンド呼び出しのテンプレートをここで入力します。通常、TclまたはPythonプロシージャの名前から始まり、その後にパラメータのリストが続きます。パラメータはプレースホルダーとして指定され、%で囲まれます。プレースホルダーごとに、以下のリストで対応するパラメータを定義します。TclまたはPythonコマンドの構文に従ってください。あるいは、上のScript Fileフィールドを空白にした場合は、完全なTclまたはPythonコンソールコマンドラインをここに入力することもできます。
    2. パラメーター: テンプレートで使用されるパラメータをここで定義します。ここにリストされているパラメータの順序は結果に影響しません。パラメータ名がテンプレートのプレースホルダー名と一致していることを確認してください。コマンド定義に新しいパラメータを追加するには、以下をクリックします。 プラスボタン プラスボタン。
      1. Name: 各パラメータの名前を指定します。コマンド呼び出し時に値を保持する引数に使用した名前を使用してください。
      2. Type: パラメータのデータ型を定義します。string、integer、またはdouble型のパラメータを定義できます。
      3. Mode: パラメータが固定値、変数、またはドロップ位置のいずれを含むかを定義します。 dropX および dropY ドロップ時にマウスポインターが離された位置を提供します。注意点として、 dropX および dropY は Drag & Drop モードでのみ使用できます。パラメータを変数として定義した場合、コマンドの開始時にパラメータの値の入力を求められます。
      4. Default: ここにデフォルト値を入力します。
      5. Min/Max: ここにパラメータの値の範囲を入力します。
      6. Inc: 値の範囲内のステップサイズをここに入力します。

例:

Script Collection: Parameters

XMLを使用したスクリプトコレクションの作成#

VisualApplets GUIを使用せず、完全にXMLでスクリプトコレクションを定義できます。

スクリプトコレクションごとに、1つのXMLファイルを作成します。

XMLファイル内でコレクションと含まれるコマンドを定義するとすぐに、そのコレクションがVisualApplets GUIに表示されます。前提条件: VisualAppletsのSystem SettingsでXMLファイルの場所を指定していること。Required Settingsを参照してください。

スクリプトコレクションの構造と内容に関するすべての情報は、スクリプトコレクションごとに1つのXMLファイルで定義されます。それぞれが1つのスクリプトコレクションを定義する複数のXMLファイルを提供できます。スクリプトコレクションを定義するXMLファイルが、VisualAppletsのメニューSettings -> System Settings -> Paths -> Script Collectionで指定したディレクトリにある場合、そのスクリプトコレクションはVisualApplets GUIのScript Collectionペインに表示されます。

例#

VisualApplets provides the three example script collections DesignTools, LayoutAssist, and TclExamples. You find them as .xml file as well as as .tcl file in the directory <VA installation directory>/Examples/AdvancedVAFunctions/Script Collection.

VisualAppletsのGUIにサンプルのスクリプトコレクションを表示するには:

  1. Settings -> System Settings -> Pathsで、サンプルスクリプトコレクションが保存されているフォルダーへのパスを定義します。

    サンプルスクリプトコレクションへのパスの設定

  2. Script Collectionペインを右クリックし、Rescan Script Collection Directoryを選択します。

    スクリプトコレクション:スクリプトコレクションディレクトリのスキャン

    これで、GUIのScript Collectionペインにサンプルスクリプトコレクションが表示されます。

    Script Collection: XML Directory

  3. GUIのオプションやXMLファイルの内容を自由に変更して、操作の影響を確認できるようになりました。

サンプルのDesignTools.xmlは次のようになります。

Script Collection: XML File Example

構文#

XMLファイルの構文は次のとおりです。

スクリプトコレクション:XML構文

情報

Make sure you use the same name for the XML file name as in tag <ScriptCollection> of the XML file.

例:

ファイル名:

myCollection.xml

XMLファイル内のコレクション名:

<ScriptCollection name ="myCollection" formatVersion="1.0">.

フォーマットは、以下の規約に従って定義されます。

  • オプションの個々の要素は角括弧 [ ] で囲まれています。
  • 存在しなくてもよい、1回存在してもよい、または複数回存在してもよい構文要素は、波括弧 { } で囲まれます。
  • 構文 (..|..) は、提供された要素のいずれか1つを指定できることを示します。
  • パラメータ値は斜体の大文字で指定します。

The Tags <Scope> and <Toolbar>#

<Scope>:

Use the tag <Scope>, if you want to limit the command to a specific design element in the design.

これは任意のタグであり、コマンドモードを次のように設定した場合のみ許可されます。 Trigger. You can define <Scope> multiple times to specify multiple scopes. The tag isn't allowed when Command mode が次のように設定されている場合、自動的に無効になります: DragAndDrop.

次のオプションが使用できます。

  • Module: このコマンドを開始するには、ちょうど1つのモジュールを選択する必要があります。
  • Link: このコマンドを開始するには、ちょうど1つのリンクを選択する必要があります。
  • CommentBox: このコマンドを開始するには、ちょうど1つのコメントボックスを選択する必要があります。
  • SimModule: このコマンドを開始するには、ちょうど1つのシミュレーションモジュールを選択する必要があります。
  • SingleSelect: このコマンドを開始するには、ちょうど1つのデザイン要素を選択する必要があります。選択する要素の種類(モジュール、リンクなど)は問いません。
  • MultiSelect: このコマンドを開始するには、2つ以上のデザイン要素を選択する必要があります。選択する要素の種類(モジュール、リンクなど)は問いません。

これらのオプションは組み合わせることができます。たとえば、ModuleとLinkのオプションを組み合わせた場合、ちょうど1つのモジュール、またはちょうど1つのリンクのいずれかを選択するとコマンドが実行されます。SingleSelectとMultiSelectを組み合わせると、1つ以上のデザイン要素が選択されている場合にコマンドを開始できるようになります。

コマンドスコープとして定義されたデザイン要素を選択せずにコマンドを実行しようとすると、Invalid Scopeメッセージが開きます:

Invalid Scope

<Toolbar>:

任意のタグ。次を設定した場合のみ許可されます: Command mode を Trigger。このタグを含めると、コマンドがコレクションのツールバーに追加されます。このタグは、次の場合には許可されません: Command mode が次のように設定されている場合、自動的に無効になります: DragAndDrop.

パラメーター#

上の画像で斜体で記載されているパラメータに、以下の値を書き込む必要があります:

  • COL_NAME:スクリプトコレクションの名前。
  • COL_PNG_FILE_PATH:スクリプトコレクションのアイコンファイルのパス(PNG形式、詳細はファイル要件を参照)。XMLファイルからの相対パスを指定します。
  • COL_TOOLTIP_TEXT:スクリプトコレクションを説明するツールチップとして表示されるテキスト。
  • CMD_NAME:コマンドの名前。
  • CMD_TOOLTIP_TEXT:コマンドを説明するツールチップとして表示されるテキスト。
  • CMD_VERSION:MAJOR.MINOR形式のコマンドバージョン(例:1.0)。
  • TCL_FILE_PATH:コマンドの実行時に呼び出すプロシージャを含むTclスクリプトへのパス。XMLファイルからの相対パスで指定します。
  • CMD_PNG_FILE_PATH:コマンドのアイコンファイル(PNG形式、詳細はファイル要件を参照)。XMLファイルからの相対パスを指定します。
  • CMD_CALL:コマンドによって呼び出されるTclスクリプト内のプロシージャの名前(またはTclプロシージャ全体)。
  • CMD_PARAM:コマンドの呼び出し時に実値に置き換えられるパラメータ名(引数)。以下で定義されているパラメータ名のみを指定します。 タグ。
  • PAR_NAME:パラメータ名。
  • PAR_RANGE_FROM:値の範囲の開始(データ型が int または double の場合のみ)。
  • PAR_RANGE_TO:値の範囲の終了(データ型が int または double の場合のみ)。
  • PAR_RANGE_INC: 値範囲内のステップサイズ(データ型が int または double の場合のみ)。
  • PAR_VALUE: パラメーターのデフォルト値。

GUIへのスクリプトコレクションの読み込み#

GUI経由で作成した各スクリプトコレクションについて、1つのXMLファイルが[Settings] → [System Settings] → [Path]で指定したディレクトリに書き込まれます。新しいコレクション記述用XMLファイルをディレクトリに追加するか、そこにある既存のXMLファイルを編集した場合、VisualAppletsのGUIに変更を反映させることができます。VisualAppletsを再起動せずに変更を表示するには、[Script Collection]ペインを右クリックし、[Rescan Script Collection Directory]を選択します。

スクリプトコレクション:スクリプトコレクションディレクトリのスキャン