コード例 #1
0
ファイル: lcBatchBake.py プロジェクト: kotchin/mayaSettings
def lcBake_open_lightmap_folder(*args, **kwargs):
  ''' '''
  dir = pm.textField(prefix+'_textField_texture_path', query=True, text=True)
  lightmapDir = os.path.normpath(os.path.join(dir, 'lightMap'))
  if os.path.exists(lightmapDir):
    path.openFilePath(lightmapDir)
  elif os.path.exists(dir):
    path.openFilePath(dir)
  else:
    pm.warning('Path not found: {0}'.format(dir) )
コード例 #2
0
def lcBake_open_lightmap_folder(*args, **kwargs):
    ''' '''
    dir = pm.textField(prefix + '_textField_texture_path',
                       query=True,
                       text=True)
    lightmapDir = os.path.normpath(os.path.join(dir, 'lightMap'))
    if os.path.exists(lightmapDir):
        path.openFilePath(lightmapDir)
    elif os.path.exists(dir):
        path.openFilePath(dir)
    else:
        pm.warning('Path not found: {0}'.format(dir))
コード例 #3
0
ファイル: lcTexture.py プロジェクト: kotchin/mayaSettings
  def reloadChangedTextures(self, *args, **kwargs):
    ''' '''
    fileNodes = pm.ls(type='file')
    sceneName = path.getSceneName()
    xmlFileName = sceneName+'_textureList'
    
    if os.path.exists(self.settingsPath+xmlFileName+'.xml'):
      textureList = xml.dom.minidom.parse(self.settingsPath+xmlFileName+'.xml')

      for node in fileNodes:    
        fileTextureName = pm.getAttr(node+'.fileTextureName')
          
        for nodeStored in textureList.getElementsByTagName('textureNode'):
          nodeNameStored = nodeStored.getAttribute('nodeName')
          if node == nodeNameStored:
            time = os.path.getmtime(fileTextureName)
            
            timeList = nodeStored.getElementsByTagName('time')
            timeNode = timeList[0]
            timeChild = timeNode.firstChild
            timeStored= timeChild.data
            
            if str(time) != timeStored:
              self.reloadTexture(node)         
        
      self.saveTextureList()
    else:
      self.saveTextureList()
      self.reloadTextures()
コード例 #4
0
    def saveTextureList(self, *args, **kwargs):
        ''' write an xml file with a list of the scenes textures and timestamps '''
        fileNodes = pm.ls(type='file')
        sceneName = path.getSceneName()
        xmlFileName = sceneName + '_textureList'

        doc = Document()
        textureList = doc.createElement('textureList')
        textureList.setAttribute('sceneName', sceneName)
        doc.appendChild(textureList)

        for node in fileNodes:
            fileTextureName = pm.getAttr(node + '.fileTextureName')
            if os.path.isfile(fileTextureName):
                time = os.path.getmtime(fileTextureName)

                textureNode = doc.createElement('textureNode')
                textureNode.setAttribute('nodeName', node)
                textureList.appendChild(textureNode)

                texturePath = doc.createElement('path')
                texturePath.appendChild(doc.createTextNode(fileTextureName))
                textureNode.appendChild(texturePath)

                textureTime = doc.createElement('time')
                textureTime.appendChild(doc.createTextNode(str(time)))
                textureNode.appendChild(textureTime)

        f = open(self.settingsPath + xmlFileName + '.xml', 'w+')
        #f.write(doc.toprettyxml(indent='    ') ) #This is super slow !!!!!
        doc.writexml(f)
        f.close()
コード例 #5
0
ファイル: lcTexture.py プロジェクト: kotchin/mayaSettings
 def repathTextures(cls, texList, newPath, *args, **kwargs):
   ''' repath the textures in a given list '''
   if texList:
     for tex in texList:
       oldPath = pm.getAttr(tex+'.fileTextureName')
       fixedPath = path.repath(oldPath , newPath)
       pm.setAttr(tex+'.fileTextureName', fixedPath)
コード例 #6
0
 def repathTextures(cls, texList, newPath, *args, **kwargs):
     ''' repath the textures in a given list '''
     if texList:
         for tex in texList:
             oldPath = pm.getAttr(tex + '.fileTextureName')
             fixedPath = path.repath(oldPath, newPath)
             pm.setAttr(tex + '.fileTextureName', fixedPath)
コード例 #7
0
    def reloadChangedTextures(self, *args, **kwargs):
        ''' '''
        fileNodes = pm.ls(type='file')
        sceneName = path.getSceneName()
        xmlFileName = sceneName + '_textureList'

        if os.path.exists(self.settingsPath + xmlFileName + '.xml'):
            textureList = xml.dom.minidom.parse(self.settingsPath +
                                                xmlFileName + '.xml')

            for node in fileNodes:
                fileTextureName = pm.getAttr(node + '.fileTextureName')

                for nodeStored in textureList.getElementsByTagName(
                        'textureNode'):
                    nodeNameStored = nodeStored.getAttribute('nodeName')
                    if node == nodeNameStored:
                        time = os.path.getmtime(fileTextureName)

                        timeList = nodeStored.getElementsByTagName('time')
                        timeNode = timeList[0]
                        timeChild = timeNode.firstChild
                        timeStored = timeChild.data

                        if str(time) != timeStored:
                            self.reloadTexture(node)

            self.saveTextureList()
        else:
            self.saveTextureList()
            self.reloadTextures()
