Passenger Bird
On-going

VEXIS-CAE

メンブレンキーボード用のラバードーム専用非線形解析ソフトウェア

自作Software CAE 非線形解析 ヘキサメッシュ
VEXIS-CAE

Trigger

既存の非線形CAEは非常に難解で、自動化や高速化に追加ライセンスが必要

Approach

OSSソルバーをコアに、プリプロセッサとポストプロセッサを自作することで解析精度は担保しつつ柔軟に専用設計化する

Goal

大量のSTEPをフォルダへドラッグアンドドロップして、開始ボタンを押すだけで全て自動で解析できるソフトウェアの開発

Overview

VEXIS-CAEは、メンブレンキーボード用のラバードーム専用非線形解析ソフトウェアです。
プリプロセッサはFElupeとGmshをベースに自作、ソルバーはFEBio4.0をPython経由で使用、ポストプロセッサはMatplotlibをベースに自作しています。
所定のフォルダにラバードームのジオメトリ(STEP)をドラッグアンドドロップで配置して解析開始ボタンを押すだけで、ヘキサメッシュ生成から解析ケースへの統合、解析結果のグラフ化・3Dコンター可視化までを完全自動で行います。
使い方が非常に簡単なため、解析専任者ではなく設計者自身が解析を実行でき、自動化によって夜間の無人解析もサポートします。それによって設計形状の自由で幅広い探索を実現できます。

ソフトウェア開発の経験がまったくなかったため、ChatGPT/Geminiと二人三脚での開発になりました。

Architecture

graph TD A[Geometry .step] --> B[Gmsh quad mesh generation] B --> C[Revolve 2D mesh to 3D mesh .vtk] C --> D[Integrate 3D mesh to FEBio template analysis model .feb] D --> E[Parse analysis result.xplt] E --> F[Processing and extract result to .csv]

Timeline

Phase 0

”こうすればラバードームの座屈反力解析を自動化出来そう”と思いつく。Chat GPTと相談し使うライブラリなどを選定していく。

Phase 1

ヘキサ構造化メッシュではジオメトリへの再現性が低いため、準構造化矩形メッシュを回転押し出しする方針を決める。Gmshの回転押し出しにバグがあったため、FElupeを部分的に使用して解決する。
CLIベースのプロトタイプとして、メッシュ生成機能だけをまず作り、そこから解析プロセス順に機能を開発していく。
メッシュ生成では回転押し出しの中心軸周辺で要素が縮退することを防ぐため、O-grid法を使って中心のみスイープするアルゴリズムを実装し解決。
FEBio解析テンプレートへの統合では、ラバードームの形状や寸法が変わっても接触定義を破綻させずに柔軟に再定義するよう、メッシュ要素の法線方向に着目してアルゴリズムを考案し解決。

Phase 2

Google Antigravityがリリースされたため、開発環境を移行してGithubの使い方を覚えてリポジトリ上で開発するようになる。
Version 0.4まで開発が進み、CLIで主要機能の実装が完了する。

Phase 3

GUIを設計し、CLIの機能をGUIに統合する。ロゴとソフトウェアの名前を考える。
Versionを1.0とし、リポジトリを公開する。

Phase 4

チームへ配布し、フィードバックを得る。バグを潰していく。 Versionを1.0から順次アップしていき、ソフトウェアを洗練させる。

Dev Continues...

Future

今後は、下記機能の実装を予定しています。
1. 解析結果の分析
CSVグラフからF-Sカーブの山や谷、クリック率やその他感触設計に必要なパラメータを計算して、まとめて出力する機能。
2. 解析条件の決定支援
実験計画法ベースで”解析で振るべき設計変数”を決定し、最小の解析ケースで最大の結果を得る。
3. ラバードーム自体の設計支援
CATIAスクリプトを外部から呼び出して、あらかじめリスト化された寸法値にジオメトリを編集しSTEPで保存することで解析ケースのもととなるSTEPデータを作成する機能。