はじめに
Curveを押し出す(Extrude)ノードがいくつかあります。全部かどうかはわかりませんが見ていきます。
- Extrude to Point
- Extrude Curve Along Vector
- Extrude Curve Along Curve
上記のリストは上に行くほど単純です。
Extrude to Point
参照元
https://github.com/nortikin/sverchok/blob/master/docs/nodes/surface/extrude_point.rst
機能
このノードはprofileと呼ばれるカーブをtipと呼ばれる1つのポイントの方向に押し出してサーフェスを生成します。結果のサーフェスは円錐サーフェス(conical surface)です。
- サーフェスの領域:
- U方向 Profileカーブと同じ
- V方向 0 から 1。V=0はprofileカーブの初期位置と同じ。V=1はtipポイントに対応
入力
このノードは下記の入力を持つ
- Profile 必須Profileカーブ。
- PointProfileが押し出されるべき方向を示すポイント。初期値は (0, 0, 0)
出力
- Surface 生成されたサーフェス
その他
使用例は参照元にもあるので見てみてください
使ってみる
- 🤔1ポイントに集結?(統合)されていますね
Extrude Curve Along Vector
参照元
https://github.com/nortikin/sverchok/blob/master/docs/nodes/surface/extrude_vector.rst
機能
このノードはprofileと呼ばれるカーブをベクトルに沿って押し出してサーフェスを生成します。
- サーフェスの領域:
- U方向 Profileカーブと同じ
- V方向 0 から 1。V=0はprofileカーブの初期位置と同じ
入力
このノードは下記の入力を持つ
- Profile 必須Profileカーブ。
- PointProfileが押し出されるべき方向を示すベクトル。初期値は (0, 0, 1)
出力
- Surface 生成されたサーフェス
その他
使用例は参照元にもあるので見てみてください
使ってみる
- 🤔Profileの形状のまま押し出されていますね
Extrude Curve Along Curve
参照元
https://github.com/nortikin/sverchok/blob/master/docs/nodes/surface/extrude_curve.rst
機能
このノードはprofileと呼ばれるカーブをExtrusionと呼ばれる他のカーブに沿って押し出してサーフェスを生成します。
Profileカーブが単にCenter(0,0,0)にあるCircleの場合、よりシンプルなPipe(Surface)ノードを使った方がいいかも知れません。
Profileカーブは、その「論理的中心」(すなわち、押し出しカーブに沿って移動されるべき点)がグローバル原点(0,0,0)に位置するように配置されていると想定されています。
Profileカーブは結果をより自然に見せる為にオプション的に押し出し中に回転できます。
カーブの回転を計算する為のいくつかのアルゴリズムが利用可能です。最も単純な押し出しの場合は、ほとんどのアルゴリズムが同様の結果をもたらします。より複雑なケースで結果はかなり違ってきます。異なったアルゴリズムは異なったケースにおいてベストな結果を出します。
- “Frenet” または “Zero-Twist” アルゴリズムは押し出しカーブがすべてのポイントで曲率を持つ場合に非常に良い結果をもたらします。もし押し出しカーブが曲率を持たない、または直線などより悪い場合は、これらのアルゴリズムはひっくり返った(Flipping)サーフェスを生成するかエラーを出します。
- “Householder”、”Tracking”そして”Rotation difference”アルゴリズムはカーブにとらわれません。これらはカーブ自身とは独立して動作し、接線の方向のみに依存します。すべての押し出しカーブにおいてこれらは十分良い結果(少なくともエラーになったりひっくり返ったりはしません)を出しますが、特定のケースでねじれているサーフェスを作る事があります
- “Track normal”アルゴリズムはすべての押し出しカーブにおいてねじれる事もない良い結果をもたらします。高解像度の時により良い結果を出しますが処理負荷はより高くなります。
サーフェスの領域:
- U方向 Profileカーブと同じ
- V方向 Extrusion(押し出し)カーブと同じ
入力
- Profile 必須Profileカーブ。
- Extrusion 必須 押し出しカーブ
- Resolution “Zero Twist” または “Track Normal“回転計算アルゴリズムにおけるサンプル数。高い値ほど正確な計算となるが、処理負荷も増える。初期値は50。この入力は”Zero Twist” または “Track Normal“アルゴリズム選択時のみ利用可能。
パラメータ
- AlgorithmProfileカーブ回転計算アルゴリズム。利用可能なオプションは
- NoneProfileカーブの回転をせずそのまま押し出す。このモードがデフォルト
- Frenet押し出しカーブのfrenetフレームに従ってProfileカーブを回転させる
- Zero-Twist押し出しカーブのzero-twistフレームに従ってProfileカーブを回転させる
- HouseholderHouseholderの反射マトリックスを使って回転計算をする(参考: ハウスホルダー変換の使用)
- TracckingBlenderの”Tracking to”キネマティックコンストレイントのアルゴリズムと同じアルゴリズムを使う。このノードは現在常にX軸をUp軸として使う
- Rotation difference 2 つのベクトル間の回転差として回転を計算します
- Track normal曲線に沿って追跡することにより、一定の法線方向を維持しようとします
- 🤔アルゴリズムの違いはこちらで少し検証していますので参考になるかもしれません
- Origin このパラメータは、Profileカーブと押し出しカーブの位置に対する、結果として得られるサーフェスの位置を定義します。これは、押し出し曲線の始点がグローバル原点(0, 0, 0)と一致しない場合に便利です。利用可能なオプションは以下の通りです。
- Global origin 曲げられたサーフェスはグローバルオリジンに配置される
- Extruion origin 曲げられたサーフェスは押し出しカーブに配置される
- 🤔結果のサーフェスを0,0,0につくるか押し出しカーブがあるところに作るかの違いですね
デフォルトオプションはExtrusion originです
出力
- Surface生成されたサーフェス
その他
使用例は参照元にもあるので見てみてください
使ってみる
- 🤔Profileが選べるという点がPipe(surface)ノードと違いますね