MSolve API

MotionSolveのPythonインターフェースについて

MotionSolveで使用するために開発されたPythonインターフェースがあります。これは、Pythonで記述したMotionSolveがライブラリとして用意されているということです。明確に定義された一連のPythonの関数、プロトコル、およびツールを通じて、MotionSolveのすべての機能にアクセスできます。NumPyやMatplotlibなどのライブラリにアクセスする場合とまったく同様に、PythonからMotionSolveの機能にアクセスできます。このインターフェースが使用可能になったことで、MotionSolveを操作する方法が根本的に変わっています。

Python環境でMotionSolveを使用するために、プログラミングのスキルが必要になることはありません。これまでと同様、MotionSolveで解析するモデルを用意できます。さらに、MotionSolveを使用してプログラミングし、独自のソリューションを作成することもできます。

従来からMotionSolveはブラックボックスでした。MotionSolveと通信する手段は、下の図に示すXMLの入力ファイルとユーザーサブルーチンのみでした。



図 1. MotionSolveを操作するための現在のパラダイムはきわめてバッチ指向

Pythonインターフェースは、これまでの操作方法を主に4つの方法で変革します。

  • MotionSolveへの入力はPythonコマンド群です。これらのコマンドは、スクリプトやPython関数、クラスに都合よくまとめられ、再利用できます。
  • 標準のPythonを使用して、MotionSolveの中核機能を拡張できます。このため、MotionSolveを従来よりはるかに容易にカスタマイズできます。
  • モデルの入力ファイル、コマンド、およびユーザーサブルーチンの間の区別はなくなります。これらはすべてMotionSolveへの入力となります。一部の入力はシミュレーション前に処理され、他の入力はシミュレーション中に処理されます。これら3つはすべて同じ言語を使用して表現されます。
  • Pythonとそのアプリケーションライブラリで使用できるさまざまな機能をMotionSolveの機能と容易に統合して、オープンで拡張性に優れ、きわめて高機能なマルチボディシミュレーション機能群を用意できます。


図 2. 新しいパラダイムではきわめて柔軟にMotionSolveの操作が可能

新しいパラダイムを使用することは必須ではありません。旧来のパラダイムは現在でも有効であり、完全にサポートされています。希望に応じてこちらを使用し続けることもできます。

Pythonインターフェースのユーザー

Pythonインターフェースは、次の4つのユーザーグループで使用されます。

  • エンドユーザー: MotionSolveを使用したプログラミングを扱うことを特に考えていないユーザーです。これまでと同様にMotionSolveで入力デックを提供できるので、目的とする解がMotionSolveによって生成されます。MotionSolveは完全な後方互換性を備えているため、以前とまったく同じように機能します。
  • 上級ユーザー: 自身のニーズを満たすようにMotionSolveをカスタマイズできます。新しいモデリング要素の作成、複合エンティティの開発、カスタム結果の計算、それらの結果に対するポスト処理などの各種操作を、すべてPythonの機能を活用して実行できます。
  • MotionView開発者: Pythonインターフェースを使用して、マルチボディシミュレーションに対応したインタラクティブなユーザー環境を作成できます。ソルバーをモデル構築フェーズに統合できます。
  • サードパーティ開発者:Pythonインターフェースを使用して、挙動の物理特性がわかっているアプリケーション固有のオブジェクトを作成できます。MotionSolveとの通信は、これらの高度なオブジェクトを使用して実行できます。

このインターフェースの構成要素

MotionSolveのPythonインターフェースは以下で構成されています:
  • 新しいオブジェクト指向の、MotionSolveのPythonインターフェース
  • このインターフェースのリファレンスドキュメント一式
  • このインターフェースの使用法を示す多くの例
  • ウェビナー形式のトレーニング、有用な情報が記載された専用のConfluenceページ、および1対1のサポート