Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.64 KB | None | 0 0
  1. import maya.cmds as cmds
  2. import maya.mel as mel
  3. import maya.OpenMayaUI as apiUI
  4. import os, sys
  5. import random
  6.  
  7. #importar UI pyside libs
  8. try:
  9.     from PySide2.QtCore import *
  10.     from PySide2.QtGui import *
  11.     from PySide2.QtWidgets import *
  12.     from PySide2.QtUiTools import *
  13.     from shiboken2 import wrapInstance
  14. except ImportError:
  15.     from PySide2.QtCore import *
  16.     from PySide2.QtGui import *
  17.     from PySide2.QtWidgets import *
  18.     from PySide2.QtUiTools import *
  19.     from shiboken2 import wrapInstance
  20.  
  21. def getMayaWindow():
  22.     ptr = apiUI.MQtUtil.mainWindow()
  23.  
  24.     if ptr is not None:
  25.         return wrapInstance(long(ptr),QWidget)
  26.  
  27. class HomeworkWindow(QMainWindow):
  28.     def __init__(self, parent = getMayaWindow()):
  29.         super(HomeworkWindow,self).__init__()
  30.  
  31.         self.setWindowTitle("Cloud Generator")
  32.         self.winWidth = 600
  33.         self.winHeight = 300
  34.         self.setGeometry(10,20, self.winWidth,self.winHeight)
  35.         self.setWindowFlags(Qt.Tool)
  36.         self.setAttribute(Qt.WA_DeleteOnClose)
  37.         self.setWindowFlags(Qt.WindowStaysOnTopHint)
  38.  
  39.         #set initialize
  40.         self.initUi()
  41.  
  42.     def initUi(self):
  43.         """
  44.         method for initializing the UI
  45.         """
  46.         #Create a default window widget
  47.         mainWidget = QWidget()
  48.         self.mainLayout = QVBoxLayout()
  49.  
  50.         #create items in UI
  51.         self.loadObjUi()
  52.         self.executeActivation()
  53.         self.check_OVR()
  54.  
  55.         #set Signals and slots
  56.         self.loadObjButton.clicked.connect(self.mainLoadObj)
  57.         self.ActivateButton.clicked.connect(self.randomizeTranslate)
  58.         self.ActivateButton.clicked.connect(self.randomizeRotation)
  59.         self.ActivateButton.clicked.connect(self.randomizeSize)
  60.  
  61.  
  62.         #self.translateOverrideCB.stateChanged.connect(self.trans_Disable_LE)
  63.  
  64.         # oRide_Trans = translateOverrideCB.isChecked()
  65.         # if oRide_Trans == True:
  66.         #   self.translateLineEdit_izq.setEnabled(False)
  67.  
  68.         #self.translateOverrideCB.isChecked(self.lockedCBox)
  69.  
  70.         #Parent widget to layout and Layout to QMainWindow
  71.         mainWidget.setLayout(self.mainLayout)
  72.         self.setCentralWidget(mainWidget)
  73.  
  74.  
  75.         #Show UI
  76.         self.show()
  77.  
  78.     # def trans_Disable_LE(self, state):
  79.     #   if state == QtCore.QT.Checked:
  80.     #       self.translateLineEdit_izq.setEnabled(False)
  81.     #       self.translateLineEdit_der.setEnabled(False)
  82.  
  83.     def check_OVR(self):
  84.         Response = "hola"
  85.         print Response
  86.  
  87.     def loadObjUi(self):
  88.         """
  89.         method for adding the UI elements for the Load Obj
  90.         """
  91.  
  92.         #label items
  93.         loadObjLabel = QLabel("Load Object")
  94.  
  95.         #Line Edit items
  96.         self.loadObjLineEdit = QLineEdit()
  97.         self.loadObjLineEdit.setEnabled(False)
  98.  
  99.         #Button Edit Items
  100.         self.loadObjButton = QPushButton("<<Load")
  101.         self.loadObjButton.setToolTip("Load Custom Object")
  102.  
  103.         #Create Layout
  104.         loadObjLayout = QHBoxLayout()
  105.         loadObjLayout.addWidget(loadObjLabel)
  106.         loadObjLayout.addWidget(self.loadObjLineEdit)
  107.         loadObjLayout.addWidget(self.loadObjButton)
  108.  
  109.         #create objects for translation
  110.         #label items
  111.         translationObjLabel = QLabel("translate")
  112.         rotateObjLabel = QLabel("Rotate")
  113.         sizeObjLabel = QLabel("Scale")
  114.  
  115.         #Line Edit items
  116.         self.translateLineEdit_izq = QLineEdit()
  117.         self.rotateLineEdit_izq = QLineEdit()
  118.         self.scaleLineEdit_izq = QLineEdit()
  119.  
  120.         self.translateLineEdit_izq.setEnabled(True)
  121.         self.rotateLineEdit_izq.setEnabled(True)
  122.         self.scaleLineEdit_izq.setEnabled(True)
  123.  
  124.         self.translateLineEdit_der = QLineEdit()
  125.         self.rotateLineEdit_der = QLineEdit()
  126.         self.scaleLineEdit_der = QLineEdit()
  127.  
  128.         self.translateLineEdit_der.setEnabled(True)
  129.         self.rotateLineEdit_der.setEnabled(True)
  130.         self.scaleLineEdit_der.setEnabled(True)
  131.  
  132.         #CheckBox Items
  133.         translateOverrideCB = QCheckBox("Override")
  134.         rotateOverrideCB = QCheckBox("Override")
  135.         scaleOverrideCB = QCheckBox("Override")
  136.  
  137.  
  138.         #create layout for translation line
  139.  
  140.         translateLayout = QHBoxLayout()
  141.         translateLayout.addWidget(translationObjLabel)
  142.         translateLayout.addWidget(self.translateLineEdit_izq)
  143.         translateLayout.addWidget(self.translateLineEdit_der)
  144.         translateLayout.addWidget(translateOverrideCB)
  145.  
  146.         rotateLayout = QHBoxLayout()
  147.         rotateLayout.addWidget(rotateObjLabel)
  148.         rotateLayout.addWidget(self.rotateLineEdit_izq)
  149.         rotateLayout.addWidget(self.rotateLineEdit_der)
  150.         rotateLayout.addWidget(rotateOverrideCB)
  151.  
  152.         scaleLayout = QHBoxLayout()
  153.         scaleLayout.addWidget(sizeObjLabel)
  154.         scaleLayout.addWidget(self.scaleLineEdit_izq)
  155.         scaleLayout.addWidget(self.scaleLineEdit_der)
  156.         scaleLayout.addWidget(scaleOverrideCB)
  157.  
  158.  
  159.         #Add Layout to main Window
  160.         self.mainLayout.addLayout(loadObjLayout)
  161.         self.mainLayout.addLayout(translateLayout)
  162.         self.mainLayout.addLayout(rotateLayout)
  163.         self.mainLayout.addLayout(scaleLayout)
  164.  
  165.  
  166.     def executeActivation(self):
  167.         """
  168.         method for executing random translate
  169.         """
  170.  
  171.         #Create button
  172.         self.ActivateButton = QPushButton("Activation")
  173.         #parent under main Layout
  174.         ActivateBtLayout = QHBoxLayout()
  175.         ActivateBtLayout.addWidget(self.ActivateButton)
  176.  
  177.         self.mainLayout.addLayout(ActivateBtLayout)
  178.  
  179.     def mainLoadObj(self):
  180.         """method for loading objects into the Ui LineEdit
  181.         """
  182.  
  183.         #grab item from maya
  184.         obj = cmds.ls(sl = True)[0]
  185.         self.loadObjLineEdit.setText(obj)
  186.  
  187.     def randomizeTranslate(self):
  188.         """
  189.         method for randomizing Location
  190.         """
  191.  
  192.         #get text from UI
  193.         objName = str(self.loadObjLineEdit.text())
  194.         minTrans = int(self.translateLineEdit_izq.text())
  195.         maxTrans = int(self.translateLineEdit_der.text())
  196.         randomX_trans = random.randrange(minTrans,maxTrans)
  197.         randomY_trans = random.randrange(minTrans,maxTrans)
  198.         randomZ_trans = random.randrange(minTrans,maxTrans)
  199.  
  200.         cmds.setAttr(objName+ ".translate", randomX_trans, randomY_trans, randomZ_trans, type = "double3")
  201.  
  202.     def randomizeRotation(self):
  203.         """
  204.         method for randomizing Location
  205.         """
  206.  
  207.         #get text from UI
  208.         objName = str(self.loadObjLineEdit.text())
  209.         min_Rot = int(self.rotateLineEdit_izq.text())
  210.         max_Rot = int(self.rotateLineEdit_der.text())
  211.         randomX_rot = random.randrange(min_Rot, max_Rot)
  212.         randomY_rot = random.randrange(min_Rot, max_Rot)
  213.         randomZ_rot = random.randrange(min_Rot, max_Rot)
  214.  
  215.         cmds.setAttr(objName+ ".rotate", randomX_rot, randomY_rot, randomZ_rot, type = "double3")
  216.  
  217.     def randomizeSize(self):
  218.         """
  219.         method for randomizing Location
  220.         """
  221.  
  222.         #get text from UI
  223.         objName = str(self.loadObjLineEdit.text())
  224.         min_Size = int(self.scaleLineEdit_izq.text())
  225.         max_Size = int(self.scaleLineEdit_der.text())
  226.         randomX_size = random.randrange(min_Size, max_Size)
  227.         randomY_size = random.randrange(min_Size, max_Size)
  228.         randomZ_size = random.randrange(min_Size, max_Size)
  229.  
  230.         cmds.setAttr(objName+ ".scale", randomX_size, randomY_size, randomZ_size, type = "double3")
  231.        
  232.        
  233. def showUi():
  234.     global win
  235.  
  236.     try:
  237.         win.close()
  238.     except:
  239.         pass
  240.  
  241.     win = HomeworkWindow()
  242.  
  243.  
  244. showUi()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement