選択したコンポーネントのShellを取得する!!

ポリゴン系のツールを作っていると、このフェイスをShellが欲しい、、、このUVのShellが欲しい、、、っということがよくあると思います!

コンポーネントの変換なら「polyListComponentConversion」できますが、Shellはそうはいきません!そこで使うのが、polySelectConstraintです!

ただ、このコマンド、選択が変更されてしまったり、元に戻さないと酷い目にあったり、ちょっと癖があるのでまとめておきたいと思います!

from maya import cmds

# Shellに変換する
def toShell(component):
	
	# 現在の選択状況を取得する
	currentSelection = cmds.ls(sl=True)
	
	# 指定されたコンポーネントを選択する
	cmds.select(component)
	
	# 選択をShellに変換する
	cmds.polySelectConstraint(m=2, sh=True)
	
	# Select ConstraintをOFFにする
	cmds.polySelectConstraint(bo=0, m=0, sh=False)
	
	# 選択をShellに変換したリストを取得する
	result = cmds.ls(sl=True, fl=True)
	
	# 選択を元に戻す
	cmds.select(currentSelection)
	
	# リストを返す
	return result