Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PySide2 import QtWidgets,QtCore, QtGui
- import maya.cmds as mc
- import maya.mel as mm
- import maya.api.OpenMaya as om2
- from maya.app.general.mayaMixin import MayaQWidgetDockableMixin
- from functools import partial
- class UI(MayaQWidgetDockableMixin, QtWidgets.QWidget):
- def __init__(self, *args, **kwargs):
- super(UI, self).__init__(*args, **kwargs)
- self.timer = None
- layout = QtWidgets.QVBoxLayout(self)
- hl = QtWidgets.QHBoxLayout()
- layout.addLayout(hl)
- self.refObjField = QtWidgets.QLineEdit()
- label = QtWidgets.QLabel("snap mesh: ")
- self.setBtn = QtWidgets.QPushButton("<<")
- self.xrayOnBtn = QtWidgets.QPushButton("x-ray on")
- self.xrayOffBtn = QtWidgets.QPushButton("x-ray off")
- hl.addWidget(label)
- hl.addWidget(self.refObjField)
- hl.addWidget(self.setBtn)
- hl.addWidget(self.xrayOnBtn)
- hl.addWidget(self.xrayOffBtn)
- self.goBtn = QtWidgets.QPushButton("start tool")
- layout.addWidget(self.goBtn)
- self.setBtn.clicked.connect(self.setRef)
- self.goBtn.clicked.connect(self.startTool)
- self.xrayOnBtn.clicked.connect(partial(self.xrayToggle,1))
- self.xrayOffBtn.clicked.connect(partial(self.xrayToggle, 0))
- def xrayToggle(self, val):
- snapMesh = self.refObjField.text()
- mc.displaySurface(snapMesh, x=val)
- def setRef(self):
- sel = mc.ls(sl=1)[0]
- self.refObjField.setText(sel)
- def startTool(self):
- snapMesh = self.refObjField.text()
- mc.displaySurface(snapMesh, x=1)
- mc.setToolTo("CreatePolyCubeCtx")
- self.timer = QtCore.QBasicTimer()
- self.timer.start(100, self)
- def timerEvent(self, event):
- currCtx = mm.eval('currentCtx')
- if currCtx == 'CreatePolyCubeCtx':
- return
- snapMesh = self.refObjField.text()
- mc.displaySurface(snapMesh, x=0)
- self.stopTimer()
- def stopTimer(self):
- if self.timer:
- self.timer.stop()
- self.timer = None
- ui = UI()
- ui.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement