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

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

Loft関数

定義

Loft (ProfileList() As CGaudiBody) As CGaudiBody
 


[Python]
 HRESULT Loft_py(CGaudiBody[] ProfileList)

戻り値

成功した場合は新規に作成されたBodyが返ります。
失敗した場合は、Nothingが返ります。
 


[Python]
成功した場合は新規に作成されたCGaudiBodyが返ります。
失敗した場合は、Noneが返ります。

引数

ProfileList   ロフト形状の断面となるBody(点ボディ、ワイヤボディ、シートボディのいずれか)の配列
 


[Python]
ProfileList   ロフト形状の断面となるCGaudiBody(点ボディ、ワイヤボディ、シートボディのいずれか)の配列

解説

指定されたボディを断面として新しくロフト形状(シートボディまたはソリッドボディ)を作成します。
指定されたボディは削除されますので注意してください。
配列に登録されている順に断面としてロフト形状が作成されるので、登録順が変わると結果のロフト形状も変化します。
配列の先頭、終端のボディは点ボディ、ワイヤボディ、シートボディのいずれかである必要があります。
配列の中間のボディは、閉じたワイヤボディ、シートボディのいずれかである必要があります。
点ボディ、円、楕円、閉じた自由曲線を除き、全てのボディの頂点数が一致しなければ、ロフト形状を作成できません。  
ワイヤボディは全ての辺が同一平面上に属している必要があります。
シートボディは構成する面トポロジが1つのみで、かつ、平面である必要があります。

実行例

 

'------- Body配列変数の定義 -------

Dim Femtet As New CFemtet
Dim Gaudi As CGaudi
Dim Body() As CGaudiBody

 

'------- 新規プロジェクト作成 -------
If Femtet.OpenNewProject() = False Then

    Femtet.ShowLastError
End If

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

'------- CreateCircleFace -------

ReDim Preserve Body(0)

Dim Point0 As New CGaudiPoint

Point0.SetCoord 0.5, -1#, 0#

Set Body(0) = Gaudi.CreateCircleFace(Point0, 5.22015325445528)

 

'------- CreateCircleFace -------

ReDim Preserve Body(1)

Dim Point1 As New CGaudiPoint

Point1.SetCoord 0.5, -1.5, 0#

Set Body(1) = Gaudi.CreateCircleFace(Point1, 2.54950975679639)

 

'------- CreatePolygonFace -------

ReDim Preserve Body(2)

Dim Point2 As New CGaudiPoint

Point2.SetCoord 0.5, -0.5, 0#

Set Body(2) = Gaudi.CreatePolygonFace(Point2, 3#, Fix(8))

 

'------- Move -------

Dim Vector0 As New CGaudiVector

Vector0.SetCoord 0, 0, 10

Body(2).Move Vector0

 

'------- Move -------

Dim Vector1 As New CGaudiVector

Vector1.SetCoord 0, 0, 20

Body(1).Move Vector1

 

'------- ロフト実行 -------

ReDim Preserve Body(3)

Dim BodyArray0(2) As CGaudiBody

Set BodyArray0(0) = Body(0)

Set BodyArray0(1) = Body(2)

Set BodyArray0(2) = Body(1)

Set Body(3) = Gaudi.Loft(BodyArray0)

 

'------- モデルを再描画します -------

Femtet.Redraw