mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-27 03:15:36 +05:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import logging
|
|
from geomsmesh import geompy
|
|
from geomsmesh import geomPublish
|
|
from geomsmesh import geomPublishInFather
|
|
import initLog
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# --- recherche et classement des edges du tore par propagate
|
|
|
|
def propagateTore(tore):
|
|
"""
|
|
Classement des edges du tore par une operation 'propagate'
|
|
@param tore partionné et coupé
|
|
@return (diams, circles, geners) edges dans le plan de fissure, edges demi circulaires,
|
|
edges selon la generatrice (liste de compounds)
|
|
"""
|
|
logging.info("start")
|
|
|
|
lencomp = []
|
|
compounds = geompy.Propagate(tore)
|
|
for i in range(len(compounds)):
|
|
#geomPublishInFather(initLog.debug, tore, compounds[i], 'edges' )
|
|
props = geompy.BasicProperties(compounds[i])
|
|
lencomp.append(props[0])
|
|
pass
|
|
minlen = min(lencomp)
|
|
maxlen = max(lencomp)
|
|
diams = []
|
|
geners = []
|
|
circles = []
|
|
for i in range(len(lencomp)):
|
|
if (lencomp[i]- minlen)/minlen < 0.01 :
|
|
diams.append(compounds[i])
|
|
elif (maxlen - lencomp[i])/lencomp[i] < 0.2 :
|
|
geners.append(compounds[i])
|
|
else:
|
|
circles.append(compounds[i])
|
|
|
|
geomPublishInFather(initLog.debug, tore, diams[0], 'diams0' )
|
|
geomPublishInFather(initLog.debug, tore, diams[1], 'diams1' )
|
|
geomPublishInFather(initLog.debug, tore, circles[0], 'circles0' )
|
|
geomPublishInFather(initLog.debug, tore, circles[1], 'circles1' )
|
|
geomPublishInFather(initLog.debug, tore, geners[0], 'geners' )
|
|
|
|
return diams, circles, geners
|