def setBackgroundColor(self, row, column): try: ctrlShape = cmds.listRelatives(cmds.scriptTable('table', q=True, cellIndex=(row, 1), cellValue=True), s=True)[0] except: return color = cmds.getAttr(ctrlShape + '.color')[0] opacity = cmds.getAttr(ctrlShape + '.opacity') + 0.1 if column == 1: return (color[0] * 255 * opacity + 64, color[1] * 255 * opacity + 64, color[2] * 255 * opacity + 64) if column == 2: if row % 2 == 0: return (64, 80, 100) if column == 3: if cmds.scriptTable('table', q=True, cellIndex=(row, column), cellValue=True)[0] == 'True': return (48 + 64, 40 + 64, 64) else: return (64, 64, 64)
def saveFileDialog(*args): dialog = cmds.fileDialog(m=1); # fdialog = pm.fileDialog2( # ocm="on_save_dialog_file", # fm=0, # ff="CSV Files (*.csv);;All Files (*.*)", # dialogStyle=2) o_file = str(dialog) #print o_file if not (cmds.file(o_file,query=True, exists=True)): tmp_csv_file = open(o_file, 'w' ,os.O_CREAT) else: tmp_csv_file = open(o_file, 'w') writer = csv.writer(tmp_csv_file, lineterminator='\n') all_rows = cmds.scriptTable('table', query=True, rows=True) for o_r in range(all_rows): all_colums = cmds.scriptTable('table', query=True, columns=True) data_list = [] for o_c in range( all_colums - 1): if o_r == 0: data_list = ["No.", "JointName", "transrateX","transrateY","transrateZ"] else: cell_list = cmds.scriptTable('table', cellIndex=(o_r,o_c + 1), query=True, cellValue=True) if o_c == 0: if type(cell_list) == list: cell_text = "".join(cell_list) #print cell_text elif cell_list == None: cell_text = u'' else: cell_text = cell_list data_list.append(cell_text) elif o_c == 1: if type(cell_list) == list: cell_text = "".join(cell_list) #print cell_text elif cell_list == None: cell_text = u'' else: cell_text = cell_list data_list.append(cell_text) else: if type(cell_list) == list: cell_text = "".join(cell_list) elif cell_list == None: cell_text = u'' else: cell_text = cell_list data_list.append(cell_text) writer.writerow(data_list) tmp_csv_file.close()
def delete_sel_row(*args): if recstart == 0: try: selected_row = cmds.scriptTable('scrtable', query=True, selectedRows=True)[0] if selected_row == None: print('Select Row to Delete') else: cmds.scriptTable('scrtable', edit=True, deleteRow=selected_row) except: print('Select Row to Delete')
def cellSelected(self): selectedCell = cmds.scriptTable('table', q=True, selectedCells=True) cmds.select(cl=True) try: for i in range(0, len(selectedCell), 2): value = cmds.scriptTable('table', q=True, cellIndex=(selectedCell[i], 1), cellValue=True) cmds.select(value, add=True) except: pass
def RigComponentEditor(*args): window = cmds.window(title='Rig Component Editor', widthHeight=(1200, 600)) form = cmds.formLayout() table = cmds.scriptTable( 'table',rows=0, columns=15,columnWidth=([1,30],[2,300],[3,30],[4,80],[5,50],[6,80],[7,50],[8,80],[9,50],[10,80],[11,50],[12,80],[13,50],[14,80],[15,50]), label=[(1,"No."), (2,"rigName"), (3,"num"), (4,"label[0]"), (5,"val[0]"), (6,"label[1]"), (7,"val[1]"), (8,"label[2]"), (9,"val[2]"), (10,"label[3]"), (11,"val[3]"), (12,"label[4]"), (13,"val[4]"), (14,"label[5]"), (15,"val[5]")], cellChangedCmd=edit_cell) resetButton = cmds.button(label='Save', command=saveRigFileDialog) closeButton = cmds.button( label='Close', command=('cmds.deleteUI(\"' + window + '\", window=True)') ) setRigAttribute() cmds.formLayout(form, edit=True, attachForm=[(table, 'top', 0), (table, 'left', 0), (table, 'right', 0), (resetButton, 'left', 0), (resetButton, 'bottom', 0), (closeButton, 'bottom', 0), (closeButton, 'right', 0)], attachControl=(table, 'bottom', 0, resetButton), attachNone=[(resetButton, 'top'),(closeButton, 'top')], attachPosition=[(resetButton, 'right', 0, 50), (closeButton, 'left', 0, 50)] ) cmds.showWindow( window )
def JointComponentEditor(*args): window = cmds.window(title='Joint Component Editor', widthHeight=(720, 310)) form = cmds.formLayout() table = cmds.scriptTable('table',rows=len(GetJointNames()), columns=5,columnWidth=([1,30], [2,300],[3,120],[4,120],[5,120]), label=[(1,"No."), (2,"JointName"), (3,"transrateX"), (4,"transrateY"), (5,"transrateZ")], cellChangedCmd=edit_cell) # resetButton = cmds.button(label="Reset",command=add_row) resetButton = cmds.button(label='Save', command=saveFileDialog) # closeButton = cmds.button(label="Delete Row",command=delete_row) closeButton = cmds.button( label='Close', command=('cmds.deleteUI(\"' + window + '\", window=True)') ) setParam() # setRigAttribute() cmds.formLayout(form, edit=True, attachForm=[(table, 'top', 0), (table, 'left', 0), (table, 'right', 0), (resetButton, 'left', 0), (resetButton, 'bottom', 0), (closeButton, 'bottom', 0), (closeButton, 'right', 0)], attachControl=(table, 'bottom', 0, resetButton), attachNone=[(resetButton, 'top'),(closeButton, 'top')], attachPosition=[(resetButton, 'right', 0, 50), (closeButton, 'left', 0, 50)] ) cmds.showWindow( window )
def startrealtimeexp(*args): global recstart global recend numrow = cmds.scriptTable('scrtable', query=True, rows=True) if len(selectedBlend) > 0 and numrow > 1: if recstart == 0: recstart = 1 cmds.button('realtimecomm', edit=True, label='Stop Real Time Expression') #Start Comm cmds.commandPort(name="127.0.0.1:7777", echoOutput=False, noreturn=False, prefix="portData", returnNumCommands=True) cmds.commandPort(name=":7777", echoOutput=False, noreturn=False, prefix="portData", returnNumCommands=True) else: recstart = 0 cmds.button('realtimecomm', edit=True, label='Start Real Time Expression') #Stop Comm deactivateCommandPort('127.0.0.1', '7777')
def table(*args, **kwargs): #note in order to have a horizontal scroll bar displayable on resize, the table must contain at least 2 columns try: return cmds.scriptTable(*args, **kwargs) except Exception as exp: LOG.debug("MayaAPI exception in 'table': {0}".format(exp).strip()) return None
def startrealtimerec(*args): global recstart global server numrow = cmds.scriptTable('scrtable', query=True, rows=True) if len(selectedBlend) > 0 and numrow > 1: if recstart == 0: recstart = 1 cmds.button('realtimerecbt', edit=True, label='Stop preview') logging.basicConfig( level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s") myport = cmds.textField('Portnum', q=True, tx=True) server = WebSocketServer("", int(myport), WebSocket) server_thread = Thread(target=server.listen, args=[5]) server_thread.start() else: recstart = 0 cmds.button('realtimerecbt', edit=True, label='Real time preview') server.running = False recnow = 0
def setParam(*args): # set joint name to form count = 1 select_names = GetJointNames() # set pos to form for j in select_names: cmds.scriptTable('table', cellIndex=(count,1), edit=True, cellValue=count) cmds.scriptTable('table', cellIndex=(count,2), edit=True, cellValue=j) count = count + 1 positions = ConstructPositionHash(select_names) count = 0 for t in positions: row = count/3 + 1 col = count%3 + 3 cmds.scriptTable('table', cellIndex=(row,col), edit=True, cellValue=t) count = count + 1
def deformface(): global dataarray if len(dataarray) < 3: return 0 all_rows = cmds.scriptTable('scrtable', query=True, rows=True) global recstart global gnumcurrenttime if all_rows > 1 and recstart == 1: ornum = 1 numcurrenttime = gnumcurrenttime bonename = cmds.textField('HeadbonenameF', q=True, tx=True) if len(bonename) > 0: cX = cmds.textField('HeadbonenameXF', q=True, tx=True) cY = cmds.textField('HeadbonenameYF', q=True, tx=True) cZ = cmds.textField('HeadbonenameZF', q=True, tx=True) CrX = 0 CrY = 0 CrZ = 0 if cX.replace(".", "").isdigit(): CrX = float(cX) if cY.replace(".", "").isdigit(): CrY = float(cY) if cZ.replace(".", "").isdigit(): CrZ = float(cZ) bjoint = pm.PyNode(bonename) pm.rotate(bjoint, [ float(dataarray[0]) * -1 + CrX, float(dataarray[1]) * -1 + CrY, float(dataarray[2]) * -1 + CrZ ], euler=True, a=True, ws=False) #if recnow ==1 pm.setKeyframe(bjoint, v=float(dataarray[0]) * -1 + CrX, attribute='rotateX', t=[numcurrenttime]) pm.setKeyframe(bjoint, v=float(dataarray[1]) * -1 + CrY, attribute='rotateY', t=[numcurrenttime]) pm.setKeyframe(bjoint, v=float(dataarray[2]) * -1 + CrZ, attribute='rotateZ', t=[numcurrenttime]) for i in range(all_rows): all_colums = cmds.scriptTable('scrtable', query=True, columns=True) data_list = [] for j in range(all_colums): cell_list = cmds.scriptTable('scrtable', cellIndex=(i, j), query=True, cellValue=True) if type(cell_list) == 'list': cell_text = "".join(cell_list) elif cell_list == None: cell_text = cell_list else: cell_text = cell_list[0] data_list.append(cell_text) if i > 0 and len(dataarray) > 3: streng = 1.0 if data_list[4].replace(".", "").isdigit(): streng = float(data_list[4]) #recdataDeformStreng = (((float(dataarray[int(data_list[6])-2+3]))+0.0)/100.0)*(streng+0.0) recdataDeformStreng = (( (float(dataarray[int(data_list[6]) - 2 + 3])) + 0.0) / 33.0) * (streng + 0.0) targetdefnum = int(data_list[5]) - 2 cmds.blendShape(selectedBlend, edit=True, w=[(targetdefnum, recdataDeformStreng)]) #if recnow ==1 cmds.setKeyframe("%s.w[%i]" % (selectedBlend, targetdefnum), t=numcurrenttime) if random.random() < 0.2: datastring = '%.4f' % recdataDeformStreng cmds.scriptTable('scrtable', e=True, ci=[i, 3], cv=datastring)
def add_row(*args): cmds.scriptTable('scrtable', edit=True, selectedRows=[]) selectedBlend = cmds.optionMenu('targetObjectMenu', query=True, value=True) selectedBlendI = cmds.optionMenu('targetObjectMenu', query=True, select=True) selectedLinkBlend = cmds.optionMenu('paramObjectMenu', query=True, value=True) selectedLinkBlendI = cmds.optionMenu('paramObjectMenu', query=True, select=True) last_row_num = cmds.scriptTable('scrtable', query=True, rows=True) cmds.scriptTable('scrtable', edit=True, insertRow=last_row_num) cmds.scriptTable('scrtable', e=True, ci=[last_row_num, 1], cv=selectedBlend) cmds.scriptTable('scrtable', e=True, ci=[last_row_num, 2], cv=selectedLinkBlend) cmds.scriptTable('scrtable', e=True, ci=[last_row_num, 3], cv='0') cmds.scriptTable('scrtable', e=True, ci=[last_row_num, 4], cv='1') cmds.scriptTable('scrtable', e=True, ci=[last_row_num, 5], cv=selectedBlendI) cmds.scriptTable('scrtable', e=True, ci=[last_row_num, 6], cv=selectedLinkBlendI)
def poseTrackerWindow(): if cmds.window('fcloneMAYApipeline', exists=True): cmds.deleteUI('fcloneMAYApipeline') #window definition cmds.window('fcloneMAYApipeline', widthHeight=(600, 450), title='f-clone MAYA pipeline(Beta)', minimizeButton=False, maximizeButton=False, resizeToFitChildren=True, sizeable=True) cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 200), (2, 200), (3, 200)]) #select an existing blendShape node cmds.text(label='Blend Shape node name') selectedBlendShapeTextField = cmds.textField('selectedBlendShapeText') cmds.button(label='Load Targets', command='loadTargetList()') cmds.text(label='') cmds.text(label='') cmds.text(label='') targetList = cmds.optionMenu('targetObjectMenu', label='Target') cmds.menuItem(label=' ') fcloneList = cmds.optionMenu('fcloneObjectMenu', label='Link') cmds.menuItem(label='Please select f-clone param') cmds.menuItem(label='Brow Left UP') cmds.menuItem(label='Brow Left Down') cmds.menuItem(label='Brow Right UP') cmds.menuItem(label='Brow Right Down') cmds.menuItem(label='Brow Centering') cmds.menuItem(label='Brow outer left down') cmds.menuItem(label='Brow outer right down') cmds.menuItem(label='Eye Close Left') cmds.menuItem(label='Eye Close Right') cmds.menuItem(label='Mouse Open') cmds.menuItem(label='Mouse Left Smile') cmds.menuItem(label='Mouse Right Smile') cmds.menuItem(label='Mouse Left Spread') cmds.menuItem(label='Mouse Right Spread') cmds.menuItem(label='Mouse Left Frawn') cmds.menuItem(label='Mouse Right Frawn') cmds.menuItem(label='Mouse Left Centering') cmds.menuItem(label='Mouse Right Centering') cmds.menuItem(label='Cheek Left UP') cmds.menuItem(label='Cheek Right UP') cmds.button(label='Add link', command='addlink()') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.columnLayout('mytable', width=600) table = cmds.scriptTable('scrtable', rows=0, columns=6, columnWidth=([1, 200], [2, 200], [3, 99], [4, 99], [5, 1], [6, 1]), label=[(1, "Target"), (2, "Link"), (3, "Receive val"), (4, "Strength"), (5, "ID(Target)"), (6, "ID(Link)")], width=600, cellChangedCmd=edit_cell) cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 100), (2, 250), (3, 250)]) cmds.text(label='') cmds.text(label='') cmds.button(label='Delete select row', command=delete_sel_row) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='Head bone name') Headbonename = cmds.textField('HeadbonenameF') cmds.text(label='') cmds.text(label='Head bone rotation compensation X') HeadbonenameX = cmds.textField('HeadbonenameXF', text='0') cmds.text(label='') cmds.text(label='Head bone rotation compensation Y') HeadbonenameY = cmds.textField('HeadbonenameYF', text='0') cmds.text(label='') cmds.text(label='Head bone rotation compensation Z') HeadbonenameZ = cmds.textField('HeadbonenameZF', text='0') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.button(label='Load f-clone motion csv (30 fps)', command=loadfclonemotion) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='Server port') HeadbonenameZ = cmds.textField('Portnum', text='8080') cmds.text(label='') cmds.text(label='') cmds.button('realtimerecbt', label='Real time preview', command=startrealtimerec) #cmds.button( 'nowrecbt' , label = 'Record motion(MAX 30 fps)', command = startrec ) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.button(label='Save preset', command=savecsvfile) cmds.button(label='Load preset', command=loadpresetfile) cmds.showWindow('fcloneMAYApipeline')
def expTrackerWindow(): if cmds.window('expTrackerWindow', exists=True): cmds.deleteUI('expTrackerWindow') #window def cmds.window('expTrackerWindow', widthHeight=(900, 400), title='expTracker-conelab', minimizeButton=False, maximizeButton=False, resizeToFitChildren=True, sizeable=True) #cmds.rowColumnLayout(numberOfColumns=3,columnWidth=[(1,300),(2,300),(3,300)],backgroundColor=[200,200,0]) #select an existing blendShape node cmds.rowColumnLayout(numberOfColumns=6, columnWidth=[(1, 150), (2, 25), (3, 300), (4, 25), (5, 200), (6, 200)], backgroundColor=[1, 0.9843, 0.7961]) cmds.text(label='Blend Shape node name : ', align='right') cmds.text(label='') selectedBlendShapeTextField = cmds.textField('selectedBlendShapeText', backgroundColor=[1, 1, 1]) cmds.text(label='') cmds.button(label='Load Targets', command='loadTargetList()', width=20, align='left', backgroundColor=[0.3412, 0.8196, 0.7882]) cmds.text(label='') cmds.columnLayout('temp1', width=900) cmds.rowColumnLayout(numberOfColumns=6, columnWidth=[(1, 300), (2, 40), (3, 300), (4, 40), (5, 200), (6, 20)]) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') targetList = cmds.optionMenu('targetObjectMenu', label='Target: ', backgroundColor=[1, 0.9098, 0.4118]) cmds.menuItem(label=' ') cmds.text(label='') paramList = cmds.optionMenu('paramObjectMenu', label='Link: ', backgroundColor=[1, 0.9098, 0.4118]) cmds.menuItem(label='Please select param') cmds.menuItem(label='Brow Left UP') cmds.menuItem(label='Brow Left Down') cmds.menuItem(label='Brow Right UP') cmds.menuItem(label='Brow Right Down') cmds.menuItem(label='Brow Centering') cmds.menuItem(label='Brow outer left down') cmds.menuItem(label='Brow outer right down') cmds.menuItem(label='Eye Close Left') cmds.menuItem(label='Eye Close Right') cmds.menuItem(label='Mouse Open') cmds.menuItem(label='Mouse Left Smile') cmds.menuItem(label='Mouse Right Smile') cmds.menuItem(label='Mouse Left Spread') cmds.menuItem(label='Mouse Right Spread') cmds.menuItem(label='Mouse Left Frawn') cmds.menuItem(label='Mouse Right Frawn') cmds.menuItem(label='Mouse Left Centering') cmds.menuItem(label='Mouse Right Centering') cmds.menuItem(label='Cheek Left UP') cmds.menuItem(label='Cheek Right UP') cmds.text(label='') cmds.button(label='Add link', command='addlink()', backgroundColor=[0.3412, 0.8196, 0.7882]) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.columnLayout('mytable', width=900, backgroundColor=[1, 0.9098, 0.4118]) table = cmds.scriptTable('scrtable', rows=0, columns=6, columnWidth=([1, 300], [2, 300], [3, 145], [4, 145], [5, 1], [6, 1]), label=[(1, "Target"), (2, "Link"), (3, "Receive val"), (4, "Strength"), (5, "ID(Target)"), (6, "ID(Link)")], width=900, cellChangedCmd=edit_cell) cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 100), (2, 300), (3, 500)]) cmds.text(label='') cmds.text(label='') cmds.button(label='Delete select row', command=delete_sel_row, backgroundColor=[0.3412, 0.8196, 0.7882]) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.columnLayout('temp2', width=900) cmds.rowColumnLayout(numberOfColumns=4, columnWidth=[(1, 100), (2, 300), (3, 300), (4, 200)], backgroundColor=[1, 0.9098, 0.4118]) cmds.text(label='') cmds.text(label='Head bone name') Headbonename = cmds.textField('HeadbonenameF') cmds.text(label='') cmds.text(label='') cmds.text(label='Head bone rotation compensation X') HeadbonenameX = cmds.textField('HeadbonenameXF', text='0') cmds.text(label='') cmds.text(label='') cmds.text(label='Head bone rotation compensation Y') HeadbonenameY = cmds.textField('HeadbonenameYF', text='0') cmds.text(label='') cmds.text(label='') cmds.text(label='Head bone rotation compensation Z') HeadbonenameZ = cmds.textField('HeadbonenameZF', text='0') cmds.text(label='') cmds.columnLayout('temp3', width=900) cmds.rowColumnLayout(numberOfColumns=5, columnWidth=[(1, 200), (2, 50), (3, 200), (4, 150), (5, 300)]) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.button(label='Save preset', command=savepresetfile, backgroundColor=[0.3412, 0.8196, 0.7882]) cmds.text(label='') cmds.button(label='Load preset', command=loadpresetfile, backgroundColor=[0.3412, 0.8196, 0.7882]) cmds.text(label='') cmds.button('realtimecomm', label='Start Real Time Expression', command=startrealtimeexp, backgroundColor=[0.9294, 0.3294, 0.5216]) cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.text(label='') cmds.showWindow('expTrackerWindow')
def loadpresetfile(*args): if recstart != 0: return 0 presetfile = pm.fileDialog2(fileMode=1) if presetfile: cmds.scriptTable('scrtable', edit=True, selectedRows=[]) o_file = open(str(presetfile[0]), 'r') reader = csv.reader(o_file) all_rows = cmds.scriptTable('scrtable', query=True, rows=True) for i in range(all_rows): cmds.scriptTable('scrtable', edit=True, deleteRow=i) row_no = 0 for row in reader: if row_no > 0: cmds.scriptTable('scrtable', edit=True, insertRow=row_no) cmds.scriptTable('scrtable', cellIndex=(row_no, 1), edit=True, cellValue=row[0]) cmds.scriptTable('scrtable', cellIndex=(row_no, 2), edit=True, cellValue=row[1]) cmds.scriptTable('scrtable', cellIndex=(row_no, 3), edit=True, cellValue="0") cmds.scriptTable('scrtable', cellIndex=(row_no, 4), edit=True, cellValue=row[3]) cmds.scriptTable('scrtable', cellIndex=(row_no, 5), edit=True, cellValue=row[4]) cmds.scriptTable('scrtable', cellIndex=(row_no, 6), edit=True, cellValue=row[5]) else: cmds.textField('selectedBlendShapeText', edit=True, text=row[0]) cmds.textField('HeadbonenameF', edit=True, text=row[1]) cmds.textField('HeadbonenameXF', edit=True, text=row[2]) cmds.textField('HeadbonenameYF', edit=True, text=row[3]) cmds.textField('HeadbonenameZF', edit=True, text=row[4]) #cmds.textField('Portnum', edit=True, text=row[5] ) loadTargetList() row_no = 1 + row_no o_file.close()
def table(*args, **kwargs): try: return cmds.scriptTable(*args, **kwargs) except Exception as exp: LOG.debug("MayaAPI exception in 'table': {0}".format(exp).strip()) return None
def uiCreate(self): self.onCloseClicked() self.window = m.window( WIN_NAME, title='Maya Window', maximizeButton=False ) uiLAY_mainForm = m.formLayout() self.uiLAY_mainScroll = m.scrollLayout(childResizable=True) mainColumn = m.columnLayout(adjustableColumn=True) # main column layout with frames # -------- self.uiLAY_frameCheckBoxes = self.uiCreateFrame('uiLAY_frameCheckBoxes', 'Check Boxes (PMCheckBox)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiCHK_test1 = m.checkBox('uiCHK_test1', label='test1') self.uiCHK_test2 = m.checkBox('uiCHK_test2', label='test2') m.setParent(mainColumn) # -------- self.uiLAY_frameCheckBoxGroups = self.uiCreateFrame('uiLAY_frameCheckBoxGroups', 'Check Box Groups (PMCheckBoxGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiCHKGRP_test1 = m.checkBoxGrp( 'uiCHKGRP_test1', numberOfCheckBoxes=1, label='PMCheckBoxGrp1', label1='test1' ) self.uiCHKGRP_test2 = m.checkBoxGrp( 'uiCHKGRP_test2', numberOfCheckBoxes=2, label='PMCheckBoxGrp2', labelArray2=('test1', 'test2') ) self.uiCHKGRP_test3 = m.checkBoxGrp( 'uiCHKGRP_test3', numberOfCheckBoxes=3, label='PMCheckBoxGrp3', labelArray3=('test1', 'test2', 'test3') ) self.uiCHKGRP_test4 = m.checkBoxGrp( 'uiCHKGRP_test4', numberOfCheckBoxes=4, label='PMCheckBoxGrp4', labelArray4=('test1', 'test2', 'test3', 'test4') ) m.setParent(mainColumn) # -------- self.uiLAY_frameColorSliders = self.uiCreateFrame('uiLAY_frameColorSliders', 'Color Slider Groups (PMColorSliderGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiCLRGRP_test1 = m.colorSliderGrp( 'uiCLRGRP_test1', label='test1' ) self.uiCLRGRP_test2 = m.colorSliderGrp( 'uiCLRGRP_test2', label='test2' ) m.setParent(mainColumn) # -------- self.uiLAY_frameFloatFields = self.uiCreateFrame('uiLAY_frameFloatFields', 'Float Fields (PMFloatField)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiFLF_test1 = m.floatField('uiFLF_test1') self.uiFLF_test2 = m.floatField('uiFLF_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatFieldGroups = self.uiCreateFrame('uiLAY_frameFloatFieldGroups', 'Float Field Groups (PMFloatFieldGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiFLFGRP_test1 = m.floatFieldGrp( 'uiFLFGRP_test1', numberOfFields=1, label='PMFloatFieldGrp1' ) self.uiFLFGRP_test2 = m.floatFieldGrp( 'uiFLFGRP_test2', numberOfFields=2, label='PMFloatFieldGrp2' ) self.uiFLFGRP_test3 = m.floatFieldGrp( 'uiFLFGRP_test3', numberOfFields=3, label='PMFloatFieldGrp3' ) self.uiFLFGRP_test4 = m.floatFieldGrp( 'uiFLFGRP_test4', numberOfFields=4, label='PMFloatFieldGrp4' ) m.setParent(mainColumn) # -------- self.uiLAY_frameFloatScrollBars = self.uiCreateFrame('uiLAY_frameFloatScrollBars', 'Float Scroll Bars (PMFloatScrollBar)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiFLSCRL_test1 = m.floatScrollBar('uiFLSCRL_test1') self.uiFLSCRL_test2 = m.floatScrollBar('uiFLSCRL_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatSliders = self.uiCreateFrame('uiLAY_frameFloatSliders', 'Float Sliders (PMFloatSlider)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiFLTSLD_test1 = m.floatSlider('uiFLTSLD_test1') self.uiFLTSLD_test2 = m.floatSlider('uiFLTSLD_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatSliderGroups = self.uiCreateFrame('uiLAY_frameFloatSliderGroups', 'Float Slider Groups (PMFloatSliderGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiFLSGRP_test1 = m.floatSliderGrp( 'uiFLSGRP_test1', label='test1', field=True ) self.uiFLSGRP_test2 = m.floatSliderGrp( 'uiFLSGRP_test2', label='test2', field=True ) m.setParent(mainColumn) # -------- self.uiLAY_frameIconTextCheckBoxes = self.uiCreateFrame('uiLAY_frameIconTextCheckBoxes', 'Icon Text Check Boxes (PMIconTextCheckBox)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiITCHK_test1 = m.iconTextCheckBox( 'uiITCHK_test1', style='iconAndTextHorizontal', label='cube', image1='cube' ) self.uiITCHK_test2 = m.iconTextCheckBox( 'uiITCHK_test2', style='iconAndTextHorizontal', label='cone', image1='cone' ) m.setParent(mainColumn) # -------- self.uiLAY_frameIconTextRadioButtons = self.uiCreateFrame('uiLAY_frameIconTextRadioButtons', 'Icon Text Radio Buttons (PMIconTextRadioButton)') m.columnLayout() m.rowLayout(numberOfColumns=4) m.separator(style='none', width=140) m.iconTextRadioCollection() self.uiITRAD_test1 = m.iconTextRadioButton( 'uiITRAD_test1', style='iconAndTextHorizontal', label='cube', image1='cube' ) self.uiITRAD_test2 = m.iconTextRadioButton( 'uiITRAD_test2', style='iconAndTextHorizontal', label='cone', image1='cone' ) self.uiITRAD_test3 = m.iconTextRadioButton( 'uiITRAD_test3', style='iconAndTextHorizontal', label='torus', image1='torus' ) m.setParent(mainColumn) # -------- self.uiLAY_frameIconTextScrollLists = self.uiCreateFrame('uiLAY_frameIconTextScrollLists', 'Icon Text Scroll Lists (PMIconTextScrollList)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiITSLST_test1 = m.iconTextScrollList( 'uiITSLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) self.uiITSLST_test2 = m.iconTextScrollList( 'uiITSLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) m.setParent(mainColumn) # -------- self.uiLAY_frameIntFields = self.uiCreateFrame('uiLAY_frameIntFields', 'Int Fields (PMIntField)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiINF_test1 = m.intField('uiINF_test1') self.uiINF_test2 = m.intField('uiINF_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameIntFieldGroups = self.uiCreateFrame('uiLAY_frameIntFieldGroups', 'Int Field Groups (PMIntFieldGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiINFGRP_test1 = m.intFieldGrp( 'uiINFGRP_test1', numberOfFields=1, label='PMIntFieldGrp1' ) self.uiINFGRP_test2 = m.intFieldGrp( 'uiINFGRP_test2', numberOfFields=2, label='PMIntFieldGrp2' ) self.uiINFGRP_test3 = m.intFieldGrp( 'uiINFGRP_test3', numberOfFields=3, label='PMIntFieldGrp3' ) self.uiINFGRP_test4 = m.intFieldGrp( 'uiINFGRP_test4', numberOfFields=4, label='PMIntFieldGrp4' ) m.setParent(mainColumn) # -------- self.uiLAY_frameIntScrollBars = self.uiCreateFrame('uiLAY_frameIntScrollBars', 'Int Scroll Bars (PMIntScrollBar)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiINSCRL_test1 = m.intScrollBar('uiINSCRL_test1') self.uiINSCRL_test2 = m.intScrollBar('uiINSCRL_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameIntSliders = self.uiCreateFrame('uiLAY_frameIntSliders', 'Int Sliders (PMIntSlider)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiINTSLD_test1 = m.intSlider('uiINTSLD_test1') self.uiINTSLD_test2 = m.intSlider('uiINTSLD_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameIntSliderGroups = self.uiCreateFrame('uiLAY_frameIntSliderGroups', 'Int Slider Groups (PMIntSliderGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiINSGRP_test1 = m.intSliderGrp( 'uiINSGRP_test1', label='test1', field=True ) self.uiINSGRP_test2 = m.intSliderGrp( 'uiINSGRP_test2', label='test2', field=True ) m.setParent(mainColumn) # -------- self.uiLAY_frameOptionMenus = self.uiCreateFrame('uiLAY_frameOptionMenus', 'Option Menus (PMOptionMenu)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=110, style='none') self.uiOPTMNU_test1 = m.optionMenu('uiOPTMNU_test1', label='test1') m.menuItem(label='one') m.menuItem(label='two') m.menuItem(label='three') self.uiOPTMNU_test2 = m.optionMenu('uiOPTMNU_test2', label='test2') m.menuItem(label='four') m.menuItem(label='five') m.menuItem(label='six') m.setParent(mainColumn) # -------- self.uiLAY_frameOptionMenuGroups = self.uiCreateFrame('uiLAY_frameOptionMenuGroups', 'Option Menus Groups (PMOptionMenuGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiOPMGRP_test1 = m.optionMenuGrp('uiOPMGRP_test1', label='test1', extraLabel='extraLabel') m.menuItem(label='one') m.menuItem(label='two') m.menuItem(label='three') self.uiOPMGRP_test2 = m.optionMenuGrp('uiOPMGRP_test2', label='test2', extraLabel='extraLabel') m.menuItem(label='four') m.menuItem(label='five') m.menuItem(label='six') m.setParent(mainColumn) # -------- self.uiLAY_frameRadioButtons = self.uiCreateFrame('uiLAY_frameRadioButtons', 'Radio Buttons (PMRadioButton)') m.columnLayout() m.rowLayout(numberOfColumns=4) m.separator(style='none', width=140) m.radioCollection() self.uiRAD_test1 = m.radioButton('uiRAD_test1', label='test1') self.uiRAD_test2 = m.radioButton('uiRAD_test2', label='test2') self.uiRAD_test3 = m.radioButton('uiRAD_test3', label='test3') m.setParent(mainColumn) # -------- self.uiLAY_frameRadioButtonGroups = self.uiCreateFrame('uiLAY_frameRadioButtonGroups', 'Radio Button Groups (PMRadioButtonGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiRADGRP_test1 = m.radioButtonGrp( 'uiRADGRP_test1', numberOfRadioButtons=1, label='PMRadioButtonGrp1', label1='test1' ) self.uiRADGRP_test2 = m.radioButtonGrp( 'uiRADGRP_test2', numberOfRadioButtons=2, label='PMRadioButtonGrp2', labelArray2=('test1', 'test2') ) self.uiRADGRP_test3 = m.radioButtonGrp( 'uiRADGRP_test3', numberOfRadioButtons=3, label='PMRadioButtonGrp3', labelArray3=('test1', 'test2', 'test3') ) self.uiRADGRP_test4 = m.radioButtonGrp( 'uiRADGRP_test4', numberOfRadioButtons=4, label='PMRadioButtonGrp4', labelArray4=('test1', 'test2', 'test3', 'test4') ) m.setParent(mainColumn) # -------- self.uiLAY_frameSymbolCheckBoxes = self.uiCreateFrame('uiLAY_frameSymbolCheckBoxes', 'Symbol Check Boxes (PMSymbolCheckBox)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiSYMCHK_test1 = m.symbolCheckBox( 'uiSYMCHK_test1', image='polyCube' ) self.uiSYMCHK_test2 = m.symbolCheckBox( 'uiSYMCHK_test2', image='polyCone' ) m.setParent(mainColumn) # -------- self.uiLAY_frameScriptTables = self.uiCreateFrame('uiLAY_frameScriptTables', 'Script Tables (PMScriptTable)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiSCRTBL_test1 = m.scriptTable( 'uiSCRTBL_test1', selectionMode=3, rows=4, columns=2 ) self.uiSCRTBL_test2 = m.scriptTable( 'uiSCRTBL_test2', selectionMode=3, rows=4, columns=2 ) m.setParent(mainColumn) # -------- self.uiLAY_frameScrollField = self.uiCreateFrame('uiLAY_frameScrollField', 'Scroll Field (PMScrollField)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiSCRFLD_test1 = m.scrollField( 'uiSCRFLD_test1', wordWrap=True ) self.uiSCRFLD_test2 = m.scrollField( 'uiSCRFLD_test2', wordWrap=True ) m.setParent(mainColumn) # -------- self.uiLAY_frameShelfTabLayout = self.uiCreateFrame('uiLAY_frameShelfTabLayout', 'Shelf Tab Layout (PMShelfTabLayout)') m.columnLayout(adjustableColumn=True) self.uiSHLTAB_test1 = m.shelfTabLayout() m.shelfLayout('test1') m.setParent('..') m.shelfLayout('test2') m.setParent('..') m.shelfLayout('test3') m.setParent('..') m.setParent('..') self.uiSHLTAB_test2 = m.shelfTabLayout() m.shelfLayout('test4') m.setParent('..') m.shelfLayout('test5') m.setParent('..') m.shelfLayout('test6') m.setParent('..') m.setParent(mainColumn) # -------- self.uiLAY_frameTabLayout = self.uiCreateFrame('uiLAY_frameTabLayout', 'Tab Layout (PMTabLayout)') m.columnLayout(adjustableColumn=True) self.uiTAB_test1 = m.tabLayout() uiLAY_tabRow1 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow2 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow3 = m.rowLayout(numberOfColumns=1) m.setParent('..') m.setParent('..') m.tabLayout( self.uiTAB_test1, edit=True, tabLabel=((uiLAY_tabRow1, 'test1'), (uiLAY_tabRow2, 'test2'), (uiLAY_tabRow3, 'test3'),) ) self.uiTAB_test2 = m.tabLayout() uiLAY_tabRow4 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow5 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow6 = m.rowLayout(numberOfColumns=1) m.setParent('..') m.setParent('..') m.tabLayout( self.uiTAB_test2, edit=True, tabLabel=((uiLAY_tabRow4, 'test4'), (uiLAY_tabRow5, 'test5'), (uiLAY_tabRow6, 'test6'),) ) m.setParent(mainColumn) # -------- self.uiLAY_frameTextFields = self.uiCreateFrame('uiLAY_frameTextFields', 'Text Fields (PMTextField)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiTXT_test1 = m.textField('uiTXT_test1') self.uiTXT_test2 = m.textField('uiTXT_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameTextFieldButtonGroups = self.uiCreateFrame('uiLAY_frameTextFieldButtonGroups', 'Text Field Button Groups (PMTextFieldButtonGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiTXBTGR_test1 = m.textFieldButtonGrp( 'uiTXBTGR_test1', label='test1', buttonLabel='button1' ) self.uiTXBTGR_test2 = m.textFieldButtonGrp( 'uiTXBTGR_test2', label='test2', buttonLabel='button2' ) m.setParent(mainColumn) # -------- self.uiLAY_frameTextFieldGroups = self.uiCreateFrame('uiLAY_frameTextFieldGroups', 'Text Field Groups (PMTextFieldGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiTXTGRP_test1 = m.textFieldGrp( 'uiTXTGRP_test1', label='test1' ) self.uiTXTGRP_test2 = m.textFieldGrp( 'uiTXTGRP_test2', label='test2' ) m.setParent(mainColumn) # -------- self.uiLAY_frameTextScrollLists = self.uiCreateFrame('uiLAY_frameTextScrollLists', 'Text Scroll Lists (PMTextScrollList)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiTXTLST_test1 = m.textScrollList( 'uiTXTLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) self.uiTXTLST_test2 = m.textScrollList( 'uiTXTLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten') ) # -------- m.setParent(uiLAY_mainForm) self.uiBTN_savePrefs = m.button( label='Save Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onSavePrefsClicked ) self.uiBTN_loadPrefs = m.button( label='Load Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onLoadPrefsClicked ) self.uiBTN_resetPrefs = m.button( label='Reset Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onResetPrefsClicked ) m.setParent('..') # -> window m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiLAY_mainScroll, 'top', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiLAY_mainScroll, 'left', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiLAY_mainScroll, 'right', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachControl=[(self.uiLAY_mainScroll, 'bottom', 2, self.uiBTN_savePrefs)]) m.formLayout(uiLAY_mainForm, e=True, attachNone=[(self.uiBTN_savePrefs, 'top')]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_savePrefs, 'left', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_savePrefs, 'right', 2, 33)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_savePrefs, 'bottom', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachNone=[(self.uiBTN_loadPrefs, 'top')]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_loadPrefs, 'left', 2, 33)]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_loadPrefs, 'right', 2, 66)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_loadPrefs, 'bottom', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachNone=[(self.uiBTN_resetPrefs, 'top')]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_resetPrefs, 'left', 2, 66)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_resetPrefs, 'right', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_resetPrefs, 'bottom', 2)]) m.showWindow(self.window)
def uiCreate(self): self.onCloseClicked() self.window = m.window(WIN_NAME, title='Maya Window', maximizeButton=False) uiLAY_mainForm = m.formLayout() self.uiLAY_mainScroll = m.scrollLayout(childResizable=True) mainColumn = m.columnLayout( adjustableColumn=True) # main column layout with frames # -------- self.uiLAY_frameCheckBoxes = self.uiCreateFrame( 'uiLAY_frameCheckBoxes', 'Check Boxes (PMCheckBox)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiCHK_test1 = m.checkBox('uiCHK_test1', label='test1') self.uiCHK_test2 = m.checkBox('uiCHK_test2', label='test2') m.setParent(mainColumn) # -------- self.uiLAY_frameCheckBoxGroups = self.uiCreateFrame( 'uiLAY_frameCheckBoxGroups', 'Check Box Groups (PMCheckBoxGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiCHKGRP_test1 = m.checkBoxGrp('uiCHKGRP_test1', numberOfCheckBoxes=1, label='PMCheckBoxGrp1', label1='test1') self.uiCHKGRP_test2 = m.checkBoxGrp('uiCHKGRP_test2', numberOfCheckBoxes=2, label='PMCheckBoxGrp2', labelArray2=('test1', 'test2')) self.uiCHKGRP_test3 = m.checkBoxGrp('uiCHKGRP_test3', numberOfCheckBoxes=3, label='PMCheckBoxGrp3', labelArray3=('test1', 'test2', 'test3')) self.uiCHKGRP_test4 = m.checkBoxGrp('uiCHKGRP_test4', numberOfCheckBoxes=4, label='PMCheckBoxGrp4', labelArray4=('test1', 'test2', 'test3', 'test4')) m.setParent(mainColumn) # -------- self.uiLAY_frameColorSliders = self.uiCreateFrame( 'uiLAY_frameColorSliders', 'Color Slider Groups (PMColorSliderGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiCLRGRP_test1 = m.colorSliderGrp('uiCLRGRP_test1', label='test1') self.uiCLRGRP_test2 = m.colorSliderGrp('uiCLRGRP_test2', label='test2') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatFields = self.uiCreateFrame( 'uiLAY_frameFloatFields', 'Float Fields (PMFloatField)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiFLF_test1 = m.floatField('uiFLF_test1') self.uiFLF_test2 = m.floatField('uiFLF_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatFieldGroups = self.uiCreateFrame( 'uiLAY_frameFloatFieldGroups', 'Float Field Groups (PMFloatFieldGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiFLFGRP_test1 = m.floatFieldGrp('uiFLFGRP_test1', numberOfFields=1, label='PMFloatFieldGrp1') self.uiFLFGRP_test2 = m.floatFieldGrp('uiFLFGRP_test2', numberOfFields=2, label='PMFloatFieldGrp2') self.uiFLFGRP_test3 = m.floatFieldGrp('uiFLFGRP_test3', numberOfFields=3, label='PMFloatFieldGrp3') self.uiFLFGRP_test4 = m.floatFieldGrp('uiFLFGRP_test4', numberOfFields=4, label='PMFloatFieldGrp4') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatScrollBars = self.uiCreateFrame( 'uiLAY_frameFloatScrollBars', 'Float Scroll Bars (PMFloatScrollBar)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiFLSCRL_test1 = m.floatScrollBar('uiFLSCRL_test1') self.uiFLSCRL_test2 = m.floatScrollBar('uiFLSCRL_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatSliders = self.uiCreateFrame( 'uiLAY_frameFloatSliders', 'Float Sliders (PMFloatSlider)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiFLTSLD_test1 = m.floatSlider('uiFLTSLD_test1') self.uiFLTSLD_test2 = m.floatSlider('uiFLTSLD_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameFloatSliderGroups = self.uiCreateFrame( 'uiLAY_frameFloatSliderGroups', 'Float Slider Groups (PMFloatSliderGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiFLSGRP_test1 = m.floatSliderGrp('uiFLSGRP_test1', label='test1', field=True) self.uiFLSGRP_test2 = m.floatSliderGrp('uiFLSGRP_test2', label='test2', field=True) m.setParent(mainColumn) # -------- self.uiLAY_frameIconTextCheckBoxes = self.uiCreateFrame( 'uiLAY_frameIconTextCheckBoxes', 'Icon Text Check Boxes (PMIconTextCheckBox)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiITCHK_test1 = m.iconTextCheckBox('uiITCHK_test1', style='iconAndTextHorizontal', label='cube', image1='cube') self.uiITCHK_test2 = m.iconTextCheckBox('uiITCHK_test2', style='iconAndTextHorizontal', label='cone', image1='cone') m.setParent(mainColumn) # -------- self.uiLAY_frameIconTextRadioButtons = self.uiCreateFrame( 'uiLAY_frameIconTextRadioButtons', 'Icon Text Radio Buttons (PMIconTextRadioButton)') m.columnLayout() m.rowLayout(numberOfColumns=4) m.separator(style='none', width=140) m.iconTextRadioCollection() self.uiITRAD_test1 = m.iconTextRadioButton( 'uiITRAD_test1', style='iconAndTextHorizontal', label='cube', image1='cube') self.uiITRAD_test2 = m.iconTextRadioButton( 'uiITRAD_test2', style='iconAndTextHorizontal', label='cone', image1='cone') self.uiITRAD_test3 = m.iconTextRadioButton( 'uiITRAD_test3', style='iconAndTextHorizontal', label='torus', image1='torus') m.setParent(mainColumn) # -------- self.uiLAY_frameIconTextScrollLists = self.uiCreateFrame( 'uiLAY_frameIconTextScrollLists', 'Icon Text Scroll Lists (PMIconTextScrollList)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiITSLST_test1 = m.iconTextScrollList( 'uiITSLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) self.uiITSLST_test2 = m.iconTextScrollList( 'uiITSLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) m.setParent(mainColumn) # -------- self.uiLAY_frameIntFields = self.uiCreateFrame( 'uiLAY_frameIntFields', 'Int Fields (PMIntField)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiINF_test1 = m.intField('uiINF_test1') self.uiINF_test2 = m.intField('uiINF_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameIntFieldGroups = self.uiCreateFrame( 'uiLAY_frameIntFieldGroups', 'Int Field Groups (PMIntFieldGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiINFGRP_test1 = m.intFieldGrp('uiINFGRP_test1', numberOfFields=1, label='PMIntFieldGrp1') self.uiINFGRP_test2 = m.intFieldGrp('uiINFGRP_test2', numberOfFields=2, label='PMIntFieldGrp2') self.uiINFGRP_test3 = m.intFieldGrp('uiINFGRP_test3', numberOfFields=3, label='PMIntFieldGrp3') self.uiINFGRP_test4 = m.intFieldGrp('uiINFGRP_test4', numberOfFields=4, label='PMIntFieldGrp4') m.setParent(mainColumn) # -------- self.uiLAY_frameIntScrollBars = self.uiCreateFrame( 'uiLAY_frameIntScrollBars', 'Int Scroll Bars (PMIntScrollBar)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiINSCRL_test1 = m.intScrollBar('uiINSCRL_test1') self.uiINSCRL_test2 = m.intScrollBar('uiINSCRL_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameIntSliders = self.uiCreateFrame( 'uiLAY_frameIntSliders', 'Int Sliders (PMIntSlider)') m.columnLayout(adjustableColumn=True) m.separator(style='none', height=2) self.uiINTSLD_test1 = m.intSlider('uiINTSLD_test1') self.uiINTSLD_test2 = m.intSlider('uiINTSLD_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameIntSliderGroups = self.uiCreateFrame( 'uiLAY_frameIntSliderGroups', 'Int Slider Groups (PMIntSliderGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiINSGRP_test1 = m.intSliderGrp('uiINSGRP_test1', label='test1', field=True) self.uiINSGRP_test2 = m.intSliderGrp('uiINSGRP_test2', label='test2', field=True) m.setParent(mainColumn) # -------- self.uiLAY_frameOptionMenus = self.uiCreateFrame( 'uiLAY_frameOptionMenus', 'Option Menus (PMOptionMenu)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=110, style='none') self.uiOPTMNU_test1 = m.optionMenu('uiOPTMNU_test1', label='test1') m.menuItem(label='one') m.menuItem(label='two') m.menuItem(label='three') self.uiOPTMNU_test2 = m.optionMenu('uiOPTMNU_test2', label='test2') m.menuItem(label='four') m.menuItem(label='five') m.menuItem(label='six') m.setParent(mainColumn) # -------- self.uiLAY_frameOptionMenuGroups = self.uiCreateFrame( 'uiLAY_frameOptionMenuGroups', 'Option Menus Groups (PMOptionMenuGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiOPMGRP_test1 = m.optionMenuGrp('uiOPMGRP_test1', label='test1', extraLabel='extraLabel') m.menuItem(label='one') m.menuItem(label='two') m.menuItem(label='three') self.uiOPMGRP_test2 = m.optionMenuGrp('uiOPMGRP_test2', label='test2', extraLabel='extraLabel') m.menuItem(label='four') m.menuItem(label='five') m.menuItem(label='six') m.setParent(mainColumn) # -------- self.uiLAY_frameRadioButtons = self.uiCreateFrame( 'uiLAY_frameRadioButtons', 'Radio Buttons (PMRadioButton)') m.columnLayout() m.rowLayout(numberOfColumns=4) m.separator(style='none', width=140) m.radioCollection() self.uiRAD_test1 = m.radioButton('uiRAD_test1', label='test1') self.uiRAD_test2 = m.radioButton('uiRAD_test2', label='test2') self.uiRAD_test3 = m.radioButton('uiRAD_test3', label='test3') m.setParent(mainColumn) # -------- self.uiLAY_frameRadioButtonGroups = self.uiCreateFrame( 'uiLAY_frameRadioButtonGroups', 'Radio Button Groups (PMRadioButtonGrp#)') m.columnLayout() m.separator(style='none', height=2) self.uiRADGRP_test1 = m.radioButtonGrp('uiRADGRP_test1', numberOfRadioButtons=1, label='PMRadioButtonGrp1', label1='test1') self.uiRADGRP_test2 = m.radioButtonGrp('uiRADGRP_test2', numberOfRadioButtons=2, label='PMRadioButtonGrp2', labelArray2=('test1', 'test2')) self.uiRADGRP_test3 = m.radioButtonGrp('uiRADGRP_test3', numberOfRadioButtons=3, label='PMRadioButtonGrp3', labelArray3=('test1', 'test2', 'test3')) self.uiRADGRP_test4 = m.radioButtonGrp('uiRADGRP_test4', numberOfRadioButtons=4, label='PMRadioButtonGrp4', labelArray4=('test1', 'test2', 'test3', 'test4')) m.setParent(mainColumn) # -------- self.uiLAY_frameSymbolCheckBoxes = self.uiCreateFrame( 'uiLAY_frameSymbolCheckBoxes', 'Symbol Check Boxes (PMSymbolCheckBox)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiSYMCHK_test1 = m.symbolCheckBox('uiSYMCHK_test1', image='polyCube') self.uiSYMCHK_test2 = m.symbolCheckBox('uiSYMCHK_test2', image='polyCone') m.setParent(mainColumn) # -------- self.uiLAY_frameScriptTables = self.uiCreateFrame( 'uiLAY_frameScriptTables', 'Script Tables (PMScriptTable)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiSCRTBL_test1 = m.scriptTable('uiSCRTBL_test1', selectionMode=3, rows=4, columns=2) self.uiSCRTBL_test2 = m.scriptTable('uiSCRTBL_test2', selectionMode=3, rows=4, columns=2) m.setParent(mainColumn) # -------- self.uiLAY_frameScrollField = self.uiCreateFrame( 'uiLAY_frameScrollField', 'Scroll Field (PMScrollField)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiSCRFLD_test1 = m.scrollField('uiSCRFLD_test1', wordWrap=True) self.uiSCRFLD_test2 = m.scrollField('uiSCRFLD_test2', wordWrap=True) m.setParent(mainColumn) # -------- self.uiLAY_frameShelfTabLayout = self.uiCreateFrame( 'uiLAY_frameShelfTabLayout', 'Shelf Tab Layout (PMShelfTabLayout)') m.columnLayout(adjustableColumn=True) self.uiSHLTAB_test1 = m.shelfTabLayout() m.shelfLayout('test1') m.setParent('..') m.shelfLayout('test2') m.setParent('..') m.shelfLayout('test3') m.setParent('..') m.setParent('..') self.uiSHLTAB_test2 = m.shelfTabLayout() m.shelfLayout('test4') m.setParent('..') m.shelfLayout('test5') m.setParent('..') m.shelfLayout('test6') m.setParent('..') m.setParent(mainColumn) # -------- self.uiLAY_frameTabLayout = self.uiCreateFrame( 'uiLAY_frameTabLayout', 'Tab Layout (PMTabLayout)') m.columnLayout(adjustableColumn=True) self.uiTAB_test1 = m.tabLayout() uiLAY_tabRow1 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow2 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow3 = m.rowLayout(numberOfColumns=1) m.setParent('..') m.setParent('..') m.tabLayout(self.uiTAB_test1, edit=True, tabLabel=( (uiLAY_tabRow1, 'test1'), (uiLAY_tabRow2, 'test2'), (uiLAY_tabRow3, 'test3'), )) self.uiTAB_test2 = m.tabLayout() uiLAY_tabRow4 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow5 = m.rowLayout(numberOfColumns=1) m.setParent('..') uiLAY_tabRow6 = m.rowLayout(numberOfColumns=1) m.setParent('..') m.setParent('..') m.tabLayout(self.uiTAB_test2, edit=True, tabLabel=( (uiLAY_tabRow4, 'test4'), (uiLAY_tabRow5, 'test5'), (uiLAY_tabRow6, 'test6'), )) m.setParent(mainColumn) # -------- self.uiLAY_frameTextFields = self.uiCreateFrame( 'uiLAY_frameTextFields', 'Text Fields (PMTextField)') m.columnLayout() m.separator(style='none', height=2) m.rowLayout(numberOfColumns=3) m.separator(width=140, style='none') self.uiTXT_test1 = m.textField('uiTXT_test1') self.uiTXT_test2 = m.textField('uiTXT_test2') m.setParent(mainColumn) # -------- self.uiLAY_frameTextFieldButtonGroups = self.uiCreateFrame( 'uiLAY_frameTextFieldButtonGroups', 'Text Field Button Groups (PMTextFieldButtonGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiTXBTGR_test1 = m.textFieldButtonGrp('uiTXBTGR_test1', label='test1', buttonLabel='button1') self.uiTXBTGR_test2 = m.textFieldButtonGrp('uiTXBTGR_test2', label='test2', buttonLabel='button2') m.setParent(mainColumn) # -------- self.uiLAY_frameTextFieldGroups = self.uiCreateFrame( 'uiLAY_frameTextFieldGroups', 'Text Field Groups (PMTextFieldGrp)') m.columnLayout() m.separator(style='none', height=2) self.uiTXTGRP_test1 = m.textFieldGrp('uiTXTGRP_test1', label='test1') self.uiTXTGRP_test2 = m.textFieldGrp('uiTXTGRP_test2', label='test2') m.setParent(mainColumn) # -------- self.uiLAY_frameTextScrollLists = self.uiCreateFrame( 'uiLAY_frameTextScrollLists', 'Text Scroll Lists (PMTextScrollList)') m.columnLayout() m.rowLayout(numberOfColumns=3) m.separator(style='none', width=140) self.uiTXTLST_test1 = m.textScrollList( 'uiTXTLST_test1', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) self.uiTXTLST_test2 = m.textScrollList( 'uiTXTLST_test2', allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten')) # -------- m.setParent(uiLAY_mainForm) self.uiBTN_savePrefs = m.button(label='Save Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onSavePrefsClicked) self.uiBTN_loadPrefs = m.button(label='Load Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onLoadPrefsClicked) self.uiBTN_resetPrefs = m.button(label='Reset Prefs', height=MAIN_BUTTONS_HEIGHT, command=self.onResetPrefsClicked) m.setParent('..') # -> window m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiLAY_mainScroll, 'top', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiLAY_mainScroll, 'left', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiLAY_mainScroll, 'right', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachControl=[(self.uiLAY_mainScroll, 'bottom', 2, self.uiBTN_savePrefs)]) m.formLayout(uiLAY_mainForm, e=True, attachNone=[(self.uiBTN_savePrefs, 'top')]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_savePrefs, 'left', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_savePrefs, 'right', 2, 33)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_savePrefs, 'bottom', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachNone=[(self.uiBTN_loadPrefs, 'top')]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_loadPrefs, 'left', 2, 33)]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_loadPrefs, 'right', 2, 66)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_loadPrefs, 'bottom', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachNone=[(self.uiBTN_resetPrefs, 'top')]) m.formLayout(uiLAY_mainForm, e=True, attachPosition=[(self.uiBTN_resetPrefs, 'left', 2, 66)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_resetPrefs, 'right', 2)]) m.formLayout(uiLAY_mainForm, e=True, attachForm=[(self.uiBTN_resetPrefs, 'bottom', 2)]) m.showWindow(self.window)
def updatePoseScopeTable(self, *args): MSelectionList = OpenMaya.MGlobal.getActiveSelectionList() # I can do something to help about refresh here ... if MSelectionList.length() == 0: return # I can do something here to search input mesh from poseScopes too ... poseScopeInfos = self.getPoseScopesInfos() if poseScopeInfos == None: return cmds.scriptTable('table', e=True, clearTable=True) for i in range(0, cmds.scriptTable('table', q=True, rows=True)): cmds.scriptTable('table', e=True, deleteRow=(i + 1)) if len(poseScopeInfos[1]): cmds.textFieldButtonGrp('getInfosControl', e=True, tx=poseScopeInfos[0]) cmds.scriptTable('table', edit=True, rows=len(poseScopeInfos[1])) for i in range(0, len(poseScopeInfos[1])): cmds.scriptTable('table', cellIndex=(i + 1, 1), edit=True, cellValue=poseScopeInfos[1][i]) cmds.scriptTable('table', cellIndex=(i + 1, 2), edit=True, cellValue=poseScopeInfos[2][i]) isVisible = cmds.getAttr( cmds.scriptTable( 'table', q=True, cellIndex=(i + 1, 1), cellValue=True)[0] + '.visibility') cmds.scriptTable('table', edit=True, cellIndex=(i + 1, 3), cellValue=isVisible) else: return cmds.scriptTable('table', e=True, sm=3) return
def setRigAttribute(*args): cmds.select(hierarchy=True) oSel = cmds.ls(sl=True, type='transform') #print oSel row = 1 for i in oSel: add_row() #name #print i cmds.scriptTable('table', cellIndex=(row,1), edit=True, cellValue=row-1) cmds.scriptTable('table', cellIndex=(row,2), edit=True, cellValue=i) numAttrib = 0 for att in cmds.listAttr(i, unlocked = True , settable = True, visible = True , keyable = True, connectable = False, scalar = True, write = True, hd = True, hnd = False) or []: # only limited for translate and rotate if 'translate' in att or 'rotate' in att: #Tmpsel = cmds.ls(sl=True,type='transform')[0] gettype = cmds.getAttr(i + "." + att, type=True) col = numAttrib*2 + 4 if gettype == "bool": BoolValue = cmds.getAttr(i + "." + att) #print '%s : %i', att, BoolValue cmds.scriptTable('table', cellIndex=(row,col), edit=True, cellValue=att) cmds.scriptTable('table', cellIndex=(row,col+1), edit=True, cellValue=BoolValue) else: getValue = cmds.getAttr(i + "." + att) #print "[%s] %f" %(att, getValue) cmds.scriptTable('table', cellIndex=(row,col), edit=True, cellValue=att) cmds.scriptTable('table', cellIndex=(row,col+1), edit=True, cellValue=getValue) # print getValue numAttrib = numAttrib + 1 # add num of attribute cmds.scriptTable('table', cellIndex=(row,3), edit=True, cellValue=numAttrib) row = row + 1
def loadfclonemotion(*args): all_rows = cmds.scriptTable('scrtable', query=True, rows=True) global recstart if all_rows > 1 and recstart == 0: motionfile = pm.fileDialog2(fileMode=1) cmds.currentUnit(time='ntsc') numcurrenttime = cmds.currentTime(query=True) if motionfile: o_file = open(str(motionfile[0]), 'r') reader = csv.reader(o_file) #header = next(reader) row_no = 0 for row in reader: if row_no > 0 and len(row) > 5: bonename = cmds.textField('HeadbonenameF', q=True, tx=True) if len(bonename) > 0: cX = cmds.textField('HeadbonenameXF', q=True, tx=True) cY = cmds.textField('HeadbonenameYF', q=True, tx=True) cZ = cmds.textField('HeadbonenameZF', q=True, tx=True) CrX = 0 CrY = 0 CrZ = 0 if cX.replace(".", "").isdigit(): CrX = float(cX) if cY.replace(".", "").isdigit(): CrY = float(cY) if cZ.replace(".", "").isdigit(): CrZ = float(cZ) bjoint = pm.PyNode(bonename) #pm.rotate(bjoint, [float(row[1])*-1+CrX ,float(row[2])*-1+CrY,float(row[3])*-1+CrZ], euler= True,a=True, ws=False) pm.setKeyframe( bjoint, v=float(row[1]) * -1 + CrX, attribute='rotateX', t=[str(row_no + numcurrenttime - 1) + "ntsc"]) pm.setKeyframe( bjoint, v=float(row[2]) * -1 + CrY, attribute='rotateY', t=[str(row_no + numcurrenttime - 1) + "ntsc"]) pm.setKeyframe( bjoint, v=float(row[3]) * -1 + CrZ, attribute='rotateZ', t=[str(row_no + numcurrenttime - 1) + "ntsc"]) for o_r in range(all_rows): all_colums = cmds.scriptTable('scrtable', query=True, columns=True) data_list = [] for o_c in range(all_colums): cell_list = cmds.scriptTable('scrtable', cellIndex=(o_r, o_c), query=True, cellValue=True) if type(cell_list) == 'list': cell_text = "".join(cell_list) elif cell_list == None: cell_text = cell_list else: cell_text = cell_list[0] data_list.append(cell_text) #print(data_list) if o_r > 0: streng = 1.0 if data_list[4].replace(".", "").isdigit(): streng = float(data_list[4]) recdataDeformStreng = ( ((float(row[int(data_list[6]) - 2 + 3 + 1])) + 0.0) / 100.0) * (streng + 0.0) targetdefnum = int(data_list[5]) - 2 cmds.blendShape(selectedBlend, edit=True, w=[(targetdefnum, recdataDeformStreng)]) cmds.setKeyframe( "%s.w[%i]" % (selectedBlend, targetdefnum), t=str(row_no + numcurrenttime - 1) + "ntsc") row_no = 1 + row_no o_file.close()
def add_row(*args): last_row_num = cmds.scriptTable('table', query=True, rows=True) cmds.scriptTable('table', edit=True,insertRow=last_row_num)
def deformface(): global dataarray # dataarray는 전역변수 if len(dataarray) < 3: # 3개는 x, y, z 그 세개라도 오면 목 움직임이라도 구현. return 0 all_rows = cmds.scriptTable( 'scrtable', query=True, rows=True) # scrtable은 노란 창. 거기 있는 것들 받아와서 all_rows에 넣어주는 것. global recstart global gnumcurrenttime # gnumcurrenttime은 현재시간. 기본 값은 1로 되어있고 1프레임으로 계속 하는 것. 별거 아님. if all_rows > 1 and recstart == 1: # recstart는 토글버튼. 첨엔 0 인데 start real time expression누르면 1 0 1 0 바뀜. ornum = 1 numcurrenttime = gnumcurrenttime bonename = cmds.textField('HeadbonenameF', q=True, tx=True) if len( bonename ) > 0: # bonename > 0 == 값이 있으면. 목 링크. 내꺼에선 Character1_Ctrl_Neck. bonename 0 , 180, 0 해놓고 저장. cX = cmds.textField('HeadbonenameXF', q=True, tx=True) # cX, cY, cZ는 cY = cmds.textField('HeadbonenameYF', q=True, tx=True) cZ = cmds.textField('HeadbonenameZF', q=True, tx=True) CrX = 0 CrY = 0 CrZ = 0 if cX.replace(".", "").isdigit(): CrX = float(cX) if cY.replace(".", "").isdigit(): CrY = float(cY) if cZ.replace(".", "").isdigit(): CrZ = float(cZ) bjoint = pm.PyNode(bonename) pm.rotate(bjoint, [ float(dataarray[0]) * -1 + CrX, float(dataarray[1]) * -1 + CrY, float(dataarray[2]) * -1 + CrZ ], euler=True, a=True, ws=False) #if recnow ==1 pm.setKeyframe(bjoint, v=float(dataarray[0]) * -1 + CrX, attribute='rotateX', t=[numcurrenttime]) pm.setKeyframe(bjoint, v=float(dataarray[1]) * -1 + CrY, attribute='rotateY', t=[numcurrenttime]) pm.setKeyframe(bjoint, v=float(dataarray[2]) * -1 + CrZ, attribute='rotateZ', t=[numcurrenttime]) for i in range(all_rows): all_colums = cmds.scriptTable('scrtable', query=True, columns=True) data_list = [] for j in range(all_colums): cell_list = cmds.scriptTable('scrtable', cellIndex=(i, j), query=True, cellValue=True) if type(cell_list) == 'list': cell_text = "".join(cell_list) elif cell_list == None: cell_text = cell_list else: cell_text = cell_list[0] data_list.append(cell_text) if i > 0 and len(dataarray) > 3: streng = 1.0 if data_list[4].replace(".", "").isdigit(): streng = float(data_list[4]) #recdataDeformStreng = (((float(dataarray[int(data_list[6])-2+3]))+0.0)/100.0)*(streng+0.0) recdataDeformStreng = (( (float(dataarray[int(data_list[6]) - 2 + 3])) + 0.0) / 33.0) * (streng + 0.0) targetdefnum = int(data_list[5]) - 2 cmds.blendShape(selectedBlend, edit=True, w=[(targetdefnum, recdataDeformStreng)]) #if recnow ==1 cmds.setKeyframe("%s.w[%i]" % (selectedBlend, targetdefnum), t=numcurrenttime) if random.random() < 0.2: datastring = '%.4f' % recdataDeformStreng cmds.scriptTable('scrtable', e=True, ci=[i, 3], cv=datastring)
def delete_row(*args): last_row_num = cmds.scriptTable('table', query=True, rows=True) cmds.scriptTable('table', edit=True,deleteRow=last_row_num - 1)
def savepresetfile(*args): blendshapetxt = cmds.textField('selectedBlendShapeText', q=True, tx=True) filename = blendshapetxt + "_mayapipeline_setting.txt" o_file = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop') + "\\" + filename all_rows = cmds.scriptTable('scrtable', query=True, rows=True) if all_rows < 2: return 0 if not (cmds.file(o_file, query=True, exists=True)): tmp_csv_file = open(o_file, 'w', os.O_CREAT) else: tmp_csv_file = open(o_file, 'w') writer = csv.writer(tmp_csv_file, lineterminator='\n') all_rows = cmds.scriptTable('scrtable', query=True, rows=True) for i in range(all_rows): all_colums = cmds.scriptTable('scrtable', query=True, columns=True) data_list = [] for j in range(all_colums - 1): if i == 0: blendshapetxt = cmds.textField('selectedBlendShapeText', q=True, tx=True) headbonenametxt = cmds.textField('HeadbonenameF', q=True, tx=True) headxtxt = cmds.textField('HeadbonenameXF', q=True, tx=True) headytxt = cmds.textField('HeadbonenameYF', q=True, tx=True) headztxt = cmds.textField('HeadbonenameZF', q=True, tx=True) porttxt = cmds.textField('Portnum', q=True, tx=True) data_list = [ blendshapetxt, headbonenametxt, headxtxt, headytxt, headztxt, porttxt ] else: cell_list = cmds.scriptTable('scrtable', cellIndex=(i, j + 1), query=True, cellValue=True) if j == 0: if type(cell_list) == list: cell_text = "".join(cell_list) print(cell_text) elif cell_list == None: cell_text = u'' else: cell_text = cell_list data_list.append(cell_text) elif j == 1: if type(cell_list) == list: cell_text = "".join(cell_list) print(cell_text) elif cell_list == None: cell_text = u'' else: cell_text = cell_list data_list.append(cell_text) else: if type(cell_list) == list: cell_text = "".join(cell_list) elif cell_list == None: cell_text = u'' else: cell_text = cell_list data_list.append(cell_text) writer.writerow(data_list) tmp_csv_file.close() cmds.warning("Saved file (" + o_file + ")")
def buildUI(self): iconPath = cmds.getModulePath( moduleName='mnt_poseScope') + '/icons/mntShelf/' windowwidth = 200 if cmds.workspaceControl('mnt_poseScopes_editor', ex=True): cmds.deleteUI('mnt_poseScopes_editor') cmds.workspaceControl('mnt_poseScopes_editor', w=windowwidth, r=True, clp=False) cmds.columnLayout(adj=True) cmds.text('Mnt poseScopes Editor', fn='boldLabelFont', h=32, ebg=True, bgc=(0.15, 0.15, 0.15)) cmds.paneLayout('mntDenoiseToolPane', cn='vertical2') cmds.columnLayout(adj=True) cmds.iconTextButton(style='iconAndTextVertical', l = 'Create or Update poseScope', i = iconPath + 'mnt_createPoseScope.png',\ c = 'import maya.cmds as cmds\ncmds.createPoseScopeShape()', ann = 'Select some polySurface face components.\nThen select a transform node using the outliner and click button to create a poseScope.\n If no transform node is selected a default one is created.') cmds.iconTextButton(style='iconAndTextVertical', l = 'Mirror poseScope', i = iconPath + 'mnt_mirrorPoseScope.png',\ c = 'import maya.cmds as cmds\ncmds.mirrorPoseScope()', ann = 'Creates a new mirrored poseScope\nfrom the selected one.') cmds.iconTextButton(style='iconAndTextVertical', l = 'Delete poseScope', i = iconPath + 'mnt_deletePoseScope.png',\ c = cmds.deletePoseScope, ann = 'Delete poseScope from the selected transform node.') cmds.iconTextButton(style='iconAndTextVertical', l = 'Edit poseScope components', i = iconPath + 'mnt_editPoseScopeComponents.png',\ c = 'cmds.editPoseScopeComponents()', ann = 'Select polySurface components associated\nto the selected poseScope.') cmds.iconTextButton(style='iconAndTextVertical', l = 'Transfert poseScopes', i = iconPath + 'mnt_transfertposeScopes.png',\ c = 'cmds.transfertPoseScopes()', ann = 'Transfers poseScopes from first selected polySurface A\nto a second selected polySurface B.') cmds.iconTextButton(style='iconAndTextVertical', l = 'Import poseScopes from json file', i = iconPath + 'mnt_importPoseScopes.png',\ c = self.importPoseScopeInfos, ann = 'Imports poseScopes from a json file.') cmds.iconTextButton(style='iconAndTextVertical', l = 'Export poseScopes from json file', i = iconPath + 'mnt_exportPoseScopes.png',\ c = self.savePoseScopeInfos, ann = 'Exports poseScopes to a json file.') cmds.setParent('..') cmds.columnLayout(adj=True, w=500) cmds.text('PoseScopes Table', h=24, bgc=(0.2, 0.2, 0.2)) cmds.textFieldButtonGrp('getInfosControl', label = 'PolySurface Name : ', text = 'None', buttonLabel = 'Get Posescopes', cat = (1, 'left', 0),\ ct3 = ('left', 'left', 'left'), cw3 = (100, 170, 100), bc = self.updatePoseScopeTable) form = cmds.formLayout() table = cmds.scriptTable('table', rows = 0, columns = 3, label = [(1, 'Controller Name'), (2, 'Components List'), (3, 'PoseScope Visibility')], h = 530,\ cw = (2, 200), ed = False, cellChangedCmd = self.edit_cell, sm = 3, sb = 1, mee = False) cmds.scriptTable('table', edit=True, cw=(1, 150)) cmds.scriptTable('table', edit=True, cw=(3, 110)) cmds.scriptTable('table', edit=True, selectionChangedCmd=self.cellSelected, cbc=self.setBackgroundColor) cmds.formLayout(form, edit=True, attachForm=[ (table, 'top', 0), (table, 'left', 0), (table, 'right', 0), ]) cmds.setParent('..') cmds.setParent('..')