Esempio n. 1
0
 def execAssignWeights(self, args):
     Utils.testPluginLoaded()
     #Utils.testVertexSelectionAvailable()
     cmds.ngAssignWeights(**args)
Esempio n. 2
0
class TabSkinRelax(BaseTab):
    '''
        Defines a UI function set for Weights Relax operations.
    '''
    
    # prefix for environment variables for this tab
    VAR_RELAX_PREFIX = 'ngSkinToolsRelaxTab_'
    
     

    def __init__(self):
        BaseTab.__init__(self)
    
    @Utils.visualErrorHandling
    def execRelax(self, *args):
        '''
            relax button click handler. this is where it actually 
            executes skin relax, whoop-tee-doo.
        '''
        try:

            args = {}
            args['numSteps'] = self.controls.numSteps.getValue()
            args['stepSize'] = self.controls.stepSize.getValue()
            
            # do we need soft selection?
            self.controls.softSelection.addToArgs(args)
            
                
            # do we need volume association?
            if self.controls.useVolumeAssociation.getValue():
                args['abv'] = 1
                args['avr'] = self.controls.volumeAssociationRadius.getValue()

            # add selection+highlight as arguments
            # we need highlight as second argument because
            # other meshes for simulation might be included only through highlight.
            #
            # This will never be an empty list as we tested for vertex selection available earlier
            def makeList(listOrNull):
                if listOrNull is None:
                    return []
                return listOrNull
            
            objects = makeList(cmds.ls(sl=True)) + makeList(cmds.ls(hl=True))
            
            if len(objects) == 0:
                raise MessageException("Nothing is selected")
            
            # execute stuff  
            try:
                cmds.waitCursor(state=True)
                cmds.ngSkinRelax(objects, **args)
            finally:
                cmds.waitCursor(state=False)
                
            Utils.refreshPaintWeightsTool()
            
        except MessageException, err:
            raise err
        except Exception, err:
            
            log.error('unknown error: ' + err.message)
            # remap error to a more meaningful
            Utils.testPluginLoaded()
            
            # unknown error,reraise it
            raise err
Esempio n. 3
0
 def execAssignWeights(self,args):
     Utils.testPluginLoaded()
     #Utils.testVertexSelectionAvailable()
     cmds.ngAssignWeights(**args);