我正在创建一个maya UI,但是当我在maya中运行一次replace_name按钮后尝试运行我的loadobject按钮命令时,我收到此错误:
cmds.textFieldButtonGrp(self.loadobject, e=True, text=select_objects[0])
RuntimeError:
Run Code Online (Sandbox Code Playgroud)
希望有人可以帮我解决这个问题.谢谢.
import maya.cmds as cmds
class MyUI:
def __init__(self):
self.title = "Test UI"
self.window = cmds.window(self.title, widthHeight=(1000, 600),
resizeToFitChildren=1)
cmds.rowLayout("button1, button2, button3", numberOfColumns=5)
cmds.columnLayout(adjustableColumn=True, columnAlign="center",
rowSpacing=10)
self.loadobject = cmds.textFieldButtonGrp(label="Load Object name",
buttonLabel="Load",
text="Select Object %s."
% "and Load name",
buttonCommand=self.load)
self.basename = cmds.textFieldButtonGrp(label="Basename",
buttonLabel="Rename",
text="Enter basename.",
buttonCommand=self.replace_name)
cmds.setParent(menu=True)
cmds.showWindow(self.window)
def load(self, *args):
select_objects = cmds.ls(selection=True)
cmds.textFieldButtonGrp(self.loadobject, e=True, text=select_objects[0])
def replace_name(self, *args):
self.loadobject = cmds.textFieldButtonGrp(self.loadobject,
q=True, text=True)
self.basename = cmds.textFieldButtonGrp(self.basename,
q=True, text=True)
name = cmds.rename(self.loadobject, self.basename)
ctlname = "%s_ctl" % name
self.new_name = cmds.rename(name, ctlname)
Run Code Online (Sandbox Code Playgroud)
小智 7
你正在使用cmds我强烈推荐pymel而
import pymel.core as pm
不是你的问题.
问题在于逻辑.
你有名为self.loadobject&的班级成员self.basename.这两个代表Maya UI对象的名称.执行查询时,将使用Maya UI对象的内容覆盖这些变量.
然后当你再次尝试使用这两个对象时,Maya会告诉你:
RuntimeError:"老兄,你在谈论!@#$?"
我为我在Autodesk的朋友们道歉,他们或者由于语言粗略而审查了第二行,或者只是在Maya中省略了一个有用的调试器.
import maya.cmds as cmds
#x=MyUI()
class MyUI:
def __init__(self):
self.title = "Test UI"
self.window = cmds.window(self.title, widthHeight=(1000, 600),
resizeToFitChildren=1)
cmds.rowLayout("button1, button2, button3", numberOfColumns=5)
cmds.columnLayout(adjustableColumn=True, columnAlign="center",
rowSpacing=10)
self.loadobjectTEXT = "Select Object and Load name"
self.loadobjectFIELDNAME = cmds.textFieldButtonGrp(label="Load Object name",
buttonLabel="Load",
text=self.loadobjectTEXT,
buttonCommand=self.load)
self.basenameTEXT = "Enter basename."
self.basenameFIELDNAME = cmds.textFieldButtonGrp(label="Basename",
buttonLabel="Rename",
text=self.basenameTEXT,
buttonCommand=self.replace_name)
cmds.setParent(menu=True)
cmds.showWindow(self.window)
def load(self):
select_objects = cmds.ls(selection=True)
cmds.textFieldButtonGrp(self.loadobjectFIELDNAME, e=True, text=select_objects[0])
def replace_name(self, *args):
self.loadobjectTEXT = cmds.textFieldButtonGrp(self.loadobjectFIELDNAME,
q=True, text=True)
self.basenameTEXT = cmds.textFieldButtonGrp(self.basenameFIELDNAME,
q=True, text=True)
name = cmds.rename(self.loadobjectTEXT, self.basenameTEXT)
ctlname = "%s_ctl" % name
self.new_name = cmds.rename(name, ctlname)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4783 次 |
| 最近记录: |