入り組んだブランチの線に太さを与え、NC用のカットラインデータを作る1

L-Systemのブランチの角度パラメータが違う2つの「木」トゥリーをロフトしたモデルを実体化する例です。2つの角度の値を連続させて、すこしづつ変化する形をレーザーカットし積層させる、という想定です。

まず、2つのトゥリー間をロフトさせたサーフェース、カット面となるサーフェースを用意します。
NC_test_AA_01.3dm

 

サーフェースをすべて選択し、交差するカーブを取り出します。
コマンド: Intersect
NC_test_AA_01-2

次に結果に対して、カット面と平行でないカーブを取り除きます。一つ一つマウスで選択して削除するのでOKです。この規模だと十分現実的な作業量ですが、スクリプトを援用するのもひとつの方法です。この一連の作業はpythonスクリプトを使いますが、Grasshopperは使いません。
コマンド: editpythonscript

でエディタを立ち上げてください。

NC_test_AA_01-4

以下のコードをエディタにコピーペーストし

import rhinoscriptsyntax as rs
import Rhino.Geometry as rg

rs.Command ("_SelAll")
cvs = rs.GetObjects("select curve", rs.filter.curve, True, True )

for cv in cvs:
    y = rs.CurveStartPoint(cv).Y
    for pt in rs.CurvePoints(cv):
        if abs(pt.Y - y) > .1:
            rs.DeleteObject(cv)
            break

実行ボタンを押します。

NC_test_AA_01-5

ここまでの作業状態です: NC_test_AA_02.3dm

入り組んだブランチの線に太さを与え、NC用のカットラインデータを作る2  に続く

 

Comments are closed.