堅牢なワークフロー – SpaceClaimスクリプトとANSYS Mechanicalの使用

AnsysのSpaceClaim/Discoveryスクリプトは、3Dモデリングおよび形状編集ソフトウェアであるAnsys SpaceClaim/Discoveryの幾何学的操作を自動化およびカスタマイズするためのスクリプトです。スクリプトを使用することで、より効率的かつロバストに形状を作成、修正、操作することができます。これらのスクリプトをANSYS Mechanicalと組み合わせることで、ジオメトリ作成プロセスを効率化し、エラーのない一貫したモデル生成を実現することで、プロジェクト全体のロバスト性を高めることができます。モデルの生成後は、既存のMechanicalワークフローに簡単にリンクして、モデルのロバスト性を高めることができます!

SpaceClaimとDiscoveryは、Ansysが提供する2つの異なるCADツールです。Discovery は新しいツールで、SpaceClaim と同じ機能をすべて使用しています。これらのスクリプト機能は、もともと SpaceClaim 用に開発されたものですが、Discovery にも統合されています。

ここでは、SpaceClaim/Discovery スクリプトがロバストなジオメトリ処理にどのように貢献し、ANSYS Mechanical をどのように補完するかをご紹介します:

  1. 自動化と繰り返し SpaceClaim/Discoveryのスクリプトは、反復タスクとジオメトリ操作を自動化し、ジオメトリの作成や修正時に発生する可能性のある手動エラーの可能性を低減します。この自動化により、ジオメトリ生成プロセスの一貫性とロバスト性が保証されます。
  2. カスタマイズ スクリプトを特定のプロジェクト要件に合わせてカスタマイズできるため、ユーザーはジオメトリ操作用のカスタムツールやワークフローを作成できます。このカスタマイズにより、エンジニアは複雑なジオメトリの課題に効果的に対処できます。
  3. パラメータ化: SpaceClaim/Discoveryスクリプトは、形状フィーチャーのパラメータ化に使用することができます。このパラメータ化により、ジオメトリの迅速な修正が可能になり、プロジェクトの柔軟性とロバスト性が向上します。
  4. 品質管理 スクリプトを使用すると、ジオメトリの品質管理チェックを実施できます。例えば、特定の設計制約や公差が満たされていることを確認でき、設計プロセスのロバスト性に貢献します。
  5. Ansys Mechanicalとの統合: SpaceClaim/Discoveryスクリプトは、ANSYS Mechanicalとシームレスに統合できます。この統合により、構造解析、熱解析、その他の解析に使用できる複雑で最適化された形状を自動生成できます。ジオメトリの準備段階を自動化することで、ジオメトリをANSYS Mechanicalに転送する際のエラーや不一致の可能性を減らすことができます。
  6. パラメトリック・スタディ SpaceClaim/DiscoveryスクリプトをANSYS Mechanicalと組み合わせることで、形状を素早く変更し、さまざまな設計案を評価することができるため、パラメトリック・スタディが容易になります。この機能は、設計を最適化し、さまざまな条件下でロバストな性能を確保するために役立ちます。

SpaceClaim/DiscoveryのスクリプティングはIronPythonをベースにしています。したがって、IronPython のモジュールと互換性があります。しかし、SpaceClaim/Discoveryスクリプトを始める前にPythonのエキスパートである必要はありません!これはスクリプトツールの “record “機能によるものです。記録 “機能により、GUI 内で完了した特定のアクションを記録することができます。たとえば、XY平面上で長方形をスケッチし、押し出した場合、レコーダーをオンにすると、これらのアクションのコマンドが自動的にエディタに書き出されます!これは選択ロジックや操作などを理解するのに役立ちます。これらの記録されたコマンドは、スクリプトをより堅牢にするために編集することもできます。記録されたスクリプトを調整する前に、ワークフローを理解するためにPythonの基本を復習することをお勧めします。いくつかの基本は以下の画像に記載されていますが、このブログの最後には、より多くの参考資料が提供されています!

