def createCircleControl(name=None, x=1, y=1, z=1, radius=1, color=None, type='strip', heightRatio=0.007): if not name: name = 'circle_CTRL' xform = cmds.group(name=name, em=1) circleShapes = [] circleTransforms = [] vectors = getAxisWorldVectors(xform) xyz = [x,y,z] for i in range(0, len(xyz)): if xyz[i]: circ = None if type == 'curve': circ = cmds.circle(radius=radius, name='jointMoverAxisCtrl', normal=vectors[i], sections=1, ch=0) if color: cmds.color(circ, ud=color) if type == 'strip' or type == 'toroid': circ = None if type == 'strip': circ = cmds.cylinder(radius=radius, name='jointMoverAxisCtrl', axis=vectors[i], sections=7, ch=0, heightRatio=heightRatio) elif type == 'toroid': circ = cmds.torus(radius=radius, name='jointMoverAxisCtrl', axis=vectors[i], sections=7, ch=0, heightRatio=heightRatio) if color: if color == 'xyz': if i == 0: colorControl(circ, name='red_m', color=(1,0,0)) if i == 1: colorControl(circ, name='green_m', color=(0,1,0)) if i == 2: colorControl(circ, name='blue_m', color=(0,0,1)) else: if len(color) == 3: colorControl(circ, color=color) circleShapes.append(cmds.listRelatives(circ[0], fullPath=1, shapes=1)[0]) circleTransforms.append(circ[0]) cmds.parent(circleShapes, xform, r=1, s=1) cmds.delete(circleTransforms) return xform
def build_torus_control(self, **p): n = self.cn + '_ctrl_' + p['prefix'] axis = p['axis'] if 'axis' in p else (0, 1, 0) scale = p['scale'] if 'scale' in p else (1, 1, 1) hr = p['hr'] if 'hr' in p else 0.01 # height ratio r = p['radius'] cmds.torus(ax=axis, ssw=0, esw=360, msw=360, r=r, hr=hr, d=3, ut=0, tol=0.01, s=16, nsp=4, ch=1, n=n) cmds.scale(scale[0], scale[1], scale[2], n, absolute=True) return n
def create_saturn_rings(): """ for creating saturns rings..... more like a ring actually """ cmds.torus(name='saturn_rings', axis=[0, 1.0, 0], radius=0.361, heightRatio=0.1) cmds.setAttr('saturn_ringsShape.castsShadows', 0) cmds.setAttr('saturn_ringsShape.receiveShadows', 0) cmds.setAttr('saturn_rings.scaleY', 0.125) myShader = cmds.shadingNode('lambert', asShader=True, name='ring_lambert') # creating lambert cmds.sets(name="ring_lambertG", renderable=True, empty=True, noSurfaceShader=True) # creating lambertGroup cmds.connectAttr('ring_lambert.outColor', "ring_lambertG.surfaceShader", force=True) # connecting lamberGroup to lambert cmds.surfaceShaderList('ring_lambert', add="ring_lambertG") cmds.sets('saturn_rings', e=True, forceElement="ring_lambertG") wood = cmds.shadingNode("wood", name='ring_wood', asTexture=True) # creating file my3dTexture = cmds.shadingNode("place3dTexture", name='ring_3dTexture', asUtility=True) # creating texture cmds.connectAttr('ring_3dTexture.worldInverseMatrix', 'ring_wood.placementMatrix') cmds.connectAttr('ring_wood.outColor', myShader + '.color', force=True) cmds.parent('saturn_rings', 'saturn')
def createCircleControl(name=None, x=1, y=1, z=1, radius=1, color=None, type='strip', heightRatio=0.007): if not name: name = 'circle_CTRL' xform = cmds.group(name=name, em=1) circleShapes = [] circleTransforms = [] vectors = getAxisWorldVectors(xform) xyz = [x, y, z] for i in range(0, len(xyz)): if xyz[i]: circ = None if type == 'curve': circ = cmds.circle(radius=radius, name='jointMoverAxisCtrl', normal=vectors[i], sections=1, ch=0) if color: cmds.color(circ, ud=color) if type == 'strip' or type == 'toroid': circ = None if type == 'strip': circ = cmds.cylinder(radius=radius, name='jointMoverAxisCtrl', axis=vectors[i], sections=7, ch=0, heightRatio=heightRatio) elif type == 'toroid': circ = cmds.torus(radius=radius, name='jointMoverAxisCtrl', axis=vectors[i], sections=7, ch=0, heightRatio=heightRatio) if color: if color == 'xyz': if i == 0: colorControl(circ, name='red_m', color=(1, 0, 0)) if i == 1: colorControl(circ, name='green_m', color=(0, 1, 0)) if i == 2: colorControl(circ, name='blue_m', color=(0, 0, 1)) else: if len(color) == 3: colorControl(circ, color=color) circleShapes.append( cmds.listRelatives(circ[0], fullPath=1, shapes=1)[0]) circleTransforms.append(circ[0]) cmds.parent(circleShapes, xform, r=1, s=1) cmds.delete(circleTransforms) return xform
from __future__ import print_function, division import maya.cmds as cmds # let's delete all objects cmds.select(all=True) cmds.delete() #let's create a new torus cmds.torus(r=4, hr=0.5, name='Torus1') cmds.move(0, 0, 0, 'Torus1') cmds.scale(0.5, 0.5, 0.5, 'Torus1') cmds.rotate(0, '45deg', 0, 'Torus1')
# let's create a sphere import maya.cmds as cmds # let's delete all objects cmds.select(all=True) cmds.delete() #let's create a new torus cmds.torus(r=4, hr=0.5, name='Torus1') cmds.move(0, 0, 0, 'Torus1') cmds.scale(0.5, 0.5, 0.5, 'Torus1') cmds.rotate(0, '45deg', 0, 'Torus1')
def testStaticNurbsWithoutTrim(self, surfacetype, abcFileName): if (surfacetype == 0): ret = MayaCmds.nurbsPlane(p=(0, 0, 0), ax=(0, 1, 0), w=1, lr=1, d=3, u=5, v=5, ch=0) errmsg = 'Nurbs Plane' elif (surfacetype == 1): ret = MayaCmds.sphere(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, r=1, d=3, ut=0, tol=0.01, s=8, nsp=4, ch=0) errmsg = 'Nurbs Sphere' elif (surfacetype == 2): ret = MayaCmds.torus(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, msw=360, r=1, hr=0.5, ch=0) errmsg = 'Nurbs Torus' name = ret[0] degreeU = MayaCmds.getAttr(name + '.degreeU') degreeV = MayaCmds.getAttr(name + '.degreeV') spansU = MayaCmds.getAttr(name + '.spansU') spansV = MayaCmds.getAttr(name + '.spansV') minU = MayaCmds.getAttr(name + '.minValueU') maxU = MayaCmds.getAttr(name + '.maxValueU') minV = MayaCmds.getAttr(name + '.minValueV') maxV = MayaCmds.getAttr(name + '.maxValueV') surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name + '.worldSpace', surfaceInfoNode + '.inputSurface', force=True) controlPoints = MayaCmds.getAttr(surfaceInfoNode + '.controlPoints[*]') knotsU = MayaCmds.getAttr(surfaceInfoNode + '.knotsU[*]') knotsV = MayaCmds.getAttr(surfaceInfoNode + '.knotsV[*]') MayaCmds.AbcExport(j='-root %s -f %s' % (name, abcFileName)) # reading test MayaCmds.AbcImport(abcFileName, mode='open') self.failUnlessEqual(degreeU, MayaCmds.getAttr(name + '.degreeU')) self.failUnlessEqual(degreeV, MayaCmds.getAttr(name + '.degreeV')) self.failUnlessEqual(spansU, MayaCmds.getAttr(name + '.spansU')) self.failUnlessEqual(spansV, MayaCmds.getAttr(name + '.spansV')) self.failUnlessEqual(minU, MayaCmds.getAttr(name + '.minValueU')) self.failUnlessEqual(maxU, MayaCmds.getAttr(name + '.maxValueU')) self.failUnlessEqual(minV, MayaCmds.getAttr(name + '.minValueV')) self.failUnlessEqual(maxV, MayaCmds.getAttr(name + '.maxValueV')) if (surfacetype == 0): self.failUnlessEqual(0, MayaCmds.getAttr(name + '.formU')) self.failUnlessEqual(0, MayaCmds.getAttr(name + '.formV')) elif (surfacetype == 1): self.failUnlessEqual(0, MayaCmds.getAttr(name + '.formU')) self.failUnlessEqual(2, MayaCmds.getAttr(name + '.formV')) elif (surfacetype == 2): self.failUnlessEqual(2, MayaCmds.getAttr(name + '.formU')) self.failUnlessEqual(2, MayaCmds.getAttr(name + '.formV')) surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name + '.worldSpace', surfaceInfoNode + '.inputSurface', force=True) controlPoints2 = MayaCmds.getAttr(surfaceInfoNode + '.controlPoints[*]') self.failUnlessEqual(len(controlPoints), len(controlPoints2)) for i in range(0, len(controlPoints)): cp1 = controlPoints[i] cp2 = controlPoints2[i] self.failUnlessAlmostEqual(cp1[0], cp2[0], 3, 'cp[%d].x not equal' % i) self.failUnlessAlmostEqual(cp1[1], cp2[1], 3, 'cp[%d].y not equal' % i) self.failUnlessAlmostEqual(cp1[2], cp2[2], 3, 'cp[%d].z not equal' % i) for i in range(0, len(knotsU)): ku1 = knotsU[i] ku2 = MayaCmds.getAttr('surfaceInfo1.knotsU[%d]' % i) self.failUnlessAlmostEqual(ku1, ku2, 3, 'control knotsU # %d not equal' % i) for i in range(0, len(knotsV)): kv1 = knotsV[i] kv2 = MayaCmds.getAttr('surfaceInfo1.knotsV[%d]' % i) self.failUnlessAlmostEqual(kv1, kv2, 3, 'control knotsV # %d not equal' % i)
def testStaticNurbsWithOneCloseCurveTrim(self, surfacetype, abcFileName, trimtype): if (surfacetype == 0): ret = MayaCmds.nurbsPlane(p=(0, 0, 0), ax=(0, 1, 0), w=1, lr=1, d=3, u=5, v=5, ch=0) elif (surfacetype == 1): ret = MayaCmds.sphere(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, r=1, d=3, ut=0, tol=0.01, s=8, nsp=4, ch=0) elif (surfacetype == 2): ret = MayaCmds.torus(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, msw=360, r=1, hr=0.5, ch=0) name = ret[0] MayaCmds.curveOnSurface(name, uv=((0.170718, 0.565967), (0.0685088, 0.393034), (0.141997, 0.206296), (0.95, 0.230359), (0.36264, 0.441381), (0.251243, 0.569889)), k=(0, 0, 0, 0.200545, 0.404853, 0.598957, 0.598957, 0.598957)) MayaCmds.closeCurve(name + '->curve1', ch=1, ps=1, rpo=1, bb=0.5, bki=0, p=0.1, cos=1) if trimtype == 0: MayaCmds.trim(name, lu=0.68, lv=0.39) elif 1: MayaCmds.trim(name, lu=0.267062, lv=0.39475) degreeU = MayaCmds.getAttr(name + '.degreeU') degreeV = MayaCmds.getAttr(name + '.degreeV') spansU = MayaCmds.getAttr(name + '.spansU') spansV = MayaCmds.getAttr(name + '.spansV') formU = MayaCmds.getAttr(name + '.formU') formV = MayaCmds.getAttr(name + '.formV') minU = MayaCmds.getAttr(name + '.minValueU') maxU = MayaCmds.getAttr(name + '.maxValueU') minV = MayaCmds.getAttr(name + '.minValueV') maxV = MayaCmds.getAttr(name + '.maxValueV') surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name + '.worldSpace', surfaceInfoNode + '.inputSurface', force=True) controlPoints = MayaCmds.getAttr(surfaceInfoNode + '.controlPoints[*]') knotsU = MayaCmds.getAttr(surfaceInfoNode + '.knotsU[*]') knotsV = MayaCmds.getAttr(surfaceInfoNode + '.knotsV[*]') MayaCmds.AbcExport(j='-root %s -f %s' % (name, abcFileName)) MayaCmds.AbcImport(abcFileName, mode='open') self.failUnlessEqual(degreeU, MayaCmds.getAttr(name + '.degreeU')) self.failUnlessEqual(degreeV, MayaCmds.getAttr(name + '.degreeV')) self.failUnlessEqual(spansU, MayaCmds.getAttr(name + '.spansU')) self.failUnlessEqual(spansV, MayaCmds.getAttr(name + '.spansV')) self.failUnlessEqual(minU, MayaCmds.getAttr(name + '.minValueU')) self.failUnlessEqual(maxU, MayaCmds.getAttr(name + '.maxValueU')) self.failUnlessEqual(minV, MayaCmds.getAttr(name + '.minValueV')) self.failUnlessEqual(maxV, MayaCmds.getAttr(name + '.maxValueV')) surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name + '.worldSpace', surfaceInfoNode + '.inputSurface', force=True) controlPoints2 = MayaCmds.getAttr(surfaceInfoNode + '.controlPoints[*]') self.failUnlessEqual(len(controlPoints), len(controlPoints2)) for i in range(0, len(controlPoints)): cp1 = controlPoints[i] cp2 = controlPoints2[i] self.failUnlessAlmostEqual(cp1[0], cp2[0], 3, 'cp[%d].x not equal' % i) self.failUnlessAlmostEqual(cp1[1], cp2[1], 3, 'cp[%d].y not equal' % i) self.failUnlessAlmostEqual(cp1[2], cp2[2], 3, 'cp[%d].z not equal' % i) for i in range(0, len(knotsU)): ku1 = knotsU[i] ku2 = MayaCmds.getAttr('surfaceInfo1.knotsU[%d]' % i) self.failUnlessAlmostEqual(ku1, ku2, 3, 'control knotsU # %d not equal' % i) for i in range(0, len(knotsV)): kv1 = knotsV[i] kv2 = MayaCmds.getAttr('surfaceInfo1.knotsV[%d]' % i) self.failUnlessAlmostEqual(kv1, kv2, 3, 'control knotsV # %d not equal' % i)
def torus(*args, **kwargs): res = cmds.torus(*args, **kwargs) if not kwargs.get('query', kwargs.get('q', False)): res = _factories.maybeConvert(res, _general.PyNode) return res
def testAnimNSurfaceDeleteReload(self): # create an animated Nurbs sphere MayaCmds.sphere(ch=False, name='nSphere') MayaCmds.move(5, 0, 0, relative=True) MayaCmds.select('nSphere.cv[0:1][0:7]', 'nSphere.cv[5:6][0:7]', replace=True) MayaCmds.setKeyframe(time=[1, 24]) MayaCmds.currentTime(12, update=True) MayaCmds.scale(1.5, 1, 1, relative=True) MayaCmds.setKeyframe(time=12) # create an animated Nurbs torus MayaCmds.torus(ch=False, name='nTorus') MayaCmds.move(-5, 0, 0, relative=True) MayaCmds.select('nTorus.cv[0][0:7]', 'nTorus.cv[2][0:7]', replace=True) MayaCmds.setKeyframe(time=[1, 24]) MayaCmds.currentTime(12, update=True) MayaCmds.scale(1, 2, 2, relative=True) MayaCmds.setKeyframe(time=12) # create an animated Nurbs plane # should add the trim curve test on this surface, will be easier # than the rest MayaCmds.nurbsPlane(ch=False, name='nPlane') MayaCmds.move(-5, 5, 0, relative=True) MayaCmds.select('nPlane.cv[0:3][0:3]', replace=True) MayaCmds.setKeyframe(time=1) MayaCmds.currentTime(12, update=True) MayaCmds.rotate(0, 0, 90, relative=True) MayaCmds.setKeyframe(time=12) MayaCmds.currentTime(24, update=True) MayaCmds.rotate(0, 0, 90, relative=True) MayaCmds.setKeyframe(time=24) # create an animated Nurbs cylinder MayaCmds.cylinder(ch=False, name='nCylinder') MayaCmds.select('nCylinder.cv[0][0:7]', replace=True) MayaCmds.setKeyframe(time=[1, 24]) MayaCmds.currentTime(12, update=True) MayaCmds.move(-3, 0, 0, relative=True) MayaCmds.setKeyframe(time=12) # write it out to Abc file and load back in self.__files.append(util.expandFileName('testNSurfaceReload.abc')) MayaCmds.AbcExport(j='-fr 1 24 -root nSphere -root nTorus -root nPlane -root nCylinder -file ' + self.__files[-1]) # load back the Abc file, delete the torus and save to a maya file MayaCmds.AbcImport(self.__files[-1], mode='open') MayaCmds.delete('nTorus') self.__files.append(util.expandFileName('test.mb')) MayaCmds.file(rename=self.__files[-1]) MayaCmds.file(save=True) # import the saved maya file to compare with the original scene MayaCmds.file(self.__files[-1], open=True) MayaCmds.select('nSphere', 'nPlane', 'nCylinder', replace=True) MayaCmds.group(name='ReloadGrp') MayaCmds.AbcImport(self.__files[-2], mode='import') surfaceList = MayaCmds.ls(type='nurbsSurface') self.failUnlessEqual(len(surfaceList), 7) surfaces = [('|nSphere|nSphereShape', '|ReloadGrp|nSphere|nSphereShape'), ('|nPlane|nPlaneShape', '|ReloadGrp|nPlane|nPlaneShape'), ('|nCylinder|nCylinderShape', '|ReloadGrp|nCylinder|nCylinderShape')] for s in surfaces: for t in range(1, 25): MayaCmds.currentTime(t, update=True) if not util.compareNurbsSurface(s[0], s[1]): self.fail('%s and %s are not the same at frame %d' % (s[0], s[1], t))
def testStaticNurbsWithoutTrim(self, surfacetype, abcFileName): if (surfacetype == 0): ret = MayaCmds.nurbsPlane(p=(0, 0, 0), ax=(0, 1, 0), w=1, lr=1, d=3, u=5, v=5, ch=0) errmsg = 'Nurbs Plane' elif (surfacetype == 1): ret = MayaCmds.sphere(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, r=1, d=3, ut=0, tol=0.01, s=8, nsp=4, ch=0) errmsg = 'Nurbs Sphere' elif (surfacetype == 2): ret = MayaCmds.torus(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, msw=360, r=1, hr=0.5, ch=0) errmsg = 'Nurbs Torus' name = ret[0] degreeU = MayaCmds.getAttr(name+'.degreeU') degreeV = MayaCmds.getAttr(name+'.degreeV') spansU = MayaCmds.getAttr(name+'.spansU') spansV = MayaCmds.getAttr(name+'.spansV') minU = MayaCmds.getAttr(name+'.minValueU') maxU = MayaCmds.getAttr(name+'.maxValueU') minV = MayaCmds.getAttr(name+'.minValueV') maxV = MayaCmds.getAttr(name+'.maxValueV') surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name+'.worldSpace', surfaceInfoNode+'.inputSurface', force=True) controlPoints = MayaCmds.getAttr(surfaceInfoNode+'.controlPoints[*]') knotsU = MayaCmds.getAttr(surfaceInfoNode+'.knotsU[*]') knotsV = MayaCmds.getAttr(surfaceInfoNode+'.knotsV[*]') MayaCmds.AbcExport(j='-root %s -f %s' % (name, abcFileName)) # reading test MayaCmds.AbcImport(abcFileName, mode='open') self.failUnlessEqual(degreeU, MayaCmds.getAttr(name+'.degreeU')) self.failUnlessEqual(degreeV, MayaCmds.getAttr(name+'.degreeV')) self.failUnlessEqual(spansU, MayaCmds.getAttr(name+'.spansU')) self.failUnlessEqual(spansV, MayaCmds.getAttr(name+'.spansV')) self.failUnlessEqual(minU, MayaCmds.getAttr(name+'.minValueU')) self.failUnlessEqual(maxU, MayaCmds.getAttr(name+'.maxValueU')) self.failUnlessEqual(minV, MayaCmds.getAttr(name+'.minValueV')) self.failUnlessEqual(maxV, MayaCmds.getAttr(name+'.maxValueV')) if (surfacetype == 0): self.failUnlessEqual(0, MayaCmds.getAttr(name+'.formU')) self.failUnlessEqual(0, MayaCmds.getAttr(name+'.formV')) elif (surfacetype == 1): self.failUnlessEqual(0, MayaCmds.getAttr(name+'.formU')) self.failUnlessEqual(2, MayaCmds.getAttr(name+'.formV')) elif (surfacetype == 2): self.failUnlessEqual(2, MayaCmds.getAttr(name+'.formU')) self.failUnlessEqual(2, MayaCmds.getAttr(name+'.formV')) surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name+'.worldSpace', surfaceInfoNode+'.inputSurface', force=True) controlPoints2 = MayaCmds.getAttr(surfaceInfoNode + '.controlPoints[*]') self.failUnlessEqual(len(controlPoints), len(controlPoints2)) for i in range(0, len(controlPoints)): cp1 = controlPoints[i] cp2 = controlPoints2[i] self.failUnlessAlmostEqual(cp1[0], cp2[0], 3, 'cp[%d].x not equal' % i) self.failUnlessAlmostEqual(cp1[1], cp2[1], 3, 'cp[%d].y not equal' % i) self.failUnlessAlmostEqual(cp1[2], cp2[2], 3, 'cp[%d].z not equal' % i) for i in range(0, len(knotsU)): ku1 = knotsU[i] ku2 = MayaCmds.getAttr('surfaceInfo1.knotsU[%d]' % i) self.failUnlessAlmostEqual(ku1, ku2, 3, 'control knotsU # %d not equal' % i) for i in range(0, len(knotsV)): kv1 = knotsV[i] kv2 = MayaCmds.getAttr('surfaceInfo1.knotsV[%d]' % i) self.failUnlessAlmostEqual(kv1, kv2, 3, 'control knotsV # %d not equal' % i)
def testStaticNurbsWithOneCloseCurveTrim(self, surfacetype, abcFileName, trimtype): if (surfacetype == 0): ret = MayaCmds.nurbsPlane(p=(0, 0, 0), ax=(0, 1, 0), w=1, lr=1, d=3, u=5, v=5, ch=0) elif (surfacetype == 1): ret = MayaCmds.sphere(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, r=1, d=3, ut=0, tol=0.01, s=8, nsp=4, ch=0) elif (surfacetype == 2): ret = MayaCmds.torus(p=(0, 0, 0), ax=(0, 1, 0), ssw=0, esw=360, msw=360, r=1, hr=0.5, ch=0) name = ret[0] MayaCmds.curveOnSurface(name, uv=((0.170718,0.565967), (0.0685088,0.393034), (0.141997,0.206296), (0.95,0.230359), (0.36264,0.441381), (0.251243,0.569889)), k=(0,0,0,0.200545,0.404853,0.598957,0.598957,0.598957)) MayaCmds.closeCurve(name+'->curve1', ch=1, ps=1, rpo=1, bb=0.5, bki=0, p=0.1, cos=1) if trimtype == 0 : MayaCmds.trim(name, lu=0.68, lv=0.39) elif 1 : MayaCmds.trim(name, lu=0.267062, lv=0.39475) degreeU = MayaCmds.getAttr(name+'.degreeU') degreeV = MayaCmds.getAttr(name+'.degreeV') spansU = MayaCmds.getAttr(name+'.spansU') spansV = MayaCmds.getAttr(name+'.spansV') formU = MayaCmds.getAttr(name+'.formU') formV = MayaCmds.getAttr(name+'.formV') minU = MayaCmds.getAttr(name+'.minValueU') maxU = MayaCmds.getAttr(name+'.maxValueU') minV = MayaCmds.getAttr(name+'.minValueV') maxV = MayaCmds.getAttr(name+'.maxValueV') surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name+'.worldSpace', surfaceInfoNode+'.inputSurface', force=True) controlPoints = MayaCmds.getAttr(surfaceInfoNode+'.controlPoints[*]') knotsU = MayaCmds.getAttr(surfaceInfoNode+'.knotsU[*]') knotsV = MayaCmds.getAttr(surfaceInfoNode+'.knotsV[*]') MayaCmds.AbcExport(j='-root %s -f %s' % (name, abcFileName)) MayaCmds.AbcImport(abcFileName, mode='open') self.failUnlessEqual(degreeU, MayaCmds.getAttr(name+'.degreeU')) self.failUnlessEqual(degreeV, MayaCmds.getAttr(name+'.degreeV')) self.failUnlessEqual(spansU, MayaCmds.getAttr(name+'.spansU')) self.failUnlessEqual(spansV, MayaCmds.getAttr(name+'.spansV')) self.failUnlessEqual(minU, MayaCmds.getAttr(name+'.minValueU')) self.failUnlessEqual(maxU, MayaCmds.getAttr(name+'.maxValueU')) self.failUnlessEqual(minV, MayaCmds.getAttr(name+'.minValueV')) self.failUnlessEqual(maxV, MayaCmds.getAttr(name+'.maxValueV')) surfaceInfoNode = MayaCmds.createNode('surfaceInfo') MayaCmds.connectAttr(name+'.worldSpace', surfaceInfoNode+'.inputSurface', force=True) controlPoints2 = MayaCmds.getAttr( surfaceInfoNode + '.controlPoints[*]') self.failUnlessEqual(len(controlPoints), len(controlPoints2)) for i in range(0, len(controlPoints)): cp1 = controlPoints[i] cp2 = controlPoints2[i] self.failUnlessAlmostEqual(cp1[0], cp2[0], 3, 'cp[%d].x not equal' % i) self.failUnlessAlmostEqual(cp1[1], cp2[1], 3, 'cp[%d].y not equal' % i) self.failUnlessAlmostEqual(cp1[2], cp2[2], 3, 'cp[%d].z not equal' % i) for i in range(0, len(knotsU)): ku1 = knotsU[i] ku2 = MayaCmds.getAttr('surfaceInfo1.knotsU[%d]' % i) self.failUnlessAlmostEqual(ku1, ku2, 3, 'control knotsU # %d not equal' % i) for i in range(0, len(knotsV)): kv1 = knotsV[i] kv2 = MayaCmds.getAttr('surfaceInfo1.knotsV[%d]' % i) self.failUnlessAlmostEqual(kv1, kv2, 3, 'control knotsV # %d not equal' % i)
cmds.sphere(name='sphere', radius=2) name = 'sphere' #quering and printing radius of the sphere r = cmds.sphere(name, query=True, radius=True) print r #assigning new value for radius cmds.sphere('sphere', edit=True, radius=4) #deleting all objects from the scene cmds.select(all=True) cmds.delete() #creating a new shape: torus cmds.torus(name='torus', radius=4, heightRatio=0.5) #translate 'torus' by 1 unit along the x-axis cmds.move(1, 0, 0, 'torus') #scale 'torus' by half along y-axis cmds.scale(1, 0.5, 1, 'torus') #rotate 'torus by 45 degrees about the z-axis cmds.rotate(0, 0, 45, 'torus') #now move, scale, rotate 'torus' relative to its current #position, scale, rotation cmds.move(2, 0, 0, 'torus', relative=True) cmds.scale(1, 0.7, 1, 'torus', relative=True) cmds.rotate(0, 0, 10, 'torus', relative=True)
def createTorus(): for i in range(1,9): mx.torus(n='totus1',r=i*1,hr=0.01)
else: mx.sphere() import maya.cmds as mx dataFromUser = input (‘Please enter number only’) print (dataFromUser) if dataFromUser = =1: mx.nurbsCube() elif dataFromUser = =2: mx.sphere() elif dataFromUser = =3: mx.cylinder() elif dataFromUser = =4: mx.cone() elif dataFromUser = =5: mx.torus() else: mx. plane() 2nd Part The For Loop EX. import maya.cmds as mx for i in range (1 , 10): print (‘this is i = ’str(i)) Make box and move EX. import maya.cmds as mx # your name nameOfItems = [‘Box2’ , ‘Box3’ , ‘Box4’ , ‘Box5’] # for i in range (1 , 10): for nameItem in nameOfItems: