Vectorworksマリオネットで任意のエリアにタイルを並べる(1)
Vectorworks マリオネットで、任意の範囲にタイルを並べるプラグインオブジェクトを作成する、、、という内容はVectorworksDesignBlogで紹介されておりました。
マリオネット解説講座
第12回「コントロールジオメトリの解説」https://bim.aanda.co.jp/blog/2021/03/8030/
という事で、こちらで配付されている「Point on Poly」を少し改造して、任意のタイルサイズ、任意の目地幅で、2D図形と3D図形でそれぞれ表示される様にしてみます。
注意
マリオネットは編集中、ノードの組み方が拙かったり、動作が極端に重くなることで予期せずVWが強制終了する事が多発します。決して本番環境内や大事なファイルを未保存で開いた状態での編集は止めましょう。
任意のタイルサイズ、目地幅を設定出来る様にする
![](https://assets.st-note.com/img/1639913256617-jcH5LtksJP.png?width=1200)
エリア指定のhPoly入力とタイル起点となるポイントの出力のみ
![](https://assets.st-note.com/img/1639911656020-L24wnrqqgz.jpg?width=1200)
このままタイル生成に組み込むと、タイルサイズ100mmのままパレットから変更できない。
まずはタイルサイズをオブジェクト情報パレットから変更出来るようにするため、「”meshsize”DIMノード」を、「Passノード」に入れ替え、名前を”meshsize”とします。
![](https://assets.st-note.com/img/1639911884104-tMmwzKtuPp.png?width=1200)
名前を変えないと入力として使えない
ノードの纏まりで作られるラップノードに、外部からの変数入力を受け付けるようにするには、Passノードに名前を付け、入力したい数値に接続する、というのがマリオネットの作法のようです。
![](https://assets.st-note.com/img/1639913192877-kHqd0asIjt.png?width=1200)
![](https://assets.st-note.com/img/1639913782187-Ayh3ww1rNk.jpg?width=1200)
続いて、”タイルサイズ”Dimノードから、追加したaddノードに分岐を出して、目地幅Dimノードを加算するようにします。
現実ではタイルサイズと目地幅は個別に設定するはずなので、それぞれ個別に設定出来る様になりました。
![](https://assets.st-note.com/img/1639913907051-QHuqrNVAPW.png)
タイルサイズと目地幅が個別に設定できる
![](https://assets.st-note.com/img/1639915890339-2oh2NSIdTa.png?width=1200)
縦横幅を自在にする
ここまでのタイルは全て正方形でした。しかし、現実には縦横幅が異なるタイルの方が多いのではないでしょうか。そこで、縦横を自由なサイズに指定できるようにしてみます。
![](https://assets.st-note.com/img/1639923270549-PAnkH9KsJz.jpg?width=1200)
タイルサイズDimノードとdivノードを複製し、横(X)用、縦(Y)用で名前を変更します。
変更後はPoint 2Dノードへ画像の様につなぎ替えると、縦横が自在に変更出来るようになりました。
Rectangle 2 Ptノードは、四角形の対角を指定する事で図形を生成します。対角の位置をタイルサイズの半量分、右上と左下にOffset Pointノードで移動させ、Point on Poly Customで生成したポイントを中心点とした四角形を生成させています。
![](https://assets.st-note.com/img/1639923465310-mv7Wo4hqeF.png)
![](https://assets.st-note.com/img/1639923488913-NeHCsCRtht.png?width=1200)
あとはDesignBlogの流れにそって、タイルの押し出しと、領域での切断を行うようノードを組みます。
![](https://assets.st-note.com/img/1639924874810-iTNv0su75F.jpg?width=1200)
![](https://assets.st-note.com/img/1639924938049-WviMNmQgPz.png?width=1200)
このままだと、2D表現ではタイルが表示されません。
このプラグインオブジェクトで生成される図形は、ハイブリッドシンボルと同じ扱いとなり、2Dは二次元平面ビューのみ、3Dは三次元ビューのみで表示される様です。
2D,3Dどちらでもタイルを表示させるには、押し出しする前の2Dタイルをコピーし、Planner Booleanノードを使って領域図形で切り欠きます。
CopyノードをExtrudeノードの前に差し込み、押し出し用と2D用で分けて、それぞれ後の処理へ渡します。
![](https://assets.st-note.com/img/1639925299393-vRDZXXnMOO.jpg?width=1200)
Control Geometryノードの後に差し込まれたPassノードは、ネットワークが長くなりすぎて、つなぎ替えの度に画面移動が発生しないようにするためにあります。
Passノードを迂回路の様に使うのは、ネットワークの最初の方で使う情報や図形を後半で再利用する際に、他のノードを潜ってしまうことで判読性が落ちるのを防ぐためでもあります。
![](https://assets.st-note.com/img/1639925731033-W1yAkIer1O.png?width=1200)
2D基準点はタイルの中心点に配置しています。おかしな図形ができたりする場合にデバッグしやすい様にあえて加えています。
という事で、任意のタイルサイズ、目地サイズで2D、3Dで表示されるタイル敷き詰めが完成しました。
・・・・・
・・・・・
皆さん気づいたでしょうか、一部生成されるべきタイルが抜けている箇所があります。
![](https://assets.st-note.com/img/1639926043293-ZXcLkvyPQf.png)
どのような場合に生成不良が発生するのか、回避方法を検討してみます。。。
この記事が気に入ったらサポートをしてみませんか?