SpaceClaim/Discoveryスクリプトでエンティティを選択するには3つの方法があります。

  1. スマート変数(デフォルト)
    • スクリプトを再生する際に、選択を持続させるために他の方法を組み合わせます。
    • 他のどのタイプよりも多くの情報を保存し、ジオメトリの変更時に選択されたエンティティをマッチさせるのに非常に堅牢です。
    • スマート変数を使用するには、スクリプトを .scscript ファイルとして保存する必要があります(.py ファイルではありません)。スマート変数はバックグラウンドで作成されるオブジェクトで、選択されたアイテムに関する多くのメタデータを含んでいます。このデータは .scscript ファイルに保存されますが、.py ファイルでは失われます。
    • Selection.Create(顔1)
  2. インデックス(身体/子供階層) -> 優先オプション
    • 選択された各エンティティの内部インデックス。
    • Selection.Create(GetRootPart().ボディ)[0].Faces[3])
  3. レイ(位置情報)
    • 内部のレイの発射点と方向。STL ファイルを使用する場合に便利です。
    • Selection.Create(RayFire.Fire(Point.Create(MM(230),MM(260),MM(407)),Direction.Create(-0.4,-0.5,-0.75), 0.0001,0.0005()[1])

上記のすべての例は、以下の単純な表面を選択するために使用されます。

スクリプトを使用してCADモデルを生成したら、それをMechanicalにインポートする必要があります。その際、ジオメトリが変更されると、境界条件やメッシュ制御の多くが無効になることがあります。これを避けるために、名前付き選択を使用します。名前付き選択とは、有限要素モデル内のエンティティ(節点、要素、サーフェスなど)をユーザー定義でグループ化したもので、境界条件や荷重を簡単に参照、適用できるように特定の名前が割り当てられています。Mechanicalでは、2つの方法で定義することができます:名前付き選択範囲を作成したいエンティティを手動で選択する方法と、ワークシート機能を使用する方法です。ワークシートを使用するには、名前付き選択範囲を挿入し、詳細の “スコープ方法 “を “ジオメトリ “から “ワークシート “に変更します。

オプションをワークシートに変更したら、ワークシートセクションで選択基準を入力する必要があります。選択基準は、選択したいエンティティ(面、ボディ、エッジなど)を決定するために使用できます。これらのエンティティは、サイズ、位置、距離、その他の基準でフィルタリングできます。また、異なる条件を組み合わせて、他のエンティティを含める(または除外する)こともできます。下の例では、サイズ基準を使用して、下図のように円柱の上面を選択しています。ただし、同じサイズなので、サイズ基準だけでは上面と底面の両方が選択されます。底面を選択範囲から外すために、ワークシートに「Remove」関数を追加し、Y=1 mm以下の面をすべて削除しました(底面の円柱表面はY=0 mmにあることに注意してください)。この2つの条件を定義することで、下図のように上面だけを絞り込むことができます。ここでのアイデアは、異なるフィーチャーが特定のサイズや形状の範囲にあると予想される場合、名前付き選択定義でそれらを考慮できるということです。そうすれば、SpaceClaim/Discoveryスクリプトを使ってモデルを調整するとき、同じエンティティが各反復の間で選択されます。

すべての名前付き選択範囲を生成したら、手動で選択基準を使う代わりに、境界条件とメッシュコントロールを定義するのに使うことができます。これを行うには、境界条件やメッシュコントロールの “Scoping Method “に移動し、”Named Selection “に変更します。次に、それぞれの境界条件に適用する名前付き選択を選択します。名前付き選択は、モデルのさまざまなサイズや形状を考慮するように設定されているので、定義した基準に基づいて毎回自動的に更新されます。一度更新されると、それらの名前付き選択項目は、境界条件にも自動的に適用されます!つまり、ジオメトリを調整するたびにすべてを選択し直す手間が省けます。モデルが更新されたら、CADモデルの材料定義が正しいことを確認し、実行するだけです!

このプロセスのより詳細な例は、当社のYouTubeチャンネルでご覧いただけます(下記参照)。

http://www.python.org/
– Python ダウンロード すべてのフォーマット
– チュートリアルとドキュメント

https://github.com/IronLanguages/iron…
– IronPython studioは、プロジェクトを管理し、ネイティブのウィンドウズフォームを使用して開発することができる無料のMicrosoft SDKです。

http://www.tutorialspoint.com/python/…

フリーブック – http://greenteapress.com/thinkpython/…

おすすめの本
– Pythonの学習 マーク・ルッツ、デビッド・アッシャー著
– Pythonポケットリファレンス by Mark Lutz
– IronPython in Action by Michael J.Ford and Christian Muirhead – Iron Pythonを使って.NETフレームワークを活用したい人へ。