ハードエッジ?ソフトエッジ?

エッジが、ソフトエッジか、ハードエッジか調べる方法のご紹介です!

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のように逆転した結果を得ることができます!