Grasshopperコンポーネント:Maths

  • グループ名ボタンをクリックで各グループ一覧にジャンプします。
  • 左にあるA~Cは重要度で、Aが一番重要度の高いコンポーネントになります。
  • 「詳しい機能を見る」をクリックで詳細説明が開きます。
  • *は書籍『Rhino×Grasshopper All in 1 パーフェクトリファレンス』に記載しているコンポーネントです。

Domain

Construct Domain*

A

Maths>Domain

A値からB値までの範囲(Domain)を作成する。出力される値は、0.0 to 1.0 の様な範囲。

詳しい機能を見る

詳細1:入力Aと入力Bの2つの数字から、数値の範囲=ドメインを作成する。反対に、[DeConstruct Domain(DeDomain)]コンポーネントは、ドメインを元の構成要素に分解する。

詳細2:図は、[Construct Domain(Dom)]コンポーネントから[Range]コンポーネントに接続して範囲を作成したものに[Construct Point(Pt)]コンポーネントを使用してポイントの配列を行った例。

Deconstruct Domain*

B

Maths>Domain

数値の範囲(Domain)を、初めの値(Start)と終わりの値(End)のそれぞれを出力する。Construct Domainの反対の働き。

詳しい機能を見る

詳細1:数値の範囲=ドメインから始めの値(Start)と終わりの値(End)をそれぞれ取り出す。例では、[Bounds]コンポーネントで範囲(Domain)を作成し、始めと終わりの値を出力した例。[Construct Domain]の逆の働き。

詳細2:図は、[Deconstruct Box]コンポーネントのX方向の範囲を、最小値最大値に分解して、引き算することで[Bounding Box]のX方向の長さを求めた例。

詳細3:既存のドメインを、元の構成要素に分解した例。

詳細4:ランダムな数値のリストから[Bounds]で範囲を抽出し、[Deconstruct Domain]で最小値と最大値を取得した例。

Bounds*

B

Maths>Domain

複数の値(Numbers)が入力された時、入力値の中の最小値から最大値までの範囲(Domain)を作成する。

詳しい機能を見る

詳細1:[Bounds]コンポーネントは、複数の値(Numbers)が入力された時、入力値の中の最小値から最大値までの範囲(Domain)を作成する。例では、最小値の2から最大値30までの範囲が出力されている。

詳細2:[Remap]コンポーネントのSourceに入力する為の範囲(Domain)として使うと便利である。例では、[Remap]コンポーネントのSourceの範囲として[Bounds]コンポーネントの範囲を使用。0から1までの範囲に変更して、[Graph Mapper]コンポーネントで修正できるようにした例。

詳細3:ランダムな数値リストからも最小値~最大値までの範囲(ドメイン)を出力することができる。

詳細4:[Bounds]は他のコンポーネントと組み合わせて使用する場合が多い。以下各関連コンポーネントの詳細を参照。
①Maths>[Remap Numnbers]と併用→ソースドメインとターゲットドメインを使用するため、数値リストを[Bounds]を経由してドメインに変換するのに使用
②Maths>[DeconstructDomain]と併用→最小値/最大値を個別に取得

Consecutive Domains*

B

Maths>Domain

入力した数列の値(Numbers)から連続した範囲(Domain)を作成し出力する。値を足し算(Additive)して範囲を作るかをTrue,Falseで指定する。

詳しい機能を見る

詳細1:数値リストを入力し、consecutive=連続的なドメインを作成する。(均等なドメインを生成するには[Divide Domain]を使用するが、[Consecutive Domains]では、任意の数値リストよりドメイン幅を不均等にできる。)
入力A(Additive)が”True”の場合、入力した値が1つ前のドメインの最大値に加算される。”False”の場合、入力した値から次のidまでがドメインとなる。

詳細2:[Construct Domain²]でサーフェスのV方向のドメインを色分け指定する際に[Consecutive Domains]を使用した例。

Divide Domain*

B

Maths>Domain

入力した範囲(Domain)を、指定した数(Count)で分割した範囲を作成する。

詳しい機能を見る

詳細1:入力した数値の範囲(ドメイン)を入力Cの数で分割する。

詳細2:[Divide domain]及び[Divide domain²]を使用してサーフェスを分割した例。結果は同じとなる。
A/[Divide domain]で分割したドメインを[Construct Domain²]のUVにそれぞれ接続。どちらかを[Graft]の設定にし、サーフェスを分割する。
B/[Divide domain²]の入力Iに、[Construct domain²]で生成したドメインを入力。入力U/Vに分割数を入力。

Find Domain*

B

Maths>Domain

複数の範囲(Domains)を入力し、指定した値(Number)が何番目の範囲に入っているか(Index)を出力する。どの範囲にも含まれない場合は、-1を出力する。

詳しい機能を見る

