rhinoscriptsyntaxで生成したオブジェクト

意味がよくわからないかもしれませんが、「rhinoscriptsyntaxで生成したプレビューオブジェクトは、コンポーネントを経る時点で破棄される」とい暗黙の仕様があるようで(おそらくメモリリークを防ぐため、メモリをセーブするため)、その認識が甘かったために昨日の諸々のエラーを誘発していたようです。Rhino.Geometryのデータではなく、rhinoscriptsyntaxやコンポーネントの入力オブジェクトを使う場合は、実行しているコンポーネントに入力する必要がある、、、、、、ということで、コードの書き方、スタイルをすこし変更します。

world.proc()

というところに、毎回 site オブジェクトを入力するようにします。つまり

world.proc(site)

として、毎回 site オブジェクトを入力します。proceess コンポーネントに site 入力ポートをつくります。スタジオモジュールのsetBoundary も

    def proc(self,site):
        su.SetBoundary(site)

とproc関数をコールするごとにセットします。

修正版をdropboxに置きます。他の人も参考にしてください。

rev_150609_shibuya.gh, rev_150609_shibuya.3dm

後に熊谷さんのものもアップします。studio_utility_1_0 も更新します。

※type hint をオブジェクトにあわせて明示するように変更していましたが、↑に注意すればtype hint はすべて標準の “ghdoc Object when geometry (…” で問題ありません。

Comments are closed.