Advertisement
Guest User

Untitled

a guest
May 17th, 2014
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.46 KB | None | 0 0
  1. import maya.cmds as mc
  2. from PySide import QtGui as qtg
  3. from PySide import QtCore as qtc
  4.  
  5. def ctl_changed( value ):
  6.     if value < 0:
  7.         mc.polySlideEdgeCtx( 'customPolySlideEdgeContext', e=True, us=False )
  8.         mc.inViewMessage(smg='Snapping disabled', fade=True, pos='topCenter')
  9.     else:
  10.         mc.polySlideEdgeCtx( 'customPolySlideEdgeContext', e=True, us=True, sp=value )
  11.         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')
  12.  
  13. def connectEdgesTool( default_snap_value=0 ):
  14.     edges = mc.filterExpand( sm=32 )
  15.     if edges is not None and len(edges) > 1:
  16.         mc.undoInfo(ock=True)    
  17.         if len(edges)==2:
  18.             if len(mc.ls(mc.polyListComponentConversion(mc.polyListComponentConversion(edges, tv=True), tf=True, internal=True), fl=True)) != 1:
  19.                 mc.polySelectSp( r=True )
  20.         else:
  21.             mc.polySelectSp( r=True )
  22.         before_vertices = mc.ls( mc.polyListComponentConversion(edges, tv=True), fl=True)
  23.         mc.polyConnectComponents()
  24.         after_vertices = mc.ls( mc.polyListComponentConversion(edges, tv=True), fl=True)
  25.         mc.polySelectSp(list( set(after_vertices)-set(before_vertices) ), l=True)
  26.         mc.select( mc.polyListComponentConversion(te=True, internal=True) )
  27.         if not mc.polySlideEdgeCtx('customPolySlideEdgeContext', q=True, ex=True):  mc.polySlideEdgeCtx('customPolySlideEdgeContext', a=True)
  28.         spinbox = ui.qtg.QSpinBox()
  29.         spinbox.setWindowFlags( qtc.Qt.FramelessWindowHint )
  30.         spinbox.setButtonSymbols( qtg.QAbstractSpinBox.NoButtons )
  31.         spinbox.setAlignment( qtc.Qt.AlignCenter )
  32.         spinbox.setStyleSheet( 'QWidget {font-weight:bold; border: 2px solid #444444; border-radius: 0px; background: black; selection-background-color: #666666; selection-color: black;}' )
  33.         spinbox.setMinimum(-1)
  34.         spinbox.valueChanged.connect( ctl_changed )
  35.         spinbox.setFixedSize(40,30)
  36.         spinbox.move( qtg.QCursor().pos()+qtc.QPoint(200,0) )
  37.         spinbox.show()
  38.         ctl_changed( default_snap_value )
  39.         mc.setToolTo( 'customPolySlideEdgeContext' )
  40.         mc.scriptJob( ro=True, e=['PostToolChanged', spinbox.destroy] )
  41.         mc.undoInfo(cck=True)
  42.     else:
  43.         mc.inViewMessage(smg='Bad selection !!! Please select some edges', fade=True, pos='topCenter')
  44.         raise RuntimeError('Bad selection !!! Please select some edges')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement