Slide 1

Slide 1 text

2020年8月22日 数値シミュレーションのためのパラメトリックモデリング SalomeのShaperモジュールを使ってみた! 第79回オープンCAE勉強会@関西 龍野 潤(@Jun_Tatsuno)

Slide 2

Slide 2 text

目次 1 Salomeとは 2 1.1 Salomeの主な機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Salomeで何ができるのか? . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Salomeオンライン リソース . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 現在のGeomモジュール 5 3 Shaperモジュールとは 6 3.1 Shaperモジュールプロジェクトの概要 . . . . . . . . . . . . . . . . . . . . 6 3.2 Salomeの新しいCADモデラー . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 ShaperモジュールのGUIレイアウト . . . . . . . . . . . . . . . . . . . . . 8 3.4 Shaperモジュールのモデリング手順 . . . . . . . . . . . . . . . . . . . . . 9 3.5 Shaperモジュールのモデリング機能 . . . . . . . . . . . . . . . . . . . . . 10 4 Shaperモジュールのチュートリアル 11 5 そして、Geomモジュールについては? 37 1

Slide 3

Slide 3 text

1 Salomeとは • Salome*1は、数値シミュレーションのための汎用的なプリ・ポスト処理プラットフォーム を提供するオープンソースのソフトウェアです。 • Salomeはクロスプラットフォームのソリューションです。これはGNU LGPLライセンス の条件のもとで配布されています。 • Salomeは、CADモデルの作成、数値計算のための準備、計算結果の後処理のためのスタ ンドアロンのアプリケーションとして使用できます。 *1 Salomeは、 「Simulation Numerique par Architecture Logicielle en Open Source et a Methodologie d’ Evolution」の頭字語であり、 「オープンソース・ソフトウェア・アーキテクチャによる方法論的進化を伴う 数値シミュレーション」と、そのまま訳せます。 2

Slide 4

Slide 4 text

1.1 Salomeの主な機能 • CADモデリングと計算ソフト(CAD-CAEリンク)の相互運用性をサポートします。 • 数値計算の異種構成要素への新規コンポーネントの統合を容易にします。 • 計算ソフトウェア間のマルチフィジックス結合に優先度を設定します。 • 汎用的でユーザーフレンドリーで効率的なユーザーインタフェースを提供し、スタディ実 施のコストと遅延の低減に貢献します。 • 統合されたPythonコンソールを介して、すべての機能にアクセスできます。 1.2 Salomeで何ができるのか? • CADモデルの作成、修正、インポートおよびエクスポート(IGES、STEP、BREP…) 、修 復およびクリーンアップ • CADモデルのメッシュ生成、メッシュの編集、メッシュ品質のチェック、メッシュデータ のインポートとエクスポート(MED、UNV、DAT、STL…) • 幾何学的なアイテムにアタッチされた物理プロパティと数量を扱うことができます。 • 1つ以上の外部ソルバー(結合)を使用して計算を実行します • 計算結果の表示(スカラー、ベクトルデータ) • スタディの管理(作成、保存、再読み込み…) 3

Slide 5

Slide 5 text

1.3 Salomeオンライン リソース • オフィシャルサイト ◦ https://www.Salome-platform.org/ • 最新のリリースバージョン ◦ https://www.Salome-platform.org/downloads/current-version • Salomeドキュメント ◦ https://www.Salome-platform.org/user-section/documentation/current- release/current-release-gui • Salomeチュートリアル:Geometry、Smesh、表示機能のチュートリアル ◦ https://www.salome-platform.org/user-section/salome-tutorials/copy_of_salome- tutorial • Video Tutorials:Open Cascadeの公式YouTubeチャンネル ◦ https://www.youtube.com/playlist?list=PLgvBxFyGVRbZZz4wVvP36xXQL- S81RZsc&disable_polymer=true • Learn Salome channel:Shaperモジュールの機能紹介とチュートリアルが豊富な YouTubeチャンネル ◦ https://www.youtube.com/channel/UCm7CSP3v1VF6brzmTlV9c3Q • Salome Tutoriels channel:Salomeの公式YouTubeチャンネル、Salomeの紹介、ParaVis、 Shaperのチュートリアル ◦ https://www.youtube.com/channel/UCokrSqnpG3sLXkagZwUmuXg 4

