カスタムモジュールの作成プロセス

カスタムモジュールを作成して、Reportにプラグインします。

Report内のモジュールはいずれも、そのスクリプト内に下記の2つのコンポーネントを有しています:
  1. モジュールの機能を実行するTclスクリプト
  2. ユーザーインターフェースのプロパティエリアに満たされるXMLスクリプト


図 1. モジュール作成のワークフロー

モジュールがうまく機能するためには、TclおよびXMLファイル群が結合され、それらの個々の責務を正しく寄与する必要があります。

このプロセスの概要のために、2つのファイル CurveMaxima.xmlおよびCurveMaxima.tclが使用されます。それらの場所は:

<installation_directory>/tutorials/hwdesktop/mv_hv_hg/publish_reports/CurveMaxima.xml

<installation_directory>/tutorials/hwdesktop/mv_hv_hg/publish_reports/CurveMaxima.tcl

モジュール作成プロセスの概要

モジュール作成プロセスは、以下の手順から成ります:
  1. データの用意

    カスタムスクリプトは、モデルまたはグラフについて必要なプロセスを実行し、データキャプチャーのための準備を行います。後にReportタイトル、画像のキャプションに使用され、テキスト欄とテーブルに追加される値と情報がキャプチャーされます。

  2. オブジェクトとプレースホルダーの定義

    後ほど、Report APIレイヤーがスライドレイアウトをベースとしたスライドまたはDocumentチャプターの作成に使用されます。これらのオブジェクトには、画像、テキストおよびテーブルが含まれます。

  3. データの追加

    手順1.で準備されたデータは、手順2.でオブジェクトの追加に使用されます。個々のアイテムについてのプロパティ選択は、アイテム作成(手順2.)またはこのデータ追加手順の間に設定されます。

  4. ユーザーインターフェースへの接続
    このモジュールの実行に必要な入力パラメータを決定します。オプションには以下のものがあります:
    • データ(ページおよびウィンドウ選択、単数または複数)が存在する場所
    • データを表す書式。たとえば、特定のスライドレイアウトスタイル
    • 追加するコンテンツの量。たとえば、モジュールはshortとdescriptiveの2つのモードを持つことが可能
    ユーザーインターフェース内のモジュールのプロパティエリアから、すべての入力パラメータを選択します。インターフェース追加用のXMLファイルは、指定したプロパティがモジュールスクリプト内のどの機能に属するかを示さなければなりません。
  5. モジュールの登録

    モジュールスクリプトのディレクトリを、推奨される方法のいずれかで登録します。

たとえば、カスタムモジュールCurve Maximaが使用されます。このファイルは、<installation_directory>/tutorials/hwdesktop/mv_hv_hg/publish_reports/CurveMaxima.xmlにあります。

Module Objective
指定したHyperGraphから、すべてのカーブの名称とID、最大Y値、およびカーブのX位置を表形式で明らかにします。すべてのカーブからの最大ポイントをハイライト表示した画像をキャプチャーします。これは、任意のDocumentまたはPresentationフォーマットのためにフレキシブルである必要があります。

データの準備

データを用意する行のセット(Tcl)が必要です。このモジュールの目的のために、HyperGraphウィンドウを定義してクリーンなキャプチャーを得る必要があります。これには、表示されているすべてのカーブ、および生成された最大値注釈が含まれます。また、最大Y値および同等なX値が、各カーブIDとラベルについて見つからなければなりません。

CurveMaxima.tclファイルは、<installation_directory>/tutorials/hwdesktop/mv_hv_hg/publish_reports/CurveMaxima.tclにあります。

行123から148までは、同じスクリプトCurveMaxima.tclでこれを達成します。


図 2. データの準備

オブジェクトとプレースホルダーの定義

