ウィザード
ウィザードを使用すると、ライブラリに保存されたシステムで構成されたモデルを、数回のクリックで簡単かつ手軽にアセンブルおよび解析できます。
Assembly Wizardを使用すると、必要なシステムの組み合わせを選択することでモデルをアセンブルできます。Task Wizardを使用すると、Assembly Wizardを使用してアセンブルされたモデルに、アナリシスやイベントを付加できます。
ウィザードへのアクセス

Assembly Wizard




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


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


ウィザードパス

このセクションで後述するウィザードファイルの登録をご参照ください。
Example Wizard
次のセクションでは、Example Wizard内のモデルを考慮しながら、ユーザー独自のウィザードライブラリを作成するために実行できる一般的なプロセスを説明します。
独自のウィザードライブラリの作成
- 製品とテストに関する知識を、システムとアナリシスのライブラリに取り込むことができます。
- 大規模なユーザーグループがモデルのバリアントを簡単にアセンブルできるようにします。
- ごくわずかなプログラミング知識でモデルのアセンブルを簡単にカスタマイズできます。
- 同じトポロジーでのモデル構築を繰り返す必要がなくなります。
ウィザードライブラリを作成するステップ
- Build model/s and events.
- このモデルは、グラフィカルユーザーインターフェースを使用したり、テキストエディターでMDLを編集したりして、インタラクティブに構築できます。MDL言語に精通していると役に立ちます。
- モデルの構築時には、モデルを階層システムに編成します。
- システムはモジュール形式で作成することをお勧めします。つまり、各システムは自己完結型になります。このシステム外のエンティティへの参照は、アタッチメントを通じて管理されます。
- 必要に応じて、エンティティ間のパラメトリックな関係を定義します。システムレベルでデータタイプ(実数、整数、ブーリアン、オプション、文字列、ファイル名)からなるデータセットまたはデータメンバーのセットを作成すると役に立ちます。これらのデータメンバーは、システムの子エンティティを編集する必要なくシステムを設定する主要なパラメータを形成できます。
- フォームを使用して、これらのデータメンバーを行-列の表形式で編成できます。フォームは、システムパラメータを表現できるイメージの追加もサポートしています。
- 同様に、モデルに適用されるイベントやテストケースをアナリシスに編成します。
- モデルを解析し、必要に応じてプロットとアニメーションを作成します。このセッションをレポートテンプレート(*.tpl)に保存します。
- システムとアナリシスの定義を個別に保存して、ディレクトリを使用したライブラリを形成します。
- システムとアナリシスは、MDL定義にエクスポートできます。
- エクスポート時にデータを含めます。これらは、エンティティプロパティのデフォルト値となります。
- MDLウィザード言語を使用して、モデル構築ロジックを含むAssembly Wizardファイルを作成します。
- MDLウィザード言語を使用して、モデルに関連するイベントまたはアナリシスを含むTask Wizardファイルを作成します。
- プリファレンスファイルステートメントを使用してウィザードファイルを登録し、Wizardダイアログとリンクさせます。
これらのステップについては、Example Wizardを使用してさらに精巧なものとなります。
モデルとイベントの構築
- リンクモデル
- 次の図は、リンクモデルのシステム編成を示しています。
図 8. リンクモデル
このモデルはLink systemとPivot systemの2つのシステムで編成されています。
Link systemは以下で構成されます:- データメンバーLengthおよびAngle(Entity EditorのPropertiesセクションを使用して追加します)。
- ポイントlink end1は独立ポイントです。
- ポイントlink end1の位置にあるマーカーReference。この向きはフリーです。
- ポイントlink end2は、loc_cylindrical関数を使用し、LengthとAngleをパラメータとして、Referenceマーカーフレーム内の円筒座標で定義されます。このポイントは、このマーカーのXY平面上に配置されます。
- ポイントlink CGは、ポイントlink end1およびlink end2の間のポイントです。
- ボディlink。
- 端点間で定義されたボディリンクのグラフィックCylinder Link。
- リンクend 2におけるグラフィックEnd 2 Cylinder。
Pivot System
このPivot systemの目的は、いずれかの端部においてリンクをGround Bodyに拘束することです。ウィザードを使用してリンクモデルをアセンブルする際に、ピボットシステムの複数のバリエーション(ヒンジまたは球)を提供することを推奨します。- ピボットヒンジ
- このシステムでは、リンクは、参照マーカーの原点において回転ジョイントを使用して拘束され、Z軸に沿った方向を向きます。リンクボディと参照マーカーは異なるシステム(リンク)内にあるため、モジュール性を維持するために、これらのエンティティはアタッチメントとしてPivot systemに入力されます。
図 9. リンクモデル - Pivot system(ヒンジ)
このシステムは以下で構成されています:- アタッチメント - Ref(マーカー)とPendulum Body(ボディ)。
- ジョイントPivot – RefマーカーのZ軸に沿ったRefマーカーの原点にあるアタッチメントPendulum BodyとGround Body間の回転ジョイント。注: 原点とアライメント軸は、Advanced Selectionを使用してアタッチメントの子属性を参照するように解決される必要があります。
- ジョイントのグラフィックス - グラフィックのボディ、原点、方向はジョイントPivotの属性を参照します。
- ピボットボール
- ピボットボールは、上記のヒンジシステムと同じように構築されますが、使用されるジョイントのタイプが回転ではなく球ジョイントという点が異なります。このシステムは、同じモデル内に作成することも、別個のモデルを作成することもできます。
図 10. リンクモデル - Pivot System(球)
Analyses- 回転アナリシス
- ピボットヒンジの回転ジョイントに一定速度モーションを適用します。ウィザードの構築時、このアナリシスは、Pivot Systemがヒンジタイプである場合にのみ使用可能です。
図 11. リンクモデル - 回転アナリシス
このアナリシスには以下が含まれています:- モーションを適用するためのアタッチメントJoint Attachment。
- 回転速度のデータセットInput。
- このデータセットにリンクするフォーム(MDLを編集することでフォームを追加できます)。
- モーションRotation。Inputデータセット内の値は、ここにパラメトリックにリンクされます。
図 12.
- 出力。
- レポート - このレポートは、HyperGraph内で回転速度をプロットし、HyperView内で結果をアニメーション表示します。このレポートはレポートテンプレート内の定義を参照し、次の方法で作成できます。
モデルを解析して、プロットとアニメーションをセッション内の別ページ上に作成します。図 13. 回転アナリシスの結果プロット
セッションをレポートテンプレートとして保存します(
)。テキストエディターを使用して、モデルMDLのアナリシス定義ブロックに*Reportステートメントを挿入します。すべてのソルバー実行について、Analyzeリボンの ダイアログからこのレポートにアクセスできます。- 振動アナリシス
- リンクに余分質量を追加して、リンクを重力下で振動させます。
図 14. リンクモデル - 振動アナリシス
このアナリシスには以下が含まれています:- リンク端部に余分質量を追加するためのアタッチメントPoint AttachmentおよびLink Attachment(ボディ)。
- ボディおよびグラフィックスExtra mass。
- Extra Massの質量のデータセットInput。
- このデータセットにリンクするフォーム(MDLを編集することでフォームを追加できます)。
- 振動を測定するための出力。
- レポート - このレポート定義は、HyperGraph内で質量の振動をプロットし、HyperView内で結果をアニメーション表示します。
- スライダークランクモデル
- このスライダークランクモデルも、上記と同じプロセスに従って構築されます。このモデルは次の2つのシステムで編成されます。Slider Crank Systemは以下で構成されます:
- データメンバーCrank_ang_about_Global_X、Crank_length、Conrod_length、Piston_diaを含むデータセットCyl_configuration。
- ボディ - グラフィックス付きのPiston、ConnectingRod、Crank。
- ボディ上のグラフィックスを定義するポイント。ポイントは、データセットのメンバーにパラメトリックにリンクされます。
- ジョイント。
- Pistonに力を加えるためのピストン上のマーカーCombustion_ref。
- 0度~720度の間のクランク角度を測定するためのソルバー変数Crank Angle。
- 出力。
Flywheel systemは以下で構成されます:図 15. スライダークランクモデル
- アタッチメント - Crank_shaft、Crank Center、Connecting Point。
- グラフィック付きのFlywheelボディ。
- ジョイント - Connecting PointでCrank_shaftにFixed。
- Crank_shaftのFlywheel CG。
- アナリシス - スライダーにかかる力
-
図 16. スライダークランクモデル - スライダーにかかる力のアナリシス
- アタッチメント - Crank Angle(ソルバー変数)、Crank Joint(ジョイント)、Piston Attachment(ボディ)、Force marker ref(マーカー)。
- 曲線 - Piston Force v/s Crank Angle。
- Piston Force – Force marker ref原点のPiston Attachment上。Crank Angleを独立変数として、Curve Piston Force v/s Crank Angleを使用して、力が適用されます。
- モーション - Crank Jointでの回転速度モーション。
- 出力 - Piston AttachmentでのPiston force。
- レポート - このレポートは、クランク角度に応じてピストンにかかる力をプロットし、その横にはアニメーションを表示します。
図 17. スライダーにかかる力の結果プロット
システムとアナリシスの定義のライブラリへの保存
- ブラウザ内でシステム(またはアナリシス)を個別に選択し、
または
オプションを使用します。 - *DefineSystem()(または*DefineAnalysis) - *EndDefine()ブロックを別のファイルにコピーして、mdlファイルに保存します。システム内のエンティティによって別の定義が参照される場合も、*DefineGraphic()や*DefineDataset()などの定義ブロックのコピーが必要になる可能性があります。
*Reportによって参照されているレポートテンプレートファイルもライブラリにコピーします。*Report内のパスがアナリシス定義ファイルを基準にしていることを確認してください。Example Wizardに関連付けられたファイルは、~install\hwdesktop\hw\mdl\mdllib\Example_wizardにあります。
Assembly Wizardファイルの作成
- ラジオボタンやドロップダウン選択肢などのオプションと共に表示される各パネルは、*BeginPanel() - *EndPanel()ブロック内で定義されます。
- *Title()を使用して、パネルのタイトルを指定できます。
- *BeginRadioGroup() - *EndGroup()は、パネル内のラジオボタンの選択肢を定義します。
図 18. Assembly Wizardのステートメントとダイアログのマッピング
- *if-elseif-else-endif()ブロックを使用し、前のラジオボタンやシステムの選択に基づいてさらにシステム選択を分岐させます。
図 19. Assembly Wizardのステートメントとダイアログのマッピング - 条件分岐
- *BeginSystemGroup() - *EndGroup()を使用して、システムの選択肢を定義します。これは、ダイアログ内のドロップダウンオプションとして表示されます。
- *BeginSystem() - *EndSystem()ブロックは、システムの選択肢を提供します。このようなブロックをグループ内に複数配置できます。
- *Attachは、アタッチメントの選択肢を提供します。システムへの1つのアタッチメントは、複数のアタッチメント選択肢を持つことができます。これらの選択肢は、Attachment Wizardに表示されます。Attachment Wizardへのアクセスがない場合は、アタッチメントの*Attach選択肢のリストの最初の項目がデフォルトと見なされます。
- *Systemを使用すると、アタッチメントがないシステムをインスタンス化できます。
- *System(“None”)は、“No system”という選択肢にもなりえます。
- *BeginSystem() - *EndSystem()ブロックは、システムの選択肢を提供します。このようなブロックをグループ内に複数配置できます。
- *Messageを使用すると、パネルの下部にメッセージを表示できます。
- 1つのパネルには、1つの*Messageのみを使用できます。
- メッセージは1行で表示されます。メッセージを複数行に分けてダイアログに表示するには、/nを使用します。
ウィザードには複数のBeginPanelブロックを含めることができます。終了時に、MotionViewは各パネルで選択されたシステムをインスタンス化します。また、アタッチメントの解決も行います。
ウィザードでの選択内容はモデルファイルにも保存されます。
Task Wizardファイルの作成
- これらのタスクは、1つの*BeginPanel()ブロック内の*BeginTaskGroup()を使用してリストされます。
- *if-elseif-else-endifブロックを使用し、モデルまたはシステムの選択内容に基づいてタスクグループをカスタマイズします。このifブロックを*BeginTaskGroup()内で使用してタスクをカスタマイズすることもできます。
図 20. Task Wizardのステートメントとダイアログのマッピング
- 各タスクは、定義ファイル(mdl)内のアナリシス定義を参照する*BeginTask()ブロックを使用して定義されます。アナリシスへのアタッチメントも、このブロックの引数として渡されます。
- *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リボンの | ダイアログに表示され、自動実行レポートをプロットできます。
- User/Custom library – AssemblyリボンにあるWizardグループの
Settingsダイアログ内。
図 22. ウィザードの設定
この方法では、1つのライブラリのみを登録できます。
- Using Preference file statements
プリファレンスファイル(*.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をご参照ください。