Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # close check
- # version- Work
- # cwisbg.com
- from pymel.core import *
- import time
- import math
- def getDistance(a, b): # d = getDistance(a,b)
- pointA = a.getTranslation()
- pointB = b.getTranslation()
- d = math.sqrt( math.pow( pointA[0] - pointB[0], 2) + math.pow( pointA[1] - pointB[1], 2) + math.pow( pointA[2] - pointB[2], 2) )
- return d
- def chunks(l, n):# split list into chunchs
- return [l[i:i+n] for i in range(0, len(l), n)]
- def checkDistance(list):
- checkedList = []
- closeList = []
- for l in list:
- for ll in list:
- a = str(l),str(ll)
- if l == ll or a in checkedList:
- pass
- else:
- a = str(ll),str(l)
- print a
- checkedList.append(a)
- a = str(l),str(ll)
- checkedList.append(a)
- d = getDistance(l,ll)
- if d < 1:
- print d
- closeList.append(l)
- closeList.append(ll)
- return closeList
- def chunker(l):# split list into chunchs, chunck by n
- if len(l) > 100:
- x = 10
- else:
- x = 2
- h = len(l)/x # half of lenght
- m = int(h/5) # middle finder
- h1 = l[h:] # first half of list
- h2 = l[:h] # second half of list
- mc = h1[:1] # middle half one
- mc2 = h2[-1:] # middle half two
- a = h1,mc,mc2,h2 # chunck lists
- chunck = a
- return chunck
- sl = selected()
- print len(sl)
- #________________________________________
- start1 = time.clock()
- chunckList = chunker(sl)
- #select(cl=1)
- for c in chunckList:
- closeList = checkDistance(c)
- elapsed1 = (time.clock() - start1)
- """
- #________________________________________
- start2 = time.clock()
- #
- closeList2 = checkDistance(sl)
- elapsed2 = (time.clock() - start2)
- print "elapsed2 done, took:", elapsed2
- """
- """
- #_______________________________________
- start3 = time.clock()
- #select(cl=1)
- ccc = chunks(sl,10)
- for c in ccc:
- print c
- closeList = checkDistance(c)
- #select(closeList)
- elapsed3 = (time.clock() - start3)
- print "elapsed3 done, took:", elapsed3
- """
- select(cl=1)
- select(closeList,add=1)
- print "elapsed1 done, took:", elapsed1
- """
- elapsed1 done, took: 1.77342152535
- elapsed2 done, took: 5.1331124081
- elapsed3 done, took: 0.266813467869
- """
Advertisement
Add Comment
Please, Sign In to add comment