Guest User

closest point

a guest
Dec 4th, 2014
1,561
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. import maya.api.OpenMaya as om2
  2. import maya.cmds as mc
  3.  
  4. def dagObjFromName(name):
  5.     sel = om2.MSelectionList()
  6.     sel.add(name)
  7.    
  8.     dag =sel.getDagPath(0)
  9.    
  10.     mobj = sel.getDependNode(0)
  11.    
  12.     return mobj, dag
  13.  
  14.  
  15. def locatorToPoint(locator):
  16.     pos = mc.xform(locator, q=1, rp=1, ws=1)
  17.     return om2.MPoint(pos[0], pos[1], pos[2],1.0)
  18.  
  19. def createLocatorAtClosestPoint(mySphere, myLocator):
  20.     obj,dag = dagObjFromName(mySphere) 
  21.     meshFn = om2.MFnMesh(dag)
  22.  
  23.     point = locatorToPoint(myLocator)
  24.  
  25.     resultPoint = meshFn.getClosestPoint(point,om2.MSpace.kWorld)[0]
  26.    
  27.     result = mc.spaceLocator()[0]
  28.    
  29.     mc.setAttr(result+'.t', resultPoint[0], resultPoint[1], resultPoint[2])
  30.  
  31.  
  32. mySphere = mc.polySphere()[0]
  33. myLocator = mc.spaceLocator()[0]
  34. # now move locator arround and execute
  35. createLocatorAtClosestPoint(mySphere, myLocator)
Advertisement
Add Comment
Please, Sign In to add comment