LoginSignup
18

More than 5 years have passed since last update.

Grasshopper / Pythonでライノオブジェクトをスクリプトでコントロールするための準備

Posted at

はじめに

GrasshopperでPythonが扱えるプラグインGhPythonを使うさい、例えばライノスクリプトでは使えるGetObject()のようなコマンドが使えなかったりします。ライノ上でライノスクリプトを使う場合はライノ上のオブジェクトを扱うのに対して、Grasshopper上でライノスクリプトを使う場合はGrasshopperで使っている仮想オブジェクトを扱っているためです。ではどうするのか。

Documentの位置を指定する

ライノ上のオブジェクトを扱えるようにするために、pythonスクリプトの以下のような記述をします。

sample.py
import scriptcontex as sc

sc.doc = Rhino.RhinoDoc.ActiveDoc

こうすることで、このスクリプト内でライノスクリプトを使った場合は、グラスホッパーの仮想オブジェクトではなく、ライノ空間に置かれているオブジェクトを扱えるようになります。

元に戻す場合は、

sample.py
import scriptcontext as sc

sc.doc = ghdoc

どんなシチュエーションのときにどちらのDocumentを選ぶか

sc.doc = Rhino.RhinoDoc.ActiveDoc

は、以下のようなシチュエーションの時に使います。

  • ライノ上に置かれているオブジェクトを選択したいとき
  • ライノ上にオブジェクトをベイクしたいとき
  • ライノ上のオブジェクトのコントロールポイントなどを操作したいとき。

また、

sc.doc = ghdoc

は以下のようなシチュエーションの時に使います。

  • Grasshopper空間内でライノスクリプトを使ってモデリングをしたいとき
  • 他のGrasshopperのコンポーネントやRhinoCommonと組み合わせたいとき

もっと詳しくは

ここを見るともっと詳しく正しい情報が得られます。
GrasshopperでPythonスクリプトを使いたい人は、必見です。

TIPS | SCRIPT CONTEXT IN GH PYTHON

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18