我有一个脚本要求用户使用复选框选择对称轴。然后,我希望在另一个函数中使用该结果来创建镜像工具。到目前为止,当我尝试查询复选框时,我不断收到以下错误:
RuntimeError:文件第81行:找不到对象
xAxisBox
我是初学者,所以如果这很明显我道歉,但我哪里出错了? 相关代码如下:
xAxisBox = cmds.checkBox(l="x")
yAxisBox = cmds.checkBox(l="y")
zAxisBox = cmds.checkBox(l="z")
btAxis=cmds.button( label = "Do the thing!", command = "Blendy();")
def Blendy ():
xCheck = cmds.checkBox('xAxisBox', query=True, value = True)
yCheck = cmds.checkBox('yAxisBox', query=True, value = True)
zCheck = cmds.checkBox('zAxisBox', query=True, value = True)
print xCheck
print yCheck
print zCheck
答案 0 :(得分:3)
我没有Maya,所以我无法为你测试这个,但是看看another question的答案,看起来你需要使用没有引号的实际python变量(即xAxisBox
而不是'xAxisBox'
),如下所示:
xCheck = cmds.checkBox(xAxisBox, query=True, value = True)
答案 1 :(得分:0)
如果您使用cmds,则可以引用硬编码的ui名称:
Security [securityName=Apple, marketCap=130000, profit=Profit [oneMonthProfit=1.2, threeMonthProfit=-2.0, sixMonthProfit=3.0]]
但是对于pymel你可以在没有硬编码的情况下尝试这个:
xAxisBox = cmds.checkBox("xAxisBox", l="x")
yAxisBox = cmds.checkBox("yAxisBox", l="y")
zAxisBox = cmds.checkBox("zAxisBox", l="z")
btAxis = cmds.button(label="Do the thing!", command=Blendy)
def Blendy ():
xCheck = cmds.checkBox('xAxisBox', query=True, value=True)
yCheck = cmds.checkBox('yAxisBox', query=True, value=True)
zCheck = cmds.checkBox('zAxisBox', query=True, value=True)
print xCheck
print yCheck
print zCheck
您可以导入pymel xAxisBox = pm.checkBox(l="x")
yAxisBox = pm.checkBox(l="y")
zAxisBox = pm.checkBox(l="z")
btAxis = pm.button(
label="Do the thing!",
command=pm.Callback(Blendy,
xAxis, yAxis, zAxis)
)
def Blendy (xbox, ybox, zbox):
xCheck = cmds.checkBox(str(xbox), query=True, value=True)
yCheck = cmds.checkBox(str(ybox), query=True, value=True)
zCheck = cmds.checkBox(str(zbox), query=True, value=True)
print xCheck
print yCheck
print zCheck
但如果您将使用pymel,我建议重写Blendy函数,如:
import pymel.core as pm
最后也是最重要的是你可以使用class来存储值
从其他资源的neelz回答:
使用模块def Blendy(xbox, ybox, zbox):
print xbox.getValue(), ybox.getValue(), zbox.getValue()
,该方案与Callback相似:
partial