ポリゴン 5角形以上を選択する


5角形以上を選択する。
調べてみたら簡単だった。

ひとつの面(face)が持っている、頂点数を調べる機能があるので
コレをつかう。

poluOp.getFaceDeg <対象オブジェクト> <面Index>

コレ自体を使うことは簡単なんだけど。
問題なのは、編集可能ポリゴン(editable_poly)じゃないと使えないこと

ということで、まずは、オブジェクトが編集可能ポリゴンかどうかを調べる。
編集可能ポリゴンじゃなかった場合は、・・・・

好きにしてくれ。 

 Local selectBitArray = #{};
  for i in selection do
  (
   –Edit_Polyだった場合に
   if classOf i.baseobject != Editable_Poly then
   (

   )else
   (
    for j = 1 to i.faces.count do
    (
     if (polyOp.getFaceDeg i j) >= 5 then append selectBitArray j;
    );–for end
    
   –最後に選択
   if (selectBitArray.numberSet != 0) then
   (
    try(
     i.EditablePoly.SetSelection #Face selectBitArray;
     messageBox(i.name + “に5角形以上のポリゴンは\n” + (selectBitArray.numberSet as String) + ”  ポリゴンありました”)title:”メッセージ”;
    )catch(messageBox(i.name + “のポリゴン選択に失敗しました”)title:”メッセージ”);–try end
   );–if end

   );–if end

   selectBitArray = #{};
   
  );–for end

こんなところだろうか。
シンプルイズベスト、基本機能はコレで十分かな。
複雑な機構を付け加えるなら。

5角形以上で、さらに、頂点同士の位置などから
面がツイストしているかどうか、などなど。

でも、こんな感じの機能を持ったツールは、Maxなら色々ありそうだぞ。