Maya

【Maya:Python】ポリゴン数を表示・取得する

ポリゴン数をメモしたい時がたまにありますが、目で見ながら入力するのが面倒だと感じたためスクリプトを作成。
選択したモデルの頂点、エッジ、フェース、三角形、UVすべてダイアログに出してコピー出来るようにしました。

ポリゴン数を表示

ディスプレイ → ヘッドアップディスプレイ → ポリゴン数 から表示できますがコマンドも調べました。

melコマンド

setPolyCountVisibility(1);

pythonコマンド見つからず

pythonでmelを実行する方法はこのようになります。

import maya.mel as mel
mel.eval('setPolyCountVisibility(1);')

ポリゴン数を取得してダイアログを出す

数字だと結合できなかったため、strで文字列に変換しています。
実行するとこのようなウィンドウが出て文字列をコピーできます。

# -*- coding: utf-8 -*-
import maya.cmds as cmds
import maya.mel as mel
import sys

# 何も選択されていなければ警告
if not cmds.ls(sl=True):
    cmds.warning(u'なにも選択されていません')
    sys.exit()

mel.eval('setPolyCountVisibility(1);')

v_cnt = cmds.polyEvaluate(v=1)
e_cnt = cmds.polyEvaluate(e=1)
f_cnt = cmds.polyEvaluate(f=1)
t_cnt = cmds.polyEvaluate(t=1)
uv_cnt = cmds.polyEvaluate(uv=1)

r = u'頂点 : ' + str(v_cnt) + '\n' + \
     u'エッジ : ' + str(e_cnt) + '\n' + \
     u'フェース : ' + str(f_cnt) + '\n' + \
     u'三角形 : ' + str(t_cnt) + '\n' + \
     u'UV : ' + str(uv_cnt) + '\n'

cmds.confirmDialog(title='Count', message=r)