1 # -*- coding: utf-8 -*-
4 from geomsmesh import geompy
6 # -----------------------------------------------------------------------------
7 # --- trouver les vertices intermediaires d'un wire
9 def findWireIntermediateVertices(aWire, getNormals=False):
11 trouver les vertices d'un wire qui ne sont pas aux extremités
12 calcul optionnel des tangentes. Attention à la tolérance qui peut être élevée (> 0.001)
15 edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"], False)
24 vert = geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], False)
27 v0 = geompy.MakeVertexOnCurve(edge, 0.0)
28 n0 = geompy.MakeTangentOnCurve(edge, 0.0)
29 v1 = geompy.MakeVertexOnCurve(edge, 1.0)
30 n1 = geompy.MakeTangentOnCurve(edge, 1.0)
31 dist = geompy.MinDistance(v0, vert[0])
32 logging.debug("distance %s", dist)
37 for i, sub in enumerate(vertices):
38 subid = geompy.GetSubShapeID(aWire, sub)
39 if subid in idsubs.keys():
40 idsubs[subid].append(sub)
44 geompy.addToStudyInFather(aWire, sub, name)
46 idnorm[subid] = normals[i]
48 geompy.addToStudyInFather(aWire, normals[i], name)
49 for k, v in idsubs.iteritems():
51 shortList.append(v[0])
53 shortNorm.append(idnorm[k])
55 return shortList, shortNorm