import maya.cmds as mc
class Jimmy(object): def __init__(self): ''' Make Jimmy ''' mc.polySphere(name='Jimmy')
def makeJimmyUI(self,*args,**kwargs): ''' Make Jimmy's window '''
# Remove UI if it already exists
if mc.window('jimmyUI',query=1,exists=1): mc.deleteUI('jimmyUI') mc.window('jimmyUI') mc.columnLayout()
# Create Jimmy's slider mc.floatSliderGrp('allInTheHips', label='Move Jimmy', dragCommand=self.moveJimmy, # Have Jimmy's slider activate moveSphere sliderStep=0.1, minValue=-10, maxValue=10, )
# Show Jimmy's Window mc.showWindow('jimmyUI') def moveJimmy(self,*args, **kwargs): ''' Move Jimmy up and down ''' print 'yup' # value = value mc.setAttr('Jimmy.translateY', mc.floatSliderGrp('allInTheHips', query=True, value=True) )
James = Jimmy()James.makeJimmyUI() # As long as "Jimmy" exists, this UI can be reopened laterimport maya.cmds as mcimport time
class Jimmy(object): def __init__(self): ''' Make Jimmy ''' mc.polySphere(name='Jimmy') self.timey = 0
def makeJimmyUI(self,*args,**kwargs): ''' Make Jimmy's window ''' # Remove UI if it already exists if mc.window('jimmyUI',query=1,exists=1): mc.deleteUI('jimmyUI')
mc.window('jimmyUI') mc.columnLayout()
# Create Jimmy's slider mc.floatSliderGrp('allInTheHips', label='Move Jimmy', dragCommand=self.moveJimmy, # Have Jimmy's slider activate moveSphere sliderStep=0.01, minValue=-10, maxValue=10, )
# Show Jimmy's Window mc.showWindow('jimmyUI') def moveJimmy(self,*args, **kwargs): ''' Move Jimmy up and down ''' thisTime = time.time() # Store the current time remTime = (thisTime - self.timey) # Compare it to the new time if remTime <.03: # If the time difference is less than 0.03 seconds, mc.undo() # Run the undo function else: print 'Reset Timer' # If more than 0.03 seconds pass, reset the undo queue
mc.setAttr('Jimmy.translateY', mc.floatSliderGrp('allInTheHips', query=True, value=True) )
self.timey = time.time() # Store the new time
James = Jimmy()James.makeJimmyUI() # As long as "Jimmy" exists, this UI can be reopened laterimport maya.cmds as mc
class Jimmy(object): ''' The code no longer creates an item. Instead, create multiple objects, select one, then another, then re-select the previous one. The code works!! IT IS ALIIIIIIIIVE!!!!! ''' def __init__(self): ''' Get Jimmy's attributes ''' self.oldItem = None self.oldItemTranslate = None
def makeJimmyUI(self,*args,**kwargs): ''' Make Jimmy's window ''' # Remove UI if it already exists if mc.window('jimmyUI',query=1,exists=1): mc.deleteUI('jimmyUI') mc.window('jimmyUI') mc.columnLayout()
# Create Jimmy's slider mc.floatSliderGrp('allInTheHips', label='Move Jimmy', dragCommand=self.moveJimmy, # Have Jimmy's slider activate moveSphere sliderStep=0.01, minValue=-10, maxValue=10, )
# Show Jimmy's Window mc.showWindow('jimmyUI') def moveJimmy(self,*args, **kwargs): ''' Move selected item up and down ''' # Move the first item in the selection only newItem = mc.ls(sl=1)[0] newItemTranslate = mc.getAttr(newItem+'.translateY') # If this item was just moved by the slider and if item's value is the same as its original value if self.oldItem == newItem and self.oldItemTranslate != newItemTranslate: # Undo the move! mc.undo() # But if undoing deselects the manipulated item, Redo :) if mc.ls(sl=1) == []: mc.redo() else: # Store the new item with the old Item self.oldItem = newItem self.oldItemTranslate = newItemTranslate # Perform the calculation! newItemTranslate = mc.floatSliderGrp('allInTheHips', query=True, value=True) + self.oldItemTranslate mc.setAttr(newItem + '.translateY', newItemTranslate)
James = Jimmy()James.makeJimmyUI() # As long as "Jimmy" exists, this UI can be reopened later