Esempio n. 1
0
def ui() :
	global FFU_E_SETTINGS, FFU_E_WINDOW 
	init()

	WINDOW_NAME = 'w_ff_utils_export'
	if( pm.window( WINDOW_NAME, q=True, exists=True ) ) :
		pm.deleteUI( WINDOW_NAME )

	FFU_E_WINDOW = pm.window( WINDOW_NAME, title='Export to Fiction Factory', sizeable=True )
	vl = pm.verticalLayout()
	hl = pm.horizontalLayout( parent=vl )
	
	l1 = pm.frameLayout( parent=hl, label="Scene options" )
	for setting in FFU_E_SETTINGS :
		uiobject = __create_uiobject_from_setting( setting )

	l2 = pm.frameLayout( parent=hl, label="FFEXport options" )
	for setting in FFU_E_FFEXPORT_SETTINGS :
		uiobject = __create_uiobject_from_setting( setting ) 

	pm.button(
		label='Export!',
		parent=vl,
		command=lambda *args : ui_do_export()
	)

	FFU_E_WINDOW.setHeight(600)
	FFU_E_WINDOW.setWidth(200)
	hl.redistribute( 2.5, 1 )
	vl.redistribute( 5, 1 )	
	FFU_E_WINDOW.show()
Esempio n. 2
0
def create( layout ) :
	container = pm.verticalLayout( p=layout )
	top_layout = pm.columnLayout( p=container, adj=True )
	# top_layout = pm.verticalLayout( bgc=(1,0,0), p=container )		
	bottom_layout = pm.scrollLayout( p=container, cr=True )	
	bottom_horiz = pm.horizontalLayout( p=bottom_layout )

	left = pm.frameLayout( label='Old Name', mh=4, mw=4, p=bottom_horiz )
	right = pm.frameLayout( label='New Name', mh=4, mw=4, p=bottom_horiz )		
	list_left = pm.columnLayout( 'th_rename_preview_left', p=left, rs=4 )
	list_right = pm.columnLayout( 'th_rename_preview_right', p=right, rs=4 )
	
	bottom_horiz.redistribute()
	
	# regex
	rename_frame = pm.frameLayout( label='Regex', mh=4, mw=4, p=top_layout )
	rename_layout = pm.columnLayout( p=rename_frame, adj=True, rs=4 )
	
	rename_search = pm.textField( 'th_rename_search', pht='Search', p=rename_layout,
		cc=lambda *args : __update_rename_preview()
	)
	rename_replace = pm.textField( 'th_rename_replace', pht='Replace', p=rename_layout,
		cc=lambda *args : __update_rename_preview()
	)


	rename_prefix = pm.textField( 'th_rename_prefix', pht='Prefix', p=rename_layout,
		cc=lambda *args : __update_rename_preview()
	)
	rename_suffix = pm.textField( 'th_rename_suffix', pht='Suffix', p=rename_layout,
		cc=lambda *args : __update_rename_preview()
	)
	renumber_layout = pm.rowLayout( p=rename_layout, nc=2, adj=True )
	rename_from = pm.textField( 'th_rename_from', pht='Renumber From', p=renumber_layout,
		cc=lambda *args : __update_rename_preview()
	)
	rename_by = pm.textField( 'th_rename_by', pht='Renumber By', p=renumber_layout,
		cc=lambda *args : __update_rename_preview()
	)
	

	pm.button( 
		label='Rename', 
		p=rename_layout,
		c=lambda *args : __rename_from_ui()
	)

	# setup a script job to update preview grids
	pm.scriptJob( 
		p=container,
		e=(		
		'SelectionChanged',
		lambda *args : __populate_preview_grids( list_left, list_right )
	) )

	__populate_preview_grids( list_left, list_right )
	container.redistribute( 1, 3 )
