階段3Dモデルの自動生成ツール作成と紹介! -設計自動化ツール第1弾-

Grasshopper

今回はパラメトリックデザインの分野でしばしば使われるツールであるGrasshopperを用いて、モデリングの自動化を行いたいと思います。

第一回ということで、Grasshopperを使う際のチュートリアルとしても作成することが多い「階段」の3Dモデルの作成を行いますが、ただ作成するだけではあまり他と変わらないため、ライン(直線)を取り込む部分とBake(モデルをRhinoのビュー上で編集可能にする)部分をそれぞれPythonとC#で記述しました。

Grasshopperの操作に慣れていない人でも簡単に扱えるように作成しました。

それでは使い方とアルゴリズムの簡単な説明だけしていきたいと思います。

使い方

①XY平面状にRhinoの方で作成したい階段と同じ長さの直線を引きます。画像は8000mmです。

②Grasshopperの画面で[Line選択ボタン]をTrueにします。

すると、Rhinoのコマンドプロンプトに「線を選択してください。」と表示され、先ほど作成した線を選択します。

③段数、階高、厚み、階段幅のパラメータからGrasshopperのモデルが作成されるので、Bakeボタンをクリックします。

アルゴリズムの説明

このGrasshopperのデータでは、通常の階段のモデリングに加え、「Set one line」と「Bake」をボタンのクリック操作で行えるようにしました。それらについて説明していこうと思います。

①Clusterの中はPythonのコンポーネントと繋がっています。中身は以下のようになっていて、ボタンを押してTrueにすると、Rhino上のlineを選択し、アウトプット端子で選択したものを出力します。

import Rhino

if switch == True:
    crv = Rhino.DocObjects.ObjectType.Curve
    rc, objref = Rhino.Input.RhinoGet.GetOneObject("線を選択してください。", True ,crv)

    if objref:
       curve = objref.Curve()
    else:
           curve = None

②入力されたlineをDivide curveで段数の数だけ分割し、分割された点をEntwineで二つにパスを分け、moveで+Z方向に蹴上分移動する。Explode Treeで分割点を各出力端子({0}と{1})に分け、Weaveにつなぐ。これにより、点の配置の順番が階段状に並び替えられて、Polylineに入力すれば階段状のつながった線となる。

③次に先ほど作成した階段状の線を厚みの分だけ平行移動し、Dispatchを用いて半分だけ取り出す。②で作成した階段状に並び替えられた点群と、今回取り出した点群をFrattanでPointコンポーネントにつなぎ、Polylineに入力(閉じたPolylineにするためにClosedをTrueに設定)すると、階段の断面線が出力される。断面線をBoundary Surfacesでサーフェス化した後に、Evaluate Surfaceで取得した法線ベクトル方向へExtrudeで押し出します。

④最後にC#コンポーネントで、Bakeボタンを押せば勝手にモデルがBakeされるように記述すれば終了です。

  private void RunScript(DataTree<GeometryBase> geometries, bool export)
  {
    if(export){

      var guids = new List<Guid>();

      for(int i = 0; i < geometries.BranchCount; i++){
        for(int n = 0; n < geometries.Branches[i].Count; n++){
          var geom = geometries.Branches[i][n];
          var guid = Rhino.RhinoDoc.ActiveDoc.Objects.Add(geom);
          guids.Add(guid);
        }
      }
    }
  }

おわりに

今回は階段自動生成ツールをGrasshopperの操作に慣れていない人でも、Set one line やBakeをせずに簡単に出力できるようなものとして作成しました。ツールデータのダウンロードはこちらから。

でも実は、C#の記述は「Parametric Design with Grasshopper – 建築/プロダクトのための、Grasshopperクックブック」の著者でもある堀川 淳一郎さんのYouTubeの動画で作成していたものの一部をそのまま用いたものです。これから自由にC#も扱えるように勉強していきたいと思います。

本のタイトルと動画のリンクは下に載せておきます。

堀川淳一郎さん著書 「Parametric Design with Grasshopper – 建築/プロダクトのための、Grasshopperクックブック

堀川 淳一郎さんのYouTubeの動画 「How to Export Geometry in Grasshopper using C#」

How to Export Geometry in Grasshopper using C#

コメント

  1. […] ⑦これは前回の「モデリング自動化ツール その①」で用いた、Bakeを自動化するツールをそのままエクスポートしてくれるようにしたものです。filenameの拡張子を[.ai]にすることでイラレデータを保存します。前回の「モデリング自動化ツール その①」へはこちらから行けます。 […]

タイトルとURLをコピーしました