詳細1:複数の範囲(Domains)を入力し、指定した値(Number)が何番目の範囲に入っているか(Index)を出力する。ドメイン範囲外の値の場合は、-1を出力する。出力N(Neighbour)からは、ドメイン範囲外の場合指定された値に最も近いドメインのindexを出力する。

詳細2:[Consecutive Domains]でセットした各ドメインに対し、[Closest Point]で指定したポイントからの距離がどのドメインに相当するかを[Find Domain]を通してindexで出力、そのindexごとに異なるカラーを[List Item]と[Mesh Colours]で割り当てた例。

Includes*

B

Maths>Domain

範囲(Domain)に指定した値(Value)が含まれるかどうか(Includes)を、TrueFalseで出力する。範囲に含まれない場合は、幾つ範囲から外れているか(Deviation)も出力される。

詳しい機能を見る

詳細1:[Includes]コンポーネントは、範囲(Domain)に指定した値(Value)が含まれるかどうか(Includes)を、True/Falseで出力する。範囲に含まれない場合は、幾つ範囲から外れているか(Deviation)も出力される。
例では、0 to 10の範囲に、-3,2.5,12.5の3つの値が含まれるかを調べている。
[Find Domain]コンポーネントの様に複数の範囲を入力できるわけではないので注意。

詳細2:出力Dからは”True”の場合は0を、”False”の場合は、ドメインとの差の値(Deviation)を出力。図は、[Cull Pattern]を使用して”True”値のみを抽出した例。

Remap Numbers*

A

Maths>Domain

入力した数値(Value)を元となる範囲(Source)から目標となる範囲(Target)を指定し、値を変更する。

詳しい機能を見る

詳細1:Value(V)に入力された数値リストを、ソースドメイン(S)の範囲からターゲットドメイン(T)の範囲に対応させて、リマップされた数値(R)を出力する。 ※SとTにはドメインを入力するため、Vに入力する数値リストと範囲が同じ場合には、数値をドメインに変換する[Bound(Bnd)]コンポーネントを使用すると便利である。入力ドメインは、[Construct Domain]を使用したり、[Panel]コンポーネントに ”0 to 50”のような形で入力しても使用可能。 ※S及びTのデフォルト値は0 to 1なので、図には説明上数値が入力してあるが、本来は入力不要。

Construct Domain²*

B

Maths>Domain

Uの最小最大値、Vの最小最大値をそれぞれ入力し、UVの範囲を作成する。作成される範囲は、u:{0 to 1} V:{0 to 1}の様な値。

詳しい機能を見る

詳細1:[Construct Domain²]コンポーネントは、Uの最小最大値、Vの最小最大値をそれぞれ入力し、UVの範囲を作成する。作成される範囲は、u:{0 to 1} V:{0 to 1}の様な値。

詳細2:Construct Domain²という名前のコンポーネントは2つある。1つはAのConstruct Domain²(DomNum)で、UVの最小値、最大値となる数値をそれぞれ入力して範囲を作成する。BのConstruct Domain²(Dom²)は、数値ではなくドメイン(0 to 1など)の形式で入力する。出力される値は等しく、u:{0 to 1} V:{0 to 1}の様な値となる。

詳細3:UVの範囲を使用し、[Isotrim]コンポーネント(表記はSubSrf)を使用して、UVの該当部を抽出した例。入力したsurface端子にReparametrizeオプションを使用していることに注意。詳細は下記リンクを参照。
https://www.applicraft.com/tips/rhinoceros/grasshopper_tuv/

Construct Domain²(Dom²)

C

Maths>Domain

Uの範囲(Domain)、Vの範囲(Domain)を入力して、UVの範囲を作成する。一つの値を入れる訳ではなく、範囲を入力することに注意。

Deconstruct Domain²(DeDom²)

C

Maths>Domain

入力した範囲(Domain)を、Uの範囲(Domain)とVの範囲(Domain)に分けて出力する。

Deconstruct Domain²(DeDom²Num)

C

Maths>Domain

入力した範囲(Domain)を、Uの最小最大値(Number)とVの最小最大値(Number)に分けてそれぞれ出力する。

Bounds 2D

C

Maths>Domain

点座標(Coordinates)を入力することで、UとVのそれぞれの範囲として出力する。Z座標の値は無視される。

Divide Domain²*

C

Maths>Domain

範囲(Domain)をU方向の分割数、V方向の分割数を決めて、それぞれ分割した範囲(Segments)として出力する。

詳しい機能を見る

詳細1:入力Iにベースとなるドメイン数値やサーフェスなどを入力し、U及びVに分割数を入力すると、入力ドメインをその数に均等に分割する。図は入力サーフェスをU=3、V=4に分割したドメインを作成後、[IsoTrim]にそのドメインを入力してサーフェスを抽出し、分割されたサーフェスの中心にIndex値を表示した例。

詳細2:図は分割したサーフェスを[Cull Nth]に接続して、N=2番目のIndexを繰り返し除き(=1,3,5,7..)、チェッカー模様を作成した例。

