- name = "verticeEdgesFondIn%d"%iedf
- geomPublishInFather(initLog.debug, partitionPeauFissFond, centre, name)
- norm = geompy.MakeTangentOnCurve(localEdgeInFondFiss, u)
- geomPublishInFather(initLog.debug, partitionPeauFissFond, centre, "norm%d"%iedf)
- cercle = geompy.MakeCircle(centre, norm, rayonPipe)
- geomPublishInFather(initLog.debug, partitionPeauFissFond, cercle, "cerclorig%d"%iedf)
- [vertex] = geompy.ExtractShapes(cercle, geompy.ShapeType["VERTEX"], False)
- vec1 = geompy.MakeVector(centre, vertex)
- vec2 = geompy.MakeVector(centre, ptPeau)
- angle = geompy.GetAngleRadians(vec1, vec2)
- # cas général : on reconstitue une portion de pipe, avec l'arête de couture qui coincide
- # avec la face de fissure, au niveau du débouché sur la face externe
- # cas dégénéré : le pipe débouche perpendiculairement à une surface plane à l'origine.
- # La partition filling / pipe reconstruit échoue.
- # - Si on partitionne le filling avec un simple pipe obtenu par extrusion droite du cercle,
- # cela donne un point en trop sur le cercle.
- # - Si on prend une vraie surface plane (pas un filling), on peut faire la partition avec
- # les pipes reconstruits
- logging.debug("angle=%s", angle)
- #if abs(angle) > 1.e-7:
- sommetAxe = geompy.MakeTranslationVector(centre, norm)
- pm = produitMixte(centre, vertex, ptPeau, sommetAxe)
- if pm > 0: # ajout de pi a (-)angle pour éviter des points confondus (partition échoue) dans les cas dégénérés
- cercle = geompy.MakeRotation(cercle, norm, angle + math.pi)
- else:
- cercle = geompy.MakeRotation(cercle, norm, -angle + math.pi)
- name = "cercle%d"%iedf
- geomPublishInFather(initLog.debug,partitionPeauFissFond, cercle, name)