Blender Sverchok Surface formulaノードを見る

Sverchok

はじめに

面を数式から作るという事で見てみた。

参照元

github.com

Surface formula

機能

このノードはユーザーから提供された数式で定義された面を生成します。

この式は曲線のUとVパラメータを3次元座標系(XYZ)、(Rho, Phi,Z)または(Rho, Phi, Theta)の何れかに投影します。

パラメータを追加する事も出来て、その場合はノードの入力ソケットが表示されます。

面の領域とパラメトリック化: ノードセッティングによって設定する

式の構文

構文として使われる式は標準のPythonの式の構文です。正確な構文の定義はLINKを見てください。

Expressions

短く言えば、一般的な演算操作(+,-,*,/,**(べき乗))、数字、変数、括弧とsin(x)のような式呼び出しが使えます。

Pythonの構文との違いの一つはPythonの関数の一部分のみが呼び出し可能な点です。

呼び出し可能

  • mathモジュールから: acos, acosh, asin, asinh, atan, atan2

atanh, ceil, copysign, cos, cosh, degrees, erf, erfc, exp, expm1, fabs, factorial, floor, fmod, frexp, fsum, gamma, hypot, isfinite, isinf, isnan, ldexp, lgamma, log, log10, log1p, log2, modf, pow, radians, sin, sinh, sqrt, tan, tanh, trunc;

  • mathモジュールの定数: pi, e
  • 追加の関数: abs、sign
  • mathutilsモジュールから: Vector, Matrix
  • Python type規約: tuple, list, dict

この制限はセキュリティーの観点から行っています。しかしPythonエコシステムは誰かが言語のレベルハックの一種を使って安全でない操作を呼び出せない事を保証シていません。なので誰かわからないまたは信用の無い所からJSONで定義されたノードを使用する場合は注意が必要です。

有効な式の例:

  • 1.0
  • x
  • x + 1
  • 0.75 * x + 0.25*y
  • R*sin(phi)

入力

  • UMin, UMax 面のUパラメータの最小値と最大値
  • VMin, VMax 面のVパラメータの最小値と最大値

uとv以外で式で使われるそれぞれの変数もまた追加の入力となります

パラメータ

  • Formula1, Formula2, Formula3 用いている座標系内の表面点を定義する3つの要素の式。初期値はトロディアル面を定義します。
  • Output 使用される座標系を定義する、従ってFormulaパラメータの正確な意味を定義する。利用可能なモードは
    • Carthesian 3つの式はXYZ座標に対応します
    • Cylidrical 3つの式はRho、Phi、Z座標に対応します
    • Spherical 3つの式はRho、Phi、Theta座標に対応します
      初期値はCarthesianです。
  • Vectorize このパラメータはNパネルでのみ利用可能です。もし有効なら入力された一連の値に対する数式を評価する為に、Numpy関数を使用して一度に複数の計算を実行します。有効でないなら、式はそれぞれの入力値毎に分けて評価されます。ベクトル化の使用は通常計算をかなり早くします(2倍から100倍)。このパラメータは有効がデフォルトです。もし使用していて何かしら計算に問題が生じた時に、これを無効化してみてください。

出力

  • Curve 生成された曲線

使用例

公式

タイトルとURLをコピーしました