ウィザード

ウィザードを使用すると、ライブラリに保存されたシステムで構成されたモデルを、数回のクリックで簡単かつ手軽にアセンブルおよび解析できます。

Assembly Wizardを使用すると、必要なシステムの組み合わせを選択することでモデルをアセンブルできます。Task Wizardを使用すると、Assembly Wizardを使用してアセンブルされたモデルに、アナリシスやイベントを付加できます。

ウィザードへのアクセス

ウィザードには、AssemblyリボンのWizardsグループからアクセスできます。
1. AssemblyリボンのWizardグループ


Assembly Wizard

Assembleアイコン をクリックして、Assembly Wizardを表示します。
2. Assembly Wizardダイアログ


Assembly Wizardダイアログには、モデルをアセンブルするために必要なシステムに関する選択を行うことができる一連のページが含まれています。
3. Assembly Wizardダイアログでのシステム選択


Nextをクリックして次のページに移動し、Finishと表示される最終ページまで進みます。
4. Assembly Wizardダイアログの最終パネル


完了したら、選択したシステムが空のMotionViewセッションにインポートされます。

Finishの前に、Attachmentsを選択するためのオプションも用意されています。
5. Attachment Wizardダイアログ


注: いずれかのシステムについて複数の選択肢がある場合は、Attachmentオプションがアクティブになります。モデルの構築後に、Attachments Wizard (Wizardsグループにあるドロップダウン)を通じてアタッチメントを変更することもできます。

システムがインポートされたら、他の通常のMotionViewモデルと同様にこのモデルをさらに編集できます。保存を行うと、ウィザードでの選択内容がMDLに保存されます。

アナリシスの追加

Assembly Wizardを使用してモデルが構築されると、Task Wizard を使用してモデルにアナリシスを追加することができます。
6. Task Wizardダイアログ


アナリシスを構成する入力フォームが存在する場合、そのフォームが表示されます。Finishによって、アナリシスがモデルに追加されます。
注: Task Wizardを起動する都度、1つのモデルに複数のアナリシスを追加できます。

ウィザードパス

ウィザードライブラリを作成し、それらをMotionViewに登録できます。登録したら、Settingsダイアログを使用して、任意のライブラリをモデル化とイベント用の現在のライブラリとして設定できます。
7. ウィザードの設定


このセクションで後述するウィザードファイルの登録をご参照ください。

Example Wizard

Example Wizardは、MotionViewで使用できます。サンプルを使用して、ライブラリとウィザードの作成について学ぶことができます。
注: これらのモデルは、ウィザードの機能を紹介することのみを目的としています。モデルの精度や想定どおりの動作は保証されていません。

次のセクションでは、Example Wizard内のモデルを考慮しながら、ユーザー独自のウィザードライブラリを作成するために実行できる一般的なプロセスを説明します。

独自のウィザードライブラリの作成

ライブラリを構築してウィザードで使用することで、以下の利点が得られます:
  • 製品とテストに関する知識を、システムとアナリシスのライブラリに取り込むことができます。
  • 大規模なユーザーグループがモデルのバリアントを簡単にアセンブルできるようにします。
  • ごくわずかなプログラミング知識でモデルのアセンブルを簡単にカスタマイズできます。
  • 同じトポロジーでのモデル構築を繰り返す必要がなくなります。
ウィザードライブラリが特に役立つのは、複数のバリアント、並べ替え、システムの組み合わせが存在するモデルをまとめる場合です。MotionViewの上級ユーザーはライブラリとアセンブリロジックを構築して、MotionViewMDL言語に関する知識があまりない複数の一般ユーザーとこれらを共用できます。

ウィザードライブラリを作成するステップ

  1. Build model/s and events.
    1. このモデルは、グラフィカルユーザーインターフェースを使用したり、テキストエディターでMDLを編集したりして、インタラクティブに構築できます。MDL言語に精通していると役に立ちます。
    2. モデルの構築時には、モデルを階層システムに編成します。
    3. システムはモジュール形式で作成することをお勧めします。つまり、各システムは自己完結型になります。このシステム外のエンティティへの参照は、アタッチメントを通じて管理されます。
    4. 必要に応じて、エンティティ間のパラメトリックな関係を定義します。システムレベルでデータタイプ(実数、整数、ブーリアン、オプション、文字列、ファイル名)からなるデータセットまたはデータメンバーのセットを作成すると役に立ちます。これらのデータメンバーは、システムの子エンティティを編集する必要なくシステムを設定する主要なパラメータを形成できます。
    5. フォームを使用して、これらのデータメンバーを行-列の表形式で編成できます。フォームは、システムパラメータを表現できるイメージの追加もサポートしています。
    6. 同様に、モデルに適用されるイベントやテストケースをアナリシスに編成します。
    7. モデルを解析し、必要に応じてプロットとアニメーションを作成します。このセッションをレポートテンプレート(*.tpl)に保存します。
  2. システムとアナリシスの定義を個別に保存して、ディレクトリを使用したライブラリを形成します。
    1. システムとアナリシスは、MDL定義にエクスポートできます。
    2. エクスポート時にデータを含めます。これらは、エンティティプロパティのデフォルト値となります。
  3. MDLウィザード言語を使用して、モデル構築ロジックを含むAssembly Wizardファイルを作成します。
  4. MDLウィザード言語を使用して、モデルに関連するイベントまたはアナリシスを含むTask Wizardファイルを作成します。
  5. プリファレンスファイルステートメントを使用してウィザードファイルを登録し、Wizardダイアログとリンクさせます。

