形状リカバリーツール - OSSmooth

構造最適化によって得られた結果を、設計プロセスおよびFEA再解析において使用するための形状情報に戻すことのできる半自動化された形状リカバリーソフトウェア。

OSSmoothはHyperMeshに組み込まれています。

OSSmoothは、以下の3通りの方法で使用できます:OSSmooth for geometry、FEA topology reanalysis、FEA topography reanalysis。

OSSmoothを使用すると、以下を実行することが可能です:
  • トポロジー最適化結果を基に、等密度境界サーフェス(アイソサーフェス)作成
  • トポグラフィー最適化結果を基に、設計サーフェス上にビードを作成
  • 形状最適化からの結果形状を復元し、スムーズ化
  • 所定の三角パッチの集合の中で小さなパッチを結合することで、サーフェスデータ量を減らすことができます。
  • 三角パッチとしてなめらかなサーフェスデータを生成できます。
FEA topologyおよびFEA topographyの場合、OSSmoothを使って以下を実行することが可能です:
  • 複数の設計コンポーネントについてのコンポーネントの境界の保持
  • 非設計空間周りの要素の人工的な層あり/なしの形状リカバリー
  • 'by property'(プロパティ毎)によるアイソサーフェスのテトラメッシュ
  • 形状リカバリーに際し、再解析を素早く行うための境界条件の保持
OSSmoothがOptiStructからの最適化結果を基にどのように機能するかの概要を、以下のフローチャートに示します:


図 1.

これらOSSmoothの3つの機能のそれぞれに対応するサブパネルが、HyperMeshのOSSmoothパネルに用意されています。OSSmoothは通常、トポロジー、トポグラフィーおよび形状最適化結果を解釈することによる形状リカバリーに使用され、FEA topologyとFEA topographyは、FEA再解析のための境界条件と共にリカバーされた形状を生成するために使用されます。

OSSmoothが稼働するためには、パラメーターファイル(通常、ファイル拡張子.ossを有する)が必要です。このパラメータファイルは、HyperMeshのOSSmoothパネルで生成するか、もしくはテキストエディタを使って手動で作成できます。最適化の実行が完了すると、OptiStructは、最適化実行のタイプに応じたデフォルト設定を含むOSSmoothパラメーターファイル<prefix>.ossを自動的にエクスポートします。

パラメーターファイルに加え、OSSmoothは、OptiStruct実行で用いる入力ファイル(<prefix>.fem)、結果ファイルの1つである形状ファイル(<prefix>.sh)、および/または節点ファイル(<prefix>.grid)も必要とします。節点ファイル<prefix>.gridにはトポグラフィー最適化または形状最適化後の節点の位置情報が記述されており、これらの最適化の実行後に出力されます。形状ファイル<prefix>.shには、トポロジー最適化の要素密度情報が記述されており、トポロジー最適化の実行後に出力されます。

FEA topologyの場合、実行に先駆けて入力モデル(<prefix>.fem)がHyperMeshに読み込まれる必要があり、その点がOSSmoothとは異なります。また、トポロジー最適化によって生成された形状ファイル(<prefix>.sh)も必要です。非設計要素の処理には、形状リカバリーのための2つのオプション(Keep smooth narrow layer aroundとSplit all quads)が用意されています。

FEA topographyは、実行のためにグリッドファイル(<prefix>.grid)が必要です。FEA topologyと同様に、FEA topologyと同じ機能を行うアイソサーフェス用のオプションと共に、まずHyperMeshに入力ファイル(<prefix>.fem)が読み込まれる必要があります。
注: 現時点では、OSSmoothではOptiStructのロングフォーマットによる入力データが認識されません。この問題の有効な解決方法は、OSSmoothを実行する前に、ロングフォーマットによる入力データをいったんHyperMeshにインポートし、通常のOptiStructテンプレートを使用してエクスポートすることです。

OSSmoothにより解釈された設計は、IGESサーフェス、STLファイル、または Config panel Hyper3Dファイルとして、バルクデータフォーマットの有限要素メッシュとしてエクスポートすることが可能です。

パラメーターファイル

OSSmoothパラメータファイルは、幾つかのパラメータステートメントで構成されています。

OSSmoothパラメータファイルは、それぞれが下記のフォーマットを有するパラメータステートメントで構成されています:
parameter_name arg1,arg2,...,argn