Matrix

Construct Matrix

C

Maths>Matrix

値(Values)と行の数(Rows)、列の数(Columns)を指定し、行列(Matrix)を作成する。

Deconstruct Matrix

C

Maths>Matrix

入力した行列(Matrix)を、値(Values)と行の数(Rows)、列の数(Columns)のそれぞれを出力する。

Display Matrix

C

Maths>Matrix

入力した行列(Matrix)と値を視覚的に表示する。

Invert Matrix

C

Maths>Matrix

入力した行列(Matrix)に対して、逆行列を出力する。

Transpose Matrix

C

Maths>Matrix

入力した行列(Matrix)に対して、転置行列を出力する。

Swap Columns

C

Maths>Matrix

Rhino8行列(Matrix)を入力し、1つ目の行(Column A)と2つ目の行(Column B)を入れ替えた行列を出力する。行の指定はそれぞれ整数(インデックス値)で行う。

Swap Rows

C

Maths>Matrix

Rhino8行列(Matrix)を入力し、1つ目の列(Row A)と2つ目の列(Row B)を入れ替えた行列を出力する。列の指定はそれぞれ整数(インデックス値)で行う。

Operators

Addition*

A

Maths>Operators

A値とB値を、足した値を求める。

詳しい機能を見る

詳細1:入力Aと入力Bの足し算(加算)を行う。複数リストの入出力も可。 また、数値リストの合計を加算する場合は[Mass Addition(MA)]コンポーネントを、乗算する場合は[Mass Multiplication(MA)]コンポーネントを使用する。

Division*

A

Maths>Operators

A値をB値で、割った値を求める。

詳しい機能を見る

詳細1:入力Aと入力Bのわり算(除算)を行う。 複数リストの入出力も可。

Multiplication*

A

Maths>Operators

A値とB値を、掛けた値を求める。

詳しい機能を見る

詳細1:入力Aと入力Bのかけ算(乗算)を行う。 複数リストの入出力も可。

Negative*

A

Maths>Operators

入力した値の正と負を反転する。-1を掛け算した値になる。

詳しい機能を見る

詳細1:入力された数値を負の数字(+の場合は-に、-の場合は+)に変換する。

Power

C

Maths>Operators

A値をB乗にした値を計算する。例:Aが10、Bが3の場合は、10を3乗した値(10*10*10)1,000が出力される。

Subtraction*

A

Maths>Operators

A値からB値を、引いた値を求める。

詳しい機能を見る

詳細1:A入力とB入力の引き算(減算)を行う。 複数リストの入出力も可。

Absolute*

A

Maths>Operators

入力した値の絶対値(負の値を正にした値)を出力する。

詳しい機能を見る

詳細1:入力された数値の絶対値を出力する。

Factorial

C

Maths>Operators

入力した整数(Int)の階乗を出力する。階乗は1からその値まで順番に掛け算した値のこと。例:入力値6の場合、6*5*4*3*2*1で結果は、720。

Integer Division*

B

Maths>Operators

A値からB値を、割り算して商を出力する。例:Aが7、Bが3の場合は、商が2余りが1なので、コンポーネントの出力は2となる。

詳しい機能を見る

詳細1:A値からB値を、割り算して商を出力する。例:Aが7、Bが3の場合は、商が2余りが1なので、コンポーネントの出力は2となる。

詳細2:100より下の値を丸めた例。100で割った商に再度100を掛けている。

Modulus*

B

Maths>Operators

A値からB値を、割り算して余りを出力する。例:Aが7、Bが3の場合は、商が2余りが1なので、コンポーネントの出力は1となる。

詳しい機能を見る

詳細1:A値からB値を、割り算して余りを出力する。例:Aが7、Bが3の場合は、商が2余りが1なので、コンポーネントの出力は1となる。

Mass Addition*

B

Maths>Operators

入力した値(Input)をすべて足し算した値(Result)を求める。

詳しい機能を見る

詳細1:入力した値(Input)を全て足し算した値(Result)を求める。
Resultからは総計が、Partial Resultsからはインデックスごとの累計(順に足した値)が出力される。最後のインデックスが、Resultと同じ結果になる。

詳細2:[Mass Addition]の出力Prを使用して正方形を移動した例。
①[Series]で1ずつ増加する数値リストを作成 ②[Rectangle]のXYに接続して、1ずつ増加する正方形を生成 ③[Mass Addition]に数値リストを入力し、出力Prからの累計をX方向に指定した[Move]へ接続

Mass Multiplication*

B

Maths>Operators

入力した値(Input)をすべて掛け算した値(Result)を求める。

詳しい機能を見る

詳細1:入力した値(Input)を全て掛け算した値(Result)を求める。
Resultからは全て掛けた値が、Partial Resultsからはインデックスごと順に掛けた値が出力される。また最後のインデックスが、Resultと同じ結果になる。

