環境
説明
目的
環境でモジュールを使用すると、FlexSimのインターフェイスを完全に変更できます。各モジュールには環境のセットがあり、それぞれの環境は追加と置き換えのセットですが、FlexSimが開くとき他のモジュールには適用されません。その代わりに、これらの変更はいつでも環境に切り替えたときに適用できます。環境を終了すると、FlexSimはデフォルト環境に戻ります。
環境にはinstalldataのセットがあり、標準のモジュールと同様に、ツリー内でノードの追加と置き換えを行います。また、環境の開始または終了時に起動するイベントやコードも定義できます。オプションのセットを定義すると、[実行]およびFlexSimツールバーの削除や、メインパネルのYの場所の設定を行えます。また、ワークスペース、つまり環境が開くウィンドウのセットも定義できます。
タイプ
環境は3つの場所で定義できます。
- デフォルト環境 - MAIN:/project/exec/globals/environmentsにあります。これらの環境はデフォルトでFlexSimにより定義されます。デフォルト環境は、環境を終了して標準のFlexSimに戻るときに使用されます。最小環境では[実行]およびFlexSimツールバーが削除され、メインメニューは[ファイル]および[実行]メニューと、限られたオプションのみになります。例として、モデルを管理ユーザーや、FlexSimを使用していないユーザーに配布する場合、この環境は非常に便利です。
- モジュール環境 - モジュールを使用して、好きなだけの数の環境を定義できます。モジュール内にデフォルト環境を定義でき、この場合はFlexSimが開始するとき、自動的にその環境が開きます。
- モデル環境 - 個別のモデル内にも環境を定義できます。これにより、特定のモデルが開くとき、指定の環境に切り替える、またはデフォルトで環境を開くことができます。たとえば、モジュールを使用してモデルに環境をインストールすると、そのモデルが開くたびに、その環境がデフォルトで開きます。モデルを同僚に配布すると、元のモジュールを配布しなくても、相手は関連付けられた環境を使用できます。
環境の作成
環境の作成
モジュールに環境を追加するのはごく簡単です。モジュールノード(MAIN:/modules/SomeModule)で、environmentsという名前のノードを追加します。このノードはモジュールのinstalldataノードの兄弟です。このノード内に、環境の名前を持つノードを作成します。この環境ノードには、モジュールと同様にinstalldataノードが含まれている必要があります。このノードは、環境の追加と置き換えを格納するために使用されます。最終的な構造は次のようになります。
ExpressIt3Dモジュールには、同じ名前の単一の環境があります。オプションのeventsノードも表示されています。環境イベントについては以下で説明します。
モデルの環境を定義する場合も、modulesノードと同じ構造に従う必要があります。これは、将来の開発において、モデルがモジュールと同様に独自の変更をFlexSimに適用する可能性があるため、それに対応するためのものです。
この操作が完了したら、次の関数を呼び出して環境を更新します。
applicationcommand("refreshenvironments");
モデルの環境は、モデルの保存時に同時に保存されます。モジュールの環境は、次の関数を呼び出してモジュールを保存するとき、同時に保存されます。
applicationcommand("savedefaultviewproject");
モデルの環境の注意事項
モデルの環境が存在する場合、その環境には通常と同様にノードの追加と削除を行えます。ただし、環境のワークスペースは保存できません。これは、モデルが現在のワークスペースを保存するためです。このため、縮小版のインターフェイス、たとえば単純なメニューとツールバーだけのものを作成するには、次の操作を行います。まず、モジュールの環境の場合と同様に、ノードを追加および削除し、環境オプションを設定します。次に、OnModelOpenにユーザーイベントを追加し、モデルが開いたときその環境に切り替わるようにします。最後にUIを、必要なウィンドウのみが開いており、正しい位置に置かれた状態にセットアップします。その後で、モデルを保存します。モデルを開くと環境が適用され、ワークスペースが復元されます。
環境への切り替え
モデルやモジュールに環境が追加され、環境が更新されると、ユーザーツールバーの右側にボタンが表示されます。 このボタンは、切り替え可能なすべての環境のリストを表示します。
また、次のコマンドも使用できます。
applicationcommand("switchtoenvironment", "Environment Name");
イベントの順序
環境が切り替わるときは、次のイベントがこの順序で発生します。
- 現在の環境(デフォルトのFlexSim環境以外)が存在する場合、環境のオプションのOnPreLeaveコマンドが起動します。
- installdataノードに定義されている、現在の環境に加えられたすべての変更が取り消されます。
- 環境で、オプションのOnPackイベントが発生します。
- インターフェイスが、環境を含まないように更新されます。
- 環境で、オプションのOnLeaveイベントが発生します。
- 切り替え先の環境で、オプションのOnPreEnterイベントが発生します。
- 切り替え先の環境で、installdataノードからデータがアンパックされ、定義済みの変更すべてが適用されます。
- 切り替え先の環境で、オプションのOnUnpackイベントが発生します。
- 切り替え先の環境にデフォルトワークスペースが存在する場合、そのワークスペースが開きます。
- 切り替え先の環境で、オプションのOnEnterイベントが発生します。
環境を終了し、FlexSimのデフォルトビューに戻す場合は、次のコマンドを使用します。
applicationcommand("switchtoenvironment", 0);
スクリプトウィンドウや[環境]ボタンを使用できない場合、Ctrl + Alt + Eを押して環境を終了できます。
環境の編集
環境にノードを追加、または置き換えるには、その環境を開いている必要があります。環境が開いている状態で、ツリーのノードを右クリックすると、[現在の環境]メニューオプションが表示されます。現在の環境が存在しない場合、このオプションは無効になっています。
モジュールと同様に、[追加として追加]で環境にノードを追加し、[置き換えとして追加]でノードを置き換え、[削除]で追加または置き換えを削除します。
注:ノードを置き換えるとき、置き換えられたノードを編集する前に、必ず[置き換えとして追加]を選択してください。これにより、ノードの現在の状態のコピーが、環境のinstalldataに置かれます。
[アクティブビューを環境のデフォルトとして保存]オプションを使用すると、ワークスペースの現在の状態が、ドッキングやフローティングのすべてのウィンドウも含めて保存され、その環境が最初に開いたとき、同時に開きます。ユーザーが環境を開いて、ウィンドウ構成を変更してから環境を終了すると、最後の構成が保存され、ユーザーが環境を再度開くと、その構成に戻ります。これは、標準FlexSimの機能でもあります。ユーザーが環境を開くと、モデルはFlexSimのワークスペースを別に保存しておき、環境が閉じているときにはこのFlexSimのワークスペースを使用します。これによりユーザーは、複数の環境とFlexSimとの間を、よりシームレスに切り替えできます。
環境イベント
- OnPreEnter - その環境に最初に切り替えるとき、変更が適用される前に発生します。
- OnUnpack - 切り替え先の環境で、installdataノードからすべての変更が適用されたとき発生します。
- OnEnter - 切り替え先の環境で、すべての変更が適用されたときに発生します。
- OnPreLeave - 現在の環境が閉じるとき、変更が取り消される前に発生します。
- OnUnpack - 現在の環境からすべての変更が取り消され、installdataノードにパックされた後で発生します。
- OnLeave - 終了する環境で、すべての変更が取り消されたときに発生します。
環境のオプション
環境のオプションにより、ツリー内では使用できないFlexSimの要素を変更できます。[実行]およびFlexSimツールバーで多少の変更を加えることはできますが、完全に置き換えるのは悪い結果となります。これは、BackPanelについても同じです。環境のワークスペースを変更するには、ワークスペースを希望のレイアウトに設定してから、[アクティブビューを環境のデフォルトとして保存]を選択します。[現在の環境]メニューオプションは、ツリービューを右クリックするか、タブペインの右にある空間を右クリックすると表示されます。
[実行]ツールバーとFlexSimツールバーのアイテムに変更を加えられますが、これらのアイテムを完全に削除する、またはBackPanelのYの場所を変更するには、次のオプションを使用します。
- backPanelSpatialY - VIEW:/active/MainPanel/BackPanelノードのspatialy値を指定し、環境の設定時に正しい場所に再配置します。
- toolPanelSpatialY - FlexSimツールバーのspatialy値を指定します。
- toolPanelSizeY - FlexSimツールバーのspatialsy値を指定します。
- toolPanelDividerSpatialY - FlexSimツールバーと[実行]ツールバーの間にあるディバイダー線のspatialy値を指定します。
- runPanelSpatialY - [実行]ツールバーのspatialy値を指定します。
- runPanelSizeY - [実行]ツールバーのspatialsy値を指定します。
- runPanelDividerSpatialY - [実行]ツールバーとBackPanelの間にあるディバイダー線のspatialy値を指定します。
- applicationTitle - メインウィンドウに表示されるアプリケーションタイトルを定義します。
- enterOnApplicationStart - この値が1なら、FlexSimが起動したとき、またはモデルの環境ではモデルが開くとき、FlexSimはこの環境で開きます。