Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import maya.cmds as cmds
- import maya.mel as mel
- import maya.OpenMayaUI as apiUI
- import os, sys
- import random
- #importar UI pyside libs
- try:
- from PySide2.QtCore import *
- from PySide2.QtGui import *
- from PySide2.QtWidgets import *
- from PySide2.QtUiTools import *
- from shiboken2 import wrapInstance
- except ImportError:
- from PySide2.QtCore import *
- from PySide2.QtGui import *
- from PySide2.QtWidgets import *
- from PySide2.QtUiTools import *
- from shiboken2 import wrapInstance
- def getMayaWindow():
- ptr = apiUI.MQtUtil.mainWindow()
- if ptr is not None:
- return wrapInstance(long(ptr),QWidget)
- class HomeworkWindow(QMainWindow):
- def __init__(self, parent = getMayaWindow()):
- super(HomeworkWindow,self).__init__()
- self.setWindowTitle("Cloud Generator")
- self.winWidth = 600
- self.winHeight = 300
- self.setGeometry(10,20, self.winWidth,self.winHeight)
- self.setWindowFlags(Qt.Tool)
- self.setAttribute(Qt.WA_DeleteOnClose)
- self.setWindowFlags(Qt.WindowStaysOnTopHint)
- #set initialize
- self.initUi()
- def initUi(self):
- """
- method for initializing the UI
- """
- #Create a default window widget
- mainWidget = QWidget()
- self.mainLayout = QVBoxLayout()
- #create items in UI
- self.loadObjUi()
- self.executeActivation()
- self.check_OVR()
- #set Signals and slots
- self.loadObjButton.clicked.connect(self.mainLoadObj)
- self.ActivateButton.clicked.connect(self.randomizeTranslate)
- self.ActivateButton.clicked.connect(self.randomizeRotation)
- self.ActivateButton.clicked.connect(self.randomizeSize)
- #self.translateOverrideCB.stateChanged.connect(self.trans_Disable_LE)
- # oRide_Trans = translateOverrideCB.isChecked()
- # if oRide_Trans == True:
- # self.translateLineEdit_izq.setEnabled(False)
- #self.translateOverrideCB.isChecked(self.lockedCBox)
- #Parent widget to layout and Layout to QMainWindow
- mainWidget.setLayout(self.mainLayout)
- self.setCentralWidget(mainWidget)
- #Show UI
- self.show()
- # def trans_Disable_LE(self, state):
- # if state == QtCore.QT.Checked:
- # self.translateLineEdit_izq.setEnabled(False)
- # self.translateLineEdit_der.setEnabled(False)
- def check_OVR(self):
- Response = "hola"
- print Response
- def loadObjUi(self):
- """
- method for adding the UI elements for the Load Obj
- """
- #label items
- loadObjLabel = QLabel("Load Object")
- #Line Edit items
- self.loadObjLineEdit = QLineEdit()
- self.loadObjLineEdit.setEnabled(False)
- #Button Edit Items
- self.loadObjButton = QPushButton("<<Load")
- self.loadObjButton.setToolTip("Load Custom Object")
- #Create Layout
- loadObjLayout = QHBoxLayout()
- loadObjLayout.addWidget(loadObjLabel)
- loadObjLayout.addWidget(self.loadObjLineEdit)
- loadObjLayout.addWidget(self.loadObjButton)
- #create objects for translation
- #label items
- translationObjLabel = QLabel("translate")
- rotateObjLabel = QLabel("Rotate")
- sizeObjLabel = QLabel("Scale")
- #Line Edit items
- self.translateLineEdit_izq = QLineEdit()
- self.rotateLineEdit_izq = QLineEdit()
- self.scaleLineEdit_izq = QLineEdit()
- self.translateLineEdit_izq.setEnabled(True)
- self.rotateLineEdit_izq.setEnabled(True)
- self.scaleLineEdit_izq.setEnabled(True)
- self.translateLineEdit_der = QLineEdit()
- self.rotateLineEdit_der = QLineEdit()
- self.scaleLineEdit_der = QLineEdit()
- self.translateLineEdit_der.setEnabled(True)
- self.rotateLineEdit_der.setEnabled(True)
- self.scaleLineEdit_der.setEnabled(True)
- #CheckBox Items
- translateOverrideCB = QCheckBox("Override")
- rotateOverrideCB = QCheckBox("Override")
- scaleOverrideCB = QCheckBox("Override")
- #create layout for translation line
- translateLayout = QHBoxLayout()
- translateLayout.addWidget(translationObjLabel)
- translateLayout.addWidget(self.translateLineEdit_izq)
- translateLayout.addWidget(self.translateLineEdit_der)
- translateLayout.addWidget(translateOverrideCB)
- rotateLayout = QHBoxLayout()
- rotateLayout.addWidget(rotateObjLabel)
- rotateLayout.addWidget(self.rotateLineEdit_izq)
- rotateLayout.addWidget(self.rotateLineEdit_der)
- rotateLayout.addWidget(rotateOverrideCB)
- scaleLayout = QHBoxLayout()
- scaleLayout.addWidget(sizeObjLabel)
- scaleLayout.addWidget(self.scaleLineEdit_izq)
- scaleLayout.addWidget(self.scaleLineEdit_der)
- scaleLayout.addWidget(scaleOverrideCB)
- #Add Layout to main Window
- self.mainLayout.addLayout(loadObjLayout)
- self.mainLayout.addLayout(translateLayout)
- self.mainLayout.addLayout(rotateLayout)
- self.mainLayout.addLayout(scaleLayout)
- def executeActivation(self):
- """
- method for executing random translate
- """
- #Create button
- self.ActivateButton = QPushButton("Activation")
- #parent under main Layout
- ActivateBtLayout = QHBoxLayout()
- ActivateBtLayout.addWidget(self.ActivateButton)
- self.mainLayout.addLayout(ActivateBtLayout)
- def mainLoadObj(self):
- """method for loading objects into the Ui LineEdit
- """
- #grab item from maya
- obj = cmds.ls(sl = True)[0]
- self.loadObjLineEdit.setText(obj)
- def randomizeTranslate(self):
- """
- method for randomizing Location
- """
- #get text from UI
- objName = str(self.loadObjLineEdit.text())
- minTrans = int(self.translateLineEdit_izq.text())
- maxTrans = int(self.translateLineEdit_der.text())
- randomX_trans = random.randrange(minTrans,maxTrans)
- randomY_trans = random.randrange(minTrans,maxTrans)
- randomZ_trans = random.randrange(minTrans,maxTrans)
- cmds.setAttr(objName+ ".translate", randomX_trans, randomY_trans, randomZ_trans, type = "double3")
- def randomizeRotation(self):
- """
- method for randomizing Location
- """
- #get text from UI
- objName = str(self.loadObjLineEdit.text())
- min_Rot = int(self.rotateLineEdit_izq.text())
- max_Rot = int(self.rotateLineEdit_der.text())
- randomX_rot = random.randrange(min_Rot, max_Rot)
- randomY_rot = random.randrange(min_Rot, max_Rot)
- randomZ_rot = random.randrange(min_Rot, max_Rot)
- cmds.setAttr(objName+ ".rotate", randomX_rot, randomY_rot, randomZ_rot, type = "double3")
- def randomizeSize(self):
- """
- method for randomizing Location
- """
- #get text from UI
- objName = str(self.loadObjLineEdit.text())
- min_Size = int(self.scaleLineEdit_izq.text())
- max_Size = int(self.scaleLineEdit_der.text())
- randomX_size = random.randrange(min_Size, max_Size)
- randomY_size = random.randrange(min_Size, max_Size)
- randomZ_size = random.randrange(min_Size, max_Size)
- cmds.setAttr(objName+ ".scale", randomX_size, randomY_size, randomZ_size, type = "double3")
- def showUi():
- global win
- try:
- win.close()
- except:
- pass
- win = HomeworkWindow()
- showUi()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement