Femtet2026.0マクロヘルプ/マニュアル
 

ホーム / モデリング / CGaudi / 関数 / Healing2

Healing2関数

定義

Healing2 (BodyList() As CGaudiBody, KeyListCleaned() As Long, KeyListSpikes() As Long, KeyListSmallEdges() As Long, KeyListSmallFaces() As Long, KeyListSliverFaces() As Long, KeyListGaps() As Long, KeyListHealEdges() As Long) As Boolean



[Python]
 Healing2_py(CGaudiBody[] BodyList)

戻り値

True      成功
False   失敗



[Python]

[0]

  True:成功、False:失敗

[1][0~ボディキー配列数-1)]

  [ボディのクリーニング、簡略化、冗長な辺・トポロジの削除]処理が実行されたボディのボディキー配列を返す

[2][0~ボディキー配列数-1)]

  [スパイクの除去]処理が実行されたボディのボディキー配列を返す

[3][0~ボディキー配列数-1)]

  [微小辺の除去]処理が実行されたボディのボディキー配列を返す

[4][0~ボディキー配列数-1)]

  [微小面の除去]処理が実行されたボディのボディキー配列を返す

[5][0~ボディキー配列数-1)]

  [スライバ面の除去]処理が実行されたボディのボディキー配列を返す

[6][0~ボディキー配列数-1)]

  [ギャップの除去]処理が実行されたボディのボディキー配列を返す

[7][0~ボディキー配列数-1)]

  [ボディの辺を修復]処理が実行されたボディのボディキー配列を返す

引数

BodyList

  ヒーリング対象ボディ(CGaudiBody)の配列

KeyListCleaned

  [ボディのクリーニング、簡略化、冗長な辺・トポロジの削除]処理が実行されたボディのボディキー配列を返す

KeyListSpikes

  [スパイクの除去]処理が実行されたボディのボディキー配列を返す

KeyListSmallEdges

  [微小辺の除去]処理が実行されたボディのボディキー配列を返す

KeyListSmallFaces

  [微小面の除去]処理が実行されたボディのボディキー配列を返す

KeyListSliverFaces

  [スライバ面の除去]処理が実行されたボディのボディキー配列を返す

KeyListGaps

  [ギャップの除去]処理が実行されたボディのボディキー配列を返す

KeyListHealEdges

  [ボディの辺を修復]処理が実行されたボディのボディキー配列を返す



[Python]

BodyList

  ヒーリング対象ボディ(CGaudiBody)の配列

解説

指定されたボディのヒーリング(ボディの修復)を行います。
 
各KeyListは動的配列を指定してください。また、この配列は関数実行後に作成されるので、呼び出し前の配列情報は全て削除されます
各KeyListが動的配列ではない場合は失敗します。
 
実行前にCHealingOptionの設定を行ってください。

実行例


Dim Femtet As New CFemtet

Dim Gaudi As CGaudi

Dim Point As New CGaudiPoint

Dim BodyList(1) As CGaudiBody

Dim BodyKeyArray0() As Long

Dim BodyKeyArray1() As Long

Dim BodyKeyArray2() As Long

Dim BodyKeyArray3() As Long

Dim BodyKeyArray4() As Long

Dim BodyKeyArray5() As Long

Dim BodyKeyArray6() As Long

 

'新規プロジェクト作成

If Femtet.OpenNewProject() = False Then

    Femtet.ShowLastError

End If

 

'Femtet.Gaudiを変数Gaudiに代入して使いやすくする

Set Gaudi = Femtet.Gaudi

 

'図形を作成

Point.X = 0

Point.Y = 0

Point.Z = 0

Set BodyList(0) = Gaudi.CreateBox(Point, 3, 4, 5)

Point.X = 10

Point.Y = 10

Point.Z = 0

Set BodyList(1) = Gaudi.CreateBox(Point, 3, 4, 5)

 

'ヒーリングオプション初期化

Gaudi.HealingOption.Reset

 

'ヒーリングオプション設定

Gaudi.HealingOption.SmallEdge_MaxLength = 0.01

 

'ヒーリング実行

Gaudi.Healing BodyList, BodyKeyArray0, BodyKeyArray1, BodyKeyArray2, BodyKeyArray3, BodyKeyArray4, BodyKeyArray5, BodyKeyArray6