python - How to create Maya sliders to move objects in interface -
i trying use sliders move objects along x,y , z axis. code far:
import maya.cmds cmds cmds.columnlayout( adjustablecolumn=true ) cmds.intslider(min=-100, max=100, value=0, step=1, dc = cmds.move(x=true)) cmds.showwindow() i keep getting error
# error: line 1: typeerror: file <maya console> line 10: invalid arguments flag 'dc'. expected string or function, got nonetype # i new python not sure means. many thanks, martyn
you have create function containing cmds.move()
import maya.cmds cmds functools import partial # create function move def movexyz(slider, *args, **kwargs): # slider name of controller # *args avoid maya default argument passed trhought functions # **kwargs used pass maya flags function in order chose x, y or z axis # slider value queried each time in order refresh value value = getslidervalue(slider) cmds.move(value, **kwargs) # slider value, can fit slider if provide name def getslidervalue(ctrlname): value = cmds.intslider(ctrlname, q=true, value=true) return value #basic window cmds.window() cmds.columnlayout( adjustablecolumn=true ) # create slider placeholder function myslider = cmds.intslider(min=-100, max=100, value=0, step=1, dc = 'empty') # var myslider created, can pass argument our function # let's edit function functools.partial allow pass arguments function # here pass movexyz function myslider, name of x slider x=1 pass flag cmds.move(x=1) cmds.intslider(myslider, e=true, dc = partial(movexyz, myslider, x=1)) #redo sliders # myslider should dictionnary or @ least global, i.e : # uidic = {} # uidic['xslider'] = cmds.intslider(min=-100, max=100, value=0, step=1, dc = 'empty') # cmds.intslider(uidic['xslider'], e=true, dc = partial(movexyz, uidic['xslider'], x=1)) cmds.showwindow() i can explain part not understand
Comments
Post a Comment