# # makeArray.py v1.0 # By Andrew Osiow (c) 2009 # # builds a grid out what ever is selected # import maya.cmds as cmds def arraycopy(): # opens interface # delete any old array window preferences if cmds.windowPref( 'arrayWindow', exists=True ): cmds.windowPref( 'arrayWindow', remove=True ) # delete any old array window structures if cmds.window( 'arrayWindow', exists=True ): cmds.deleteUI( 'arrayWindow', window=True ) # create a window structure arrayWin = cmds.window( 'arrayWindow', title='Array Copy 1.0', s=0) # create layout mylayout = cmds.formLayout( 'mylayout', numberOfDivisions=100, w=414, h=70) cmds.button('arrayButton', width=136, height=26, label='Array', align='center', command=makeAndDelete) cmds.button('applyButton', width=136, height=26, label='Apply', align='center', command=makeArray) cmds.button('cancelButton', width=136, height=26, label='Cancel', align='center', command="import maya.cmds as cmds\ncmds.deleteUI( 'arrayWindow')") cmds.intSliderGrp('numberSlider', label='Array Size', field=True, minValue=2, maxValue=10, value=3, fieldMinValue=2, fieldMaxValue=10) # layout commands cmds.formLayout( mylayout, edit=True, attachForm=[ ('arrayButton', 'left', 2), ('arrayButton', 'bottom', 2), ('applyButton', 'left', 138), ('applyButton', 'bottom', 2), ('cancelButton', 'left', 274), ('cancelButton', 'bottom', 2), ('numberSlider', 'left', 4), ('numberSlider', 'top', 10)]) # display array Window cmds.showWindow ('arrayWindow') # end arraycopy definition def makeAndDelete(*args): makeArray() cmds.deleteUI('arrayWindow') # end of make and delete def makeArray(*args): arraySize = cmds.intSliderGrp('numberSlider', q=True, v=True ) selectedObjects = cmds.ls(sl=True) for currentObject in selectedObjects: for j in range(0,arraySize): for i in range(0,arraySize): if i>0 or j>0: cmds.duplicate (rr=True ) cmds.move( i*6, 0, j*6, relative=True) cmds.select(currentObject, r=True) # end of make Array