parameter_nameと引数は、スペースまたはコンマで区切られます。 パラメータファイルでは、大文字と小文字が区別されません。

OSSmoothパラメータファイルのコメント行は、’#’または’$’で始まらなければなりません。

以下に、指定可能なパラメータおよびその引数を示します:
input_file
OSSmoothによって最適化結果が形状化されるファイルを特定します。
引数
内容
arg1
OSSmoothによって最適化結果が形状化されるOptiStruct.fem.shおよび/または.gridファイルのファイル名(拡張子を除く)
output_file
OSSmoothにより出力されるファイルの名称
引数
内容
arg1
OSSmoothにより出力されるファイルのフルネーム
output_code
出力のタイプを特定します。
引数
内容
arg1
アイソサーフェス用出力フォーマット:
1
バルクデータエントリ
2
IGESパッチ
3(デフォルト)
STL三角形
4
H3D三角形要素
arg2
アイソサーフェスによって囲まれたボリュームのテトラメッシング用出力コントロール
デフォルト: no tet-meshing
1
Tetra4 + Tria3要素
2
Tetra10 + Tria6要素
3
Tetra4要素
4
Tetra10要素
テトラメッシングは、OptiStruct入力フォーマットでファイル<input_file>_mesh.femに書き出されます。このファイルでは、ファイルinput_file>.femの設計空間は、素早く再解析できるよう、テトラメッシュに置換されます。荷重、境界条件および非設計要素は入力ファイルから引き継がれます。
units
IGESフォーマットの出力単位を定義します。この情報はIGESファイルのヘッダに書き込まれるので、CADシステムで認識できます(使用するCADシステムの種類によります)。
引数
内容
1(デフォルト)
インチ
2
mm
4
フィート
6
m
10
cm
autobead
自動形状作成およびリメッシングを適用することで、トポグラフィー最適化から復元された形状を改良します。
引数
内容
arg1
操作フラグ [整数値]:
0
自動ビードなし
1(デフォルト)
自動ビードあり
arg2
自動ビード作成用のしきい値
[0.0と1.0の間の実数値。デフォルト = 0.3]
1(デフォルト)
1層のビードを作成
2
2層のビードを作成
arg3
ビード層 [整数値]:
1(デフォルト)
1層のビードを作成
2
2層のビードを作成
isosurface
自動形状作成の適用により、トポロジー最適化結果からしきい値のサーフェスを生成します。
引数
内容
arg1
操作フラグ [整数値]:
0
アイソサーフェスなし
1(デフォルト)
アイソサーフェスあり
arg2
作成されるサーフェスのタイプ [整数値]:
0
アイソサーフェスのみ
1
最適化ベースのスムージングを施したアイソサーフェス
3(デフォルト)
ラプラシアンスムージングを施したアイソサーフェス
トポロジー最適化の結果に対してスムージングを行うと、OptiStructによって提案されたトポロジーが維持されます。ただし、このトポロジーは、指定の密度分布とは異なるものになる可能性もあります。オプション 1 または 3 を使用する場合は、OSSmoothから得られる最大および平均のスムージングエラー出力を確認してください。
arg3
アイソサーフェス作成用のしきい値
[0.0と1.0の間の実数値。デフォルト = 0.3]
opti_smoothing
最適化ベースのスムージング [isosurface C2=1が使用される場合のみ]
引数
内容
arg1
単位なしのサーフェス距離係数
[実数値。デフォルト = 0.0]
しきい値のサーフェスからスムーズなサーフェスまでの距離を定義します。この係数の効果は、入力メッシュの種類によって異なります。正負いずれの方向でも値を大きくするほど、結果はなめらかになりますが、サーフェスの元の密度分布との差異も大きくなります。推奨される範囲は-50から50までです。0~50の範囲で設定すると、通常はサーフェスがなめらかになり、縮小する傾向があります。0~-50の範囲で設定すると、通常はサーフェスがなめらかになり、膨張する傾向があります。
arg2
設計空間のスムージングフラグ [整数値]:
0(デフォルト)
境界はスムージングしない
1
境界もスムージングする
laplacian_smoothing
ラプラシアンスムージング [isosurface C2=3が使用される場合のみ]
引数
内容
arg1
ラプラシアンスムージングの反復計算数
[0以上の整数値。デフォルト = 10]
arg2
フィーチャー角度のしきい値(単位=度)
[実数値。デフォルト = 30.0]
フィーチャー角度は、交差する2つの要素面の法線が成す角度として定義されます。しきい値より大きなフィーチャー角度を持つすべてのコーナーは、スムージングプロセスで保持されます。
arg3
設計空間のスムージングフラグ [整数値]:
0
境界はスムージングしない
1(デフォルト)
境界もスムージングする
remesh
自動ビードサーフェスおよび/またはアイソサーフェスフラグをリメッシュ [整数値]:
引数
内容
0
リメッシュなし
1
リメッシュあり
リメッシュは、ビード形状周りの2層要素および/またはアイソサーフェスの境界を検知します。入力メッシュに四角形要素が含まれる場合はミックスタイプのリメッシュを使用し、それ以外の場合は三角形要素でリメッシュします。
surface_reduction
形状を表わすサーフェスの数を削減します。サーフェス数は80%まで削減できます。
引数
内容
arg1
サーフェス削減フラグ [整数値]:
0(デフォルト)
サーフェス削減
1
サーフェス削減を実行
arg2
フィーチャー角度のしきい値(単位=度)
[実数値。デフォルト = 10.0]
フィーチャー角度は、隣接する2つの要素のサーフェス法線が成す角度として定義されます。隣接する2つの要素間のフィーチャー角度がしきい値より小さい場合は、この2つの要素間で常にサーフェス削減が行われます。しきい値を大きくするほど、より多くのサーフェス削減が行われます。しきい値の有効範囲は[1.0, 80.0]です。
pure_surface_smoothing
サーフェスのスムージングのみを行います。
引数
内容
arg1
純粋なサーフェスへのスムージングフラグ [整数値]:
0(デフォルト)
サーフェススムージングなし
1
最適化ベースのスムージング2 – ラプラシアンスムージング
arg2
反復計算回数 [G1=2の使用時のみ]
[0以上の整数値。デフォルト = 10]
arg3
フィーチャー角度のしきい値(単位=度) [G1=2の使用時のみ]
[実数値。デフォルト = 30.0]
フィーチャー角度は、交差する2つの要素面の法線が成す角度として定義されます。しきい値より大きなフィーチャー角度を持つすべてのコーナーは、スムージングプロセスで保持されます。
pure_surface_reduction
サーフェスの削減のみを行います。
引数
内容
arg1
純粋なサーフェス削減フラグ [整数値]:
0(デフォルト)
サーフェス削減
1
サーフェス削減を実行
arg2
フィーチャー角度のしきい値(単位=度)
[実数値。デフォルト = 10.0]
フィーチャー角度は、隣接する2つの要素のサーフェス法線が成す角度として定義されます。隣接する2つの要素間のフィーチャー角度がしきい値より小さい場合は、この2つの要素間で常にサーフェス削減が行われます。しきい値を大きくするほど、より多くのサーフェス削減が行われます。しきい値の有効範囲は[1.0, 80.0]です。

