Advertisement
Hdotofwgkta

BuildingGeneratorFinal2

May 24th, 2019
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.13 KB | None | 0 0
  1. import maya.cmds as cmds
  2. import os
  3. import random
  4.  
  5. #class
  6. class HP_BuildingGenerator(object):
  7.  
  8. #constructor function
  9. def __init__(self):
  10. self.window = 'BuildingWindow'
  11. self.title = 'Building Generator'
  12. self.size = (600, 350)
  13. self.createWindow()
  14.  
  15. #create window function
  16. def createWindow(self):
  17.  
  18. if cmds.window(self.window, exists=True):
  19. cmds.deleteUI(self.window, window=True)
  20.  
  21. self.window = cmds.window(self.window, title=self.title, widthHeight=self.size)
  22.  
  23. # define window UI
  24. self.mainForm = cmds.formLayout(numberOfDivisions = 100);
  25.  
  26. self.titleDisplay = cmds.text(label = self.title, align="center", font='boldLabelFont')
  27. cmds.formLayout(self.mainForm, edit=True, attachForm=( [self.titleDisplay, 'top', 5],
  28. [self.titleDisplay, 'left', 5],
  29. [self.titleDisplay, 'right', 5] ))
  30.  
  31.  
  32. self.titleSeperator = cmds.separator();
  33. cmds.formLayout(self.mainForm, edit=True, attachControl=[self.titleSeperator, 'top', 10, self.titleDisplay],
  34. attachForm=([self.titleSeperator, 'left', 5],
  35. [self.titleSeperator, 'right', 5] ))
  36.  
  37. self.btnApplyDup = cmds.button(label='Apply', height=30, width=150, command=self.ApplyDupBtnCmd);
  38. cmds.formLayout(self.mainForm, edit=True, attachControl=[self.btnApplyDup, 'top', 250, self.titleDisplay],
  39. attachForm=[self.btnApplyDup, 'left', 425])
  40.  
  41. self.numFloorsSlider = cmds.intSliderGrp(label="Number of Floors:", min=0, max=50, value=0, step=1, field=True )
  42. cmds.formLayout(self.mainForm, edit=True, attachForm=([self.numFloorsSlider , 'left', -10],
  43. [self.numFloorsSlider , 'top', 100],
  44. [self.numFloorsSlider , 'left', 5]))
  45.  
  46. self.floorSpacingSlider = cmds.intSliderGrp(label="Floor Spacing:", min=0, max=50, value=0, step=1, field=True )
  47. cmds.formLayout(self.mainForm, edit=True, attachForm=([self.floorSpacingSlider , 'left', -10],
  48. [self.floorSpacingSlider , 'top', 150],
  49. [self.floorSpacingSlider , 'left', 5]))
  50.  
  51. self.btnFolderSet = cmds.button(label='Set Building Floor Folder', height=30, width=150, command=self.SetFolderBtnCmd);
  52. cmds.formLayout(self.mainForm, edit=True, attachControl=[self.btnFolderSet, 'top', 20, self.titleDisplay],
  53. attachForm=[self.btnFolderSet, 'left', 5])
  54.  
  55. self.txtFieldFolderLocation = cmds.textField(text='set location')
  56. cmds.formLayout(self.mainForm, edit=True, attachControl=([self.txtFieldFolderLocation, 'top', 20, self.titleDisplay],
  57. [self.txtFieldFolderLocation, 'left', 5, self.btnFolderSet]),
  58. attachForm=[self.txtFieldFolderLocation, 'right', 5])
  59.  
  60. cmds.showWindow();
  61.  
  62. #Set Buildings Floor Folder
  63.  
  64. def SetFolderBtnCmd(self, *args):
  65. cmds.fileBrowserDialog(mode=4, fc=self.buildingsFloorFolder, an='Set Folder', om='Reference')
  66.  
  67. #Folder Directory function
  68.  
  69. def buildingsFloorFolder(self, fileName, fileType):
  70. cmds.textField(self.txtFieldFolderLocation, edit=True, text=fileName);
  71.  
  72. #setfolderbutton
  73. def ApplyDupBtnCmd(self, *args):
  74.  
  75. path = cmds.textField(self.txtFieldFolderLocation, query=True, text=True)
  76.  
  77. files =[]
  78.  
  79. for r, d, f in os.walk(path):
  80. for file in f:
  81. files.append(os.path.join(r, file))
  82.  
  83. print(files)
  84.  
  85. #Slider Function
  86.  
  87. xspace = cmds.intSliderGrp(self.numFloorsSlider, q=True, value=True)
  88.  
  89. numCopies = xspace
  90.  
  91.  
  92.  
  93. for i in range (numCopies):
  94.  
  95. #newCopy = cmds.duplicate(item)
  96. floorFile = files[random.randint(0, len(files)) - 1]
  97. newCopy = cmds.file(floorFile, i=True, returnNewNodes=True)
  98.  
  99. fSpace = cmds.intSliderGrp(self.floorSpacingSlider, q=True, value=True)
  100.  
  101. cmds.move(0, fSpace * (i+1), 0, newCopy[0], ws=True)
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108. myBuilding = HP_BuildingGenerator();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement