エッジが、ソフトエッジか、ハードエッジか調べる方法のご紹介です!
「polyInfo」というコマンドを調べれば、エッジの種類を調べることができるのですが、以下のように返ってきます。
[u’EDGE 77: 40 41 Hard\n’]
何だこれ!!
ん?っとなりますよね。ホント、困ったもんです。(;・∀・)
スペース区切りの文字列で送られてきても、処理がしづらいですよね、、、
なので、
いい感じにしましょう
(゚∀゚)
「polyInfo」での、エッジの種類ですが、ハードエッジであれば末尾が「Hard」、ソフトエッジであれば「省略」されるようになっています。
そこで、pythonの便利な「スライス」を使って末尾4文字を切り取って調べます!
用意した関数は3つになります。
from maya import cmds def getEdgeType(edge): return cmds.polyInfo(edge, ev=True)[0][-5:-1] def isHardEdge(edge): return getEdgeType(edge) == 'Hard' def isSoftEdge(edge): return not isHardEdge(edge)
getEdgeType
こちらは、内部使用の関数です。指定されたエッジの情報を取得して、末尾4文字を切り取ります。
isHardEdge
これは、ハードエッジか調べる関数です。ハードエッジなら「True」、ソフトエッジなら「False」になります。引数には、「pPlane1.e[76]」のようにエッジ名を文字列で指定します。
isSoftEdge
こちらは、ソフトエッジか調べる関数のおまけです。ソフトエッジなら「True」、ソフトエッジなら「False」になります。「return」の前に「not」がありますが、これはTrueをFalse、FalseをTrueのように逆転した結果を得ることができます!