Esempio n. 3
0
def create(layout):
    container = pm.verticalLayout(p=layout)
    top_layout = pm.columnLayout(p=container, adj=True)
    # top_layout = pm.verticalLayout( bgc=(1,0,0), p=container )
    bottom_layout = pm.scrollLayout(p=container, cr=True)
    bottom_horiz = pm.horizontalLayout(p=bottom_layout)

    left = pm.frameLayout(label='Old Name', mh=4, mw=4, p=bottom_horiz)
    right = pm.frameLayout(label='New Name', mh=4, mw=4, p=bottom_horiz)
    list_left = pm.columnLayout('th_rename_preview_left', p=left, rs=4)
    list_right = pm.columnLayout('th_rename_preview_right', p=right, rs=4)

    bottom_horiz.redistribute()

    # regex
    rename_frame = pm.frameLayout(label='Regex', mh=4, mw=4, p=top_layout)
    rename_layout = pm.columnLayout(p=rename_frame, adj=True, rs=4)

    rename_search = pm.textField('th_rename_search',
                                 pht='Search',
                                 p=rename_layout,
                                 cc=lambda *args: __update_rename_preview())
    rename_replace = pm.textField('th_rename_replace',
                                  pht='Replace',
                                  p=rename_layout,
                                  cc=lambda *args: __update_rename_preview())

    rename_prefix = pm.textField('th_rename_prefix',
                                 pht='Prefix',
                                 p=rename_layout,
                                 cc=lambda *args: __update_rename_preview())
    rename_suffix = pm.textField('th_rename_suffix',
                                 pht='Suffix',
                                 p=rename_layout,
                                 cc=lambda *args: __update_rename_preview())
    renumber_layout = pm.rowLayout(p=rename_layout, nc=2, adj=True)
    rename_from = pm.textField('th_rename_from',
                               pht='Renumber From',
                               p=renumber_layout,
                               cc=lambda *args: __update_rename_preview())
    rename_by = pm.textField('th_rename_by',
                             pht='Renumber By',
                             p=renumber_layout,
                             cc=lambda *args: __update_rename_preview())

    pm.button(label='Rename',
              p=rename_layout,
              c=lambda *args: __rename_from_ui())

    # setup a script job to update preview grids
    pm.scriptJob(
        p=container,
        e=('SelectionChanged',
           lambda *args: __populate_preview_grids(list_left, list_right)))

    __populate_preview_grids(list_left, list_right)
    container.redistribute(1, 3)
Esempio n. 4
0
    def createNew(self, floating=False):

        if self.mmmm == None:
            self.mmmm = MmmmToolsMod.Dynamic.GetInstance()
        mmmm = self.mmmm
        self.widgets = {}
        self.subs = {}
        ## Create Main Widgets
        win = self.widgets["win"] = pm.window()
        ##
        scroll = self.widgets["scroll"] = pm.scrollLayout(parent=win, horizontalScrollBarThickness=0)
        ## The dock must be created after the window's layout
        dock = self.widgets["dock"] = pm.dockControl(
            "MmmmTools Dock", floating=floating, area="left", content=win, allowedArea=["right", "left"]
        )

        col = self.widgets["col"] = pm.columnLayout(parent=scroll)

        # self.mainFrame = MmmmMainDockableWindowSub( )
        # self.mainFrame
        # self.mainFrame =
        # self.makeMainFrame( parentLayout=col )

        modellerFrame = pm.frameLayout(label="Modeler", collapsable=True, parent=col, marginWidth=10)
        modellerCol = pm.columnLayout(parent=modellerFrame)

        f0 = pm.frameLayout(label="Modeler Actions", marginWidth=10, collapsable=True, parent=modellerCol)
        commander = self.mmmm.commander
        cmdEntries = commander.entries
        prefix = "Modeler/"
        for name, entry in cmdEntries.items():
            if name.startswith(prefix):
                uiLabel = entry.get("uiLabel")
                if uiLabel == None:
                    ## Trim modeler from name
                    uiLabel = name[len(prefix) :]
                pm.button(label=uiLabel, parent=f0, command=commander.commandsMelNames[name])

        f1 = pm.frameLayout(label="Grid Tools", marginWidth=10, collapsable=True, parent=modellerCol)
        mmmm.modeler.runGridTools(makeUi=True, parentWidget=f1)
        f2 = pm.frameLayout(label="Retopo Tools", marginWidth=10, collapsable=True, parent=modellerCol)
        mmmm.modeler.runRetoper(makeUi=True, parentWidget=f2)
        f3 = pm.frameLayout(label="Mirror Tools", marginWidth=10, collapsable=True, parent=modellerCol)
        mmmm.modeler.runMirrorer(makeUi=True, parentWidget=f3)

        pm.windowPref(win, width=500, height=500)
        win.setWidth(500)
        win.setHeight(800)
