Advertisement
Guest User

Untitled

a guest
Jul 13th, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. # GEARINATOR
  2. # _
  3. # /\_| |_/\
  4. # \ /
  5. # _/ \_
  6. # |_ _ _|
  7. # _| (_) |_
  8. # |_ _|
  9. # \ /
  10. # / _ _ \
  11. # \/ |_| \/
  12.  
  13. import maya.cmds as mc
  14.  
  15.  
  16. myWindow = mc.window(title="GEARINATOR", wh=(200,300),bgc=[0.29296875,0.31640625,0.4609375])
  17. mc.columnLayout()
  18.  
  19. mc.text(label=" ")
  20. mc.text(label="Number of Cogs:")
  21. intCogsField = mc.intFieldGrp(v1=12, numberOfFields=1, changeCommand="mainGear = updateGear(mainGear, True)")
  22. mc.text(label="Length of Cogs:")
  23. floatCogLengthField = mc.floatFieldGrp(v1=0.5, numberOfFields=1, changeCommand="mainGear = updateGear(mainGear, True)")
  24.  
  25. mc.text(label=" ")
  26.  
  27. mc.text(label="Gear height:")
  28. floatHeightField = mc.floatFieldGrp(v1=1.0, numberOfFields=1, changeCommand="mainGear = updateGear(mainGear, True)")
  29. mc.text(label="Gear thickness:")
  30. floatThicknessField = mc.floatFieldGrp(v1=1.0, numberOfFields=1, changeCommand="mainGear = updateGear(mainGear, True)")
  31. mc.text(label="Gear radius:")
  32. floatRadiusField = mc.floatFieldGrp(v1=2, numberOfFields=1, changeCommand="mainGear = updateGear(mainGear, True)")
  33.  
  34. mc.text(label=" ")
  35.  
  36. mc.text(label="Gear softness:")
  37. floatSoftnessField = mc.floatFieldGrp(v1=0.5, numberOfFields=1, changeCommand="mainGear = updateGear(mainGear, True)")
  38.  
  39. mc.button(label="Done", command="mc.deleteUI(myWindow)")
  40. mc.button(label="Cancel", command="mc.delete(mainGear), mc.deleteUI(myWindow)")
  41.  
  42. mc.showWindow(myWindow)
  43.  
  44.  
  45. def updateGear(gear, update):
  46. if update == True:
  47. mc.delete(gear)
  48.  
  49. intCogs = mc.intFieldGrp(intCogsField, query=True, value1=True)
  50. floatCogLength = mc.floatFieldGrp(floatCogLengthField, query=True, value1=True)
  51.  
  52. floatHeight = mc.floatFieldGrp(floatHeightField, query=True, value1=True)
  53. floatThickness = mc.floatFieldGrp(floatThicknessField, query=True, value1=True)
  54. floatRadius = mc.floatFieldGrp(floatRadiusField, query=True, value1=True)
  55.  
  56. floatSoftness = mc.floatFieldGrp(floatSoftnessField, query=True, value1=True)
  57. floatSoftness = max(min(floatSoftness, 1), 0)
  58.  
  59. gear = mc.polyPipe(subdivisionsAxis=intCogs*2, height=floatHeight, radius=floatRadius, thickness=floatThickness)
  60.  
  61. #get variables
  62. intSA = mc.getAttr(gear[1]+".subdivisionsAxis")
  63. intStart = intSA * 2
  64. intEnd = (intSA * 3) - 1
  65.  
  66. #get every other face
  67. mc.select(clear=True)
  68. for i in range(intStart, intEnd, 2):
  69. mc.select(gear[0]+".f[%d]" %i, add=True);
  70.  
  71. mc.polyExtrudeFacet(ltz=floatCogLength)
  72. mc.polyBevel(gear[0],offsetAsFraction=1,fraction=floatSoftness)
  73. mc.polySmooth(gear[0])
  74.  
  75. mc.select(clear=True)
  76. return gear
  77.  
  78.  
  79.  
  80. mainGear = updateGear("asdf", False)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement