StreetViewAC ひそかに更新

StreetViewAC  クラスタリング付け加えました。ドロップする.3dmファイルは、こちらを参考にしてください。 cluster_test.3dm レイヤ名の先頭に “cluster_” とつけたレイヤの上にあるtextDotはすべて同種類の要素として読み込まれます。 レイヤオフ、hidden のtextdotは読み込まれません。このあたりのon / off で母点としての入力を調整してください。 ファイルを読み込んだら、area パネルの上から3番目のスピンボックスをプルダウンして、clusterにあわせてください。 textdot で読み込んだ位置が表示されます。 下から3番目のラインエディットに数値を書きこみます。これがクラスタ数の設定となります。 一杉さんは有向グラフなので、ファイルをドロップした後に’,’ (カンマ)キーを押して、上り下り負荷をセットするのを忘れずに。 結果表示はクラスタ内のminisum node を重心として、格要素に直線で参照線を描いていますが、クラスタの計算はネットワーク距離で行っています。 やってみた感じ、あまりクラスタ内のノードの数が均等では無い印象です、、、。クラッシュすることはあまりありませんが、ネットワークが大きいとクラスタリングにそれなりの時間がかかります。ward法はおそろしく時間かかります。 ネットワークが大きい場合、キー”E” を押してエッジを非表示にすると描画負荷が下がってすこし計算が速くなります。もう一度 ”E” を押すと再表示します。 visualize panelの edge opacity でも同じことができます。  

  • Comments Off on StreetViewAC ひそかに更新

find Hamilton Path

出発ノードを指定して、ハミルトン閉路を探す関数のサンプルです。グラフモジュール graph_1_1.py を使います。 maxim_1Stroke.zip ハミルトン閉路がない場合、最も多くノードを介する閉路のリストを返します。 GH-Pythonだと計算フレームが問題になりそうです。サンプルは30ノード38エッジ程度。

  • Comments Off on find Hamilton Path

graph_1_1 グラフモジュール バージョン1.1

graph_1_0 はモジュールからクラスインスタンスを作る形でしたが、クラス内の関数などがエディタ補完機能で、補完されずに使いにくかったので、モジュール対して直に初期化するようにしました(その代わり複数のグラフを同時に作れません)。その他、関数も追加してあります(ネットワーク距離でのクラスタリング、ward, k-means++ など)。 graph_1_1.py 座標精度により、カーブの頂点がマッチしていないと、グラフがうまく生成されない、というやっかいな問題ですが、スタジオユーティリティーモジュール studio_utility_1_0.py に という関数が実装されています。ライン、ポリラインの始点・終点の座標の指定桁を丸める(切り捨てる)関数です。 これで無理やりライン、ポリラインを変換すると割りとグラフ化できる率があがります。

  • Comments Off on graph_1_1 グラフモジュール バージョン1.1

studio_utility_1_0 更新

download studio_utility_1_0.py studio_utility_1_0.py ユーティリティモジュールを更新しました。 新しい関数は、渋谷さんのプロジェクトで必要そうなものです。 木を配置→ヴォロノイダイアグラムを描く→ghpc.Voronoi(self.treepoints)ヴォロノイセル毎にポリラインが返ってくる→ポリラインを線に分解(su.explodeRsPolyline)→線の重複を除去(su.delDupLineInList)→一筆書きのエッジ組み合わせを作る(オイラー経路を調べること!)→グラフを作る  

  • Comments Off on studio_utility_1_0 更新

CPlane 原点

CPlane origin 原点を変更すると、Rhino.Geometry Point などで座標が一致しないことがあるようです。 コードを書くときはなるべくCPlaneをデフォルトの原点にあわせておきましょう。

  • Comments Off on CPlane 原点

studio_utility_1_0 更新

download studio_utility_1_0.py studio_utility_1_0.py ユーティリティモジュールを更新しました。 dorpbox に熊谷さんのプロジェクトファイルを置きました。 下記 checkPolyline という関数を使っています。今後配置問題を解決するのに多用すると思われます。 rev_0609_kumagai.3dm, rev_0609_kumagai.gh

  • Comments Off on studio_utility_1_0 更新

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

意味がよくわからないかもしれませんが、「rhinoscriptsyntaxで生成したプレビューオブジェクトは、コンポーネントを経る時点で破棄される」とい暗黙の仕様があるようで(おそらくメモリリークを防ぐため、メモリをセーブするため)、その認識が甘かったために昨日の諸々のエラーを誘発していたようです。Rhino.Geometryのデータではなく、rhinoscriptsyntaxやコンポーネントの入力オブジェクトを使う場合は、実行しているコンポーネントに入力する必要がある、、、、、、ということで、コードの書き方、スタイルをすこし変更します。 というところに、毎回 site オブジェクトを入力するようにします。つまり として、毎回 site オブジェクトを入力します。proceess コンポーネントに site 入力ポートをつくります。スタジオモジュールのsetBoundary も とproc関数をコールするごとにセットします。 修正版をdropboxに置きます。他の人も参考にしてください。 rev_150609_shibuya.gh, rev_150609_shibuya.3dm 後に熊谷さんのものもアップします。studio_utility_1_0 も更新します。 ※type hint をオブジェクトにあわせて明示するように変更していましたが、↑に注意すればtype hint はすべて標準の “ghdoc Object when geometry (…” で問題ありません。

  • Comments Off on rhinoscriptsyntaxで生成したオブジェクト

Valid Surface を使ってください。

昨日スタジオで使っていた、敷地のサーフェースですが、what コマンドで見ると Geometry: Invalid surface. と出ます。これがsutudio_utility_1_0 モジュールなどでエラーの出る原因のひとつです。dropboxに ”Valid_surface.3dm” を置きましたので、こちらを使うか、Valid surface となるように敷地をモデリングしてください。  

  • Comments Off on Valid Surface を使ってください。