グラスホッパーを使用していると、モデルのスケールを変更したいと思う場面はとても多いです。
しかし、ライノセラスで変更する場合と方法が多少異なるので難しいと感じる人は多いと思います。
そこで今回は誰でも簡単にgrasshopperでスケールを変更する方法を2つ紹介します。

結論から言うと、ScaleとScale NUを使用するとできます。

全体のコンポーネントはこのようになります。
今回のGrasshopperとライノセラスのデータは下のリンクからダウンロードできるので是非活用してください。
今回のGrasshopperとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
それでは順番に解説していきます。
Scaleコンポーネント
全体コンポーネント

使用コンポーネント:①Brep ② Volume ③ Deconstruct Brep ④ List Item ⑤ Scale

今回使用するモデルはこの立方体になります。
下準備として、ライノセラス上の使用したいモデルをBrepに格納してください。
スケールを変更する基準点を作成する
Scaleコンポーネントを実行するために、いくつかの基準点を作成していきます。

1つ目はVolumeを使用して、上の画像のように立方体の中心点を抽出します。

次に、立方体の各頂点を抽出していきます。
まずDeconstruct Brepを使用することで、モデルをサーフェス、線、点の3つに分解します。
ここでは基準点を作成するため、点のみ使用します。
V端子から点データを抽出することができます。

そしてList Itemを使用することで複数ある頂点のうち、1つの点のみを取得できます。
List Itemのi端子の数値を変更することで、取得できる点を変更することができます。
今回は右下の点を抽出しました。
これで立方体の中心点と頂点の2つの点を使えるようになりました。
Scaleコンポーネントで比率を決める

ここでScaleを使用します。
C端子に使用したい基準点、F端子に倍率の数値を入力してください。
最初はVolumeで取得した中心点と、1.5倍にするため1.5の数値を繋げています。
上の画像のように、立方体が基準点を中心にサイズが変化しています。

次にList Itemで取得した頂点をC端子に接続しました。
右下の点を基準に1.5倍の大きさにサイズが変わりました。

基準点の位置をさらに変更するとこのようにスケールの変化の仕方が変わりました。
ここまでがScaleコンポーネントの解説です。
Scale NUコンポーネント
全体コンポーネント

使用コンポーネント:③ Deconstruct Brep ④ List Item ⑥ Plane Origin ⑦ Scale NU
平面と原点を作成する
Scale NUを使用するには、平面とその平面の原点を作成する必要があります。

まずは先程使用したDeconstruct BrepのF端子から立方体のサーフェスを抽出します。
ここでもList Itemを使用し、i端子に数値を入力して1つのサーフェスのみを取得します。

さらに取得したサーフェスをさらにDeconstruct Brepでもう一度分解します。

そしてもう一度List Itemで1つの頂点を取得します。
後ほど、今回のList Itemの数値を変化させることで、スケールの方向を決めることができます。

次に、Plane Originを使用します。
このコンポーネントは、サーフェスと点を組み合わせることで作業平面とその原点を作成することができます。
B端子にサーフェス、O端子に点を出力してください。

このように、作業平面が先程の基準点を原点にして作成されています。

ここで気を付けてほしいことがあります。
今回の場合はX軸が下方向、Y軸が横方向と通常の逆になってしまっています。
そのため横方向に後ほどスケールを伸ばしたい場合はY軸の調整してください。
Scale NUコンポーネントで比率、スケールの方向を決める

ここでScale NUを使用します。
G端子にスケールを変更したいモデル、P端子に平面、XYZ端子に数値を入力します。
上の画像の場合はX端子にのみ1.5の数値を入力しています。
先程開設した通り、XY軸が逆になっているため上方向に1.5倍伸びています。

Y端子に入力した結果、横に伸びました。

Z端子に入力した結果、奥に伸びました。

もちろん複数の端子に数値を入力できます。
XY端子に繋げた場合、横と縦方向にスケールが変化しました。

XYZ端子すべてに入力した結果、3方向すべてが変化しました。

スケールの方向を逆にしたい場合は一番最後に使用したList Itemの数値を変更し、反対方向にある頂点を抽出してください。
今回の場合は先程は下の頂点を抽出していましたが、今回は上の頂点を取得しました。
これにより方向を反転できました。
まとめ

今回は2つのスケールを変更する方法を解説しました。
是非ScaleとScale NUコンポーネントを使用してスケールやサイズを自由に変更してみてください。
今回は以上になります。
Comment