2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GrasshopperでPython開発に外部エディターを使う方法

Posted at

はじめに

GrasshopperでPythonスクリプトを書くとき、一般的にはGrasshopper標準のエディターを使いますが、
外部エディタを使うことでコードを書くのが飛躍的に効率的になります。
今回はVS Codeを例に説明します。

外部エディタを使うメリット

  • Rhino/GH以外のライブラリのコード補完ができる
  • コードが見やすくなる
  • 別ファイルのインポートなどが管理しやすい
  • コードだけ見たいときにRhinoを開かなくていい
  • かっこいいエディタを使うとテンションがあがる

環境

  • Windows10
  • Rhino6
  • VS Code

VS Codeでやること

Pythonのコードが書けさえすれば何でもよいのですが、より快適に書くために下記手順で環境を整えます。

VS CodeのPython拡張機能をインストール

こちらからインストールできます。

Python2.7環境を構築する

anacondaなどを使って仮想環境を準備するのがおすすめです。
Pythonの環境構築については、たくさんの方がわかりやすく解説されているので割愛します。

こちらの記事が比較的新しくておすすめです。

注意点
Rhinoで動くIronPythonはpython2系なので、Python2で環境を構築することをお勧めします。
###Rhino/Grasshopperのコード補完ライブラリをインストール

stubsを入れることでRhino、Grasshopperのコード補完が効くようになります。

こちらを参考にRhino-stubsGrasshopper-stubsをpython環境にインストールしてください

pip install Rhino-stubs
pip install Grasshopper-stubs

(「python2.7はサポートが終了しています」的なアラートが出ますが気にしないでください。)

構築したpython2.7をインタプリターとしてVS Codeで指定する

画面左下にあるPython~をクリックすると画面上部にインタプリタを選択するところが出てくるので今回作ったPython環境を選択してください。

Grasshopperでやること

Read Fileの設定

  • Read Fileというコンポーネントを置く

    image.png
  • コンポーネント名を右クリックしてPer Lineのチェックを外す

    image.png
  • 「F」を右クリックしてSyncroniseをチェックする

    このチェックをすることで外部エディタで更新したコードがGrasshopperで反映されるようになります。

    image.png

Pythonファイルを読み込む

  • 「F」を右クリック→Select one existing fileを選択し、読み込むPythonファイルを選択

    image.png

Pythonコンポーネントの設定

  • Pythonコンポーネントを配置
  • コンポーネント名を右クリック→Show "code" input parameterをクリック

    インプットのトップにcodeというパラメータが出てきます。

    image.png
  • Read Fileの「C」をPythonコンポーネントのcodeにつなぐ

    image.png
  • これでPythonファイルをリンクさせることができました!

    あとはVS Codeでコードを書きGrasshopperで結果を確認してください。

注意点

コードの変更は必ず外部エディタで行う

Grasshopperのエディタでコードを変更してエディタを閉じようとすると下記のメッセージがでてリンクが解除されてしまいます。
image.png

Grasshopperの入力パラメータ名は外部エディタでは認識されない

例えばこのようにxyをGrasshopperで入力していても
image.png
Pythonコード内で定義されているわけではないので、VS Code上ではUndifined variableというエラーが出てきます。

VS Code上でコード単体でテストしたい場合は変数を初期化しておく必要がありますが、Grasshopper上で実行するだけであれば問題ありません。
image.png

さいごに

Grasshopper上のPythonコードを外部エディタで書く方法をご紹介しました。単体のPythonファイルだけならこの方法で十分なのですが、別ファイルのモジュールや設定ファイルを使って本格的に開発をしようとするとGrasshopperならではの問題がでてきます。それについてはまた別の記事で解説いたします。

参考

2
7
0

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
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?