これらのステップについては、Example Wizardを使用してさらに精巧なものとなります。

モデルとイベントの構築

Example Wizardでは、次の2つのモデルが提供されます:リンクとスライダークランク。
リンクモデル
次の図は、リンクモデルのシステム編成を示しています。
8. リンクモデル


このモデルはLink systemとPivot systemの2つのシステムで編成されています。

Link systemは以下で構成されます:
  1. データメンバーLengthおよびAngle(Entity EditorのPropertiesセクションを使用して追加します)。
  2. ポイントlink end1は独立ポイントです。
  3. ポイントlink end1の位置にあるマーカーReference。この向きはフリーです。
  4. ポイントlink end2は、loc_cylindrical関数を使用し、LengthAngleをパラメータとして、Referenceマーカーフレーム内の円筒座標で定義されます。このポイントは、このマーカーのXY平面上に配置されます。
  5. ポイントlink CGは、ポイントlink end1およびlink end2の間のポイントです。
  6. ボディlink
  7. 端点間で定義されたボディリンクのグラフィックCylinder Link
  8. リンクend 2におけるグラフィックEnd 2 Cylinder

Pivot System

このPivot systemの目的は、いずれかの端部においてリンクをGround Bodyに拘束することです。ウィザードを使用してリンクモデルをアセンブルする際に、ピボットシステムの複数のバリエーション(ヒンジまたは球)を提供することを推奨します。
ピボットヒンジ
このシステムでは、リンクは、参照マーカーの原点において回転ジョイントを使用して拘束され、Z軸に沿った方向を向きます。リンクボディと参照マーカーは異なるシステム(リンク)内にあるため、モジュール性を維持するために、これらのエンティティはアタッチメントとしてPivot systemに入力されます。
9. リンクモデル - Pivot system(ヒンジ)


このシステムは以下で構成されています:
  1. アタッチメント - Ref(マーカー)とPendulum Body(ボディ)。
  2. ジョイントPivotRefマーカーのZ軸に沿ったRefマーカーの原点にあるアタッチメントPendulum BodyとGround Body間の回転ジョイント。
    注: 原点とアライメント軸は、Advanced Selectionを使用してアタッチメントの子属性を参照するように解決される必要があります。
  3. ジョイントのグラフィックス - グラフィックのボディ、原点、方向はジョイントPivotの属性を参照します。
ピボットボール
ピボットボールは、上記のヒンジシステムと同じように構築されますが、使用されるジョイントのタイプが回転ではなく球ジョイントという点が異なります。このシステムは、同じモデル内に作成することも、別個のモデルを作成することもできます。
10. リンクモデル - Pivot System(球)


Analyses
回転アナリシス
ピボットヒンジの回転ジョイントに一定速度モーションを適用します。ウィザードの構築時、このアナリシスは、Pivot Systemがヒンジタイプである場合にのみ使用可能です。
11. リンクモデル - 回転アナリシス


このアナリシスには以下が含まれています:
  1. モーションを適用するためのアタッチメントJoint Attachment
  2. 回転速度のデータセットInput
  3. このデータセットにリンクするフォーム(MDLを編集することでフォームを追加できます)。
  4. モーションRotation。Inputデータセット内の値は、ここにパラメトリックにリンクされます。
    12.


  5. 出力。
  6. レポート - このレポートは、HyperGraph内で回転速度をプロットし、HyperView内で結果をアニメーション表示します。このレポートはレポートテンプレート内の定義を参照し、次の方法で作成できます。
モデルを解析して、プロットとアニメーションをセッション内の別ページ上に作成します。
13. 回転アナリシスの結果プロット


セッションをレポートテンプレートとして保存します(File > Session > Save As)。

テキストエディターを使用して、モデルMDLのアナリシス定義ブロックに*Reportステートメントを挿入します。すべてのソルバー実行について、AnalyzeリボンのView > Reportsダイアログからこのレポートにアクセスできます。
振動アナリシス
リンクに余分質量を追加して、リンクを重力下で振動させます。
14. リンクモデル - 振動アナリシス


