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なら色々ありそうだぞ。