Esempio n. 5
0
def __create_shelf_frame( shelf_file, shelf_name, layout ) :
	shelf_function = os.path.basename( shelf_file ).replace( '.mel', '' )	
	shelf_frame = pm.frameLayout( label=shelf_name, collapsable=True, p=layout )			
	shelf_layout = pm.gridLayout( ag=True, nc=8 )
	pm.mel.eval( 'source "%s"' % ( shelf_file ) )
	pm.mel.eval( '%s()' % ( shelf_function ) )
	
	return shelf_frame
Esempio n. 6
0
def __create_shelf_frame(shelf_file, shelf_name, layout):
    shelf_function = os.path.basename(shelf_file).replace('.mel', '')
    shelf_frame = pm.frameLayout(label=shelf_name, collapsable=True, p=layout)
    shelf_layout = pm.gridLayout(ag=True, nc=8)
    if ('Script found' in pm.mel.whatIs(shelf_file)):
        pm.mel.eval('source "%s"' % (shelf_file))
        if ('Mel procedure found' in pm.mel.whatIs(shelf_function)):
            pm.mel.eval('%s()' % (shelf_function))
        else:
            pm.warning('Could not find shelf function : %s' % (shelf_function))
    else:
        pm.warning('Could not find shelf file : %s' % (shelf_file))

    return shelf_frame
Esempio n. 7
0
def ckFidgetWin():
    """
        ckFidgetWin()

        description: creates interface for ckFidget tool. the list is built dynamically
            from the list of active fidgets on load, so the more fidgets you add. the
            longer the tool window will become.

        inputs:

        outputs: the main fidget window.

        CK - I should add some menus to this that have basic falloffs
         for common tasks, like cloth, sss, or lighting.

    """
    if pm.mel.eval('window -ex "fidgetMainWin" ;'):
        pm.mel.eval('deleteUI "fidgetMainWin";' )
    fidgetWin = pm.mel.eval('window -title "Carl Keifer attribute fidgeter" -width 150 fidgetMainWin;')
    pm.columnLayout( adjustableColumn=True )
    pm.frameLayout( label = "Build Fidget", borderStyle='in', collapsable=True )
    pm.rowLayout( numberOfColumns=5, columnWidth=(75,75) )
    pm.button( label = 'Add Fidget', command = 'ckAddFidget()' )
    pm.button( label = 'refresh UI', command = 'ckFidget()' )
    pm.button( label = 'Save All', command = 'ckSavRstZerAll( "save" )')
    pm.button( label = 'Zero All', command = 'ckSavRstZerAll( "zero" )')
    pm.button( label = 'Restore All', command = 'ckSavRstZerAll( "restore" )')
    pm.setParent( '..' )
    pm.setParent( '..' )
    pm.frameLayout( label = "Master Fidget", borderStyle='in', collapsable=True )
    pm.rowLayout( numberOfColumns=6, columnWidth=(75,75) )
    pm.mel.eval( 'floatField -value $gckFidgetBump -min 0 -changeCommand "$gckFidgetBump = `floatField -q -v  masterBump`"  masterBump;' )
    pm.button( label = '<', command = 'ckFidgetBumpAll("Down")')
    pm.button( label = '>', command = 'ckFidgetBumpAll("Up")')
    pm.radioButtonGrp( label='Bump by:', labelArray2=['0.0', '%'], numberOfRadioButtons=2, sl=1, on1= 'pm.setAttr("ckFidget_GRP.bumpBy", False)', on2= 'pm.setAttr("ckFidget_GRP.bumpBy", True)')
    pm.setParent( '..' )
    pm.setParent( '..' )
    pm.frameLayout( label = "Fidget Attributes", borderStyle='in', collapsable=True )
    e = 0
    # this iterates the list of fidgets we have
    ckList = ckGetList("ckFidget_GRP.ckFidgetList")
    for i in ckList:
        print "i, ",i
        pm.rowLayout( numberOfColumns=6, columnWidth=(75,75) )
        pm.attrFieldSliderGrp( l=str(i), min=-10.0, max=10.0, at = i )
        pm.button( label = '<', command = 'ckFidgetBump(\"'+i+'\", "Down")' )
        pm.button( label = '>', command = 'ckFidgetBump( \"'+i+'\","Up")' )
        pm.button( label = 'save', command = 'ckSavRst( \"'+i+'\", "save")')
        pm.button( label = 'zero', command = 'pm.setAttr( \"'+i+'\", 0)' )
        pm.button( label = 'restore', command = 'ckSavRst( \"'+i+'\", "restore")')
        pm.setParent( '..' )
    pm.setParent( '..' )
    pm.setParent( '..' )
    pm.showWindow(fidgetWin)
    # I should now connect the master fidget value to the fidget group
Esempio n. 8
0
    def createNew(self, floating=False):

        if self.mmmm == None:
            self.mmmm = MmmmToolsMod.Dynamic.GetInstance()
        mmmm = self.mmmm
        self.widgets = {}
        self.subs = {}
        ## Create Main Widgets
        win = self.widgets['win'] = pm.window()
        ##
        scroll = self.widgets['scroll'] = pm.scrollLayout(
            parent=win, horizontalScrollBarThickness=0)
        ## The dock must be created after the window's layout
        dock = self.widgets['dock'] = pm.dockControl(
            'MmmmTools Dock',
            floating=floating,
            area='left',
            content=win,
            allowedArea=['right', 'left'])

        col = self.widgets['col'] = pm.columnLayout(parent=scroll)

        #self.mainFrame = MmmmMainDockableWindowSub( )
        #self.mainFrame
        #self.mainFrame =
        #self.makeMainFrame( parentLayout=col )

        modellerFrame = pm.frameLayout(
            label="Modeler",
            collapsable=True,
            parent=col,
            marginWidth=10,
        )
        modellerCol = pm.columnLayout(parent=modellerFrame)

        f0 = pm.frameLayout(label="Modeler Actions",
                            marginWidth=10,
                            collapsable=True,
                            parent=modellerCol)
        commander = self.mmmm.commander
        cmdEntries = commander.entries
        prefix = 'Modeler/'
        for name, entry in cmdEntries.items():
            if name.startswith(prefix):
                uiLabel = entry.get('uiLabel')
                if uiLabel == None:
                    ## Trim modeler from name
                    uiLabel = name[len(prefix):]
                pm.button(label=uiLabel,
                          parent=f0,
                          command=commander.commandsMelNames[name])

        f1 = pm.frameLayout(label="Grid Tools",
                            marginWidth=10,
                            collapsable=True,
                            parent=modellerCol)
        mmmm.modeler.runGridTools(makeUi=True, parentWidget=f1)
        f2 = pm.frameLayout(label="Retopo Tools",
                            marginWidth=10,
                            collapsable=True,
                            parent=modellerCol)
        mmmm.modeler.runRetoper(makeUi=True, parentWidget=f2)
        f3 = pm.frameLayout(label="Mirror Tools",
                            marginWidth=10,
                            collapsable=True,
                            parent=modellerCol)
        mmmm.modeler.runMirrorer(makeUi=True, parentWidget=f3)

        pm.windowPref(win, width=500, height=500)
        win.setWidth(500)
        win.setHeight(800)