Skip to content

EMSolution-SSIL/ems_file_format_converter

Repository files navigation

EMS File Format Converter

このリポジトリは、CAE向けメッシュ/ポストデータの簡易コンバータです。サイエンスソリューションズ社(Science Solutions International Laboratory, Inc.; SSIL)の電磁界解析ソフトウェア「EMSolution」で用いるATLASテキストファイルフォーマット(.atl)、I‑DEAS Universal file format(.unv)、Femap Neutral file format(.neu)の読み書きに対応し、IDや物性番号などのメタデータのラウンドトリップ保存を重視しています。

特長

  • 対応フォーマット: ATLAS(メッシュ・ポスト)、UNV(メッシュ・ポスト)、Femap NEU(メッシュ・ポスト)
  • メタデータ保持: Node ID、Element ID、物性番号(iprop)を可能な限り保持
  • CLI: 単一のCLIから変換・ポスト入出力が可能
  • ユニバーサルパッケージ: OS依存のネイティブ拡張を含まない pure Python パッケージ
  • テスト/CI: pytest 完備、GitHub Actionsで ubuntu-latest / windows-latest の手動CI実行に対応
  • PyPI公開: GitHub Actionsから手動でPyPI公開可能

インストール

事前にPython 3.10以上が必要です。

PyPI からインストールできます。

pip install ems-file-format-converter

Releaseに添付したwhl(Wheel)ファイルからのインストール、またはローカルビルドも可能です。

# 例: ダウンロードしたWHLをインストール
pip install --force-reinstall path\to\ems_file_format_converter-0.1.0-py3-none-any.whl

# ソースからビルドしてWHL作成 → インストール
python -m build
pip install --force-reinstall dist/ems_file_format_converter-0.1.0-py3-none-any.whl

使い方(CLI)

メッシュ変換(入力は拡張子で自動判別、出力形式は拡張子で判別):

ems-file-format-converter mesh_sample.atl out.unv
ems-file-format-converter sample_mesh.unv out.atl

形式を明示的に指定する場合:

ems-file-format-converter mesh_sample.dat out.unv --informat atl --outformat unv

ポストデータの読み書き(モード指定: components|scalar|vector|vector+scalar):

ems-file-format-converter --post-in post_sample.atl --post-out rt_post.atl --post-mode components

--post-mode の意味:

  • components(デフォルト): すべての成分(component1..N)をそのまま出力(部分的に切り捨てない)
  • scalar: component1 のみ出力
  • vector: component1..3 を出力(不足分は 0)
  • vector+scalar: component1..4 を出力(不足分は 0)

対応拡張子:

  • ATLAS: .atl
  • UNV: .unv
  • Femap Neutral: .neu

Python API(例)

from ems_file_format_converter import atlas
mesh = atlas.read_mesh("sample/mesh_sample.atl")
atlas.write_mesh("out.atl", mesh)

steps = atlas.read_post("sample/post_sample.atl")
atlas.write_post("out_post.atl", steps, mode="components")

UNVやFemap NEUも同様に ems_file_format_converter.unv / ems_file_format_converter.femap のモジュールを利用できます。

テスト

pytest -q

GitHub Actions ワークフロー

GitHub Actions の CI and Publish ワークフローは手動実行専用です。pushpull_request では起動しません。

  • GitHub の Actions タブから CI and Publish を選び、Run workflow を実行します。
  • 通常のCI確認では publish_to_pypifalse にします。
  • この場合、ubuntu-latestwindows-latest の両方でテストと python -m build によるビルド確認を行います。
  • 本パッケージはユニバーサルな pure Python パッケージのため、OSごとに別配布物を作るのではなく、互換性確認のために複数OSで検証しています。
  • 配布物(sdistpy3-none-any wheel)はUbuntu上で1回だけ生成し、twine check を実行します。

PyPI 公開

PyPI公開も同じワークフローから手動で行います。

  • あらかじめ v0.5.1 のような v*.*.* 形式のGitタグを作成しておきます。
  • Run workflow 実行時は通常どおりデフォルトブランチから起動します。
  • publish_to_pypitrue にし、release_tagv0.5.1 のようなタグ名を入力して実行します。
  • ワークフローはそのタグをチェックアウトしてビルドし、ビルド済み配布物をPyPIへ公開します。
  • 公開にはPyPI側で GitHub Actions Trusted Publishing の設定が必要です。

ライセンス

MITライセンスです。LICENSE を参照してください。

英語版README

英語版は README_en.md を参照してください。

About

CAE file format converter

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages