こんにちは(@t_kun_kamakiri)
Altairのサイトにこれまで商用利用としていたRadiossを2022年9月からオープンソース化するという内容の記事が投稿されていました。RadiossといえばLS-DYNAやPAM-Crashなどと並ぶAltairの衝突系(衝撃解析)の解析ソフトのイメージが強いですが、それが無償で使えるようになったというのはなかなかの衝撃でした。
リリースから2年経って、OpenRadiossを使いやすくするためのツールが出てきました。
ツールや解析設定の例題集を下記の記事にまとめています。
ぜひどうぞ。
本記事は、inpファイルからradioss形式への変換プログラムの紹介です。
- OpenRadiossをこれから使いたい人
- OpenRadiossでパート分けと節点グループ分けをしたい人
- PrePoMaxを使用してinpファイルからradioss形式への変換プログラムを試している人
定期的にgithubを確認していますがToolsフォルダにinp2radというのができていました(2024年12月時点)
前回の記事ではinpファイルからradioss形式への変換を行う設定方法を紹介しました。
本記事ではPrePoMaxを使用してinpファイルからradiossファイルへ変換する方法を利用してパート分けと節点グループの設定方法を紹介をします。
環境:WSL2のUbuntu 22.04.5 LTS(※Windows環境もできますのでgithubを参照ください)
PrePoMaxでのinpファイルの設定
inpファイルはPrePoMaxで設定します。
PrePoMaxはcalculixを設定するGUIでinpファイルを形式として出力することができる便利なツールです。
※FreeCADでも同じことができます。
まずはPrePoMaxを起動して、単位系などを指定します。
そしてPrePoMaxをダウンロードした際に同封されている適当なモデルをインポートします。今回は
Valve_assm.STEP
ファイルをインポートします。
インポートするとモデルが表示されます。
SOLIDモデルが25個に分かれています。
Mesh > Mesh Setup Item > Create
よりメッシュの設定項目を開きます。
メッシュサイズは自動で決めてくれるのでこのままで良いでしょう。
メッシュが作成できたらinpファイルとしては
*NODE
と*ELEMENT
が設定されています。
実はこれだけでは前回の記事で紹介したinp2radコマンドではinpファイルからradiossへの変換は上手く行きませんでした。
必ず以下の設定が必要です。
- *NODE
- *ELEMENT
- *MAT
- *PROPERTY
MATの設定
MATの設定はとりあえず適当に設定します。
SECTION(PROPERTY)の設定
こちらは少々面倒ですがSolid Sectionに上で設定したMATとSolid Partを割り当てていきます。この操作がのちのradioss形式でのパート分けにあたる大事な設定です。
Node Setの設定
ついでに節点グループも行っておきましょう。
今回は適当な節点グループを選択します。
OpenRadiossでGUIがない場合に、グループを設定するのが面倒だったのでGUIがあると助かりますね。OpenRadiossにはパート分け内の節点をまとめてグループにする設定はあるのですが、節点グループを選択するのはGUIがないとできなかったりして、面倒だったのがこれで楽に設定ができます。
inpファイルとして出力してファイルを確認してみましょう。
inp2radでinpファイルをradiossへ変換
変換方法は前回の記事に書いています。
try構文(例外処理)の不満
ここは少々愚痴ですが公開されている変換コードのtry構文のあまりよくない使い方をしていました。
それは以下のように想定しない使われ方をした場合に例外処理としてコードをストップさせないようにtry~except
文を使う場面があるのですが、
1 2 3 4 |
try: 例外処理が発生するかもしれない処理 except Exception: # 例外が発生した場合の処理 pass |
このように書いてしまうといかなるエラーもpass
されてしまいます。
それと同じでこの投稿のように、
とりあえずtry構文を消した
これでいいやん pic.twitter.com/2K1FkONcAx— カマキリ🐲CAE頑張る (@t_kun_kamakiri) March 1, 2025
1 2 3 4 5 6 7 8 9 10 11 12 13 |
try: # code # code # code return output_done except Exception as e: # Log the error and return failure print("------------------------------------------------------------") print(f"Error in inp2rad: {e}") return False |
エラーが起こった際にError in inp2rad: {e}
しか返ってこず何のことかわかりません。この書き方はいただけないのでissueに挙げました。
try構文を外してエラーの原因がわかりました。
それは先ほど書いたようにinpファイルの時点で最低限、以下が必要だったということです。
- *NODE
- *ELEMENT
- *MAT
- *PROPERTY
*NODE
と*ELEMENT
だけで良いかなと思ってinp2radを行うとエラーが生じました。
変換されたファイルは.rad問いファイルになるので、LS-PrePostなどで読み込むことができます。
無事パート分けで来ていますね。
あとNode Setもできています。
まとめ
PrePoMaxを使用し、パート分けや節点グループ設定を行う方法を解説しました。変換には*NODE
、*ELEMENT
、*MAT
、*PROPERTY
の設定が必須です。
ついでに、try構文の問題点も指摘しissueに挙げておきました。
これからPrePoMaxをOpenRadiossへの変換用の中間ソフトとしてうまく利用していきたいと思います。
資格対策用のアプリのリリース
技術系の資格対策のアプリをリリースしました。
- 資格レベルの問題
- ランダムな出題設定
- ブックマーク機能
- AI診断
- アクティブカレンダー
- AI Chat機能
- 単語集との連携
フラッシュカードで手軽に問題演習
など使いやすいアプリになっています。
技術士(機械部門)
技術士1次試験(機械部門)対策アプリをリリースしました。
- 下記をクリックしてホームページでダウンロードできます。
- LINE公式に登録すると無料で問題の一部を閲覧できます。
計算力学技術者(2級)
計算力学技術者固体力学2級対策アプリをリリースしました。
- 下記をクリックしてホームページでダウンロードできます。
- LINE公式に登録すると無料で問題の一部を閲覧できます。
- 計算力学技術者の問題アプリ作成
リリース後も試行錯誤をしながら改善に努め日々アップデートしています。
備忘録として作成の過程を綴っています。 - QUALIY
その他の資格対策のアプリもリリースしています。