Presentation用の画像、テキスト、テーブルを含んだスライド、およびDocument用の画像、テキスト、テーブルを含んだレポートとチャプターを作成するには、report APIsを使用します。

  1. オブジェクトの作成後、Reportタブでそれらのアイテムを表示させるには、apply APIsを使用します。
  2. Presentationの場合、Create Slideの操作には、スライドレイアウトを選択する必要があります。スライドレイアウトには、作成されるオブジェクトの画像、テキストおよびテーブルに関する情報が含まれます。したがって、それらアイテムを再度作成する必要はなく、追ってデータを満たすために使用するそれらのIDのみが必要です。
  3. Documentの場合、オブジェクトの画像、テキストおよびテーブルは、正しい順で別々に作成される必要があります。チャプターの作成はオプションですが、チャプターを作成することにより、コンテンツのテーブルの自動入力が作成されます。また、チャプターを作成する際、そのチャプターに含むべきオブジェクトのIDを指定することができます。


    図 3. レポートオブジェクトの作成

データの追加

上記で作成されたオブジェクトは、ユーザーのロジックを用いて得られたデータと共に追加できます。このステップでは、レポートオブジェクトのIDが必要とされます。

  1. 下に示すモジュールの例では、行107-121がテキストボックスデータのキャプション"Max values from curves"を示しており、テーブルヘッダーはvisibleに設定され、それらのコンテンツがセットされています。


    図 4. テキストおよびテーブル情報の追加
  2. カーブデータが取得され注釈が作成される同じループ内で、テーブルセルも追加されることが可能です。これは、行149~154で行われます。
  3. 注釈を作成し、画像内で必要とされないコンテンツを非表示にした後、画像を追加できます。レポート画像オブジェクトは、選択されたページ / ウィンドウの画像を直接受け入れることができます。もしくは、以前のキャプチャー操作中に保存された外部画像ファイルからも取得できます。
  4. 画像オブジェクトは特別な実行操作を必要とします。実行後、画面上の仮の注記を消去し、それ以前に見えていたエンティティ群を復元する必要があります。これは、行156~167で行われます。


    図 5. テーブルセルと画像の追加
  5. Tclスクリプトからのコードブロック全体は、サンプルモジュールのTclテンプレートの実行ブロックに置かれるか、CurveMaxima.tcl内で置き換えられる必要があります。
  6. 実行ブロックに加え、その他のブロックもTclサンプルファイル内に存在します。プリ実行ブロックとポスト実行ブロックは、モジュール実行以前のプリセット、およびモジュール実行後の元のフォームへのセッションの復元の両方を担うコードを含むことが可能です。たとえば、entity overviewモジュールは常に、画像のキャプチャーのために作成されたすべての注釈を削除します。


    図 6. プリ実行ブロックとポスト実行ブロック

ユーザーインターフェースへの接続

Tclスクリプトでは、初期化されたブロックがIDおよびモジュールに割り当てされた場所を受けます。また、ユーザーインターフェース内のモジュールのプロパティエリアにセットされた値を取ります。



図 7. 初期化ブロック

この初期化ブロックはXMLファイルに結合され、モジュールのプロパティエリアからの情報を共有します。



図 8. モジュールプロパティエリア


図 9. インターフェース用のモジュールXMLスクリプト

テンプレートCurveMaxima.xmlを編集し、プロパティエリア内での階層を変更することが可能です。また、選択のスタイルをコンボボックスからマルチセレクターに変更することもできます。デフォルトのページおよびウィンドウIDの取得といった基本的機能や、ReportがPresentationまたはDocumentモードの際についての特別な指示は、Tclスクリプトに書き出し、XMLファイル内で参照することが可能です。



図 10. ユーザーインターフェースの機能群

モジュールの登録

これらの手順を完了した後、XMLおよびTclファイルを適切な場所(同じフォルダーが望ましい)に置いてください。このモジュールをHyperWorksセッションでテストすることが推奨されます。そのためには、モジュールが登録される必要があります。これは、以下のいずれかの方法で行えます:

  1. 環境変数ARD_CUSTOM_PATHを使用


    図 11. 環境変数でのモジュールの登録
    注: ディレクトリパス内ではフォワードスラッシュを保持します。
  2. APIの使用
    ::ardi::frwk addcustompath -directory [list {C:\Custom_Module\CurveMaxima}]
    ::ardi::frwk start -mode interactive
  3. これを実行した後、閉じてReportタブを開きます。選択されたReportフォーマット用にカスタムモジュールが標準モジュールと共にリストされます。


    図 12. カスタムモジュールと標準モジュール