http://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj2008-07-22T01:14:08.416ZPython Notesdaxx2kGoogle Notebook26110http://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDRGDQwoQl4LewbQj2008-07-22T00:42:21.847Z2008-07-22T01:14:08.416Z#----------------------------------DIGITAL TUTORS NOTES import maya.cmds as ... #----------------------------------DIGITAL TUTORS NOTES<br>import maya.cmds as mc<br>mc.polyCube(w=1, h=1, d=1, sx=1, sy=1, sz=1, ax=(0,1,0), cuv=1, ch=1)<br>mc.scale(4,4,4, r=True) #this is how to scale an obj , use quick help for a reference<br>mc.polyBevel(&quot;pCube1&quot;, offset=0.5, offsetAsFraction=1, autoFit=1, segments=1, worldSpace=1, fillNgons=1, mergeVertices=1, mergeVertexTolerance=0.0001, smoothingAngle=30, miteringAngle=180, angleTolerance=180, ch=1)<br><br>#------------------------------ variables sample<br>import maya.cmds as mc<br>cubeToBevel = mc.polyCube(w=1, h=1, d=1, sx=1, sy=1, sz=1, ax=(0,1,0), cuv=1, ch=1)<br>mc.scale(4,4,4, r=True)<br>mc.polyBevel(cubeToBevel, offset=0.5, offsetAsFraction=1, autoFit=1, segments=1, worldSpace=1, fillNgons=1, mergeVertices=1, mergeVertexTolerance=0.0001, smoothingAngle=30, miteringAngle=180, angleTolerance=180, ch=1)<br><br>#------------------------------- variables types<br><br>original = &quot;rosco&quot;<br>copycat = original<br><br># ----------------------------------------concatenating strings<br>print copycat<br>print copycat + &quot; is the value of the string named copycat&quot;<br><br># -------------------------------------concatenating string+int or float or hex<br>intLife = 42<br>fPI = 3.14<br>hexColor = 0xFFCC00<br>print &quot;The value of IntLife is ... %d&quot; % intLife<br>print &quot;The value of fPI is ... %f&quot; % fPI<br>print &quot;The value of hexColor is ... %x&quot; % hexColor<br><br>print &quot;My values are %d and %f&quot; % (intLife,fPI)<br><br># ------------------------------- selections<br>myFirstList = [ ] # array<br>myFirstList = [ &quot;red&quot;, 21.00, 1 ] # you can create a multidimensional array  ( string, float, int)<br>listKeys = <a href="http://mc.ls">mc.ls</a>(sl=True) # ls -sl<br><br>#----------------------------------------- for loop<br>listKeys = <a href="http://mc.ls">mc.ls</a>(sl=True)<br>selSize = len(listKeys) <br>for i in range(0,selSize,1) :     # for i in range(start,end,increment)<br>    rescaler = (i+1)*0.1<br>    mc.scale(rescaler,rescaler,rescaler, listKeys[i], r=true)<br>print &quot;done&quot;<br><br>#--------------------------------------------------- Tutorial  - procedural Cog<br><br>import maya.cmds as mc<br><br>pdStatus= mc.promptDialog(message=&quot;Please imput number of teeth&quot;, button=&quot;OK&quot;)<br>if pdStatus == &quot;OK&quot;: # double equal to compare<br>    numTeeth = mc.promptDialog(query=True, text=True)<br>    numTeeth = int(numTeeth) # this is a function to change a string type into an int type<br><br>pdStatus2= mc.promptDialog(message=&quot;Please imput radius&quot;, button=&quot;OK&quot;)<br>if pdStatus2 == &quot;OK&quot;: # double equal to compare<br>    numRad = mc.promptDialog(query=True, text=True)<br>    numRad = float(numRad)<br>    gear = mc.polyPipe(subdivisionsAxis=numTeeth*2,radius=numRad, h=0.5)<br>    # Set tbe value of intSA to be the pipe&#39;s subdivision axis<br>    intSA = mc.getAttr(gear[1]+&quot;.subdivisionsAxis&quot;)<br>    # Use formula to derive the start and end outer faces<br>    intStartFace = (intSA * 2)<br>    intEndFace = (intSA * 3) - 1<br>    mc.select(clear=1)<br>    ### Deselect all in use for loop to select every other face<br>    for i in range (intStartFace, intEndFace, 2):<br>        mc.select(gear[0]+&quot;.f[%d]&quot; % i,add=True)<br>    mc.polyExtrudeFacet(ltz=0.5)<br>    mc.polySmooth(gear[0],continuity=0.5)<br>    <br>#  ----------------------------------------Tutorial - disperser<br><br>import maya.cmds as mc<br>import random as rnd     # help(random) to know what&#39;s inside random module<br><br>selList = <a href="http://mc.ls">mc.ls</a>(selection=True)<br>for obj in selList:<br>    rangeX = rnd.randint (-10, 10)<br>    rangeZ = rnd.randint (-10, 10)<br>    mc.setAttr(obj + &quot;.translateX&quot;, rangeX)<br>    mc.setAttr(obj + &quot;.translateZ&quot;, rangeZ)<br>    <br>#----------------------------------------------  Disperser GUI<br><br> if mc.window(&quot;dWin&quot;, q=True, ex=True):<br>    mc.deleteUI(&quot;dWin&quot;)<br>dWin=mc.window(title=&quot;Disperser&quot;,wh = (256,256))<br>mc.columnLayout()<br>mc.separator(h=10)<br>mc.text(label=&quot; Set X Y Z Range Values for Translation&quot;)<br>rangeTField = mc.floatFieldGrp(numberOfFields=3)<br>mc.separator(h=10)<br>mc.text(label=&quot; Set X Y Z Range Values for Rotation&quot;)<br>rangeRField = mc.floatFieldGrp(numberOfFields=3)<br>mc.separator(h=30)<br>mc.button(label=&quot;Disperser Selected&quot;,command=&quot;disperse()&quot;)<br>mc.showWindow(dWin)<br><br><br>def disperse():<br>    import maya.cmds as mc<br>    import random as rnd     # help(random) to know what&#39;s inside random module<br>    selList = <a href="http://mc.ls">mc.ls</a>(selection=True)<br>    rangeTX = mc.floatFieldGrp(rangeTField, query=True, value1=True)<br>    rangeTY = mc.floatFieldGrp(rangeTField, query=True, value2=True)<br>    rangeTZ = mc.floatFieldGrp(rangeTField, query=True, value3=True)<br>    rangeRX = mc.floatFieldGrp(rangeRField, query=True, value1=True)<br>    rangeRY = mc.floatFieldGrp(rangeRField, query=True, value2=True)<br>    rangeRZ = mc.floatFieldGrp(rangeRField, query=True, value3=True)<br>    for obj in selList:<br>        randomTX = rnd.randint (-rangeTX, rangeTX)<br>        randomTY = rnd.randint (-rangeTY, rangeTY)<br>        randomTZ = rnd.randint (-rangeTZ, rangeTZ)<br>        randomRX = rnd.randint (-rangeRX, rangeRX)<br>        randomRY = rnd.randint (-rangeRY, rangeRY)<br>        randomRZ = rnd.randint (-rangeRZ, rangeRZ)<br>        mc.setAttr(obj + &quot;.translateX&quot;, randomTX)<br>        mc.setAttr(obj + &quot;.translateY&quot;, randomTY)<br>        mc.setAttr(obj + &quot;.translateZ&quot;, randomTZ)<br>        mc.setAttr(obj + &quot;.rotateX&quot;, randomRX)<br>        mc.setAttr(obj + &quot;.rotateY&quot;, randomRY)<br>        mc.setAttr(obj + &quot;.rotateZ&quot;, randomRZ)<br>        <br>#---------- While loop<br>import maya.cmds as mc<br><br>startFrame = mc.playbackOptions(query=True, minTime=True)<br>endFrame = mc.playbackOptions(query=True, maxTime=True)<br>currentFrame = startFrame<br>while (currentFrame &lt; endFrame) :<br>    print &quot; The frame is currently at %d&quot; % currentFrame<br>    currentFrame += 1<br>    #break # use break to make sure to not brake maya<br># out of loop<br><br>#------------- bake animation to another obj<br>import maya.cmds as mc<br><br>startFrame = mc.playbackOptions(query=True, minTime=True)<br>endFrame = mc.playbackOptions(query=True, maxTime=True)<br>currentFrame = startFrame<br><br>goal = &quot;pSphere1&quot;<br>follower = &quot;pSphere2&quot;<br><br><br>while (currentFrame &lt; endFrame) :<br>    print &quot; The frame is currently at %d&quot; % currentFrame<br>    goalTrans = mc.getAttr(goal + &quot;.translate&quot;)<br>    #mc.setAttr(follower+&quot;.translate&quot;,goalTrans[0][0],goalTrans[0][1],goalTrans[0][2])<br>    mc.setKeyframe(follower, at=&quot;translateX&quot;, v=goalTrans[0][0])<br>    mc.setKeyframe(follower, at=&quot;translateY&quot;, v=goalTrans[0][1])<br>    mc.setKeyframe(follower, at=&quot;translateZ&quot;, v=goalTrans[0][2])<br>    mc.currentTime(currentFrame)<br>    currentFrame += 1<br> <blockquote class="gn_c"> examples code from digital tutors python video tutorials notes<br></blockquote>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDQp6QgoQnYG-_IUj2008-02-28T10:21:22.973Z2008-07-22T00:45:02.898ZUseful links http://www.python.org - The Python home page http://divei...<h2> Useful links </h2> <p><a href="http://www.python.org/">http://www.python.org</a> - The Python home page </p><p><a href="http://diveintopython.org/">http://diveintopython.org</a> - A really good programmers&#39; guide to Python </p><p><a href="http://it.diveintopython.org/toc/index.html">http://it.diveintopython.org/toc/index.html</a> (italian doc)<br></p><p><a href="http://docs.python.org/ref/ref.html">http://docs.python.org/ref/ref.html</a> - Python Reference Manual </p><p><a href="http://docs.python.org/lib/lib.html">http://docs.python.org/lib/lib.html</a> - Python Library Reference</p><p><a href="http://www.penzilla.net/tutorials/python/">http://www.penzilla.net/tutorials/python/</a></p><a href="http://www.effbot.org/librarybook/">http://www.effbot.org/librarybook</a> (the eff-bot guide to) The Standard Python Library<br><br><a href="http://docs.python.it/">http://docs.python.it</a>  (italian doc) e - zona Python<br><br><a href="http://aspn.activestate.com/ASPN/Cookbook/Python">http://aspn.activestate.com/ASPN/Cookbook/Python</a> (en doc) <br><br><a href="http://www.pycode.com/">http://www.pycode.com/</a><br><br><a href="http://iwiwdsmi.blogspot.com/">iwiwdsmi.blogspot.com</a>  Sofeng&#39;s Blog<br><br><blockquote class="gn_c">This is a section to put useful links to python docs<br><br></blockquote>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDQPCQwoQm5bdrq0j2008-06-29T19:40:33.947Z2008-06-29T19:40:33.976ZGlobal Module Index<a href="http://docs.python.org/modindex.html">http://docs.python.org/modindex.html</a>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDQxBQwoQ9sDcrq0j2008-06-29T19:40:23.030Z2008-06-29T19:40:30.911ZGlobal Module Index<a href="http://docs.python.org/modindex.html"><br></a>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDRE-QwoQhNu8tawj2008-06-26T21:02:26.692Z2008-06-26T21:04:05.238ZCTYPES http://python.net/crew/theller/ctypes/ is an advanced ffi (Foreign F...CTYPES <br> <a href="http://python.net/crew/theller/ctypes/">http://python.net/crew/theller/ctypes/</a><br><blockquote class="gn_c">is an advanced ffi (Foreign Function Interface) package for <a href="http://www.python.org/">Python</a> 2.3 and higher. In <a href="http://www.python.org/">Python</a> 2.5 it is already included.<a href="http://python.net/crew/theller/ctypes/"></a></blockquote>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDRQEQwoQ1J2stawj2008-06-26T20:57:56.692Z2008-06-26T21:03:09.621Zoverride standard methods with maya cmds class bone: def __init__(self,b... override standard methods with maya cmds <br><blockquote class="gn_c"> <pre>class bone:<br> def __init__(self,bone):<br> self.bone=cmd.joint(n=bone)<br> cmd.select(cl=True)<br> return<br><br><br> def __radd__(self,other):<br><br><span>    </span><span>    </span><span>    </span><span>    </span>&#39;&#39;&#39;<br><span>    </span><span>    </span><span>    </span><span>    </span><span>    </span>override the + add function<br><span>    </span><span>    </span><span>    </span><span>    </span>&#39;&#39;&#39;<br> cmd.parent(self.bone,other.bone)<br> return other.bone<br><br><br><br> def setName(self,newName):<br> &#39;&#39;&#39;<br> set bone name<br> &#39;&#39;&#39;<br> self.bone=newName<br> return cmd.rename(self.bone,newName)<br><br> <br> def getName(self):<br> &#39;&#39;&#39;<br> get bone name<br> &#39;&#39;&#39;<br> return self.bone<br><br><br> def setPos(self,pos):<br> &#39;&#39;&#39;<br> set local space position<br> &#39;&#39;&#39;<br> return cmd.xform(self.bone,ws=False,t=pos)<br><br> <br> def getPos(self):<br> &#39;&#39;&#39;<br> get local space position<br> &#39;&#39;&#39;<br> return cmd.xform(self.bone,q=True,ws=False)<br><br><br> def setWPos(self,pos):<br> &#39;&#39;&#39;<br> set world space position<br> &#39;&#39;&#39;<br> return cmd.xform(self.bone,ws=True,t=pos)<br><br> <br> def getWPos(self):<br> &#39;&#39;&#39;<br> get world space position<br> &#39;&#39;&#39;<br> return cmd.xform(self.bone,q=True,ws=True)<br></pre> <pre><br>b1=bone(&quot;osso0&quot;)<br>b2=bone(&quot;osso1&quot;)<br><br>b1+b2</pre></blockquote>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDQZVQwoQ_OH4qo4j2008-03-25T09:56:38.268Z2008-06-25T22:42:11.687ZPYMEL http://code.google.com/p/pymel/ http://www.highend3d.com/maya/download...PYMEL<br><a href="http://code.google.com/p/pymel/">http://code.google.com/p/pymel/</a> <br><a href="http://www.highend3d.com/maya/downloads/tools/syntax_scripting/Pymel-4844.html">http://www.highend3d.com/maya/downloads/tools/syntax_scripting/Pymel-4844.html</a><br>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDSMKQgoQ5P3FgJgj2008-04-24T10:54:00.420Z2008-04-24T10:54:00.455ZSofeng's Blog<a href="http://iwiwdsmi.blogspot.com/">http://iwiwdsmi.blogspot.com/</a>daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDQuXQgoQjd_S8Ykj2008-03-11T14:18:15.821Z2008-03-11T14:19:42.990ZPython Essential Reference - Google Book<img src="http://bks4.books.google.co.uk/books?id=kQom0WiUbZQC&amp;printsec=frontcover&amp;img=1&amp;zoom=1&amp;sig=grk5L02NdT667pwZrjR44WHc-wM" height="192" width="128">daxx2khttp://www.google.com/notebook/feeds/02636498222690413590/notebooks/BDQp6QgoQpJiOqoUj/NDQ7EQwoQ1bK7qogj2008-03-06T18:16:20.053Z2008-03-06T18:17:03.445ZPIL - Pyhton Image Library http://www.pythonware.com/media/data/pil-handbook....PIL - <span style="color:rgb(0, 0, 0)"><font face="MS Shell Dlg"><font color="#000000">Pyhton Image Library</font></font></span><br><a href="http://www.pythonware.com/media/data/pil-handbook.pdf">http://www.pythonware.com/media/data/pil-handbook.pdf</a> <br>daxx2k