解析の途中でジョイントを無効にする

Kosuke_IKEDA
Kosuke_IKEDA
Altair Employee

解析の途中にジョイントを無効にし、引き続き解析を続ける方法を紹介します。

たとえば、動画の最初に示しますように、ボールを放り投げるような解析が行えます。

MotionViewのtemplateエンティティを使い、MotionSolveの入力ファイルであるxmlファイルに直接コマンドを追加します。

他、Sensorエンティティの使い方も紹介します。

本機能を使うことで、様々なシミュレーションが行えますので、是非ご活用ください。

動画で使用したモデルはこちらです。

使用製品:Altair MotionSolve/MotionView

よくあるエンジニアからの質問はこちら

 

Answers

  • Kosuke_IKEDA
    Kosuke_IKEDA
    Altair Employee
    edited May 2023

    続きです。

    Sensorエンティティを用いて、振り子が真下に来たときに、ジョイントを切り離します。

  • Kosuke_IKEDA
    Kosuke_IKEDA
    Altair Employee
    edited April 2022

    Sensorが起動した時刻を保存する手順を紹介します。

    SensorエンティティにEvaluation expressionを追加します。Expressionは`time`とします。

    これで、センサ起動時にこの式が評価され、センサ起動時のtimeが記録されます。

    image

    ただし、このセンサはこの後すぐにdeactivateで無効化されるため、別途solver variableを定義し、ここにセンサの値を保存しておきます。

    image

    image

    出力でこのsolver variableの値を確認してみましょう。

    無事センサ起動後にセンサ起動時の時刻の値が保持されました。

    image

  • S O
    S O Altair Community Member
    edited November 2023

    お世話になります。

    本記事の振り子を例に質問させていただきます。

    途中で切り離して落下する球を、ある時刻の相対位置関係のままFixed Jointで再度固定して、解析を続ける方法はあるでしょうか。↓

    image

    始めに振り子と球のFixed Jointを設定しておき、スクリプトシミュレーションでDeactiveにしてから解析を実行⇒途中でFixed JointをActiveにしても、初めの相対位置関係に戻ってしまいます。↓

    image

    ↓JointのOriginの設定を上手く使えれば実現できるかと思い、試行錯誤してみましたが上手くいかず...

    image

    何か方法があればご教授いただけるとありがたいです。