入力ファイルの例

パラメータ
内容
input_file example
入力ファイルのルートを例として認識します。したがって、OSSmoothはファイルexample.femexample.gridおよびexample.shを探します。
output_file example.stl
結果の出力はexample.stlとなります。
output_code           3
出力は、stereolithographyフォーマットになります。
Autobead 1 0.3 1
トポグラフィー結果は、しきい値30%で自動ビード機能を使って形状化され、1層のビードを作成します。
Isosurface 1 3 0.3
トポロジー結果は、密度値30%の等密度境界サーフェスを作成することにより形状化され、ラプラシアンスムージングを使ってスムージングします。
laplacian_smoothing 10 30 1
ラプラシアンスムージングは、10回の反復計算を行い、30度のフィーチャー角度を考慮し、スムージングで境界を含めます。
Remesh 1
メッシュの移行をスムーズにするために、復元された形状周りの2列の要素がリメッシュされます。

OSSmoothの実行

HyperMesh OSSmoothパネルから

注: OSSmoothは、42 Altair Units(21 leveled + 21 stacked)をチェックアウトします。
  1. Postページのossmoothパネルを選択します。
  2. OSSmooth (for geometry), FEA topologyまたはFEA topographyのいずれかを選択します。
  3. ファイルブラウザを使って、OptiStruct入力ファイル(<prefix.fem>および / または<prefix.sh>および / または<prefix. grid>)を選択します。
  4. 画面上で必要な項目を選択して、OSSmooth入力データを編集します。
  5. ossmoothをクリックします。
    OSSmooth (for geometry)は、画面上で設定した内容で新規の<prefix.oss>ファイルを生成し、データフォーマットがIGES、STLまたはNastranであれば、復元された形状をHyperMeshに読み出します。FEA topologyおよびFEA topographyは結果を出力することなしにHyperMeshでモデルを更新し、必要であればデータをHyperMeshからエクスポートすることができます。

トポロジー最適化結果のリカバリー

この機能の目的は、OptiStructで実行したトポロジー最適化の体積密度情報に基づき、等密度サーフェスを生成することです。

OSSmoothでは、同一のパラメータ設定でシェル要素とソリッド要素の両方を処理できます。次に、シェル要素のトポロジー最適化をポスト処理する例を示します。この例では、OSSmoothパラメータファイルの各パラメータを次のように設定します:
#general parameters
input_file            mattel
output_file           mattel.stl
output_code           3

#specific parameters
isosurface            1  3  0.300
laplacian_smoothing   10  30.000  1
surface_reduction     1  10.000

interp_topology
図 2. シェル要素のトポロジー最適化におけるサーフェスの再構築

パラメーターlaplacian_smoothingは、追加のスムージングに使用されます。ほとんどの場合は、サーフェスのしきい値を設定(isosurface with second argument 0)するだけで形状がスムージングされます。追加スムージングを指定すると(isosurface with second argument 3)、OptiStructから提示されたトポロジーが維持されます。ただし、このトポロジーは、指定の密度分布とは異なるものになる可能性があります。このオプションを使用する場合は、OSSmoothによって出力される最大および平均のスムージングエラーを確認してください。surface_reductionパラメーターは、要素数(サーフェス数)を減らすために使用されます。

ラプラシアンスムージング

トポロジー最適化の結果のスムージングに使用されます。

laplacian_smoothingステートメントを使用すると、ラプラシアンスムージング実行時の反復計算回数と、コーナーでの法線の不連続性を維持するためのフィーチャー角度のしきい値を制御できます。OSSmoothパラメータファイル内で下記とおりパラメータが設定されたスムージングの結果を以下に示します。
#general parameters
input_file            surf
output_file           surf.stl
output_code           3
isosurface            1  3  0.300

#specific parameters
laplacian_smoothing   10  30.000  1
ラプラシアンスムージングは、laplacian_smoothingパラメーターの3番目の引数として 1 を入力することにより、スムーズな境界アイソサーフェスを生成します。次の2つの図を比較すると、2番目の図は鋳造の準備がほぼ整っていることが分ります。

laplacian_smoothing_1
図 3. アイソサーフェスの境界を固定

laplacian_smoothing_2
図 4. アイソサーフェスの境界をスムーズ化
OSSmoothで使用するlaplacian_smoothingステートメントには、次のような利点があります:
  • スムージング反復計算の回数を柔軟に制御し、さまざまなレベルのスムージングを実現できます(場合によっては鋳造可能なレベルのスムージング品質を得ることも可能)。通常、反復計算の回数は5~20です。
  • フィーチャー角度設定を有するアイソサーフェスのスムーズな境界作成は、スムージングプロセスにシームレスに組み入れられています。これは、純粋なCADシステムでは困難です。

トポグラフィー最適化結果のリカバリー

OSSmoothの自動ビード機能では、OptiStructトポグラフィー最適化を1層または2層のビードとしてリカバリーします。

図 5 は、両方のケースの層の詳細を示したものです。2層のアプローチは、より細かいところまで捕捉し、1層のリカバリーよりも製造が複雑でありながら、たいていの場合、大幅なパフォーマンスの向上はありません。

autobead_interp
図 5. トポグラフィー最適化結果の自動ビードリカバリー
次に、トポグラフィー最適化をポスト処理する例を示します。この例では、OSSmoothパラメータファイルの各パラメータを次のように設定します:
#general parameters
input_file            decklid
output_file           decklid.fem
output_code           1

#specific parameters
autobead              1  0.300  1
remesh                1

