Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pymel.core import *
- # select list, then snap to object
- sl = selected()
- startL = spaceLocator(n="startL")
- endL = spaceLocator(n="endL")
- cp = createNode("closestPointOnMesh",n="snapperCheck")
- snapList = sl[:-1]
- snapto = sl[-1]
- snapto.getShape().worldMatrix[0] >> cp.inputMatrix
- startL.translate >> cp.inPosition
- cp.position >> endL.translate
- snapto.getShape().worldMesh[0] >> cp.inMesh
- for s in snapList:
- print s
- spap = s.listRelatives(p=1)
- l = spaceLocator(n="tempPose")
- pc = parentConstraint(s,l)
- st = l.getTranslation()
- delete(pc)
- move(startL, st)
- pc2 = pointConstraint(endL,s)
- closestVtx = getAttr(cp.closestVertexIndex)
- closestVtx = str(snapto.getShape())+".vtx["+str(closestVtx)+"]"
- target = polyListComponentConversion(closestVtx,fv=1,tuv=1)
- xy = polyEditUV(target,q=1,u=1,v=1)
- pc = pointOnPolyConstraint(target,s,w=1)
- setAttr(pc+"."+snapto+"U0",xy[0])
- setAttr(pc+"."+snapto+"V0",xy[1])
- delete(l,pc2)
- if spap:
- parent(s,spap)
- delete(cp,startL,endL,)
Advertisement
Add Comment
Please, Sign In to add comment