コード例 #8
0
ファイル: lcTexture.py プロジェクト: kotchin/mayaSettings
 def saveTextureList(self, *args, **kwargs):
   ''' write an xml file with a list of the scenes textures and timestamps '''
   fileNodes = pm.ls(type='file')
   sceneName = path.getSceneName()
   xmlFileName = sceneName+'_textureList'
   
   doc = Document()
   textureList = doc.createElement('textureList')
   textureList.setAttribute('sceneName', sceneName)
   doc.appendChild(textureList)
   
   for node in fileNodes:
     fileTextureName = pm.getAttr(node+'.fileTextureName')
     if os.path.isfile(fileTextureName):
       time = os.path.getmtime(fileTextureName)
       
       textureNode = doc.createElement('textureNode')
       textureNode.setAttribute('nodeName', node)
       textureList.appendChild(textureNode)
       
       texturePath = doc.createElement('path')
       texturePath.appendChild(doc.createTextNode(fileTextureName) )
       textureNode.appendChild(texturePath)
       
       textureTime = doc.createElement('time')   
       textureTime.appendChild(doc.createTextNode(str(time) ) )
       textureNode.appendChild(textureTime)
     
   f = open(self.settingsPath+xmlFileName+'.xml', 'w+')
   #f.write(doc.toprettyxml(indent='    ') ) #This is super slow !!!!!
   doc.writexml(f)
   f.close()
コード例 #9
0
  def buildPublishList(cls, inline, *args, **kwargs):
    ''' build a list of the scripts that are published and some relevent commands '''
    moduleBase = 'lct.src'
    data = []

    srcPath = path.getSrcPath()

    for subDir in os.listdir(srcPath):
      full = os.path.normpath(os.path.join(srcPath, subDir))
      if os.path.isdir(full):
        if os.path.exists(os.path.normpath(os.path.normpath(os.path.join(full, subDir+'.py'))) ):
          file = open(os.path.normpath(os.path.join(full, subDir+'.py')) )
          first = file.readline()[:-2]# ????

          if first.split(' = ')[0] == 'publish':
            publish = first.split(' = ')[1]
            annotation = file.readline()[:-2].split(' = ')[1].split('"')[1]
            prefix = file.readline()[:-2].split(' = ')[1].split("'")[1]            
            if inline: #if you need to preserve the command as a single line when printing or writing to a file
              runCommand = 'import '+moduleBase+'.'+subDir+'.'+subDir+' as '+prefix+'\\nreload('+prefix+')\\n'+prefix+'.'+subDir+'UI()'
            else:
              runCommand = 'import '+moduleBase+'.'+subDir+'.'+subDir+' as '+prefix+'\nreload('+prefix+')\n'+prefix+'.'+subDir+'UI()'
            set = [subDir, prefix, annotation, publish, runCommand]
            #print 'set: {0}'.format(set)
            data.append(set)

    return data
コード例 #10
0
    def makeLctShelf(cls, *args, **kwargs):
        """ """
        src = path.getSrcPath()
        mel = path.getMelPath()
        shelf = os.path.normpath(os.path.join(mel, 'shelf_LCT.mel'))

        file = open(shelf, 'w+')
        opening = 'global proc shelf_LCT () {\n    global string $gBuffStr;\n    global string $gBuffStr0;\n    global string $gBuffStr1;\n\n'
        closing = '\n}'

        file.write(opening)

        initShelfIcon = os.path.normpath(
            os.path.join(src, 'icons', 'shelf.png'))
        initShelfLabel = 'Init Shelf'
        initShelfAnno = 'Initialize LCT Shelf'
        initShelfCommand = 'from lct.src.core.lcShelf import Shelf as shelf\nshelf.makeLctShelf()'

        file.write(closing)

        file.close()

        if not pm.layout('LCT', ex=True):
            if os.name == 'nt':
                shelf = shelf.replace('\\', '/')
            pm.mel.loadNewShelf(shelf)
            pm.shelfButton(label=initShelfLabel,
                           annotation=initShelfAnno,
                           image1=initShelfIcon,
                           command=initShelfCommand)
        else:
            pm.mel.eval(
                'shelfTabLayout -edit -selectTab "LCT" $gShelfTopLevel;')

        list = utility.buildPublishList(inline=False)
        for item in list:
            if item[3] == 'True':
                label = item[0]
                annotation = item[2]
                icon = os.path.normpath(
                    os.path.join(src, label, item[0] + '.png'))
                runCommand = item[4]

                cls.makeShelfButton(label, runCommand, icon, annotation)
