我是python的新手。 我尝试在Maya中制作一个增加折痕边缘值的按钮。每次单击它时,我想使折痕值+1。
我尝试过这个:
def crease(ignore):
value=+1
newvalue = value
for i in value(int(newvalue)+1):
maya.cmds.polyCrease(i)
但是它不起作用。 如果有人可以帮助 非常感谢您可以提供的任何帮助
答案 0 :(得分:2)
这是嵌套值的问题,当您的值位于def下时,它不会存储在全局范围内。
counter = 0
def crease(ignore):
value = counter+1
maya.cmds.polyCrease(v=i)
return value
counter = crease(0)
如果要跟踪计数器,可以创建一个全局值: Can not increment global variable from function in python
一个字典: python modify a dictionary inside a method
甚至是一堂课。
答案 1 :(得分:1)
碰巧,cmds.polyCrease
包含一个执行您想要的操作的标志:
cmds.polyCrease(rv=1)
会将当前选定组件上的折痕值增加1;负值会将其降低。从编程的角度来看,全局计数器是可行的,但是如果您在场景中的不同对象之间跳转,则可能会产生令人惊讶的结果。