1 # -*- coding: utf-8 -*-
4 from geomsmesh import geompy
6 # -----------------------------------------------------------------------------
7 # --- trouver les vertices extremites d'un wire
9 def findWireEndVertices(aWire, getNormals=False):
11 trouver les vertices extremites d'un wire
12 calcul optionnel des tangentes. Attention à la tolérance qui peut être élevée (> 0.001)
15 if geompy.NumberOfEdges(aWire) > 1:
16 edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"], False)
27 vert = geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], False)
30 v0 = geompy.MakeVertexOnCurve(edge, 0.0)
31 n0 = geompy.MakeTangentOnCurve(edge, 0.0)
32 v1 = geompy.MakeVertexOnCurve(edge, 1.0)
33 n1 = geompy.MakeTangentOnCurve(edge, 1.0)
34 dist = geompy.MinDistance(v0, vert[0])
35 logging.debug("distance %s", dist)
40 for i, sub in enumerate(vertices):
41 subid = geompy.GetSubShapeID(aWire, sub)
42 if subid in idsubs.keys():
43 idsubs[subid].append(sub)
47 geompy.addToStudyInFather(aWire, sub, name)
49 idnorm[subid] = normals[i]
51 geompy.addToStudyInFather(aWire, normals[i], name)
52 logging.debug("idsubs: %s", idsubs)
53 for k, v in idsubs.iteritems():
55 shortList.append(v[0])
57 shortNorm.append(idnorm[k])
59 return shortList, shortNorm