コード例 #11
0
ファイル: lcShelf.py プロジェクト: kotchin/mayaSettings
  def makeLctShelf(cls, *args, **kwargs):
      """ """
      src = path.getSrcPath()
      mel = path.getMelPath()
      shelf = os.path.normpath(os.path.join(mel, 'shelf_LCT.mel'))

      file = open(shelf, 'w+')
      opening = 'global proc shelf_LCT () {\n    global string $gBuffStr;\n    global string $gBuffStr0;\n    global string $gBuffStr1;\n\n'
      closing = '\n}'

      file.write(opening)

      initShelfIcon = os.path.normpath(os.path.join(src, 'icons', 'shelf.png'))
      initShelfLabel = 'Init Shelf'
      initShelfAnno = 'Initialize LCT Shelf'
      initShelfCommand = 'from lct.src.core.lcShelf import Shelf as shelf\nshelf.makeLctShelf()'

      file.write(closing)

      file.close()

      if not pm.layout('LCT', ex=True):
        if os.name == 'nt':
            shelf = shelf.replace('\\','/')
        pm.mel.loadNewShelf(shelf)
        pm.shelfButton(label=initShelfLabel, annotation=initShelfAnno, image1=initShelfIcon, command=initShelfCommand)
      else:
        pm.mel.eval('shelfTabLayout -edit -selectTab "LCT" $gShelfTopLevel;')
        
      list = utility.buildPublishList(inline=False)
      for item in list:
        if item[3] == 'True':
          label = item[0]
          annotation = item[2]
          icon = os.path.normpath(os.path.join(src, label, item[0]+'.png'))
          runCommand = item[4]

          cls.makeShelfButton(label, runCommand, icon, annotation)
コード例 #12
0
def lcBatchBakeUI(dockable=False, *args, **kwargs):
    ''' '''
    ci = 0  #color index iterator
    windowName = 'lcBatchBake'
    shelfCommand = 'import lct.src.lcBatchBake.lcBatchBake as lcBake\nreload(lcBake)\nlcBake.lcBatchBakeUI()'
    icon = basePath + 'lcBatchBake.png'
    winWidth = 204
    winHeight = 218

    mainWindow = lcWindow(windowName=windowName,
                          width=winWidth,
                          height=winHeight,
                          icon=icon,
                          shelfCommand=shelfCommand,
                          annotation=annotation,
                          dockable=dockable,
                          menuBar=True)
    mainWindow.create()
    pm.menu(l='Options', helpMenu=True)
    pm.menuItem(
        l='Delete All bake sets',
        command=lambda *args: lcBake_delete_all_bake_sets(bakeSetListDropdown))

    #
    pm.columnLayout(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=2, cw=([1, 100], [2, 100]))
    pm.button(l='Make Texture',
              bgc=colorWheel.getColorRGB(ci),
              w=100,
              h=25,
              annotation='Create a Texture bake set',
              command=lambda *args: lcBake_make_new_bake_set(
                  bakeSetListDropdown, 'texture'))
    ci += 1
    pm.button(l='Make Vertex',
              bgc=colorWheel.getColorRGB(ci),
              w=100,
              h=25,
              annotation='Create a Texture bake set',
              command=lambda *args: lcBake_make_new_bake_set(
                  bakeSetListDropdown, 'vertex'))
    ci += 1
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=3, cw=([1, 25], [2, 150], [3, 25]))
    pm.iconTextButton(w=25,
                      h=25,
                      style='iconOnly',
                      image=iconBasePath + 'reloadList.png',
                      annotation='Reload the bake set list',
                      command=lambda *args: lcBake_populate_bake_set_list(
                          bakeSetListDropdown))
    bakeSetListDropdown = pm.optionMenu(prefix + '_optionMenu_bake_set_list',
                                        w=150,
                                        h=25,
                                        annotation='List of bake sets')
    pm.iconTextButton(w=25,
                      h=25,
                      style='iconOnly',
                      image=iconBasePath + 'deleteItem.png',
                      annotation='Delete this bake set',
                      command=lambda *args: lcBake_delete_current_bake_set(
                          bakeSetListDropdown))
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=2,
                       cw=([1, 100],
                           [2, 100]))  #nc=3, cw=([1,50], [2,50], [3,100] ) )
    pm.button(l='+ Add',
              bgc=colorWheel.getColorRGB(ci),
              w=100,
              h=25,
              annotation='Add geometry to bake set',
              command=lambda *args: lcBake_add_to_current_bake_set(
                  bakeSetListDropdown))
    ci += 1
    # pm.button(l='- Rem', bgc=colorWheel.getColorRGB(ci), w=50, h=25, annotation='Remove geometry from bake set', command=lambda *args: lcBake_fake_command() )
    # ci+=1
    pm.button(
        l='Edit Options',
        bgc=colorWheel.getColorRGB(ci),
        w=100,
        h=25,
        annotation='Edit the bake set options',
        command=lambda *args: lcBake_show_bake_set_attrs(bakeSetListDropdown))
    ci += 1
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=2, cw=([1, 75], [2, 125]))
    pm.text(l='Bake Camera: ', al='right')
    cameraListDropdown = pm.optionMenu(prefix + '_optionMenu_camera_list',
                                       w=125,
                                       h=25,
                                       annotation='List of cameras')
    pm.text(l='')
    pm.checkBox(prefix + '_checkBox_shadows',
                w=125,
                h=25,
                value=True,
                label='Shadows and AO?',
                annotation='Turn on to bake shadows and ambient occlusion')
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.separator(style='none', h=10)
    pm.rowColumnLayout(nc=2, cw=([1, 150], [2, 50]))
    pm.textField(prefix + '_textField_texture_path',
                 text='texture output directory',
                 annotation='Output directory path',
                 w=150)
    pm.button(
        prefix + '_button_browse_path',
        l='Browse',
        bgc=colorWheel.getColorRGB(ci),
        annotation='Choose a directory',
        w=50,
        command=lambda *args: path.browsePathTextField(
            prefix + '_textField_texture_path', '', 'Browse a Directory'))
    ci += 1
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=2, cw=([1, 150], [2, 50]))
    pm.button(l='Bake It !!',
              bgc=colorWheel.getColorRGB(ci),
              w=150,
              h=25,
              annotation='Bake to texture or vertex',
              command=lambda *args: lcBake_convert_lightmap(
                  bakeSetListDropdown, cameraListDropdown))
    ci += 1
    pm.button(l='Open Dir',
              bgc=colorWheel.getColorRGB(ci),
              w=50,
              h=25,
              annotation='Open the output directory',
              command=lambda *args: lcBake_open_lightmap_folder())
    ci += 1

    #
    mainWindow.show()

    plugin.reloadPlugin(plugin='Mayatomr', autoload=True)

    lcBake_populate_bake_set_list(bakeSetListDropdown)
    lcBake_populate_camera_list(cameraListDropdown)
