最近気づいたのですが、新型の山手線の床にも似たようなパターンが施されています。
黒ベタと透明の部分にそれぞれサーフェスを張り、UV分割で四角形に細分化して、大きさをスケール処理しています。
Step.1 カーブを用意する
・まずは基準となるカーブを作り、Grasshopperにインポートします。・次に、分割した点の接線ベクトルがT出力から取れますので、分割点からZ方向にLine SDLコンポーネントで適当な長さの線を作った後、この線を基準軸として接線ベクトルを90°回転させます。すると、法線ベクトルが求まります。
・後は法線方向に、適当な長さの直線を作成します。すると上の図のようになります。
Step.4 法線を分割して、サーフェスを張る
・Step.2で求めたオフセットカーブとStep.3で求めた法線との交点を求め、Shutterコンポーネントを使って法線を2分割し、List Itemコンポーネントを使い内側の方を取り出します。
・内側の直線をU、Step.1の基準カーブ及びStep.2のオフセットカーブをVとして、Network Surfaceコンポーネントを使ってサーフェスを作成します。
Step.5 サーフェスの細分化
・Step.4で作成したサーフェスを、Divide Domain2とIsoTrimコンポーネントを使って縦横に分割します。
※今回は縦を14分割、横を540分割にしています。
・縦横に分けたサーフェスをDispatchコンポーネントにつないで2つに分けます。
※片方をA、もう片方をBとします。
・DispatchのP入力は、デフォルト設定(True,False)です。
Step.6 サーフェスの細分化
・Step.5で分類した片方のサーフェス(A)の中身は階層が平坦になっているので、Partition Listコンポーネントを使って、Step.5で決めた横分割数の半分の数で階層分けします。
・次に、Flix Matrixコンポーネントで行列反転させ、Brep EdgesコンポーネントとJoin Curvesコンポーネントを使って外周曲線を求めます。
・求めた外周曲線を、Path Mapperコンポーネントを使って階層を1段浅くします。
・その後、Split Listコンポーネントを使い、Step.5で決めた縦分割数の半分の数で分離させます。すると、上図のように内と外の2箇所に分離できます。
※Split ListコンポーネントのExpression欄にx/2を入力しています。
Step.7 サーフェスの細分化
・サーフェス(B)もStep.6と同じ作業を繰り返します。
Step.8 サーフェスを縮小させる割合の計算
・ここで、サーフェスを徐々に小さくする割合の値を計算しておきます。
・最大の倍率と最小の倍率の間をスライダーで決めて、rangeコンポーネントを使って、その間の等間隔な数列を求めます(NのExpression欄にx*-1を入れて、数を合わせます)。
・その後、Dispatchコンポーネントを使って、サーフェスA用とサーフェスB用に分離します。
Step.9 サーフェスAの縮小化
・Step.6で求めたサーフェスAの内側、外側それぞれをDispatchコンポーネントを使って交互に選択した後、Step.8で求めた数値を使ってスケールダウンします。すると上図のようになります。
Step.10 サーフェスBの縮小化
・同じくサーフェスBも同様の処理を行います。
Step.11 完成
・Step.9、Step.10で求めた曲線をExplodeコンポーネントを使って四隅の点を求めた後、PolyLineコンポーネントでポリカーブ化し、適当にフィレットを付けます。
・残りは、サーフェスに穴開けなど加工したら完成です。
0 件のコメント:
コメントを投稿