このアナリシスには以下が含まれています:
  1. リンク端部に余分質量を追加するためのアタッチメントPoint AttachmentおよびLink Attachment(ボディ)。
  2. ボディおよびグラフィックスExtra mass
  3. Extra Massの質量のデータセットInput
  4. このデータセットにリンクするフォーム(MDLを編集することでフォームを追加できます)。
  5. 振動を測定するための出力。
  6. レポート - このレポート定義は、HyperGraph内で質量の振動をプロットし、HyperView内で結果をアニメーション表示します。
スライダークランクモデル
このスライダークランクモデルも、上記と同じプロセスに従って構築されます。このモデルは次の2つのシステムで編成されます。
Slider Crank Systemは以下で構成されます:
  1. データメンバーCrank_ang_about_Global_XCrank_lengthConrod_lengthPiston_diaを含むデータセットCyl_configuration
  2. ボディ - グラフィックス付きのPistonConnectingRodCrank
  3. ボディ上のグラフィックスを定義するポイント。ポイントは、データセットのメンバーにパラメトリックにリンクされます。
  4. ジョイント。
  5. Pistonに力を加えるためのピストン上のマーカーCombustion_ref
  6. 0度~720度の間のクランク角度を測定するためのソルバー変数Crank Angle
  7. 出力。
Flywheel systemは以下で構成されます:
15. スライダークランクモデル


  1. アタッチメント - Crank_shaftCrank CenterConnecting Point
  2. グラフィック付きのFlywheelボディ。
  3. ジョイント - Connecting PointCrank_shaftFixed
  4. Crank_shaftFlywheel CG
アナリシス - スライダーにかかる力
16. スライダークランクモデル - スライダーにかかる力のアナリシス


  1. アタッチメント - Crank Angle(ソルバー変数)、Crank Joint(ジョイント)、Piston Attachment(ボディ)、Force marker ref(マーカー)。
  2. 曲線 - Piston Force v/s Crank Angle
  3. Piston ForceForce marker ref原点のPiston Attachment上。Crank Angleを独立変数として、Curve Piston Force v/s Crank Angleを使用して、力が適用されます。
  4. モーション - Crank Jointでの回転速度モーション。
  5. 出力 - Piston AttachmentでのPiston force
  6. レポート - このレポートは、クランク角度に応じてピストンにかかる力をプロットし、その横にはアニメーションを表示します。
17. スライダーにかかる力の結果プロット


システムとアナリシスの定義のライブラリへの保存

モデルがシミュレートされ、予想どおりの結果が得られたら、次のいずれかの方法で、システムとアナリシスの定義をディレクトリ構造に保存してライブラリを形成します:
  1. ブラウザ内でシステム(またはアナリシス)を個別に選択し、File > Save As > MDL Definitionオプションを使用します。

    または

  2. *DefineSystem()(または*DefineAnalysis) - *EndDefine()ブロックを別のファイルにコピーして、mdlファイルに保存します。システム内のエンティティによって別の定義が参照される場合も、*DefineGraphic()や*DefineDataset()などの定義ブロックのコピーが必要になる可能性があります。

*Reportによって参照されているレポートテンプレートファイルもライブラリにコピーします。*Report内のパスがアナリシス定義ファイルを基準にしていることを確認してください。Example Wizardに関連付けられたファイルは、~install\hwdesktop\hw\mdl\mdllib\Example_wizardにあります。

Assembly Wizardファイルの作成

Assembly WizardファイルはAssembly Wizardダイアログを制御するものであり、MotionView Wizard言語で記述されています。Assembly Wizardの作成方法については、Example Wizardフォルダー内のassembly.wzdをご参照ください。
  1. ラジオボタンやドロップダウン選択肢などのオプションと共に表示される各パネルは、*BeginPanel() - *EndPanel()ブロック内で定義されます。
  2. *Title()を使用して、パネルのタイトルを指定できます。
  3. *BeginRadioGroup() - *EndGroup()は、パネル内のラジオボタンの選択肢を定義します。
    18. Assembly Wizardのステートメントとダイアログのマッピング


  4. *if-elseif-else-endif()ブロックを使用し、前のラジオボタンやシステムの選択に基づいてさらにシステム選択を分岐させます。
    19. Assembly Wizardのステートメントとダイアログのマッピング - 条件分岐


  5. *BeginSystemGroup() - *EndGroup()を使用して、システムの選択肢を定義します。これは、ダイアログ内のドロップダウンオプションとして表示されます。
    1. *BeginSystem() - *EndSystem()ブロックは、システムの選択肢を提供します。このようなブロックをグループ内に複数配置できます。
      • *Attachは、アタッチメントの選択肢を提供します。システムへの1つのアタッチメントは、複数のアタッチメント選択肢を持つことができます。これらの選択肢は、Attachment Wizardに表示されます。Attachment Wizardへのアクセスがない場合は、アタッチメントの*Attach選択肢のリストの最初の項目がデフォルトと見なされます。
    2. *Systemを使用すると、アタッチメントがないシステムをインスタンス化できます。
    3. *System(“None”)は、“No system”という選択肢にもなりえます。
  6. *Messageを使用すると、パネルの下部にメッセージを表示できます。
    1. 1つのパネルには、1つの*Messageのみを使用できます。
    2. メッセージは1行で表示されます。メッセージを複数行に分けてダイアログに表示するには、/nを使用します。

