Skip to content

Instantly share code, notes, and snippets.

@robomojo
robomojo / duptest.py
Created September 22, 2013 14:15
quick test for duplicating, then merging without creating loads of extra transforms
# assumes:
# from pymel.core import *
print 'starting test'
system.newFile(force=True)
#print len(ls())
def makecubes (count):
cubes = []
@robomojo
robomojo / mayaProgressBar.py
Last active June 21, 2019 20:51
maya progress bar
import maya.cmds as mc
import pymel.core as pm
class ProgressBar:
def __init__ (self,title,steps):
#self.step = 0
self.title=title
self.steps = steps
self.progressControls = []
self.progressbar = self.makeProgressBarWindow()
import re
for each in nodes:
result = re.search('\Acollision_wall', each.name().split('|')[-1]) is not None
if result: print each.name()
@robomojo
robomojo / scriptJobRemover.py
Created October 4, 2013 04:36
remove annoying scriptjobs
import pymel.core as pm
# look through scriptjobs, which are strings. Find the annoying one and kill it.
for each in pm.scriptJob(listJobs=True):
if 'syncChannelBoxFcurveEd' in each:
index = int(each.split(':')[0])
pm.scriptJob(kill=index)
import pymel.core as pm
def quickSelect(search):
nodes = pm.ls(type=pm.nodetypes.Transform)
pm.select(clear=True)
for each in nodes:
for subeach in search:
if subeach == each.name().replace(':','|').split('|')[-1]:
pm.select(each,add=True)
quickSelect(['somename'])
import pymel.core as pm
import re
from pprint import pprint
class NodeGetter:
def __init__(self,args):
'''
Unpacks args to: nodename, searchmethod.
'''
(
@robomojo
robomojo / playblast.py
Created October 7, 2013 05:49
maya quickrender
import os
import pymel.core as pm
cameras = pm.ls(type=pm.nodetypes.Camera)
for each in cameras:
val = True if 'preview' in each.name() else False
if val: playblasting = True
pm.setAttr(each.renderable,val)
each.setFilmFit('verticalFilmFit')
@robomojo
robomojo / mayashelves.py
Created October 7, 2013 22:22
some code to access maya shelves using pymel
import pymel.core as pm
import maya.mel as mel
topLevelShelf = mel.eval('string $m = $gShelfTopLevel')
shelves = pm.shelfTabLayout(topLevelShelf, query=True, tabLabelIndex=True)
for index, shelf in enumerate(shelves):
pm.optionVar(stringValue=('shelfName%d' % (index+1), str(shelf)))
# print shelf
@robomojo
robomojo / clearSkin.py
Created October 8, 2013 02:03
clear skin weighting
import pymel.core as pm
skin = pm.ls(type=pm.nodetypes.SkinCluster)[0]
# assign all weight to first influence
pm.skinPercent(skin, transformValue = (skin.getInfluence()[0].name(),1))
# clear skin
pm.skinPercent(skin, normalize=False, zeroRemainingInfluences=True)
@robomojo
robomojo / findskin.py
Created October 8, 2013 05:09
find maya skincluster
def findSkinClusters ():
skins = []
shapes = pm.listRelatives(shapes=True, noIntermediate=True)
for shape in shapes:
skinClusters = pm.ls(type=pm.nodetypes.SkinCluster)
for skin in skinClusters:
mesh = pm.skinCluster(skin, q=True, g=True)
if mesh[0] == shape:
relatedSkinCluster = sc
skins.append(skin)