詳細2:[Series]コンポーネントで等差の数列を作って入力することで、[Factorial]コンポーネントと同様の働き(指定した値までの整数の階乗)もできる。

詳細3:数値ではなく論理値を元にして、[Gate And]のように使用した例。[Gate And]のように複数リストではなく、単一のリスト内に1つでも”False”があると”False”を返し、全て”True”の場合のみ”True”を返す。

Relative Differences*

B

Maths>Operators

一つ前のインデックスの値(Values)との差をそれぞれ求めて、出力する。

詳しい機能を見る

詳細1:一つ前のindexの値(Values)との差を出力する。入力には、数値(Number,Integer)の他、PointsやVectorが使用可能。

詳細2:Z方向に並ぶポイントのZ位置から[Relatice Differences]を使用して相対的差異を取得し、それを[Extrude]の押出し量に利用した例。初めの0を削除するために[Shift List]を、最後のindexを削除するために[Cull index]を使用している。

Equality*

A

Maths>Operators

Aの値とBの値が等しいか調べ、TrueとFalseで結果を出力する。

詳しい機能を見る

詳細1:A入力とB入力の2つの値が等しいかを判別する。

Larger Than*

A

Maths>Operators

Aの値がBの値より大きいか調べ、当てはまる場合はTrueを、当てはまらない場合はFalseを出力する。

詳しい機能を見る

詳細1:「~より大きい」または「~以上」を判別する。 数値リストAとBを入力し、A>Bまたは、A≧Bの結果をBoolean値のTrue または Falseで返す。

Similarity*

C

Maths>Operators

Aの値とBの値がおおよそ等しいか調べ、TrueとFalseで結果を出力する。しきい値(Threshold)を%で指定できる。

Smaller Than*

A

Maths>Operators

Aの値がBの値より小さいか調べ、当てはまる場合はTrueを、当てはまらない場合はFalseを出力する。

詳しい機能を見る

詳細1:「~より小さい」または「~以下」を判別する。 数値リストAとBを入力し、A<Bまたは、A≦Bの結果をBoolean値のTrue または Falseで返す。

Gate And*

B

Maths>Operators

入力した論理値に対して、Andゲートを実行する。Andゲートは全てTrueの時のみTrueを、一つでもFalseがある時はFalseを出力するもの。

詳しい機能を見る

詳細1:入力した論理値に対して、ANDゲートを実行する。Andゲートは全てTrueの時のみTrueを、一つでもFalseがある時はFalseを出力するもの。左の例では、一番上のTrueとTrueが入力されたもののみ、Trueが出力されている。コンポーネントを拡大すると、+/-マークにて入力を増減できる。

詳細2:Pointを読み込み、X値が0より上かつ15より下の値だけを[Dispatch]コンポーネントを使用し取り出している例。[Larger]と[Smaller]を2回使い、共にTrueの個所を[Gate And]でTrueにする。そのパターンを[Dispatch]のパターンに入力し、点を条件に分けて出力している。

詳細3:[Gate And]コンポーネントと[Gate Or]コンポーネントを使用して、2つの円の条件分けを行った例。
①AかつB ②Aでもなく、かつBでもない ③AまたはB ④Aでもない、またはBでもない

Gate Not*

B

Maths>Operators

入力した論理値に対して、Notゲートを実行する。NotゲートはTrueとFalseの結果を反転するもの。

詳しい機能を見る

詳細1:入力した論理値に対して、Notゲートを実行する。NotゲートはTrueとFalseの結果を反転するもの。同様の効果は、Bool値を扱う各種コンポーネントの”Invert”オプションからも適用できる([Gate Not]にも”Invert”オプションを適用可能)。

詳細2:[Gate Not]はTrue/Falseを反転するが、その他様々な方法で選択を反転した例。①[Equality]から抽出したBoolean値を[Dispatch]のB出力で反転②[Equality]から抽出したBoolean値を[CullPattern]+[Gate Not]で反転③[Equality]で反転させたBoolean値を、”InEquality”出力により反転。

Gate Or*

B

Maths>Operators

入力した論理値に対して、Orゲートを実行する。Orゲートは全てFalseの時のみ、Falseを出力するもの。一つでもTrueがある場合は、Trueを出力する。

詳しい機能を見る

詳細1:入力した論理値に対して、Orゲートを実行する。Orゲートは全てFalseの時のみ、Falseを出力するもの。一つでもTrueがある場合は、Trueを出力する。左の例では、一番下のFalseとFalseが入力されたもののみ、Falseが出力されている。

詳細2:複数の点を入力し、Curveの内側か、Brepの内側かをそれぞれ条件を求めて、[Gate Or]コンポーネントに入力し、FalseとFalseの条件(共に外側)とそれ以外(どちらかに含まれる)のパターンを作成。[Dispatch]コンポーネントに繋ぎ、点を内側と外側で場合分けしている。