Slide 6

Slide 6 text

2 現在のGeomモジュール • 長所: ◦ シンプルなインターフェイス:簡単に学習して簡単な形状を作成可能 ◦ パーティション:メッシュが一致するように共有面を確保 ◦ グループ:メッシュ上での材料と境界条件を容易に定義 ◦ Pythonスクリプト: 簡単な学習 スタディをダンプ 基本的なパラメーター管理:ユーザーはトポロジーの変更に対応が必要 複雑な形状(複雑なスクリプトを使用) • 短所: ◦ GUIで複雑な形状作成が困難 ◦ 形状のパラメーターを編集不可 ◦ エンジン内のパラメーター管理がない ◦ 貧弱な2D-スケッチャー(拘束ソルバーなし) ◦ グループは各操作の後に失われ、再度取得する必要あり ◦ コードのアーキテクチャが陳腐化(新機能の統合にはコストがかかりすぎる) 5

Slide 7

Slide 7 text

3 Shaperモジュールとは 3.1 Shaperモジュールプロジェクトの概要 電気事業者のフランス電力(EDF)と仏原子力・代替エネルギー庁(CEA)が共同出資する 2014年-2018年にわたるプロジェクト 年月 実施事項 2013年 OCCTのパラメトリックAPIを使用するための予備研究 2014年 仕様、最初の機能、アーキテクチャの検証 2015年 工業的な形状を作るための新機能 2016年 2Dスケッチからの3Dパーツ構築 スケッチャーの改良と拘束ソルバーPlaneGCS(FreeCADから)の 統合 Pythonスクリプト(高レベルAPI)の実装とダンプ機能の実装 軸、平面の作成 2018年05月 Salome 9.3.0リリース(エンドユーザーへの最初の配信) 2019年12月 Salome 9.4.0リリース 2020年07月 Salome 9.5.0リリース 6

Slide 8

Slide 8 text

3.2 Salomeの新しいCADモデラー • バリエーション: ◦ 寸法と拘束のある対話 式スケッチ(拘束ソル バー) ◦ 技術的な図面同様に記 述 • パラメトリック: ◦ ボトムアップ方式 ◦ 形状の各パラメーター を編集可能 ◦ 最終的な形状は自動的 に更新(ダイナミック アップデート) • シ ミ ュ レ ー シ ョ ン 用 CAD: ◦ 複数次元ジオメトリ- ◦ 形状は適合的にメッシ ュ化するよう設計 (コン フォーマルメッシング) ◦ グループ定義可能 ◦ Pythonスクリプト作成 が可能 スケッチ revolution(回転) メッシュ 7

Slide 9

Slide 9 text

3.3 ShaperモジュールのGUIレイアウト 8

Slide 10

Slide 10 text

3.4 Shaperモジュールのモデリング手順 • ジオメトリのための標準的なCAD構築: ◦ スケッチを構築: すべてのエッジのインタラクティブな定義 拘束(幾何、寸法)の追加 ◦「Extrusion(押し出し) 」 、 「revolution(回転) 」などの フィーチャー作成を繰り返し。 • 複数次元ジオメトリを構築 • ビルディングツリーからフィーチャーを編集 • ヒストリーラインにより、ヒストリー構築のどこにでも 新しいフィーチャーを追加可能 • パラメトリックな構築: ◦ 数値パラメーターのセットを定義 ◦ 各値は式にすることが可能 • C++/Pythonプラグインで新機能を追加 9

Slide 11

Slide 11 text

3.5 Shaperモジュールのモデリング機能 • プリミティブ: ◦ 3D:六面体、球、円柱、円錐、円環 ◦ 0D-1D-2D:頂点、エッジ、3D曲線、3D面、平面 • フィーチャー: ◦ ブーリアン演算:結合、差分、共有領域、スマッシュ、 パーティション ◦ 変換:移動、回転、対称 ◦ パイプ、フィレット ◦ シミュレーションに特化したもの:グループ、フィー ルド • Files(データ交換) : ◦ ビルディングツリー(XML、Python)の保存と読み 込み ◦ 複数フォーマット(STEP、XAOなど)のインポート とエクスポート • Applicative Programming Interface: ◦ パラメトリックAPI(C++、Python) ◦ ジオメトリAPI(C++、Python) 10

Slide 12

Slide 12 text

4 Shaperモジュールのチュートリアル このチュートリアルは、YouTube「Learn Salome channnel」の「SALOME SHAPER pipe flange」を文書化したものです。 「Shaperモジュール」を起動 • 新規ファイルで「Shaperモジュール」を起動します。 *2 新規パーツを作成 • Part Newで新規パーツを作成します。 *2 このチュートリアルはSalome 9.5.0で作成していますので、それ以外のバージョンでは内容が異なる可能性 があります。 11

Slide 13

Slide 13 text

基本形状の断面を作成:スケッチ平面を指定 • Sketch Sketchでスケッチの作成を開始します。 •「sketch」ダイアログで、 「Size of the View」パラメータを「100」に設定します。 • ビューでXOZ平面(緑色)を選択します。 •「sketch」プロパティパネルのSet plane viewボタンをクリックするとスケッチ平面が正面 を向きます。 12

Slide 14

Slide 14 text

基本形状の断面を作成:スケッチ作成 • Sketch Lineでエッジの作成を開始します。 ◦ 下図のように、サイズや垂直性、水平性を気にすることなく、閉じたスケッチを作成し ます。 *3 *3 Salome 9.4.0以降では「Automatic constraints」にチェックを入れると水平、垂直などの幾何拘束条件が 自動追加されます。 13

Slide 15

Slide 15 text

基本形状の断面を作成:幾何拘束(水平、垂直拘束)の追加 • Sketch Horizontalで、水平拘束条件、 • Sketch Verticalで、垂直拘束条件を追加します。 14

Slide 16

Slide 16 text

基本形状の断面を作成:寸法拘束を追加(1/4) • Sketch Distanceで、 寸法拘束条 件を追加します。 ◦ 原点を選択します。 ◦ 内側の垂直方向のエッジを 選択し、 「r_int = 7.88」と 設定します(パラメーターは 「その場」で作成されます) 。 ◦ 再度、原点を選択します。 ◦ 外側の垂直方向のエッジを 選択し、 「r_ext=47.5」と設 定します。 15

Slide 17

Slide 17 text

基本形状の断面を作成:寸法拘束を追加(2/4) • Sketch Lengthで、寸法拘束条件を追加します。 ◦ 内側の垂直方向のエッジを選択し、 「66.5」と設定します。 ◦ 外側の垂直方向のエッジを選択し、 「h=20」と設定します。 ◦ 上端を選択し、 「2.77」と設定します。 16

Slide 18

Slide 18 text

基本形状の断面を作成:寸法拘束を追加(3/4) • Sketch Distanceで、寸法拘束条件を追加します。 ◦ コーナーポイントを選択します。 ◦ OZ軸を選択し、 「19」と設定します ◦ Applyします。 ◦ 点をドラッグ&ドロップして自由度を確認します。 17

Slide 19

Slide 19 text

基本形状の断面を作成:寸法拘束を追加(4/4) • Sketch Lengthで、寸法拘束条件を追加します。 ◦ 外側の垂直方向のエッジを選択します。 ◦「20」と設定します。 ◦ Applyします。 18

Slide 20

Slide 20 text

基本形状の断面を作成:幾何拘束(一致拘束)を追加 • 点を再度ドラッグ&ドロップして自由度を確認します。 • Sketch Coincidentで、一致拘束を追加します。 ◦ 下端の点を選択します。 ◦ OX軸を選択します。 ◦ スケッチが完全拘束(緑色で表示)されています。 ◦ Applyします。 • 自由度は0です。 • スケッチをApplyします。 19

Slide 21

Slide 21 text

回転フィーチャーの作成 • Features Revolutionで、回転形状を作成します。 ◦ スケッチをビューで選択します。 ◦ プロパティパネルの軸フィールドをクリックし、ビューでOZ軸を選択します。 ◦ 角度を「45」度に設定します。 ◦ Applyします。 20

Slide 22

Slide 22 text

パラメーター編集 • パラメーターを編集します。 ◦「h」を「20」から「25」に変 更します。 ◦「r_int」 を 「5」 に設定します。 ◦「r_rxt」を「50」にします。 ◦ 結果をSee Previewでプレビ ュー表示します。 ◦ OK します。 21

Slide 23

Slide 23 text

パラメーター編集後のスケッチ確認 • Skethc_1を編集して新しい値 を確認します。 ◦ パラメーターを表示するに は、 「Show existing expres- sions(既存の式を表示) 」に チェックします。 ◦ チェック解除します。 ◦ Cancelでスケッチを閉じま す。 ◦「Abort operation」 画面でOK します。 22

Slide 24

Slide 24 text

第2形状(軸穴)のスケッチ作成 • Sketch Sketchで新しいスケッ チ作成を開始します。 ◦ ビューで基本形状の上面を 選択します。 ◦ Sketch circleで円を作成しま す。 ◦ 正面のエッジに中心を設定 します。 ◦ 円周位置で再度クリックし て円を定義します。 ◦ Applyします。 23

Slide 25

Slide 25 text

第2形状のスケッチ作成:寸法拘束を追加 • Sketch Distanceで、 中心の位置 を設定するための寸法拘束を 追加します。 ◦ 中央を選択します。 ◦ 外側の点を選択します。 ◦「12.5」と設定します。 • Sketch Radiusで半径寸法拘束 を追加します。 ◦ 円を選択します。 ◦「7」と設定します。 ◦ Applyします。 • スケッチをApplyします。 24

Slide 26

Slide 26 text

押し出しフィーチャーの作成 • Features Extrusionで、 軸穴形状 を押し出しフィーチャで作成 します。 ◦ ビューで円を選択します。 ◦ 2番 目 の 作 成 モ ー ド 「By bounding faces and offsets」 を選択します。 ◦「To」フィールドをクリック します。 ◦ ビューで底面を選択します。 ◦ Applyします。 25

Slide 27

Slide 27 text

Cutフィーチャーの作成 • Features Cutで回転フィーチャーを押し出しフィーチャー(円筒)でカットします。 • 結果のみを表示します。 26

Slide 28

Slide 28 text

Cutフィーチャーの作成前の面をグループ化 • revolution_1の右をダブルクリックすると、ヒストリーラインが移動します • Features Groupでグループフィーチャーを設定します。 ◦ 面をクリックし、正面を選択します。 ◦ グループ名を「Facce_lat」とします。 ◦ Applyします。 27

Slide 29

Slide 29 text

面グループの更新 •「Cut_1」の右をダブルクリックすると、ヒストリーラインが移動します。 • グループフィーチャを選択します。 •「Move to the end」を右クリックします。 • グループはカットされた結果で更新されます。 28

Slide 30

Slide 30 text

面グループの色を変更 • グループを選択します。 • 色を変更します。 • グループには2つの面があることがわかります。 • グループを非表示にします。 29

Slide 31

Slide 31 text

第3形状(ナット)のスケッチ作成 • Sketch Sketchでナットを定義するための新しいスケッチ作成を開始します。 ◦ ビューで基本形状の上面を選択します。 • Sketch Lineで線を作成します。 • Sketch Arcで中心と2点で円弧を作成します。 ◦ その中心を穴の中心に設定します。 ◦ 開始点をエッジの開始点に設定し、端点をエッジ近くに設定します。 • Sketch Coincidentで一 致拘束 を追加します。 ◦ 両端点を選択し、半円にし ます。 • Sketch Radiusで半径寸法拘束 を追加します。 ◦ 円弧を選択し、 「9」と設定し ます。 • スケッチは完全固定されまし たので、スケッチをApplyしま す。 30

Slide 32

Slide 32 text

押し出しフィーチャーの作成 • Features Extrusionで、ナットを作成します。 ◦ ビューで半円を選択します。 ◦ 最初のモード「By sizes」を選択します。 ◦ 最初のフィールド「To size」に「12」と設定します。 ◦ Applyします。 ◦ Extrusion(押し出し)の結果を非表示にします。 31

Slide 33

Slide 33 text

第4形状(ピン)のスケッチ作成 • Sketch Sketchでピンを定義するための新しいスケッチ作成を開始します。 ◦ ビューで基本形状の上面を選択します。 • Sketch Lineで線を作成します。 ◦ Sketch Arcで中心と2点で円弧を作成します。 ◦ その中心を穴の中心に設定します。 ◦ 開始点をエッジの開始点に設定し、端点をエッジの近くに設定します。 • Sketch Coincidentで一 致拘 束 を追加します。 ◦ 両端点を選択し、半円にし ます。 • Sketch Radiusで半径寸法拘束 を追加します。 ◦ 円弧を選択し、 「6」と設定し ます。 • スケッチは完全固定されまし たので、スケッチをApplyしま す。 32

Slide 34

Slide 34 text

押し出しフィーチャーの作成 • Features Extrusionで、ピンを作成します。 ◦ ビューで半円を選択します。 ◦ 最初のフィールド「To size」に「18」と設定します。 ◦ 2番目のフィールド「From size」に「h」と設定します。 ◦ Applyします。 33

Slide 35

Slide 35 text

ソリッド分割の作成 •「Extrusion_2_1」を表示すると、3つのボディが表示されます。 • スケッチを非表示にします。 • Features Partitionで分割フィーチャーを設定します。 ◦ ビューでshiftキーを押しながら、3つの結果を選択します。 ◦ Applyします。 34

Slide 36

Slide 36 text

分割したソリッドをグループ化 • 5つのソリッド(面が共有されています)があるコンプソリッドが1つあります。 • ソリッドグループを次図のように選択し、次のようにグループに名前を付けます。 ◦ flange ◦ nut ◦ pin(ビューでshiftキーを押しながら3つのソリッドを選択) • Applyします。 • 各グループに色をつけます。 35

Slide 37

Slide 37 text

GEOMモジュールにエクスポート • GEOMにエクスポートして形状をメッシュ化できるようにします。 *4 • GEOMモジュールを起動します。 • GEOMで形状とそのグループがインポートされていることを確認します。 *4 Salome 9.5.0ではShaperモジュールで作成した形状、グループの結果をSMESHモジュールでダイレクト に使用可能 36

Slide 38

Slide 38 text

5 そして、Geomモジュールについては? 必要に応じてメンテナンスとサポート Geomモジュールのロードマップ*5 • 2019年:GUIとTUIを備えたGeomモジュール • 2020年:TUIのみのGeomモジュール*6 • 2021年:さようならGeomモジュール *5 SALOME User Day 2019資料「SALOME news」より *6 2020年7月リリースのSalome 9.5.0ではGUIの存在を確認 37

Slide 39

Slide 39 text

参考文献 [1] EDF,『Welcome to the www.Salome-platform.org — Salome Platform』 https://www.Salome-platform.org/ [2] EDF,『Salome brochure』 https://www.salome-platform.org/user-section/salome-brochure [3] Francis Kloss(CEA), Alexandra Martín Sánchez(EDF),『Salome User Day 2019 Salome news』https://www.salome-platform.org/events/salome-user-day-2019 [4] Aymeric Canton(CEA), Vincent Stobiac(EDF),『Salome User Day 2019 Closure of the Day』https://www.salome-platform.org/events/salome-user-day-2019 [5] Francis Kloss(CEA), Vincent Stobiac(EDF),『Salome User Day 2018 Salome news』 https://www.salome-platform.org/events/salome-user-day-2018 [6] Guillaume Boulant(EDF), Aymeric Canton(CEA),『Salome User Day 2016 Salome news』https://www.salome-platform.org/events/salome-user-day-2016 [7] Christophe Bourcier(CEA), Clarisse Genrault(CEA), Raphaël Marc(EDF R&D), 『SHAPER : Parametric Modelling for Simulation』 https://www.salome-platform.org/events/salome-user-day-2015 All content is licensed under an open-source, ’copyleft’ license: 表示 4.0 国際(CC BY 4.0) 38