Grasshopper: ACPDQ – 指定条件のオブジェクト除去・検出ツール&ゆらぎツール

以前AppliCraftで公開していたRhino4.0用プラグイン「ACPDQ」について、Rhino6でも使用したいとのご要望をいただきましたので、Grasshopperによる同機能の定義ファイルを公開いたします。
この定義ファイルは下記の機能を備えています。
・ACPDQ*1:指定数値以下の長さ・面積のオブジェクトを除去
・ACDDCP:重複・ねじれ・指定距離以下の関係にある隣り合う点を検出
・RandomTransfer:制御点をランダムに移動させ、ゆらぎのあるサーフェスを作成
※注1:ACPDQに関しては、Rhinoのコマンドにも短い曲線を選択する [SelShortCrv]や、 小さいオブジェクトを選択する[SelSmall]があります。[SelSmall]コマンドはバウンディングボックスの対角線の最小値で指定しますので、面積値から指定したい場合は、ACPDQが便利です。

こちらからフリーでダウンロードいただけます。


〇ACPDQファイルの使用方法
①ダウンロードファイルを展開します。中に.3dmファイル”ACPDQ_Sanple.3dm”*2と.ghファイル”ACPDQ_202004.gh”が入っています。
※注2:”ACPDQ_Sanple.3dm”は機能をご確認いただくためのサンプルファイルです。実際にご自身のファイルで実行する場合は、下記の手順で任意のRhinoファイルを起動して、続けて同様にお使いください。

”ACPDQ_Sanple.3dm”を開いた後、標準タブ右端にあるGrasshopperアイコンもしくはコマンドラインにGrasshopperと入力すると、Grasshopperのウィンドウが開きますので File>Open Document を選択し、”ACPDQ_202004.gh”を開きます。”ACPDQ_202004.gh”には「ACPDQ」と「ACDDCP」の2つの定義ファイルがあります。

ACPDQは、Rhino上に存在する指定数値以下の長さ・面積のオブジェクトを除去します。
上が曲線用、下がBrep(サーフェス・ソリッド)、Mesh用になります。
Geometry Pipelineコンポーネント(一番左端)のLayer、Nameをダブルクリックで、レイヤ名やオブジェクト名を入力すると、フィルタを掛けることも可能です。デフォルトは「*」で、すべてのオブジェクトが対象になります。
長さや面積の最小値は、Number Sliderコンポーネントを動かしたり、ダブルクリックして数値を書き換えることで任意の設定が可能です。
右端にあるCull Patternコンポーネントに除去後のデータが出力されますので、記載の手順でRhinoデータに変換します。

ACDDCPは、Rhino上にある重複・ねじれ・指定距離以下の関係にある隣り合う点を検出します。
Geometry Pipelineコンポーネント(一番左端)のLayer、Nameをダブルクリックで、レイヤ名やオブジェクト名を入力すると、フィルタを掛けることも可能です。デフォルトは「*」で、すべてのオブジェクトが対象になります。
”False”と書いてあるBoolean Toggleコンポーネントは、必要な機能のみダブルクリックで、False=実行しない→True=実行に切り替えて使用します。
点の最小間隔値は、Number Sliderコンポーネントを動かしたり、ダブルクリックして数値を書き換えることで任意の設定が可能です。
右端にあるPointコンポーネントに検出結果が出力されます。


〇RandomTransfer(ゆらぎツール)の使用方法
①RandomTransferフォルダに、RandomTransfer&SrfMorph.3dmとRandomTransfer&SrfMorph.ghが入っています。
RandomTransfer&SrfMorph.3dmを開き、続けてGrasshopper上からRandomTransfer&SrfMorph.ghを開きます。
Rhinoファイルのレイヤで、Backed-という名前のレイヤは、完成形状が入っていますので、表示OFFにします。
Curveコンポーネント(一番左端)の上で右クリックし「Set one Surface」でRhino上で作成済の矩形曲線を読み込みます。
  

②右端にあるコンポーネントを選択した状態にし、Z方向への凸量の調整、凸パターンを乱数で変化のNumberSliderを動かし、最適な形状を見つけます。最後にSurface from PointsコンポーネントをBakeします。
 

③②で作成したサーフェスを他のサーフェスにモーフして使うことも可能です。
下部にある「ゆらぎの応用例」をお試しください。