def line_extractor(): global extract extract=[] for data in stl_reader.data: #print("outer for : ",len(extract)) for pt1 in data.face: for pt2 in data.face[data.face.index(pt1)+1:]: if not extract: tmp_extract=stl_reader.facet() tmp_extract.vector=data.vector tmp_extract.face=[pt1,pt2] extract.append(tmp_extract) #print("if not : ",len(extract)) continue for tmp in extract: #print("inner for : ",len(extract)) #print("pt1 :{} pt2 :{} tmp.face :{}".format(pt1,pt2,tmp.face)) #print("brrrrrrrr",extract.index(tmp),extract.count(tmp),numpy.dot(data.vector,tmp.vector)) if (check_tol([pt1,pt2],tmp.face) or check_tol([pt2,pt1],tmp.face)) and numpy.dot(data.vector,tmp.vector)>=0.6: #print("Heeeyyy1") extract.remove(tmp) break elif [pt1,pt2] != tmp.face and [pt2,pt1] != tmp.face and extract.index(tmp)==len(extract)-1: tmp_extract=stl_reader.facet() tmp_extract.vector=data.vector tmp_extract.face=[pt1,pt2] extract.append(tmp_extract) break
Tol=0.3 #view_vector=[-1/(3**0.5),-1/(3**0.5),-1/(3**0.5)] #view_center=[10,10,10] multiplier=0.5 pi=math.pi cos=math.cos sin=math.sin visible_facets=[] projected_faces=[] lines=[] #extract=[] final_lines=[] tmp_extract=stl_reader.facet() def initialize(): visible_facets=[] projected_faces=[] lines=[] final_lines=[] def diff(v1,v2): d=[v1[0]-v2[0],v1[1]-v2[1],v1[2]-v2[2]] return d def scalar(x,v): return [v[0]*x,v[1]*x,v[2]*x]