コード例 #13
0
ファイル: lcBatchBake.py プロジェクト: kotchin/mayaSettings
def lcBatchBakeUI(dockable=False, *args, **kwargs):
  ''' '''
  ci = 0 #color index iterator
  windowName = 'lcBatchBake'
  shelfCommand = 'import lct.src.lcBatchBake.lcBatchBake as lcBake\nreload(lcBake)\nlcBake.lcBatchBakeUI()'
  icon = basePath+'lcBatchBake.png'
  winWidth  = 204
  winHeight = 218
  
  mainWindow = lcWindow(windowName=windowName, width=winWidth, height=winHeight, icon=icon, shelfCommand=shelfCommand, annotation=annotation, dockable=dockable, menuBar=True)
  mainWindow.create()
  pm.menu(l='Options', helpMenu=True)
  pm.menuItem(l='Delete All bake sets', command=lambda *args: lcBake_delete_all_bake_sets(bakeSetListDropdown) )

  #
  pm.columnLayout(prefix+'_columLayout_main')
  
  #
  pm.rowColumnLayout(nc=2, cw=([1,100], [2,100]) )
  pm.button(l='Make Texture', bgc=colorWheel.getColorRGB(ci), w=100, h=25, annotation='Create a Texture bake set', command=lambda *args: lcBake_make_new_bake_set(bakeSetListDropdown, 'texture') )
  ci+=1
  pm.button(l='Make Vertex', bgc=colorWheel.getColorRGB(ci), w=100, h=25, annotation='Create a Texture bake set', command=lambda *args: lcBake_make_new_bake_set(bakeSetListDropdown, 'vertex') )
  ci+=1
  pm.setParent(prefix+'_columLayout_main')
  
  #
  pm.rowColumnLayout(nc=3, cw=([1,25], [2,150], [3,25]) )
  pm.iconTextButton(w=25, h=25, style='iconOnly', image=iconBasePath+'reloadList.png', annotation='Reload the bake set list', command=lambda *args: lcBake_populate_bake_set_list(bakeSetListDropdown) )
  bakeSetListDropdown = pm.optionMenu(prefix+'_optionMenu_bake_set_list', w=150, h=25, annotation='List of bake sets' )
  pm.iconTextButton(w=25, h=25, style='iconOnly', image=iconBasePath+'deleteItem.png', annotation='Delete this bake set', command=lambda *args: lcBake_delete_current_bake_set(bakeSetListDropdown) )
  pm.setParent(prefix+'_columLayout_main')
  
  #
  pm.rowColumnLayout(nc=2, cw=([1,100], [2,100] ) )  #nc=3, cw=([1,50], [2,50], [3,100] ) )  
  pm.button(l='+ Add', bgc=colorWheel.getColorRGB(ci), w=100, h=25, annotation='Add geometry to bake set', command=lambda *args: lcBake_add_to_current_bake_set(bakeSetListDropdown) )
  ci+=1
  # pm.button(l='- Rem', bgc=colorWheel.getColorRGB(ci), w=50, h=25, annotation='Remove geometry from bake set', command=lambda *args: lcBake_fake_command() )
  # ci+=1
  pm.button(l='Edit Options', bgc=colorWheel.getColorRGB(ci), w=100, h=25, annotation='Edit the bake set options', command=lambda *args: lcBake_show_bake_set_attrs(bakeSetListDropdown) )
  ci+=1
  pm.setParent(prefix+'_columLayout_main')
  
  #
  pm.rowColumnLayout(nc=2, cw=([1,75], [2,125] ) )  
  pm.text(l='Bake Camera: ', al='right')
  cameraListDropdown = pm.optionMenu(prefix+'_optionMenu_camera_list', w=125, h=25, annotation='List of cameras' )
  pm.text(l='')
  pm.checkBox(prefix+'_checkBox_shadows', w=125, h=25, value=True, label='Shadows and AO?', annotation='Turn on to bake shadows and ambient occlusion' )
  pm.setParent(prefix+'_columLayout_main')
  
  #
  pm.separator(style='none', h=10)
  pm.rowColumnLayout(nc=2, cw=([1,150], [2,50]) )
  pm.textField(prefix+'_textField_texture_path', text='texture output directory', annotation='Output directory path', w=150)
  pm.button(prefix+'_button_browse_path', l='Browse', bgc=colorWheel.getColorRGB(ci), annotation='Choose a directory', w=50, command=lambda *args: path.browsePathTextField(prefix+'_textField_texture_path', '', 'Browse a Directory') )
  ci+=1
  pm.setParent(prefix+'_columLayout_main')
  
  #
  pm.rowColumnLayout(nc=2, cw=([1,150], [2,50]) )
  pm.button(l='Bake It !!', bgc=colorWheel.getColorRGB(ci), w=150, h=25, annotation='Bake to texture or vertex', command=lambda *args: lcBake_convert_lightmap(bakeSetListDropdown, cameraListDropdown) )
  ci+=1
  pm.button(l='Open Dir', bgc=colorWheel.getColorRGB(ci), w=50, h=25, annotation='Open the output directory', command=lambda *args: lcBake_open_lightmap_folder() )
  ci+=1
  
  #
  mainWindow.show()
  
  plugin.reloadPlugin(plugin='Mayatomr', autoload=True)
  
  lcBake_populate_bake_set_list(bakeSetListDropdown)
  lcBake_populate_camera_list(cameraListDropdown)  
コード例 #14
0
 def __init__(self, *args, **kwargs):
     """ Initialize class and variables """
     self.settingsPath = path.getSettingsPath() + '/'
コード例 #15
0
ファイル: lcTexture.py プロジェクト: kotchin/mayaSettings
 def openTextureList(cls, texList, *args, **kwargs): 
   ''' open a list of file nodes in default program ie. photoshop '''
   for item in texList:
     texPath = pm.getAttr(item+'.fileTextureName')
     path.openFilePath(texPath)
コード例 #16
0
 def openTextureList(cls, texList, *args, **kwargs):
     ''' open a list of file nodes in default program ie. photoshop '''
     for item in texList:
         texPath = pm.getAttr(item + '.fileTextureName')
         path.openFilePath(texPath)
コード例 #17
0
ファイル: lcObjTools.py プロジェクト: kotchin/mayaSettings
def lcObjToolsUI(dockable=False, *args, **kwargs):
  ''' '''
  global prefix
  ci = 0 #color index iterator
  windowName = 'lcObjTools'
  shelfCommand = 'import lct.src.lcObjTools.lcObjTools as lcObj\nreload(lcObj)\nlcObj.lcObjToolsUI()'
  icon = basePath+'lcObjTools.png'
  winWidth  = 204
  winHeight = 158
  
  mainWindow = lcWindow(windowName=windowName, width=winWidth, height=winHeight, icon=icon, shelfCommand=shelfCommand, annotation=annotation, dockable=dockable, menuBar=True)
  mainWindow.create()

  #
  pm.columnLayout(prefix+'_columLayout_main')

  #
  pm.rowColumnLayout(nc=2, cw=([1,150], [2,50]) )
  pm.textField(prefix+'_textField_export_path', w=150)
  pm.button(prefix+'_button_browse_path', l='Browse', bgc=colorWheel.getColorRGB(ci), annotation='Choose an export directory', w=50, command=lambda *args: path.browsePathTextField(prefix+'_textField_export_path', "Wavefront Obj (*.obj)", 'Obj Export Location') )
  ci+=1
  pm.setParent(prefix+'_columLayout_main')

  #
  pm.checkBox(prefix+'_checkBox_export_indi', l='Export Individual', v=False)
  pm.checkBox(prefix+'_checkBox_use_smooth', l='Use Smooth Preview', v=True)

  #
  pm.rowColumnLayout(nc=2, cw=([1,100], [2,100]) )
  pm.textField(prefix+'_textField_prefix', w=100)
  pm.text(l='   Prefix_', al='left')
  pm.setParent(prefix+'_columLayout_main')

  #
  pm.rowColumnLayout(nc=2, cw=([1,169], [2,31]) )
  pm.columnLayout(w=169)
  pm.button(prefix+'_button_export', l='Export OBJ', bgc=colorWheel.getColorRGB(ci), annotation='Export the selected geometry', w=168, h=30, command=lambda *args: lcObj_exportObjs() )
  ci+=1
  pm.button(prefix+'_button_Import', l='Import Multiple OBJs', bgc=colorWheel.getColorRGB(ci), annotation='Clean import more than one obj', w=168, h=20, command=lambda *args: lcObj_importMultiple() )
  ci+=1
  pm.setParent('..')
  pm.columnLayout(w=31)
  pm.iconTextButton(prefix+'_button_open_folder', style='iconOnly', image=iconBasePath+'folder_30x50.png', annotation='Open the export folder', w=30, h=50, command=lambda *args: path.openFilePath(pm.textField(prefix+'_textField_export_path', query=True, text=True) ) )
  ci+=1
  
  #
  mainWindow.show()
  
  plugin.reloadPlugin(plugin='objExport', autoload=True)
コード例 #18
0
def lcTextureToolsUI(dockable=False, *args, **kwargs):
  ''' '''
  ci = 0 #color index iterator
  windowName = 'lcTextureTools'
  shelfCommand = 'import lct.src.lcTextureTools.lcTextureTools as lcTxT\nreload(lcTxT)\nlcTxT.lcTextureToolsUI()'
  icon = basePath+'lcTextureTools.png'
  winWidth  = 204
  winHeight = 174

  mainWindow = lcWindow(windowName=windowName, width=winWidth, height=winHeight, icon=icon, shelfCommand=shelfCommand, annotation=annotation, dockable=dockable, menuBar=True)
  mainWindow.create()

  #
  pm.columnLayout(prefix+'_columLayout_main')

  #
  pm.rowColumnLayout(nc=1, cw=([1,201]) )
  pm.iconTextButton(w=200, h=25, style='iconOnly', image=iconBasePath+'renameNodes.png', annotation='Renames all file nodes based on the attached file name with a tx_ suffix', command=lambda *args: texture.renameAllTextureNodes() )
  pm.setParent('..')
  pm.separator(style='in', h=5)

  #
  pm.rowColumnLayout(nc=2, cw=([1,100], [2,100]) )
  pm.rowColumnLayout(nc=2, cw=([1,75], [2,25]) )
  pm.iconTextButton(w=100, h=25, style='iconOnly', image=iconBasePath+'reloadAll.png', annotation='Reloads all the file texture nodes', command=lambda *args: texture.reloadTextures() )
  pm.iconTextButton(w=25, h=25, style='iconOnly', image=iconBasePath+'addToShelf.png', highlightImage=iconBasePath+'addToShelf_over.png', annotation='Add to Shelf', command=lambda *args: shelf.makeShelfButton('Reload Textures', 'from lct.src.core.lcTexture import Texture as texture\ntexture().reloadTextures()', iconBasePath+'reloadAllTextures.png', 'Reload All Textures') )
  pm.setParent('..')
  pm.rowColumnLayout(nc=2, cw=([1,75], [2,25]) )
  pm.iconTextButton(w=100, h=25, style='iconOnly', image=iconBasePath+'reloadChanged.png', annotation='Reloads only the changed file texture nodes based on timestamp', command=lambda *args: texture().reloadChangedTextures() )
  pm.iconTextButton(w=25, h=25, style='iconOnly', image=iconBasePath+'addToShelf.png', highlightImage=iconBasePath+'addToShelf_over.png', annotation='Add to Shelf', command=lambda *args: shelf.makeShelfButton('Reload Changed Textures', 'from lct.src.core.lcTexture import Texture as texture\ntexture().reloadChangedTextures()', iconBasePath+'reloadChangedTextures.png', 'Reload Changed Textures') )
  pm.setParent('..')
  pm.setParent(prefix+'_columLayout_main')
  pm.separator(style='in', h=5)

  #
  pm.rowColumnLayout(nc=2, cw=([1,150], [2,50]) )
  pm.textField(prefix+'_textField_new_path', w=150)
  pm.button(prefix+'_button_browse_path', l='Browse', bgc=colorWheel.getColorRGB(ci), annotation='Choose a new directory', w=50, command=lambda *args: path.browsePathTextField(prefix+'_textField_new_path', '', 'Browse New Texture Directory') )
  ci+=1
  pm.setParent(prefix+'_columLayout_main')

  #
  pm.rowColumnLayout(nc=2, cw=([1,100], [2,100]) )
  pm.iconTextButton(w=100, h=25, style='iconOnly', image=iconBasePath+'pathAll.png', annotation='Repath all file texture nodes', command=lambda *args: lcTxT_repath_all() )
  pm.iconTextButton(w=100, h=25, style='iconOnly', image=iconBasePath+'pathSelected.png', annotation='Repath selected file texture nodes', command=lambda *args: lcTxT_repath_selected() )
  pm.setParent(prefix+'_columLayout_main')
  pm.separator(style='in', h=5)

  #
  pm.rowColumnLayout(nc=2, cw=([1,100], [2,100]) )
  pm.iconTextButton(w=100, h=25, style='iconOnly', image=iconBasePath+'openAll.png', annotation='Open all file texture nodes in default associated program', command=lambda *args: lcTxT_open_all() )
  pm.iconTextButton(w=100, h=25, style='iconOnly', image=iconBasePath+'openSelected.png', annotation='Open selected file texture nodes in default associated program', command=lambda *args: lcTxT_open_selected() )
  pm.setParent(prefix+'_columLayout_main')
  pm.separator(style='in', h=5)

  #
  mainWindow.show()
コード例 #19
0
def lcTextureToolsUI(dockable=False, *args, **kwargs):
    ''' '''
    ci = 0  #color index iterator
    windowName = 'lcTextureTools'
    shelfCommand = 'import lct.src.lcTextureTools.lcTextureTools as lcTxT\nreload(lcTxT)\nlcTxT.lcTextureToolsUI()'
    icon = basePath + 'lcTextureTools.png'
    winWidth = 204
    winHeight = 174

    mainWindow = lcWindow(windowName=windowName,
                          width=winWidth,
                          height=winHeight,
                          icon=icon,
                          shelfCommand=shelfCommand,
                          annotation=annotation,
                          dockable=dockable,
                          menuBar=True)
    mainWindow.create()

    #
    pm.columnLayout(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=1, cw=([1, 201]))
    pm.iconTextButton(
        w=200,
        h=25,
        style='iconOnly',
        image=iconBasePath + 'renameNodes.png',
        annotation=
        'Renames all file nodes based on the attached file name with a tx_ suffix',
        command=lambda *args: texture.renameAllTextureNodes())
    pm.setParent('..')
    pm.separator(style='in', h=5)

    #
    pm.rowColumnLayout(nc=2, cw=([1, 100], [2, 100]))
    pm.rowColumnLayout(nc=2, cw=([1, 75], [2, 25]))
    pm.iconTextButton(w=100,
                      h=25,
                      style='iconOnly',
                      image=iconBasePath + 'reloadAll.png',
                      annotation='Reloads all the file texture nodes',
                      command=lambda *args: texture.reloadTextures())
    pm.iconTextButton(
        w=25,
        h=25,
        style='iconOnly',
        image=iconBasePath + 'addToShelf.png',
        highlightImage=iconBasePath + 'addToShelf_over.png',
        annotation='Add to Shelf',
        command=lambda *args: shelf.makeShelfButton(
            'Reload Textures',
            'from lct.src.core.lcTexture import Texture as texture\ntexture().reloadTextures()',
            iconBasePath + 'reloadAllTextures.png', 'Reload All Textures'))
    pm.setParent('..')
    pm.rowColumnLayout(nc=2, cw=([1, 75], [2, 25]))
    pm.iconTextButton(
        w=100,
        h=25,
        style='iconOnly',
        image=iconBasePath + 'reloadChanged.png',
        annotation=
        'Reloads only the changed file texture nodes based on timestamp',
        command=lambda *args: texture().reloadChangedTextures())
    pm.iconTextButton(
        w=25,
        h=25,
        style='iconOnly',
        image=iconBasePath + 'addToShelf.png',
        highlightImage=iconBasePath + 'addToShelf_over.png',
        annotation='Add to Shelf',
        command=lambda *args: shelf.makeShelfButton(
            'Reload Changed Textures',
            'from lct.src.core.lcTexture import Texture as texture\ntexture().reloadChangedTextures()',
            iconBasePath + 'reloadChangedTextures.png',
            'Reload Changed Textures'))
    pm.setParent('..')
    pm.setParent(prefix + '_columLayout_main')
    pm.separator(style='in', h=5)

    #
    pm.rowColumnLayout(nc=2, cw=([1, 150], [2, 50]))
    pm.textField(prefix + '_textField_new_path', w=150)
    pm.button(prefix + '_button_browse_path',
              l='Browse',
              bgc=colorWheel.getColorRGB(ci),
              annotation='Choose a new directory',
              w=50,
              command=lambda *args: path.browsePathTextField(
                  prefix + '_textField_new_path', '',
                  'Browse New Texture Directory'))
    ci += 1
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=2, cw=([1, 100], [2, 100]))
    pm.iconTextButton(w=100,
                      h=25,
                      style='iconOnly',
                      image=iconBasePath + 'pathAll.png',
                      annotation='Repath all file texture nodes',
                      command=lambda *args: lcTxT_repath_all())
    pm.iconTextButton(w=100,
                      h=25,
                      style='iconOnly',
                      image=iconBasePath + 'pathSelected.png',
                      annotation='Repath selected file texture nodes',
                      command=lambda *args: lcTxT_repath_selected())
    pm.setParent(prefix + '_columLayout_main')
    pm.separator(style='in', h=5)

    #
    pm.rowColumnLayout(nc=2, cw=([1, 100], [2, 100]))
    pm.iconTextButton(
        w=100,
        h=25,
        style='iconOnly',
        image=iconBasePath + 'openAll.png',
        annotation='Open all file texture nodes in default associated program',
        command=lambda *args: lcTxT_open_all())
    pm.iconTextButton(
        w=100,
        h=25,
        style='iconOnly',
        image=iconBasePath + 'openSelected.png',
        annotation=
        'Open selected file texture nodes in default associated program',
        command=lambda *args: lcTxT_open_selected())
    pm.setParent(prefix + '_columLayout_main')
    pm.separator(style='in', h=5)

    #
    mainWindow.show()
