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()
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")
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")
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 )
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"
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]',