Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import maya.cmds as mc
- from PySide import QtGui as qtg
- from PySide import QtCore as qtc
- def ctl_changed( value ):
- if value < 0:
- mc.polySlideEdgeCtx( 'customPolySlideEdgeContext', e=True, us=False )
- mc.inViewMessage(smg='Snapping disabled', fade=True, pos='topCenter')
- else:
- mc.polySlideEdgeCtx( 'customPolySlideEdgeContext', e=True, us=True, sp=value )
- mc.inViewMessage(smg='Snapping to itself and %d points on both sides' % value if value > 1 else 'Snapping to itself only', fade=True, pos='topCenter')
- def connectEdgesTool( default_snap_value=0 ):
- edges = mc.filterExpand( sm=32 )
- if edges is not None and len(edges) > 1:
- mc.undoInfo(ock=True)
- if len(edges)==2:
- if len(mc.ls(mc.polyListComponentConversion(mc.polyListComponentConversion(edges, tv=True), tf=True, internal=True), fl=True)) != 1:
- mc.polySelectSp( r=True )
- else:
- mc.polySelectSp( r=True )
- before_vertices = mc.ls( mc.polyListComponentConversion(edges, tv=True), fl=True)
- mc.polyConnectComponents()
- after_vertices = mc.ls( mc.polyListComponentConversion(edges, tv=True), fl=True)
- mc.polySelectSp(list( set(after_vertices)-set(before_vertices) ), l=True)
- mc.select( mc.polyListComponentConversion(te=True, internal=True) )
- if not mc.polySlideEdgeCtx('customPolySlideEdgeContext', q=True, ex=True): mc.polySlideEdgeCtx('customPolySlideEdgeContext', a=True)
- spinbox = ui.qtg.QSpinBox()
- spinbox.setWindowFlags( qtc.Qt.FramelessWindowHint )
- spinbox.setButtonSymbols( qtg.QAbstractSpinBox.NoButtons )
- spinbox.setAlignment( qtc.Qt.AlignCenter )
- spinbox.setStyleSheet( 'QWidget {font-weight:bold; border: 2px solid #444444; border-radius: 0px; background: black; selection-background-color: #666666; selection-color: black;}' )
- spinbox.setMinimum(-1)
- spinbox.valueChanged.connect( ctl_changed )
- spinbox.setFixedSize(40,30)
- spinbox.move( qtg.QCursor().pos()+qtc.QPoint(200,0) )
- spinbox.show()
- ctl_changed( default_snap_value )
- mc.setToolTo( 'customPolySlideEdgeContext' )
- mc.scriptJob( ro=True, e=['PostToolChanged', spinbox.destroy] )
- mc.undoInfo(cck=True)
- else:
- mc.inViewMessage(smg='Bad selection !!! Please select some edges', fade=True, pos='topCenter')
- raise RuntimeError('Bad selection !!! Please select some edges')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement