Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import maya.cmds as cmds
- import os
- import random
- #class
- class HP_BuildingGenerator(object):
- #constructor function
- def __init__(self):
- self.window = 'BuildingWindow'
- self.title = 'Building Generator'
- self.size = (600, 350)
- self.createWindow()
- #create window function
- def createWindow(self):
- if cmds.window(self.window, exists=True):
- cmds.deleteUI(self.window, window=True)
- self.window = cmds.window(self.window, title=self.title, widthHeight=self.size)
- # define window UI
- self.mainForm = cmds.formLayout(numberOfDivisions = 100);
- self.titleDisplay = cmds.text(label = self.title, align="center", font='boldLabelFont')
- cmds.formLayout(self.mainForm, edit=True, attachForm=( [self.titleDisplay, 'top', 5],
- [self.titleDisplay, 'left', 5],
- [self.titleDisplay, 'right', 5] ))
- self.titleSeperator = cmds.separator();
- cmds.formLayout(self.mainForm, edit=True, attachControl=[self.titleSeperator, 'top', 10, self.titleDisplay],
- attachForm=([self.titleSeperator, 'left', 5],
- [self.titleSeperator, 'right', 5] ))
- self.btnApplyDup = cmds.button(label='Apply', height=30, width=150, command=self.ApplyDupBtnCmd);
- cmds.formLayout(self.mainForm, edit=True, attachControl=[self.btnApplyDup, 'top', 250, self.titleDisplay],
- attachForm=[self.btnApplyDup, 'left', 425])
- self.numFloorsSlider = cmds.intSliderGrp(label="Number of Floors:", min=0, max=50, value=0, step=1, field=True )
- cmds.formLayout(self.mainForm, edit=True, attachForm=([self.numFloorsSlider , 'left', -10],
- [self.numFloorsSlider , 'top', 100],
- [self.numFloorsSlider , 'left', 5]))
- self.floorSpacingSlider = cmds.intSliderGrp(label="Floor Spacing:", min=0, max=50, value=0, step=1, field=True )
- cmds.formLayout(self.mainForm, edit=True, attachForm=([self.floorSpacingSlider , 'left', -10],
- [self.floorSpacingSlider , 'top', 150],
- [self.floorSpacingSlider , 'left', 5]))
- self.btnFolderSet = cmds.button(label='Set Building Floor Folder', height=30, width=150, command=self.SetFolderBtnCmd);
- cmds.formLayout(self.mainForm, edit=True, attachControl=[self.btnFolderSet, 'top', 20, self.titleDisplay],
- attachForm=[self.btnFolderSet, 'left', 5])
- self.txtFieldFolderLocation = cmds.textField(text='set location')
- cmds.formLayout(self.mainForm, edit=True, attachControl=([self.txtFieldFolderLocation, 'top', 20, self.titleDisplay],
- [self.txtFieldFolderLocation, 'left', 5, self.btnFolderSet]),
- attachForm=[self.txtFieldFolderLocation, 'right', 5])
- cmds.showWindow();
- #Set Buildings Floor Folder
- def SetFolderBtnCmd(self, *args):
- cmds.fileBrowserDialog(mode=4, fc=self.buildingsFloorFolder, an='Set Folder', om='Reference')
- #Folder Directory function
- def buildingsFloorFolder(self, fileName, fileType):
- cmds.textField(self.txtFieldFolderLocation, edit=True, text=fileName);
- #setfolderbutton
- def ApplyDupBtnCmd(self, *args):
- path = cmds.textField(self.txtFieldFolderLocation, query=True, text=True)
- files =[]
- for r, d, f in os.walk(path):
- for file in f:
- files.append(os.path.join(r, file))
- print(files)
- #Slider Function
- xspace = cmds.intSliderGrp(self.numFloorsSlider, q=True, value=True)
- numCopies = xspace
- for i in range (numCopies):
- #newCopy = cmds.duplicate(item)
- floorFile = files[random.randint(0, len(files)) - 1]
- newCopy = cmds.file(floorFile, i=True, returnNewNodes=True)
- fSpace = cmds.intSliderGrp(self.floorSpacingSlider, q=True, value=True)
- cmds.move(0, fSpace * (i+1), 0, newCopy[0], ws=True)
- myBuilding = HP_BuildingGenerator();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement