就像标题所说的那样,我在Maya中有一个简单的python脚本,它不起作用。
import maya.cmds as cmds
import maya.mel as mel
def createCylinder():
# Check if cylinder "trunkCylinder" exists. Delete it
if cmds.objExists("trunkCylinder"):
cmds.delete("trunkCylinder")
# Create a new cylinder called "trunkCylinder"
cmds.polyCylinder(axis=(0,1,0), height=1, name="trunkCylinder" )
# Clear the selection, then select the cap and invert the selection.
cmds.select(clear=True)
cmds.select("trunkCylinder.f[21]", replace=True)
invertedSel = mel.eval("invertSelection;")
print str(invertedSel)
# ^^ Prints: None ^^
# End result is nothing is selected
createCylinder()
我希望Maya打印除了f [21]之外的trunkCylinder上的所有面的列表,并反转视口中的选择。相反,它返回None并取消选择f [21]。有没有人在我的代码中看到错误,或者我错误地使用了invertSelection?
幸运的是,我可以选择f [0:20]作为解决方法,甚至可以获取面部列表并将其与我的面部列表进行比较,删除两个列表中的任何内容。但是我已经可以设想让invertSelection工作的情况会节省很多时间。任何帮助在这里将不胜感激。
答案 0 :(得分:2)
以下Python脚本绝对有效。你应该试试看))。星号用于选择数组中的所有其他面,以及toggle
标记,它为您选择了一个选择。
import maya.cmds as cmds
def createCylinder():
if cmds.objExists("trunkCylinder"):
cmds.delete("trunkCylinder")
cmds.polyCylinder(axis=(0,1,0), height=1, name="trunkCylinder")
cmds.select(clear=True)
cmds.select("trunkCylinder.f[21]")
cmds.select("trunkCylinder.f[*]", tgl=True)
createCylinder()