ブロックを積みながら(213) OpenModelica アニメーション表示

Joseph Halfmoon

前回、何年かぶりかでOpenModelicaを再インストール。OMEditでデモのダイアグラムをロード、シミュレーション実行、結果をグラフ表示できることを確かめました。そういえばOMEditで3Dアニメーション表示も出来たような。アニメーションウインドウは開いたけれどもオブジェを真ん中に表示するのはどしたら良いの?

※「ブロックを積みながら」投稿順 index はこちら

※動作確認にはWindows 11の パソコン(64bit)上にインストールした、The Open Source Modelica Consortium(OSMC)様の以下のバージョンを使用させていただいてます。(なお、ModelicaはModelica Association様の登録商標です。)

Openmodelica v.1.25.1  (Official Release版)

OpenModelicaでの3Dアニメーション

過去回で、長いこと練習してきたScilab/Xcosでもシミュレーション結果の「3Dアニメーション」的なものは実現可能でした。しかし、アニメーション表示のために地道な「モデリング」が都度必要。根気のない(老い先短い)年寄の気力の及ぶところではありませぬ。

しかし、OpenModelicaのライブラリの中には、アニメーション対応のコンポーネントなどが最初から含まれているので、「テキトー」にダイアグラムを構築すれば、ボタン一発でアニメーション化できるものが含まれているみたい。ただし使い方がサッパリです。OpenModelicaのドキュメントは充実しているけれども、ページが多過ぎても読み切れないので無いのと一緒?大丈夫か自分?そこで、例によってGoogleの生成AI、Gemini 2.5 Flash様にお教えいただきましたぞ。geminiModelicaAnim

ということで、Modelica Standard Library(MSL)の中から以下のMultiBodyライブラリを漁ってみることにいたしました。在処はココね。MechanicsLib

MutiBodyライブラリのアイコンをみやれば、どうみても振り子デス。そこでMultiBodyライブラリの「充実した」Examplesの中から振り子を探してみました。Pendulum

上のようにExamplesの中でもエレメンタリな奴の中にPendulumがありました。ダイアグラムの右の青色のところが振り子の重り部分みたい。真ん中が支点相当のもので、そこには振動を減衰させるダンパもついているらしいっす。アニメーション付きでシミュレションするには4つ並んだ右矢印(シミュレーション実行)ボタンのうち、一番右のアイコン(赤矢印のやつ)を押すと。

するとしばらくあって以下のような画面が現れます。pentulum0

確かにアニメーションっぽいウインドウが現れたけれども肝心の振り子が見えてません。「ブツ」を真ん中に見たいのだけれどもどしたら良いの?

アニメーション画面の操作

ドキュメントも読んでいない素人老人が試行錯誤した結果たどり着いた操作方法が以下です。

    • mouse wheel あるいは mouse右ボタン押しながらドラッグでズーム
    • mouse左ボタン押しながらドラッグで回転
    • CTRLキー押しながらmouse左ボタンで並行移動
上記の操作により、振り子の全貌が見えてくる様子が以下にAnimWin

なお、他にもいろいろボタンがあり、通常のプロット(グラフ表示)とアニメーション表示を切り替えたりするのにお役立ちのものなどが以下に。AnimationMainEC

また、視点の角度については以下の4つの初期位置がとれるみたいです。

    • Front … x軸方向
    • Top … y軸方向
    • Side … z軸方向
    • Isometric … x, y, z の中間の斜め上(等角投影、3D空間のXYZ軸を120度で交わるように投影)
デフォルトだとSide設定になっているみたい。それと左右に90度づつローテーションできるので、これを使えば左ボタン押しながらマウス操作で微妙な角度にしなくてもよいかも。ちなみにIsometric設定にするとこんな感じ。

Isometicなお、重力加速度方向の緑の矢印とか、X、Y、Z軸の矢印の設定とかは、「World」というコンポーネント内で設定されていました。

まあ、振り子が振動するところはアニメーション表示できたみたい。

ブロックを積みながら(212) OpenModelica インストール再び へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です