예제 #1
0
파일: modeling.py 프로젝트: shrimo/dmptools
def splitEdgeRingRelease(flow=False, flowValue=0.5, smoothingAngle=35):
    """
    default edge ring tool release mode
    """
    # check for default values saved in preferences (settings)
    followFlow = SETTINGS.get('egde_split_flow')
    if followFlow == None:
        followFlow = flow
        SETTINGS.add('egde_split_flow', followFlow)
    followFlowValue = SETTINGS.get('egde_split_flow_value')
    if followFlowValue == None:
        followFlowValue = flowValue
        SETTINGS.add('egde_split_flow_value', followFlowValue)
    smoothingValue = SETTINGS.get('egde_split_smoothing_value')
    if smoothingValue == None:
        smoothingValue = smoothingAngle
        SETTINGS.add('egde_split_smoothing_value', smoothingValue)

    if followFlow:
        cmds.polySplitRing(ch=True,
                        splitType=1,
                        weight=0.5,
                        smoothingAngle=smoothingValue,
                        fixQuads=True,
                        insertWithEdgeFlow=True,
                        adjustEdgeFlow=followFlowValue)
    else:
        cmds.polySplitRing(ch=True,
                        splitType=1,
                        weight=0.5,
                        smoothingAngle=smoothingValue,
                        fixQuads=True,
                        insertWithEdgeFlow=False)

    advanceMoveRelease()
예제 #2
0
파일: Fence_tool.py 프로젝트: nbeanz/Code
def createFenceShape(hh, ww):
    if (not cmds.objExists('pCube1')):
        cmds.polyCube(h=hh, w=ww)
        cmds.select('pCube1.e[6:7]', 'pCube1.e[10:11]')
        cmds.polySplitRing(sma=180, wt=0.4)
        cmds.select('pCube1.e[10:12]', 'pCube1.e[17]')
        cmds.polySplitRing(sma=180, wt=0.6)
        cmds.select('pCube1.vtx[11]', 'pCube1.vtx[13:14]', 'pCube1.vtx[8]')
        cmds.move(0.0, 0.18, 0.0, r=True)
    else:
        print("try again")
예제 #3
0
파일: polyShell.py 프로젝트: skarone/PipeL
def ftb_gen_shell_doIt(dist,distUV,div):
	if (mc.window('shellUiWin',q=True,exists=True)):
		mc.deleteUI('shellUiWin')
	#mc.loadPlugin( 'c:/ftb_mayaplugins/ppl/2011 x64/shellNode.mll')
	sel = mc.ls(sl=True)
	if(len(sel)!= 0):
		shape = mc.listRelatives(sel[0],noIntermediate = True,shapes=True)
		His = mc.listHistory(shape[0])
		shell = ''
		for h in His:
			if(mc.nodeType(h) == 'polyShell'):
				shell = h
		if(shell == ''):
			if(mc.attributeQuery('shThickness',node=shape[0],ex=True)):
				dist = mc.getAttr(shape[0]+'.shThickness')
			else:
				mc.addAttr(shape[0],ln="shThickness",at='double',dv=0)
				mc.setAttr(shape[0]+'.shThickness',e=True,keyable=True)
			if(mc.attributeQuery('shUvThickness',node=shape[0],ex=True)):
				distUV = mc.getAttr(shape[0]+'.shUvThickness')
			else:
				mc.addAttr(shape[0],ln="shUvThickness",at='double',dv=0)
				mc.setAttr(shape[0]+'.shUvThickness',e=True,keyable=True)
			if(mc.attributeQuery('shDiv',node=shape[0],ex=True)):
				div = mc.getAttr(shape[0]+'.shDiv')
			else:
				mc.addAttr(shape[0],ln="shDiv",at='long',dv=0,min=0)
				mc.setAttr(shape[0]+'.shDiv',e=True,keyable=True)
			faceInitalCount = mc.polyEvaluate(sel[0],f=True)
			mc.polyShell(thickness = dist,uvOffset = distUV);
			sel2 = mc.ls(sl=True)
			faceFinalCount = mc.polyEvaluate(sel[0],f=True)
			mc.addAttr(sel2[0],ln="div",at='long',min=0,dv=0)
			mc.setAttr(sel2[0]+'.div',e=True,keyable=True)
			mc.setAttr(sel2[0]+'.div',div)
			mc.addAttr(sel2[0],ln="splits",dt="string")
			mc.setAttr(sel2[0]+'.splits',e=True,keyable=True)
			mc.select((sel[0]+'.f[%i' % (faceInitalCount*2)+':%i' % faceFinalCount+']'))
			faceList = mc.ls(sl=True,fl=True)
			facesRings = makeFaceRingGroups(faceList)
			for faceRing in facesRings:
				mc.select(facesRings[faceRing])
				mc.ConvertSelectionToContainedEdges()
				mc.setAttr(sel2[0]+'.thickness',0.2)
				split = mc.polySplitRing(mc.ls(sl=True),ch=True,splitType=2,divisions=0,useEqualMultiplier=1,smoothingAngle=30,fixQuads=1)
				splits = mc.getAttr(sel2[0]+'.splits')
				if(splits == None):
					splits = ""
				mc.setAttr(sel2[0]+'.splits',("%s"%splits+"%s,"%split[0]),type="string")
				mc.connectAttr(sel2[0]+'.div', (split[0]+'.divisions'))
				mc.setAttr(sel2[0]+'.thickness',dist)
				
			mc.connectAttr(sel2[0]+'.thickness',shape[0]+'.shThickness')
			mc.connectAttr(sel2[0]+'.uvOffset',shape[0]+'.shUvThickness')
			mc.connectAttr(sel2[0]+'.div',shape[0]+'.shDiv')
		else:
			print('This mesh have a shellModifier allready!!!!!')
	else:
		mc.error("please select some mesh")
