Grasshopperで座標を取得する方法をお探しですね。

広告

Grasshopperで点の座標を自由に操る!XYZ分解から移動まで完全ガイド

Grasshopperでパラメトリックモデリングをするとき、点の座標データを自由に扱えるようになると、作れる形の幅がグッと広がります。

でも、「点をXYZの数値にバラバラにして、それを別の場所に動かす」という流れは、最初はちょっと分かりづらいですよね。

この記事では、Grasshopperで点のX、Y、Z座標を取り出したり、好きな場所に移動させたりする方法を、具体的なコンポーネントの使い方と一緒に丁寧に解説していきます。

基礎から応用まで幅広くカバーしているので、ぜひ参考にしてみてください!

1. 点のX、Y、Z座標を取り出す基本のキ

Grasshopperで点(Point)の座標をいじるには、まず点を用意して、その中身であるX、Y、Zの数値を取り出す必要があります。

ここで活躍するのが「Deconstruct(分解)」コンポーネントです。

このコンポーネントに点のデータをつなぐだけで、X座標、Y座標、Z座標がそれぞれ別々の数値として出てきます。

Rhinoで手動で置いた点でも、Grasshopperで計算して作った点でも、このステップを踏むことで数値として計算できるようになるんです。

点を分解する前に、まず既存の形から点を取り出す作業もよくやります。

たとえば、「Evaluate Surface」を使えばサーフェス上の好きな場所の座標が取れますし、「Polygon Center」なら多角形の中心点が手に入ります。

これらのコンポーネントで得た点は、そのままだと「点というかたまり」でしかありませんが、「Deconstruct」を通すことで初めて一つひとつ扱える数値データになるわけです。

まずは、どんな点もXYZの3つの数字に分けるという基本をしっかり覚えておきましょう。

2. 分解した座標で特定の方向だけを動かす方法

点をX、Y、Zにバラバラにできたら、次はその数値を使って色々な操作をしていきます。

よく使うのが、「特定の方向(たとえばZ方向だけ)に数値を足して、新しい高さにする」というテクニックです。

Deconstructで取り出したZ座標に、「Addition(足し算)」や「Multiplication(掛け算)」といった計算コンポーネントをつなげば、元の形のバランスを保ったまま特定方向への移動距離を計算できます。

これを使えば、全部同じ距離だけ動かすのはもちろん、それぞれの点ごとに違う距離を動かすこともカンタンです。

さらに面白いのが、取り出した座標を入れ替えるテクニックです。

たとえば、元の点のX座標とY座標をわざと逆につなぎ直すと、斜め45度の線を軸にしたミラー反転みたいな効果が作れます。

特定の座標だけを固定して、他の座標だけを乱数(Randomコンポーネント)でバラバラにする、なんて応用も可能です。

こんなふうに、座標データを一度独立した数値として扱うことで、単純な移動コマンド(Move)を使うよりもずっと自由度が高く、複雑なパラメトリックデザインが実現できるようになります。

3. 点を作り直して狙った場所にピッタリ移動させる

加工したXYZの数値を、もう一度画面上の点として形にするには、「Construct Point」コンポーネントを使います。

このコンポーネントは、X、Y、Zの入力端子にそれぞれ数値をつなぐことで、指定した座標に新しい点を作ってくれます。

計算した新しい数値を目的の端子につないで、変えない軸にはDeconstructから出た元の数値をそのままつなげば、特定の座標への移動が完了です。

この「Deconstructで分解→計算→Construct Pointで再構築」という流れが、Grasshopperで点を動かす最も確実な基本パターンになります。

他にも、ベクトルを使って特定の場所へ移動させる方法も便利です。

ベクトルというのは「方向と大きさ」を持ったデータで、「Vector 2Pt」などのコンポーネントを使えば、今の点から目標の点への移動方向と距離がサクッと計算できます。

作ったベクトルを「Move」コンポーネントの移動方向(T端子)につなげば、複雑な座標計算をしなくても、直感的に点を狙った場所にスナップさせられます。

状況に応じて、Construct Pointによる数値的な作り直しと、ベクトルを使ったMoveでの移動を使い分けると、効率的でミスの少ないアルゴリムが組めますよ。

4. 既存モデルから点を抜き出してSort Listで整理する実践テク

実際のプロジェクトでは、誰かが作った既存のRhinoモデルや複雑なブレップ(Brep)を分解して、そこから条件に合う点だけを取り出して動かす場面がよくあります。

こういうときは、「Deconstruct Brep」でモデルをサーフェスやエッジ、頂点(Vertices)に分解するところから始めます。

取得したたくさんの頂点データの中から、たとえば「一番高い位置にある点」や「特定の方向を向いている点」だけを選びたいときには、「Sort List」コンポーネントがすごく便利です。

Z座標の数値をSort ListのKey(K端子)に入れて、Value(A端子)に点のデータそのものを入れると、高さ順にキレイに並べ替えられた点のリストが手に入ります。

並べ替えたリストから「List Item」コンポーネントで目的のインデックス(たとえば一番最後にある最大値)を指定すれば、たくさんある点の中から特定の座標を持つ点だけを正確に抜き出せます。

抜き出した点に対して、さっき説明した分解・再構築の流れやベクトル移動を使えば、「壁の一番上の角の点だけをさらに100mm上に動かす」みたいなピンポイントの形状修正が自動化できます。

こうしたデータの整理と座標操作を組み合わせることで、シンプルな点の移動から、高度な解析やモデルの簡略化まで、Grasshopperの可能性を最大限に引き出した柔軟なデザインワークができるようになります。

広告