詳細3:[Gate And]コンポーネントと[Gate Or]コンポーネントを使用して、2つの円の条件分けを行った例。
①AかつB ②Aでもなく、かつBでもない ③AまたはB ④Aでもない、またはBでもない

Gate Xor

C

Maths>Operators

入力した論理値に対して、Xorゲートを実行する。Xorゲートは同じ論理値が入力されるとFalseを、異なる場合はTrueを出力する。例:入力:TrueとFalse 出力:True。入力:FalseとFalse 出力:False。

Gate Majority

C

Maths>Operators

入力した論理値に対して、Majorityゲートを実行する。MajorityゲートはABCの端子に、入力された論理値の数が多いものを出力するというもの。

Gate Nand

C

Maths>Operators

入力した論理値に対して、Nandゲートを実行する。NandゲートはNot Andの意味。TrueとTrueが入力された時だけ、Falseを出力。それ以外はTrueを出力する。

Gate Nor

C

Maths>Operators

入力した論理値に対して、Norゲートを実行する。NorゲートはNot Orの意味。FalseとFalseが入力された時だけ、Trueを出力。それ以外はFalseを出力する。

Gate Xnor

C

Maths>Operators

入力した論理値に対して、Xnorゲートを実行する。XnorゲートはNot Xorの意味。同じ論理値が入力されるとTrueを、異なる場合はFalseを出力する。例:入力:TrueとFalse 出力:False。入力:FalseとFalse 出力:True。

Polynomials

Cube

C

Maths>Polynomials

入力値の3乗した値を計算する。例:3を入力すると、3の3乗(3*3*3)の27が出力される。

Cube Root

C

Maths>Polynomials

入力値の立方根の値を計算する。3回掛けるとその値になる数。例:27(3*3*3)を入力すると、3が出力される。

Square*

B

Maths>Polynomials

入力値の2乗した値を計算する。例:3を入力すると、3の2乗(3*3)の9が出力される。

詳しい機能を見る

詳細1:入力値の2乗した値を計算する。例:3を入力すると、3の2乗(3*3)の9が出力される。

Square Root*

B

Maths>Polynomials

入力値の2乗根の値を計算する。例:3を入力すると、3の2乗根の√3が出力される。

詳しい機能を見る

詳細1:入力値の2乗根の値を計算する。例:3を入力すると、3の2乗根の√3が出力される。

詳細2:入力したカーブの様々な面積に対して[Square Root]と[Division]を使用してスケール係数を算出し、希望する面積(=100)になるようにスケールした例。

One Over X

C

Maths>Polynomials

入力した値を分母とした値を出力する。例:4を入力すると、1/4となる値0.25が出力される。

Power of 10

C

Maths>Polynomials

入力した値だけ10を累乗した値を出力する。例:3を入力すると、10の3乗の1,000が出力される。 桁数が大きくなった時の表記に関しては、下記リンクを参照。
https://www.applicraft.com/tips/rhinoceros/hyouki/

Power of 2

C

Maths>Polynomials

入力した値だけ2を累乗した値を出力する。例:3を入力すると、2の3乗(2*2*2)の8が出力される。 

Power of E

C

Maths>Polynomials

入力した値だけ自然対数の底e(2.718282・・・)を累乗した値を出力する。

Log N

C

Maths>Polynomials

底数(Base)を指定して、対数計算をする。

Logarithm

C

Maths>Polynomials

底を10とした対数計算をする。

Natural logarithm

C

Maths>Polynomials

自然対数e(2.718282・・・)を底とした対数計算をする。

Script

Evaluate

C

Maths>Script

数式(Expression)をダブルクリックから定義して、複数の入力した値を計算する。
端子はズームすることで追加したり、右クリックから端子名の変更が可能。ただし、xやyなどの端子名は、Draw Full namesに変更すると端子名が変わり記述も変更する必要があるので注意が必要。

詳しい機能を見る

詳細1:[Evaluate(Eval)]コンポーネントは、関数や式を用いて計算の結果を出力する。
キャンバスを拡大表示していくと、小さな+/-アイコンが現れる。式の項目はこの+/-をクリックして増減する事ができる。

詳細2:中央部分をダブルクリックすると、Expresssion Designerが開き、式を入力できる。 また、入力Fを右クリックして直接式を入力する事もでき、これは先のExpression Designerと連動している。

詳細3:F入力に式を接続する事も可能だが、この場合は接続した式が優先となり、Expression Designerは開かなくなる。

詳細4:Round関数を使用し、入力した値(x)を桁数を指定し(y)で丸めた図。例では、2.934をxに入力して、2をyに入力して、小数点二桁の2.93で値を丸めている。中に記述する式はExpressionコンポーネントと同じもの。その他の式についてもExpressionコンポーネントの詳細説明にあるものが試用できるので参照のこと。

Expression*

A

Maths>Script