ウィザードには複数のBeginPanelブロックを含めることができます。終了時に、MotionViewは各パネルで選択されたシステムをインスタンス化します。また、アタッチメントの解決も行います。

ウィザードでの選択内容はモデルファイルにも保存されます。

Task Wizardファイルの作成

Task Wizardを使用すると、Assembly Wizardを使用して構築された既存のモデルに1つまたは複数のアナリシスタスクを追加できます。Task Wizardの作成方法については、Example Wizardフォルダー内のtask.wzdをご参照ください。
  1. これらのタスクは、1つの*BeginPanel()ブロック内の*BeginTaskGroup()を使用してリストされます。
  2. *if-elseif-else-endifブロックを使用し、モデルまたはシステムの選択内容に基づいてタスクグループをカスタマイズします。このifブロックを*BeginTaskGroup()内で使用してタスクをカスタマイズすることもできます。
    20. Task Wizardのステートメントとダイアログのマッピング


  3. 各タスクは、定義ファイル(mdl)内のアナリシス定義を参照する*BeginTask()ブロックを使用して定義されます。アナリシスへのアタッチメントも、このブロックの引数として渡されます。
  4. *BeginForm()を使用すると、Finishがクリックされたときにアナリシス内で定義されているフォームを開くことができます。
    21. Task Wizard内のフォーム


ウィザードファイルの登録

すべてのシステム定義とウィザードファイルの準備ができたら、ウィザードファイルを登録し、グラフィカルユーザーインターフェースを通じてウィザードを呼び出せるようにします。

ライブラリでの登録には以下の情報が必要です:
Assembly Wizardファイル MDLウィザード言語で記述されたAssembly Wizardコードを含むファイル。
Task Wizardファイル MDLウィザード言語で記述されたTask Wizardコードを含むファイル。
MDL標準インクルードファイル このファイルは、MotionViewの開始時に読み込まれます。このファイルには、MDL言語で記述された任意のモデルデフォルトを含めることができます。標準インクルードの一部であるstd_inc.mdlを使用することをお勧めします。追加のデフォルトを指定する必要がある場合は、*Include()ステートメントを使用してstd_inc.mdlをインクルードしてから、その後ろに他のステートメントを記述してください。
ウィザードライブラリディレクトリ ウィザードで使用されるシステム、アナリシス、レポートなどの参照ファイルが含まれるフォルダー。
レポートログファイル モデル内のレポートは実行時にログに記録され、このファイルに保存されます。このファイルの情報は、AnalyzeリボンのView > Reportsダイアログに表示され、自動実行レポートをプロットできます。
ウィザードライブラリは、次の方法でMotionViewに登録することで、MotionViewの起動時に使用できるようになります。
  1. User/Custom library – AssemblyリボンにあるWizardグループの Settingsダイアログ内。
    22. ウィザードの設定


    この方法では、1つのライブラリのみを登録できます。

  2. Using Preference file statements

    プリファレンスファイル(*.mvw)を使用します。

    このプリファレンスファイルは、File > Load > Preference File (*.mvw)メニューから登録して読み込むことができます。

    このファイルには、以下のステートメントを含めることができます:
    *Id("MotionView v12.0")
    *BeginDefaults()
    
      *BeginModelDefaults()
    
       *BeginMdlDefaults()
    
    *RegisterAssemblyWizardFile(MyLibrary,"C:/Libraries/My_Library/assembly.wzd" )
    *RegisterTaskWizardFile(MyLibrary, "C:/Libraries/My_Library/task.wzd" )
    *RegisterWizardLibDir(MyLibrary, "C:/Libraries/My_Library/" )
    *RegisterMdlStdIncFile(MyLibrary,getenv("ALTAIR_HOME")+"/hw/mdl/mdllib/std_inc.mdl"} )
    *RegisterReportsLog(MyLibrary,"C:/Users/username/Documents/report.log") 
    			
       *EndMdlDefaults()
    
     *EndModelDefaults()
    *EndDefaults()

    *Registerステートメントの1つ目の引数は、ライブラリの名前を参照します。1つまたは複数のプリファレンスファイルを使用して、複数のライブラリを登録できます。

    詳細については、Preference Filesをご参照ください。