Blender Sverchok Crop mesh 2Dノードを見てみる

Sverchok

はじめに

CADカテゴリ中で唯一見ていないノードがあったので見てみます。

Crop mesh 2D

参照元

https://github.com/nortikin/sverchok/blob/master/docs/nodes/CAD/crop_mesh_2d.rst

機能

2つのメッシュを取りフェイスの交差を見つけてモードによって重なっているまたは重なっていないフェイスを表示します。

別の言い方をすればOuterモードではCropMeshはベースメッシュに穴を作成する事ができ、またベースメッシュをCropMeshに挿入することができます。

このノードはベースメッシュのエッジを取り同じロジックに従ってそれらを切り取ることができます。Crop meshは常にフェイスを持っている必要があります。

名前の中の2Dが意味するのはこのノードがすべての種類の平らなフェイスのメッシュを期待しているという事ですが、XYサーフェスだけが扱えるという意味ではありません。入力メッシュはXY表面の下か上にできますまたは相対的な1つを傾けることができます。

  • 🤔YZサーフェスやXZサーフェスも扱えるという事ですかね

またこのノードはオプション的にフェイスインデックスメッシュの出力ソケットを持ちます。この出力はこのノードによってできたメッシュにマテリアルなどを割り当てるのに使う助けとなります。これはフェイスindexモードのみで使用可能です。

  • 🤔Boolean mask ではなくてIndex maskを出力するという事ですね。

注意

このノードは100%堅牢ではありません。あるコーナーケース(めったに発生しない厄介なケース)では機能しません。もしエラーとなったり、期待しない結果であれば下記をチェックしてください

  • フェイスの代わりに辺を接続しないでください。その逆もしかりです
  • Nパネルにある精度パラメータを変更してみてください

Blender mode

このモードはBlenderの内部関数を使いますので早いですがBlenderがクラッシュする事もあります。そしてフェイスのみに機能します

カテゴリ

CAD -> Crop mesh 2d

入力

  • verticesベースメッシュの頂点
  • Faces or Edges ベースメッシュのフェイス(エッジを接続しないでください)
  • Vertices crop 切り取るメッシュの頂点
  • Face crop 切り取るメッシュのフェイス

出力

  • Vertices新しく生成された頂点
  • Faces or Edges 穴を表示する為に新しく生成されたフェイス
  • Face index(フェイスモードのみ) 古いフェイスのインデックス

パラメータ

  • Facesインプットメッシュのフェイスモードを有効にする。フェイスが接続できるようになる
  • Edgesインプットメッシュのエッジモードを有効にする。エッジが接続できるようになる
    • 🤔こちらは使えないかもしれませんね
  • Inner Crop meshにメッシュを挿入するモードを有効にする
  • Outer Base meshにクロップメッシュの穴を作成する
  • Accuracy (N-Panel) 比較する浮動小数の小数点の数

Accuracy 多くのケースでこのパラメーターは触る必要がありませんがエラーが出てしまう場合などに調整してみてください。このパラメータはパフォーマンスに影響は与えません。

その他

使用例が公式にあるので見てみてください

使ってみる

基本

  • ベースメッシュはPlane、CropメッシュとしてCircleを与える
  • Faceモードのみをテスト
  • 赤い枠で囲んだモードの選択と黄色い枠で囲んだInner・Outerモードの切り替えをテストしてみます
  • 🤔SweepとBlenderの結果が違いますね。しかしCircleの半径を少しだけ変えると結果は同じになります

星形の穴をあけて筒状にする

  • 一番左で後で穴をあける為のベースメッシュを用意
  • 赤い枠で星型の平面を作成
    • Transform Selectノードはメッシュを特定の条件で2つに分け別々に編集をする
      • 条件を与えていない場合、入力された頂点を奇数・偶数で分けて編集を行う
      • 奇数番目のみ頂点を中央によらせる事で星を作成
  • 水色の部分で星型の平面をランダムにベースメッシュ状にちりばめる
    • Random points on meshで平面上にランダムなポイントを生成
      • ポイントが外側に行き過ぎないように平面のサイズを95%にしランダムなポイントが生成される範囲を狭める
    • 全ての星をランダムにスケーリング及び回転する
  • ベースメッシュと生成した星をCropメッシュとして与えOuterモードにする事で、ベースメッシュに星形の穴をあける
  • 黄色の部分で筒状にしてオブジェクト化する
    • XY平面を筒状に変形する為,X軸に90度回転させてXZ平面にする
    • Simple Deformでちょうど円一周分回転する
    • 最後にMesh Viewerでオブジェクト化

最後に

何度かドキュメントを読まずに使用しようとしてエラーになる度にノードを削除していましたが理解できてよかったです🙂

英語メモ

  • Crop 切り取る
  • Differently to say 別の言い方をすれば
  • Corner case めったに発生しない厄介なケース
タイトルとURLをコピーしました