예제 #4
0
def edgeLoop( weight=.1 ):
	# Looping
	# Use is selecting items in the scene properly!!!
	# Split and get each individual edge.
	selected = cmds.ls(sl=True)
	edges = cmds.filterExpand(selected, ex=True, sm=32 )
	
	edgeHistory = []
	for edge in edges:
		cmds.select( edge, r=1)
		cmds.SelectEdgeRingSp()
		what = cmds.polySplitRing( ch=1, splitType=1, weight=.1, smoothingAngle=30, fixQuads=1 )
		edgeHistory.extend(what)
		cmds.setAttr( "%s.weight" %what[0], weight )	
예제 #5
0
def edgeLoop( weight=.1 ):
	# Looping
	# Use is selecting items in the scene properly!!!
	# Split and get each individual edge.
	selected = cmds.ls(sl=True)
	edges = cmds.filterExpand(selected, ex=True, sm=32 )
	
	edgeHistory = []
	for edge in edges:
		cmds.select( edge, r=1)
		cmds.SelectEdgeRingSp()
		what = cmds.polySplitRing( ch=1, splitType=1, weight=.1, smoothingAngle=30, fixQuads=1 )
		edgeHistory.extend(what)
		cmds.setAttr( "%s.weight" %what[0], weight )	
예제 #6
0
    def buttoncyclo_onClicked(self):
        # CREATE CURTAIN
        if not cmds.objExists("Cyclo"):
            cmds.polyCube(n="Cyclo", d=20, h=20, w=20)
            cmds.xform("Cyclo", t=[0, 10, 0])
            deletableFaces = cmds.ls("Cyclo.f[0]", "Cyclo.f[1]", "Cyclo.f[4]", "Cyclo.f[5]")
            cmds.delete(deletableFaces)
            cmds.select("Cyclo.e[5:7]")
            cmds.polySplitRing(sma=30, wt=0.4)
            cmds.select("Cyclo.e[3:5]")
            cmds.polySplitRing(sma=30, wt=0.4)
            cmds.displaySmoothness("Cyclo", po=3)
            cmds.delete("Cyclo", ch=True)
            cmds.parent("Cyclo", "Studio")

            # CREATE CURTAIN MATERIAL
            shader = cmds.shadingNode("aiStandard", n="aiStandard#", asShader=True)
            shaderGroup = cmds.sets(renderable=True, n="%sSG" % shader, noSurfaceShader=True, empty=True)
            cmds.connectAttr("%s.outColor" % shader, "%s.surfaceShader" % shaderGroup)
            cmds.setAttr("%s.diffuseRoughness" % shader, 1)
            cmds.select("Cyclo")
            cmds.hyperShade(assign=shader)
        else:
            print "Cyclo already exist"
예제 #7
0
def polySplitRing(*args, **kwargs):
    res = cmds.polySplitRing(*args, **kwargs)
    if not kwargs.get('query', kwargs.get('q', False)):
        res = _factories.maybeConvert(res, _general.PyNode)
    return res
cmds.polyCylinder(r=1,
                  h=2,
                  sx=20,
                  sy=1,
                  sz=1,
                  ax=[0, 1, 0],
                  rcp=0,
                  cuv=3,
                  ch=1)
# Result: pCylinder1 polyCylinder(1 #
cmds.move(0, 3.366916, 0, r=True, os=True, wd=True)
cmds.scale(0.219513, 0.219513, 0.219513, r=True)
cmds.select('pCylinder1.e[40:59]', r=True)
cmds.polySplitRing(ch=1,
                   splitType=1,
                   weight=0.0534432,
                   smoothingAngle=30,
                   fixQuads=1,
                   insertWithEdgeFlow=0)
# Result: polySplitRing(1 #
cmds.select('pCylinder1.e[102]',
            'pCylinder1.e[104]',
            'pCylinder1.e[106]',
            'pCylinder1.e[108]',
            'pCylinder1.e[110]',
            'pCylinder1.e[112]',
            'pCylinder1.e[114]',
            'pCylinder1.e[116]',
            'pCylinder1.e[118]',
            'pCylinder1.e[120]',
            'pCylinder1.e[122]',
            'pCylinder1.e[124]',