コード例 #20
0
def lcObjToolsUI(dockable=False, *args, **kwargs):
    ''' '''
    global prefix
    ci = 0  #color index iterator
    windowName = 'lcObjTools'
    shelfCommand = 'import lct.src.lcObjTools.lcObjTools as lcObj\nreload(lcObj)\nlcObj.lcObjToolsUI()'
    icon = basePath + 'lcObjTools.png'
    winWidth = 204
    winHeight = 158

    mainWindow = lcWindow(windowName=windowName,
                          width=winWidth,
                          height=winHeight,
                          icon=icon,
                          shelfCommand=shelfCommand,
                          annotation=annotation,
                          dockable=dockable,
                          menuBar=True)
    mainWindow.create()

    #
    pm.columnLayout(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=2, cw=([1, 150], [2, 50]))
    pm.textField(prefix + '_textField_export_path', w=150)
    pm.button(prefix + '_button_browse_path',
              l='Browse',
              bgc=colorWheel.getColorRGB(ci),
              annotation='Choose an export directory',
              w=50,
              command=lambda *args: path.browsePathTextField(
                  prefix + '_textField_export_path', "Wavefront Obj (*.obj)",
                  'Obj Export Location'))
    ci += 1
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.checkBox(prefix + '_checkBox_export_indi',
                l='Export Individual',
                v=False)
    pm.checkBox(prefix + '_checkBox_use_smooth',
                l='Use Smooth Preview',
                v=True)

    #
    pm.rowColumnLayout(nc=2, cw=([1, 100], [2, 100]))
    pm.textField(prefix + '_textField_prefix', w=100)
    pm.text(l='   Prefix_', al='left')
    pm.setParent(prefix + '_columLayout_main')

    #
    pm.rowColumnLayout(nc=2, cw=([1, 169], [2, 31]))
    pm.columnLayout(w=169)
    pm.button(prefix + '_button_export',
              l='Export OBJ',
              bgc=colorWheel.getColorRGB(ci),
              annotation='Export the selected geometry',
              w=168,
              h=30,
              command=lambda *args: lcObj_exportObjs())
    ci += 1
    pm.button(prefix + '_button_Import',
              l='Import Multiple OBJs',
              bgc=colorWheel.getColorRGB(ci),
              annotation='Clean import more than one obj',
              w=168,
              h=20,
              command=lambda *args: lcObj_importMultiple())
    ci += 1
    pm.setParent('..')
    pm.columnLayout(w=31)
    pm.iconTextButton(
        prefix + '_button_open_folder',
        style='iconOnly',
        image=iconBasePath + 'folder_30x50.png',
        annotation='Open the export folder',
        w=30,
        h=50,
        command=lambda *args: path.openFilePath(
            pm.textField(
                prefix + '_textField_export_path', query=True, text=True)))
    ci += 1

    #
    mainWindow.show()

    plugin.reloadPlugin(plugin='objExport', autoload=True)
コード例 #21
0
 def repathShader(cls, shader, newPath, *args, **kwargs):
   """ reload the shader from a new path """
   cgfxFile = pm.getAttr(shader+'.shader')
   if cgfxFile:
     pm.cgfxShader(shader, edit=True, fx=path.repath(cgfxFile, newPath) )
コード例 #22
0
ファイル: lcTexture.py プロジェクト: kotchin/mayaSettings
 def __init__(self, *args, **kwargs):
   """ Initialize class and variables """
   self.settingsPath = path.getSettingsPath()+'/'