STUDIO TAMA

thumbnail

投稿日:2021-12-06

【Grasshopper Tutorial】 Paper Sphere

  • #Grasshopper

  • #GH Modeling

  • #Basic

今回は上画像の様な、紙を組み合わせたような球体 Paper Sphere を作成していこうと思います。プログラムを組んでいく中で、Vector Fields を使用していきます。使いこなせば作成できるものの幅が広がるかと思いますので、是非挑戦してみてください。こちら動画化もしてますので、動画の方がわかりやすい方は以下のリンクからどうぞ!

概要

thumbnail

上画像がプログラムの全体像です。大まかな流れは以下の様になっております。

  1. ベースとなる四角形を作成
  2. Vector Fields を作成
  3. Vector Fields から Nurbs Curve を作成
  4. Nurbs Curve を押出し
  5. 押出しを回転
  6. 押出しを球体で切断

ベースとなる四角を作成

thumbnail
  1. 「Rectangle コンポーネント」で四角形を作成していきます。今回は原点(0,0,0)を中心とした 1000mm×1000mm としました。
  2. 「Evaluate Surface コンポーネント」を使用し、作成した四角形内の点を取得します。入力端子 uv に「MD Slider コンポーネント」を使用し、値を入力します。今回は(u : 0.5, v : 0.5)を入力し、四角形の中点を取得します。

Vector Fields を作成

thumbnail
  1. 「Spin Force コンポーネント」を使用し、入力した平面から発生する回転するベクトルを作成します。入力端子 P に「Evaluate Surface コンポーネント」で取得した四角形の中点を、入力端子 S(Strength)には Spin Force の強度を(今回は1を入力)、入力端子 R(Radius)には Spin Force 半径を(今回は 2 を入力)、入力端子 D(Decay)には減衰値を(今回は 0)、入力端子 B(Bounds)には境界を入力します(今回は最初に作成した四角形)。
  2. 「Point Charge コンポーネント」を使用し、入力した点から発生するベクトルを作成します。入力端子 P に「Evaluate Surface コンポーネント」で取得した四角形の中点を、入力端子 C(Charge)には Point Charge の強度を(今回は 2 を入力)、入力端子 D(Decay)には減衰値を(今回は 0)、入力端子 B(Bounds)には境界を入力します(今回は最初に作成した四角形)。
  3. 「Merge Fields コンポーネント」で 2 つのベクトルを結合します。
  4. 「Tensor Display コンポーネント」でベクトルを可視化してみます。上画像の様に、四角形の中点から境界に向けて緩やからカーブを描くベクトルになってれば OK です。(※数字を変化させてどのようにベクトルが変化していくか、是非確認してみてください。)

Vector Fields から Nurbs Curve を作成

thumbnail
  1. 「Circle コンポーネント」で「Evaluate Surface コンポーネント」で取得した点を中心とした円を作成します。今回は半径を 5 としてます。
  2. 「Divide Curve コンポーネント」で作成した円を分割します。今回は 20 分割しています。
  3. 「Field Line コンポーネント」で Vector Fields で点を動かした際の曲線を可視化します。入力端子 F に「Merge Force コンポーネント」の出力端子を、入力端子 P に「Divide Curve コンポ―ネント」で取得した円の分割点を、入力端子 N に Step 数を入力(今回は 10000)を入力してます。
  4. 「Divide Curve コンポ―ネント」で「Field Line コンポーネント」によって可視化した曲線を分割します。今回は 10 分割しています。
  5. 「Nurbs Curve コンポーネント」で分割点をつなぐ Nurbs Curve を作成します。上画像の様になっていれば OK です。

Nurbs Curve を押出し

thumbnail
  1. 「Extrude コンポーネント」を2つ用意し、作成した Nurbs Curve を上下 Z 方向に押し出していきます。+ Z 方向に 500mm、-Z 方向に 500mm 押し出します。
  2. 「Brep Join コンポーネント」で作成した2つの押し出しを結合します。上画像の様になっていれば OK です。

押出しを回転

thumbnail
  1. 「Roate3D コンポーネント」で作成した押し出しを 90 度回転させます。Y 軸回りに 90 度、Z 軸回りに 90 度回転させたものをそれぞれ作成します。
  2. 上画像の様になっていれば OK です。

押出しを球体で切断

thumbnail
  1. 「Sphere コンポーネント」で序盤に「Evaluate Surface コンポーネント」で取得した、四角形の中心点を中心とした、半径 500mm の円を作成します。
  2. 「Split Brep Multiple コンポーネント」で球を用いて押し出した Brep を切断します。入力端子 B には2つの「Rotate3D コンポーネント」の出力端子と「Brep Join コンポーネント」の出力端子を接続し、入力端子 C に作成した球を接続します。
  3. 「List Item コンポーネント」を用いて、切断後のオブジェクトを取得して完成です。変数を変えていろんな形状を試してみてください。
thumbnail
thumbnail

以上になります!今回は Vector Fields を基本的な使用方法で活用してみました。Vector Fields は 3 次元での活用も可能ですので、是非挑戦してみてください!

【参考文献】

  • AppliCraft : https://www.applicraft.com/
目 次