Skip to content

Instantly share code, notes, and snippets.

@gregtemp
Created September 27, 2014 19:28
Show Gist options
  • Save gregtemp/a630151fea30b5a35890 to your computer and use it in GitHub Desktop.
Save gregtemp/a630151fea30b5a35890 to your computer and use it in GitHub Desktop.
almost real fucking fractals finally
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):
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')
distX = cmds.getAttr(newName+'.scaleX')
distY = cmds.getAttr(newName+'.scaleY')
distZ = cmds.getAttr(newName+'.scaleZ')
if rx != 0:
rx*=1.9
else:
rx+=30
#rx += 30
ry += 0
rz += 0
scaleX*=0.7
scaleY*=0.7
scaleZ*=0.7
distX*=4.0
distY*=1.0
distZ*=1.0
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, r=True)
#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(10)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment