cwisbg

spiderConnectCv

May 23rd, 2016
458
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. #spider connect Crv
  2. # rev 01
  3. from pymel.core import *
  4. import math
  5. import random as r
  6. import time
  7. start = time.clock()
  8. def grpr(name):
  9. g = ls(name)
  10. if not g:
  11. g = group(n=name,em=1)
  12. else:
  13. g = g[0]
  14. return g
  15. def grprk(name):
  16. g = ls(name)
  17. if g:
  18. delete(g)
  19. g = group(n=name,em=1)
  20. return g
  21. def getPiv(s):
  22. select(s)
  23. setToolTo('Move')
  24. piv = manipMoveContext('Move', q=True, p=True,m=2)
  25. return piv
  26. def getDist(s1,s2,s1t,s2t):
  27. dist = math.sqrt((s2t[0] - s1t[0])**2 + (s2t[1] - s1t[1])**2 + (s2t[2] - s1t[2])**2)
  28. return dist
  29. sl = selected()
  30. dlist = []
  31. crvGrp = grpr("crvGrp_lv2")
  32. clusterGrp = grpr("cluster_grp")
  33. doneList = []
  34.  
  35.  
  36. DistanceAmount = 1
  37. toleranceAmnt = .1
  38. droop = 1
  39.  
  40. i=1
  41. x=0
  42. rl = 0
  43. sv = []
  44. ss = []
  45. select(cl=1)
  46. for s in sl:
  47. xform(s,cp=1)
  48. if i == len(sl):# stop at the end
  49. pass
  50. else:
  51. if rl:
  52. dc = sl[i],s
  53. else:
  54. dc = ss, s
  55. if dc in doneList:
  56. pass
  57. else:
  58. doneList.append(dc)
  59. for ss in sl:
  60. tt = 0
  61. if s != ss:
  62. if len(sl) <= 2:
  63. dist = DistanceAmount
  64. tt = 1
  65. else:
  66. s1t = getPiv(s)
  67. s2t = getPiv(ss)
  68. dist = getDist(s,ss,s1t,s2t)
  69. #print dist, DistanceAmount - toleranceAmnt,DistanceAmount + toleranceAmnt
  70. if dist > DistanceAmount - toleranceAmnt and dist < DistanceAmount + toleranceAmnt:
  71. if tt:
  72. s1t = getPiv(s)
  73. s2t = getPiv(ss)
  74. ddd = getDist(s,ss,s1t,s2t)
  75. print "distance is ", ddd
  76. crvName = str(s)+str(ss)+"_crv_"
  77. ccCheck = 0
  78. ccCheck2 = 0
  79. else:
  80. crvName = str(s)+str(ss)+"_crv"
  81. ccCheck = ls(str(s)+str(ss)+"_crv")
  82. ccCheck2 = ls(str(ss)+str(s)+"_crv")
  83.  
  84. if ccCheck:
  85. pass
  86. elif ccCheck2:
  87. pass
  88. else:
  89. """
  90. rcv1 = r.randint(2,len(s.cv)-2)
  91. rcv2 = r.randint(2,len(ss.cv)-2)
  92.  
  93. s1t = getPiv(s.cv[rcv1])
  94. s2t = getPiv(ss.cv[rcv2])
  95.  
  96. """
  97. s1t = [0,1,0]
  98. s2t = [1,0,1]
  99.  
  100.  
  101.  
  102.  
  103. cc = curve(p = [s1t,s2t],d=1, n = crvName)
  104. ccR = rebuildCurve(cc,ch=1,rpo=1,rt=0,end=1,kr=0, kcp=0,kep=1,kt=0,s=3,d=3,tol=0.01)
  105. """
  106.  
  107. crvCluster = cluster(cc.cv[0], n = "{0}_cluster2".format("test"))
  108. crvCluster2 = cluster(cc.cv[1], n = "{0}_cluster1".format("test1"))
  109. parent(crvCluster[1], clusterGrp)
  110. parent(crvCluster2[1], clusterGrp)
  111.  
  112. rpc = r.uniform(.1,.9)
  113. rpc1 = r.uniform(.1,.9)
  114.  
  115. attachToCrv = pathAnimation(crvCluster[1],fm=1, su = rpc, c = s)
  116. attachToCrv1 = pathAnimation(crvCluster2[1],fm=1,su = rpc1, c = ss)
  117. poMarker = listConnections(attachToCrv+".positionMarkerTime[0]")
  118. poMarker1 = listConnections(attachToCrv1+".positionMarkerTime[0]")
  119. ccR = rebuildCurve(cc,ch=1,rpo=1,rt=0,end=1,kr=0, kcp=0,kep=1,kt=0,s=10,d=3,tol=0.01)
  120. setAttr(poMarker[0]+".visibility",0)
  121. setAttr(poMarker1[0]+".visibility",0)
  122. setAttr(crvCluster[1]+".visibility",0)
  123. setAttr(crvCluster2[1]+".visibility",0)
  124. setAttr(attachToCrv+".uValue", rpc)
  125. setAttr(attachToCrv1+".uValue", rpc1)
  126. """
  127.  
  128.  
  129. parent(ccR[0],crvGrp)
  130. xform(ccR,cp=1)
  131.  
  132.  
  133.  
  134.  
  135. rl=1
  136. i+=1
  137. select(sl)
  138. elapsedChunk = (time.clock() - start)
  139. print "done, took:", elapsedChunk
Advertisement
Add Comment
Please, Sign In to add comment