autobead_result
図 6. トポグラフィー最適化からの自動ビード結果
一部のトポグラフィー最適化によるパフォーマンスは、徐々に遷移する部位が影響します。OSSmoothは、トポグラフィー最適化結果を2層のビードに自動的に補間することができます(自動ビードの3つ目の引数2)。次は、OSSmoothパラメータファイルで下記のパラメータ設定を行い2層の自動ビードを作成する例です。
#general parameters
input_file            decklid
output_file           decklid.nas
output_code           1
#specific parameters
autobead              1  0.300  2

2_layer_autobead_res
図 7. トポグラフィー最適化からの2層自動ビード結果

形状最適化結果、サーフェス削減およびサーフェススムージング

OSSmoothは、サーフェスのスムージングや領域サーフェスの削減に使用することも可能です。この目的には、パラメーターステートメントpure_surf_reductionおよびpure_surf_smoothingが使用できます。

input_fileによって定義されたファイルがOptiStruct内にある必要があります。また、OSSmoothはモデルのサーフェスまたは領域サーフェスをスムージングできます。

OSSmoothパラメータファイル内での用法を以下に示します:
#general parameters
input_file            surf
output_file           surf.stl
output_code           3

#specific parameters
pure_surf_smoothing   2  10  30.000
pure_surf_reduction   1  10.000

再解析のためのFEA Topology

この機能の目的は、トポロジー最適化からの体積密度情報に基づき、等密度サーフェスを生成することです。

3次元モデルのテトラメッシングおよび境界条件の継承により、FEA topologyからの結果を使って再解析を素早く行うことが可能です。

FEA topology のサポートは、1次および2次のシェル要素とソリッド要素で利用可能です。3次元モデルに関しては、リカバリーされたアイソサーフェスからプロパティ毎に自動的にテトラメッシングされます。FEA topologyには、非設計要素の処理用に2つのオプション、Keep smooth narrow layer aroundおよびSplit all quadsが用意されています。Keep smooth narrow layer aroundでは、変換において非設計空間周りに要素の人工的な層を保持します。一方、Split all quadsでは、非設計空間内に四角形要素が存在する場合はそれらを分割し、設計空間と非設計空間との間にテトラ(四面体)の結合を生成します。最終的に、FEA topologyは、元のモデル(<prefix>.fem)からの境界条件を継承することによって、それらを保持します。形状リカバリー後に節点 / 要素に付加されない境界条件は、再解析を確実にするために削除されます。

表 1. 以下の入力データを使用しての再解析用FEA Topology
file block
density threshold 0.300
Keep smooth narrow layer around off
Split all quads on

fea_topo
図 8. 再解析用FEA Topologyの結果
同じモデルを今度は Keep smooth narrow layer aroundをon、Split all quadsをoffにして実行します。このアプローチは、非設計領域の周りに要素の層を、四角形要素が存在する場合はその周りにピラミッド要素を生成し、設計空間の四面体要素と結合します。

fea_topo_2
図 9. 非設計空間周りに要素の層を配したFEA topologyの結果
少なくとも1つの閉空間が存在する場合、テトラメッシュはアイソサーフェスに適用されます。FEA topologyでのテトラメッシュの利点には、以下のものがあります:
  • テトラメッシュはプロパティ毎に実行可能
  • テトラメッシングがたまに上手くいかない場合、密度のしきい値を変化させることにより、テトラメッシュの再トライの数を制御する柔軟性

再解析のためのFEA Topography

OSSmoothのFEA topographyオプションでは、OptiStructトポグラフィー最適化からの結果を1層または2層ビードとして解釈し、形状の抽出に際し境界条件をリカバーします。

アイソサーフェス用のオプションも、組み合わせて使用できるよう用意されており、FEA topologyと同じ機能をFEA topographyで行うことができます。下の図は、素早い再解析のために境界条件を保持しつつ、1層ビードと2層ビードで捕捉された詳細を示しています。FEA topographyのサポートは、1次要素と2次要素で利用可能です。
表 2. 1層自動ビード抽出用の入力データ定義
Grid file brkt
Threshold 0.300
Layers 1

fea_topog
図 10. FEA Topographyからの1層自動ビード結果
表 3. 2層自動ビード抽出用の入力データ定義
Grid file brkt
Threshold 0.300
Layers 2

fea_topog2
図 11. FEA Topographyからの2層自動ビード結果