数式(Expression)をダブルクリックから定義して、複数の入力した値を計算する。
端子はズームすることで追加したり、右クリックから端子名の変更が可能。ただし、xやyなどの端子名は、Draw Full namesに変更すると端子名が変わり記述も変更する必要があるので注意が必要。

詳しい機能を見る

詳細1:[Expression]コンポーネントは、[Evaluate(Eval)]コンポーネントのExpression Designerをコンポーネントとして取り出したものである。式が表示されているので、[Panel]コンポーネントで式をF入力に接続した時と同様に、式の内容が一目で確認できる。ダブルクリックすると、Expression Designerが開く。

詳細2:図は、[Expression]コンポーネントを使用して180°(π、またはPi)を指定した数で等分した角度を作成し、Boxを回転配置した例。代わりに[Evaluate]コンポーネントを使用しても同様の結果を作成できる。

詳細3:[Expression]コンポーネント内にRoundを使用し、入力した値(x)を桁数(y)で丸めた図。例では、2.934をxに入力して、1をyに入力して、小数点一桁の2.9まで値を丸めている。記述する式はEvaluateコンポーネントと同じもの。

詳細4:sin関数を用いて、サインカーブを描画している例。0から2πまでの範囲を100等分してxに、yにsin(x)した値を入力して、点通過する曲線を作成することで、y=sin(x)の曲線を描画している。

詳細5:cos関数を用いて、コサインカーブを描画している例。コンポーネントの使い方は詳細4を参照。

詳細6:入力端子名は任意のものを使用可能。ただし元々の表記のxやyはDraw Full Names 表示にすると、端子名がVariable x などに変更されてしまいそのままの記述では動作しなくなる。なので基本的には端子名をaやbなどの、元々の名称と変更した上で使用した方が使用時の問題が少ない。

Script

B

Maths>Script

Rhino8C#,IronPython2系、Cpython3系の3つから任意に使用言語を指定し記述できるコンポーネント。プラスマークから任意に入出力を増やして記述可能。端子ごとにデータの型やItem,List,Treeを設定し入力方法も変更できる。また共通の仕様としてShift + 右クリックで外部で書いた記述を入力できるScript Inputなどの端子を増やすこともできる。

CSharp Script

B

Maths>Script

Rhino8C#で記述できるコンポーネント。プラスマークから任意に入出力を増やして記述可能。端子ごとにデータの型やItem,List,Treeを設定し入力方法も変更できる。Rhino7までのコンポーネントではなくScriptコンポーネントのC#だけ使用できるコンポーネント。

C# Script*

B

Maths>Script

C#スクリプトを使用できるコンポーネント。ダブルクリックで記述可能。Rhino7までのコンポーネント。

詳しい機能を見る

詳細1:[C#]スクリプトを使用できるコンポーネント。ダブルクリックで記述可能。コンポーネントにズームすることで、入出力の端子の数を増減可能。

詳細2:また入力端子ごとに、端子上で右クリックすることで、入力データの扱い方を3種類から(Item,List,Tree)、入力データタイプ(float少数、int整数、Point3d点データなど)を指定できる。

詳細3:Brepを、Item入力タイプをBrepで読み込み、体積だけを求めた例。

詳細4:デフォルトではRhinoCommonやGrasshopperのカーネルをライブラリとして読み込んでいる。RhinoCommonに関しては、下記リンクを参照。
https://developer.rhino3d.com/api/RhinoCommon/html/R_Project_RhinoCommon.htm

IronPython 2 Script

C

Maths>Script

Rhino8IronPythonの2系で記述できるコンポーネント。プラスマークから任意に入出力を増やして記述可能。端子ごとにデータの型やItem,List,Treeを設定し入力方法も変更できる。Rhino7までのコンポーネントではなくScriptコンポーネントのIronPythonの2系だけ使用できるコンポーネント。

Python 3 Script

B

Maths>Script

Rhino8CPythonの3系で記述できるコンポーネント。プラスマークから任意に入出力を増やして記述可能。端子ごとにデータの型やItem,List,Treeを設定し入力方法も変更できる。Rhino7までのコンポーネントではなくScriptコンポーネントのCPythonの3系だけ使用できるコンポーネント。

GhPython Script*

B

Maths>Script

GhPython スクリプトを使用できるコンポーネント。ダブルクリックで記述可能。Rhino7までのコンポーネント。

詳しい機能を見る

詳細1:[GhPython]スクリプトを使用できるコンポーネント。ダブルクリックで記述可能。コンポーネントにズームすることで、入出力の端子の数を増減可能。

詳細2:また入力端子ごとに、端子上で右クリックすることで、入力データの扱い方を3種類から(Item,List,Tree)、入力データタイプ(float少数、int整数、Point3d点データなど)を指定できる。

詳細3:デフォルトではRhinoScriptSyntaxを使えるよう、ライブラリを読み込んでいる(import rhinoscriptsyntax as rs)。点を3つずつ用意して、Item入力Point3dでそれぞれ読み込む。rhinoscriptsyntaxのAddlineで2点指定し、線を作成している例。https://developer.rhino3d.com/api/RhinoScriptSyntax/
RhinoCommon等を読み込んで使用したい場合は、別途import Rhino で読み込むこと。

詳細4:またコンポーネントの上で右クリックから現れる Show “code” input parameter にチェックをつけることで、codeを入力する端子を表示できる。ここにスクリプトを入力することで、外部で書いた記述を直接実行可能となる。例では、[File Path]で外部のpyファイルを参照し、[Read File]のPer Line(一文ずつ)オプションを外すことで、外部で書いたpyファイルを[GhPython Script]で実行している。

VB Script

C

Maths>Script

VBスクリプトを使用できるコンポーネント。ダブルクリックで記述可能。Rhino7までのコンポーネント。

Time

Construct Date

C

Maths>Time

年/月/日/時/分/秒をそれぞれ入力し、日付データ(Data)を出力する。

Construct Exotic Date

C

Maths>Time

年/月/日を入力し、時刻データ(Time)で出力する。デフォルトはグレゴリオ暦で入力する。オプションにより、国ごとの値で入力も可能。

Construct Smooth Time

C

Maths>Time

日/時/分/秒を入力し、時刻データ(Time)を出力する。入力値にSmoothコンポーネントを使った場合、その時刻までスムーズに変更される。

Construct Time

C

Maths>Time

時/分/秒をそれぞれ入力し、時間データ(Time)を出力する。

Deconstruct Date

C

Maths>Time

日付データ(Data)を入力し、年/月/日/時/分/秒のそれぞれの値を出力する。

Combine Date&Time

C

Maths>Time

日付データ(Data)と時刻データ(Time)をまとめて、1つのデータとして出力する。

Date Range

C

Maths>Time

時刻データAとB、分割数(Count)を指定することで、時刻AからBまでの途中の時刻を出力する。

Interpolate Date

C

Maths>Time

時刻データAとB、パラメータtを指定することで、時刻AからBまでの間の指定した時刻を出力する。Tが0だと時刻A、1だと時刻Bが出力される。

Trig

Cosine*

B

Maths>Trig

Cosine関数で計算する。Y= cos(x)の値を求める。(またこれ以降のコンポーネントにも言えることだが、Xはラジアンでの入力となるので、角度(Degree)で入力する場合は、Degreeオプションを付けること。)

詳しい機能を見る

詳細1:[Cosine]コンポーネントは、Y= cos(x)の値を求める。Xはラジアンでの入力となるので、角度(Degree)で入力する場合は、Degreeオプションを付ける(上の例)か、[Radians]コンポーネントを使用し変換して入力すること。

Sinc

C

Maths>Trig

Sinc関数の値を計算する。

Sine*

B

Maths>Trig

Sine関数で計算する。Y= sin(x)の値を求める。

詳しい機能を見る

詳細1:[Sine]コンポーネントは、Y= sin(x)の値を求める。Xはラジアンでの入力となるので、角度(Degree)で入力する場合は、Degreeオプションを付ける(上の例)か、[Radians]コンポーネントを使用し変換して入力すること。

Tangent*

C

Maths>Trig

Tangent関数で計算する。Y= tan(x)の値を求める。

ArcCosine

C

Maths>Trig

Arccosine関数の値を計算する。

ArcSine

C

Maths>Trig

Arcsine関数の値を計算する。

ArcTangent

C

Maths>Trig

Arctangent関数の値を計算する。

CoSecant

C

Maths>Trig

Cosecant関数の値を計算する。

CoTangent

C

Maths>Trig

Cotangent関数の値を計算する。

Secant

C

Maths>Trig

Secant関数の値を計算する。

Degrees*

B

Maths>Trig

ラジアン(Radians)を度(Degrees)に変換する。例:πを入力すると、180が出力される。

詳しい機能を見る

詳細1:[Degrees]コンポーネントは、ラジアン(Radians)値を入力すると度数(Degrees)に変換する。例ではπを入力し、180が出力されている。

詳細2:[Degrees]コンポーネントの代わりに、コンポーネントの入出力を右クリックして開くコンテキストメニューから、ラジアンを度数に変換するオプションを選択する事も可能。
A:”Expression”に”Deg(x)”と入力
B:”Degrees”を選択

Radians*

B

Maths>Trig

度(Degrees)をラジアン(Radians)に変換する。例:360を入力すると、2πが出力される。

詳しい機能を見る

詳細1:[Radians]コンポーネントは、度数(Degrees)を入力するとラジアン(Radians)値に変換する。例では180と360を入力し、πと2πが出力されている。

詳細2:Grasshopperでは回転に用いる値は、デフォルトでラジアン値であるので、度数の値が決まっている時は[Radians]コンポーネントを使うか、AngleのDegreeオプションを使うこと(どちらでも結果は同じ)。

Right Trigonometry

C

Maths>Trig

三角法(直角三角形)。各辺の長さ及び内角を指定することで、その値を出力する。

Triangle Trigonometry

C

Maths>Trig

三角法。3辺の長さ及び1つの内角の値を入力することで、その他の値を出力する。

Centroid

C

Maths>Trig

3つの点(Point)を入力し、3点の座標からなる各内角の二等分線と交点を出力する。

Circumcentre

C

Maths>Trig

3つの点(Point)を入力し、3点の座標からなる各辺の二等分する垂線を出力する。

Incentre

C

Maths>Trig

3つの点(Point)を入力し、3点の座標からなる三角形において、各辺に垂線を作成する。

Orthocentre

C

Maths>Trig

3点(Point)を入力し、3点からなる各辺と、垂心を出力する。交点は外接円の中心となる。

Util

Epsilon

C

Maths>Util

入力した値(Factor)にイプシロンの値を掛けた値を出力する。

Golden Ratio

C

Maths>Util

入力した値(Factor)に黄金比の値を掛けたものを出力する。(黄金比は1.618034・・)

Natural logarithm

C

Maths>Util

入力した値(Factor)に自然対数の底eを掛けた値を出力する。(eは2.718282・・)

Pi*

C

Maths>Util

入力した値(Factor)にπを掛けた値を出力する。(πは円周率3.141592・・)

Extremes*

B

Maths>Util

複数の値を入力し、それぞれのインデックスごとの最小値、最大値を出力する。入力する端子の数は、コンポーネントにZoomすることで増減可能。

詳しい機能を見る

詳細1:[Extremes]コンポーネントは入力された値のインデックスの最小・最大の値を調べて、それぞれV-V+から出力する。
例では、0番のインデックスの数字0と2を比べて、V-から0がV+から2が出力。1番・2番のインデックスも同様に最小・最大を出力している。

詳細2:[Extremes]コンポーネントは近くにズームすることで出る+-マークで任意の数に端子を増減できる。

詳細3:+-マークで端子を増やした場合も、同様に同じインデックスの最小・最大の値が出力される。

Maximum

C

Maths>Util

Aの値とBの値を比べて、大きい値を結果(Result)として出力する。

Minimum

C

Maths>Util

Aの値とBの値を比べて、小さい値を結果(Result)として出力する。

Round*

B

Maths>Util

入力した値の小数点以下の数値を丸める。Nearestは四捨五入、Floorは切り捨て、Ceilingは切り上げした値を出力する。

詳しい機能を見る

詳細1:[Round]コンポーネントは入力した値の小数点以下の数値を丸める。Nearestは四捨五入、Floorは切り捨て、Ceilingは切り上げした値を出力する。例はNearest四捨五入。

詳細2:例はFloor小数点以下を切り捨て。

詳細3:例はCeiling小数点以下を切り上げ。

Average*

B

Maths>Util

入力した値(Input)の平均値を求める。点群を入力した場合は、XYZ値のそれぞれ平均となる点を出力する。

詳しい機能を見る

詳細1:[Average]コンポーネントは入力した値の平均値を出力する。

詳細2:複数の点を入力した場合は、平均となる点を出力する。

Blur Numbers

C

Maths>Util

複数の入力した値(Numbers)を、強さ(Strength)と回数(Iterations)を決めて値が等間隔になるようにならす。

Clamped

B

Maths>Script

Rhino8値(Value)とドメイン(Domain)を入力し、ドメインの最大値より大きい値は最大値に、ドメインの最小値より小さい値は最小値に置き換える。

Interpolate data

C

Maths>Util

入力した複数の数値(Data)から指定したしきい値(t)の数値を出力する。値の取り出し方が複数オプションから変更できる。Blockは該当する値の中から、他のオプションは比率で計算して値を出力する。

Truncate

C

Maths>Util

複数のアイテム(Input)を、インデックスの両側からアイテムを減らしていく。アイテムを減らす強さ(Truncation Factor)を、0(減らさない)から1.0(全て)の値までで指定できる。

Smooth Numbers

C

Maths>Util

入力した値(Numbers)が変更された時、変更するまでの値が滑らかに変更される。

Weighted Average

C

Maths>Util

複数の点(Input)とそれぞれの点の重さ(Weights)を入力することで、点を作成する。Weightsの値が高い点により強く引き付けられる形になる。

Complex Agument

C

Maths>Util

複素数(Complex)の角度に相当する値を求める。出力される値はラジアンである。

Complex Components

C

Maths>Util

複素数(Complex)から、実数(Real)と虚数(Imaginary)の値をそれぞれ出力する。

Complex Conjugate

C

Maths>Util

複素数(Complex)の虚数の値を、反転した値にする。

Complex Modulus

C

Maths>Util

入力した複素数(Complex)の原点からの長さに相当する値を求める。 

Create Complex

C

Maths>Util

実数(Real)と虚数(Imaginary)を入力し、複素数(Complex)を作成する。