Skip to content

Instantly share code, notes, and snippets.

@gregtemp
Created September 26, 2014 20:13
Show Gist options
  • Save gregtemp/7961bea7598a691bcc5a to your computer and use it in GitHub Desktop.
Save gregtemp/7961bea7598a691bcc5a to your computer and use it in GitHub Desktop.
better fractals.py
# STILL NOT QUITE THERE YET
import maya.cmds as cmds
#cube = cmds.polyCube(h=5, w=5, d=5)
#cubeName = cube[0]
#cmds.setAttr(cubeName + '.translateX', 5)
#cmds.setAttr(cubeName + '.translateY', 5)
#cmds.setAttr(cubeName + '.translateZ', 5)
selected = cmds.ls(selection=True)
print(selected)
def translations(name):
origin = [0.0, 0.0, 0.0]
distX = cmds.getAttr(name + '.translateX') - origin[0]
distY = cmds.getAttr(name + '.translateY') - origin[1]
distZ = cmds.getAttr(name + '.translateZ') - origin[2]
newShape = cmds.duplicate(name)
newName = newShape[0]
rx = cmds.getAttr(newName + '.rx')
ry = cmds.getAttr(newName + '.ry')
rz = cmds.getAttr(newName + '.rz')
scaleX = cmds.getAttr(newName+'.scaleX')
scaleY = cmds.getAttr(newName+'.scaleY')
scaleZ = cmds.getAttr(newName+'.scaleZ')
rx += 10
ry += 10
rz += 10
scaleX*=0.9
scaleY*=0.9
scaleZ*=0.9
distX*=0.9
distY*=0.9
distZ*=0.9
cmds.setAttr(newName + '.rx',rx)
cmds.setAttr(newName + '.ry',ry)
cmds.setAttr(newName + '.rz',rz)
cmds.setAttr(newName + '.scaleX', scaleX)
cmds.setAttr(newName + '.scaleY', scaleY)
cmds.setAttr(newName + '.scaleZ', scaleZ)
cmds.select(newName)
cmds.move(distX,distY,distZ)
#cmds.setAttr(newName + '.translateX', distX)
#cmds.setAttr(newName + '.translateY', distY)
#cmds.setAttr(newName + '.translateZ', distZ)
return newName
def fractalize (iterations):
returnedObj = selected[0]
for i in range(0, iterations):
returnedObj = translations(returnedObj)
fractalize(50)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment