mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-04-03 00:34:29 +05:00
Merge branch 'V8_2_BR'
This commit is contained in:
commit
c7d720eb8a
@ -57,7 +57,7 @@ class cubeAngle(fissureGenerique):
|
|||||||
|
|
||||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/CubeAngleFiss.brep"), "BREP")
|
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/CubeAngleFiss.brep"), "BREP")
|
||||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionIDs(fondFiss, [4])
|
geompy.UnionIDs(fondFiss, [3])
|
||||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||||
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ from blocFissure import gmu
|
|||||||
dicoParams = dict(nomCas = 'cubeCoin',
|
dicoParams = dict(nomCas = 'cubeCoin',
|
||||||
maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/cubeFin.med'),
|
maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/cubeFin.med'),
|
||||||
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/cubeFin_Coin.brep"),
|
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/cubeFin_Coin.brep"),
|
||||||
edgeFissIds = [7],
|
edgeFissIds = [6],
|
||||||
lgInfluence = 50,
|
lgInfluence = 50,
|
||||||
meshBrep = (5,10),
|
meshBrep = (5,10),
|
||||||
rayonPipe = 10,
|
rayonPipe = 10,
|
||||||
|
@ -6,7 +6,7 @@ from blocFissure import gmu
|
|||||||
dicoParams = dict(nomCas = 'cubeMilieu',
|
dicoParams = dict(nomCas = 'cubeMilieu',
|
||||||
maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/cubeFin.med'),
|
maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/cubeFin.med'),
|
||||||
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/cubeFin_Milieu.brep"),
|
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/cubeFin_Milieu.brep"),
|
||||||
edgeFissIds = [7],
|
edgeFissIds = [6],
|
||||||
lgInfluence = 50,
|
lgInfluence = 50,
|
||||||
meshBrep = (5,10),
|
meshBrep = (5,10),
|
||||||
rayonPipe = 10,
|
rayonPipe = 10,
|
||||||
|
@ -61,7 +61,7 @@ class cylindre(fissureGenerique):
|
|||||||
|
|
||||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/FissInCylindre2.brep"), "BREP")
|
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/FissInCylindre2.brep"), "BREP")
|
||||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionIDs(fondFiss, [7])
|
geompy.UnionIDs(fondFiss, [6])
|
||||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||||
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ from blocFissure import gmu
|
|||||||
dicoParams = dict(nomCas = 'disque',
|
dicoParams = dict(nomCas = 'disque',
|
||||||
maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/disque.med'),
|
maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/disque.med'),
|
||||||
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/ellipse_disque.brep"),
|
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/ellipse_disque.brep"),
|
||||||
edgeFissIds = [4],
|
edgeFissIds = [3],
|
||||||
lgInfluence = 10,
|
lgInfluence = 10,
|
||||||
meshBrep = (0.5,2.5),
|
meshBrep = (0.5,2.5),
|
||||||
rayonPipe = 1.0,
|
rayonPipe = 1.0,
|
||||||
|
@ -34,7 +34,7 @@ class ellipse_1(fissureGenerique):
|
|||||||
# logging.info("genereGeometrieSaine %s", self.nomCas)
|
# logging.info("genereGeometrieSaine %s", self.nomCas)
|
||||||
# box = geompy.MakeBox(0, -500, 0, 400, 500, 800, "boiteSaine")
|
# box = geompy.MakeBox(0, -500, 0, 400, 500, 800, "boiteSaine")
|
||||||
# return [box]
|
# return [box]
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
def genereMaillageSain(self, geometriesSaines, meshParams):
|
def genereMaillageSain(self, geometriesSaines, meshParams):
|
||||||
logging.info("genereMaillageSain %s", self.nomCas)
|
logging.info("genereMaillageSain %s", self.nomCas)
|
||||||
@ -65,7 +65,7 @@ class ellipse_1(fissureGenerique):
|
|||||||
|
|
||||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1.brep"), "BREP")
|
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1.brep"), "BREP")
|
||||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionIDs(fondFiss, [4])
|
geompy.UnionIDs(fondFiss, [3])
|
||||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||||
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ class ellipse_2(ellipse_1):
|
|||||||
|
|
||||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1_pb.brep"), "BREP")
|
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1_pb.brep"), "BREP")
|
||||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionIDs(fondFiss, [4])
|
geompy.UnionIDs(fondFiss, [3])
|
||||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||||
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
||||||
|
|
||||||
|
@ -140,10 +140,11 @@ class fissure_Coude(fissureGenerique):
|
|||||||
|
|
||||||
# --- peau tube exterieur (PEAUEXT)
|
# --- peau tube exterieur (PEAUEXT)
|
||||||
|
|
||||||
cercle1 = geompy.MakeCircle(centre, OZ, de/2.)
|
Disk_3 = geompy.MakeDiskPntVecR(centre, OZ, de/2. +epais)
|
||||||
extru1 = geompy.MakePrismVecH(cercle1, OZ, l_tube_p1)
|
couronne1 = geompy.MakeCut(Disk_3, Disk_1)
|
||||||
revol1 = geompy.MakeRevolution(cercle1, axe, angleCoude*math.pi/180.0)
|
extru1 = geompy.MakePrismVecH(couronne1, OZ, l_tube_p1)
|
||||||
rot1 = geompy.MakeRotation(cercle1, axe, angleCoude*math.pi/180.0)
|
revol1 = geompy.MakeRevolution(couronne1, axe, angleCoude*math.pi/180.0)
|
||||||
|
rot1 = geompy.MakeRotation(couronne1, axe, angleCoude*math.pi/180.0)
|
||||||
extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
|
extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
|
||||||
externe = geompy.MakeFuse(extru1, revol1)
|
externe = geompy.MakeFuse(extru1, revol1)
|
||||||
externe = geompy.MakeFuse(extru2, externe)
|
externe = geompy.MakeFuse(extru2, externe)
|
||||||
@ -294,7 +295,7 @@ class fissure_Coude(fissureGenerique):
|
|||||||
|
|
||||||
azimut = -azimut # axe inverse / ASCOUF
|
azimut = -azimut # axe inverse / ASCOUF
|
||||||
axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1)
|
axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1)
|
||||||
|
|
||||||
if not lgInfluence:
|
if not lgInfluence:
|
||||||
lgInfluence = profondeur
|
lgInfluence = profondeur
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ class vis_1(fissureGenerique):
|
|||||||
|
|
||||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/visFiss.brep"), "BREP")
|
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/visFiss.brep"), "BREP")
|
||||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionIDs(fondFiss, [7, 9])
|
geompy.UnionIDs(fondFiss, [6, 8])
|
||||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||||
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
geompy.addToStudyInFather( shellFiss, fondFiss, 'fondFiss' )
|
||||||
|
|
||||||
|
@ -12,12 +12,12 @@ from sortEdges import sortEdges
|
|||||||
def construitEdgesRadialesDebouchantes(idisklim, idiskout, gptsdisks, raydisks,
|
def construitEdgesRadialesDebouchantes(idisklim, idiskout, gptsdisks, raydisks,
|
||||||
facesPipePeau, edgeRadFacePipePeau, nbsegCercle):
|
facesPipePeau, edgeRadFacePipePeau, nbsegCercle):
|
||||||
"""
|
"""
|
||||||
construction des listes d'edges radiales sur chaque extrémité débouchante
|
construction des listes d'edges radiales sur chaque extrémité débouchante
|
||||||
"""
|
"""
|
||||||
logging.info('start')
|
logging.info('start')
|
||||||
|
|
||||||
# --- listes de nappes radiales en filling à chaque extrémité débouchante
|
# --- listes de nappes radiales en filling à chaque extrémité débouchante
|
||||||
|
|
||||||
facesDebouchantes = [False, False]
|
facesDebouchantes = [False, False]
|
||||||
idFacesDebouchantes = [-1, -1] # contiendra les indices des faces disque débouchantes (facesPipePeau)
|
idFacesDebouchantes = [-1, -1] # contiendra les indices des faces disque débouchantes (facesPipePeau)
|
||||||
listNappes =[]
|
listNappes =[]
|
||||||
@ -47,7 +47,7 @@ def construitEdgesRadialesDebouchantes(idisklim, idiskout, gptsdisks, raydisks,
|
|||||||
geomPublish(initLog.debug, nappe, name)
|
geomPublish(initLog.debug, nappe, name)
|
||||||
facesDebouchantes[i] = True
|
facesDebouchantes[i] = True
|
||||||
listNappes.append(nappes)
|
listNappes.append(nappes)
|
||||||
|
|
||||||
# --- mise en correspondance avec les indices des faces disque débouchantes (facesPipePeau)
|
# --- mise en correspondance avec les indices des faces disque débouchantes (facesPipePeau)
|
||||||
for i, nappes in enumerate(listNappes):
|
for i, nappes in enumerate(listNappes):
|
||||||
if facesDebouchantes[i]:
|
if facesDebouchantes[i]:
|
||||||
@ -82,27 +82,48 @@ def construitEdgesRadialesDebouchantes(idisklim, idiskout, gptsdisks, raydisks,
|
|||||||
else:
|
else:
|
||||||
maxl = geompy.BasicProperties(edge)[0]
|
maxl = geompy.BasicProperties(edge)[0]
|
||||||
if maxl < 0.01: # problème MakeSection
|
if maxl < 0.01: # problème MakeSection
|
||||||
logging.debug("problème MakeSection recherche edge radiale %s, longueur trop faible: %s, utilisation partition", k, maxl)
|
logging.info("problème MakeSection recherche edge radiale %s, longueur trop faible: %s, utilisation partition", k, maxl)
|
||||||
partNappeFace = geompy.MakePartition([face, nappes[k]], [] , [], [], geompy.ShapeType["FACE"], 0, [], 0)
|
partNappeFace = geompy.MakePartition([face, nappes[k]], [] , [], [], geompy.ShapeType["FACE"], 0, [], 0)
|
||||||
edps= geompy.ExtractShapes(partNappeFace, geompy.ShapeType["EDGE"], False)
|
edps= geompy.ExtractShapes(partNappeFace, geompy.ShapeType["EDGE"], False)
|
||||||
ednouv = []
|
ednouv = []
|
||||||
for ii, ed in enumerate(edps):
|
for ii, ed in enumerate(edps):
|
||||||
|
dmax=100.
|
||||||
vxs = geompy.ExtractShapes(ed, geompy.ShapeType["VERTEX"], False)
|
vxs = geompy.ExtractShapes(ed, geompy.ShapeType["VERTEX"], False)
|
||||||
distx = [geompy.MinDistance(vx, face) for vx in vxs]
|
distx = [geompy.MinDistance(vx, face) for vx in vxs]
|
||||||
distx += [geompy.MinDistance(vx, nappes[k]) for vx in vxs]
|
distx += [geompy.MinDistance(vx, nappes[k]) for vx in vxs]
|
||||||
dmax = max(distx)
|
dmax = max(distx)
|
||||||
logging.debug(" dmax %s",dmax)
|
lgedge = geompy.BasicProperties(ed)[0]
|
||||||
if dmax < 0.01:
|
logging.debug(" dmax %s, longueur edge %s",dmax, lgedge)
|
||||||
|
if dmax < 0.01 and lgedge > 0.01:
|
||||||
ednouv.append(ed)
|
ednouv.append(ed)
|
||||||
logging.debug(" edges issues de la partition: %s", ednouv)
|
if (len(ednouv) > 0):
|
||||||
for ii, ed in enumerate(ednouv):
|
logging.debug(" edges issues de la partition: %s", ednouv)
|
||||||
geomPublish(initLog.debug, ed, "ednouv%d"%ii)
|
for ii, ed in enumerate(ednouv):
|
||||||
[edsorted, minl,maxl] = sortEdges(ednouv)
|
geomPublish(initLog.debug, ed, "ednouv%d"%ii)
|
||||||
logging.debug(" longueur edge trouvée: %s", maxl)
|
[edsorted, minl,maxl] = sortEdges(ednouv)
|
||||||
edge = edsorted[-1]
|
logging.debug(" longueur edge trouvée: %s", maxl)
|
||||||
|
edge = edsorted[-1]
|
||||||
|
else:
|
||||||
|
logging.info("problème partition recherche edge radiale %s", k)
|
||||||
|
vxs = geompy.ExtractShapes(partNappeFace, geompy.ShapeType["VERTEX"], False)
|
||||||
|
vxnouv=[]
|
||||||
|
for ii,vx in enumerate(vxs):
|
||||||
|
distx = geompy.MinDistance(vx, face)
|
||||||
|
distx += geompy.MinDistance(vx, nappes[k])
|
||||||
|
logging.debug("vertex distance: %s", distx)
|
||||||
|
if distx < 0.005:
|
||||||
|
vxnouv.append(vx)
|
||||||
|
logging.debug("nombre vertex candidats %s", len(vxnouv))
|
||||||
|
if len(vxnouv) >= 2:
|
||||||
|
eds = [geompy.MakeEdge(vxnouv[j],vxnouv[(j+1)%len(vxnouv)]) for j in range(len(vxnouv))]
|
||||||
|
[edsorted2, minl,maxl] = sortEdges(eds)
|
||||||
|
edge = edsorted2[-1]
|
||||||
|
logging.debug("lg edge: %s", maxl)
|
||||||
|
else:
|
||||||
|
logging.debug("problème recherche edge radiale %s non résolu", k)
|
||||||
edges.append(edge)
|
edges.append(edge)
|
||||||
name = 'edgeEndPipe%d'%k
|
name = 'edgeEndPipe%d'%k
|
||||||
geomPublish(initLog.debug, edge, name)
|
geomPublish(initLog.debug, edge, name)
|
||||||
listEdges.append(edges)
|
listEdges.append(edges)
|
||||||
|
|
||||||
return (listEdges, idFacesDebouchantes)
|
return (listEdges, idFacesDebouchantes)
|
@ -178,10 +178,10 @@ class fissureCoude(fissureGenerique):
|
|||||||
|
|
||||||
# --- peau tube exterieur (PEAUEXT)
|
# --- peau tube exterieur (PEAUEXT)
|
||||||
|
|
||||||
cercle1 = geompy.MakeCircle(centre, OZ, de/2.)
|
Disk_3 = geompy.MakeDiskPntVecR(centre, OZ, de/2. +epais)
|
||||||
extru1 = geompy.MakePrismVecH(cercle1, OZ, l_tube_p1)
|
extru1 = geompy.MakePrismVecH(Disk_3, OZ, l_tube_p1)
|
||||||
revol1 = geompy.MakeRevolution(cercle1, axe, angleCoude*math.pi/180.0)
|
revol1 = geompy.MakeRevolution(Disk_3, axe, angleCoude*math.pi/180.0)
|
||||||
rot1 = geompy.MakeRotation(cercle1, axe, angleCoude*math.pi/180.0)
|
rot1 = geompy.MakeRotation(Disk_3, axe, angleCoude*math.pi/180.0)
|
||||||
extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
|
extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
|
||||||
externe = geompy.MakeFuse(extru1, revol1)
|
externe = geompy.MakeFuse(extru1, revol1)
|
||||||
externe = geompy.MakeFuse(extru2, externe)
|
externe = geompy.MakeFuse(extru2, externe)
|
||||||
@ -338,13 +338,13 @@ class fissureCoude(fissureGenerique):
|
|||||||
self.elliptique = False
|
self.elliptique = False
|
||||||
if shapeFissureParams.has_key('elliptique'):
|
if shapeFissureParams.has_key('elliptique'):
|
||||||
self.elliptique = shapeFissureParams['elliptique']
|
self.elliptique = shapeFissureParams['elliptique']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
azimut = -azimut # axe inverse / ASCOUF
|
azimut = -azimut # axe inverse / ASCOUF
|
||||||
axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1)
|
axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1)
|
||||||
geomPublish(initLog.debug, axe,"axe")
|
geomPublish(initLog.debug, axe,"axe")
|
||||||
|
|
||||||
if not lgInfluence:
|
if not lgInfluence:
|
||||||
lgInfluence = profondeur
|
lgInfluence = profondeur
|
||||||
|
|
||||||
@ -377,7 +377,7 @@ class fissureCoude(fissureGenerique):
|
|||||||
lgfond = longueur -2*profondeur
|
lgfond = longueur -2*profondeur
|
||||||
angle = lgfond/(2*raybor)
|
angle = lgfond/(2*raybor)
|
||||||
pb = geompy.MakeVertex(raybor, 0, 0)
|
pb = geompy.MakeVertex(raybor, 0, 0)
|
||||||
pi = geompy.MakeVertex(rayint, 0, 0)
|
pi = geompy.MakeVertex(rayint, 0, 0)
|
||||||
pbl = geompy.MakeRotation(pb, OZ, angle)
|
pbl = geompy.MakeRotation(pb, OZ, angle)
|
||||||
pbr = geompy.MakeRotation(pb, OZ, -angle)
|
pbr = geompy.MakeRotation(pb, OZ, -angle)
|
||||||
geomPublish(initLog.debug, pbl,"pbl")
|
geomPublish(initLog.debug, pbl,"pbl")
|
||||||
@ -395,7 +395,7 @@ class fissureCoude(fissureGenerique):
|
|||||||
pt = geompy.MakeRotation(pil, axl, angi)
|
pt = geompy.MakeRotation(pil, axl, angi)
|
||||||
points.append(pt)
|
points.append(pt)
|
||||||
for i in range(nbp):
|
for i in range(nbp):
|
||||||
angi = angle -2.0*i*angle/nbp
|
angi = angle -2.0*i*angle/nbp
|
||||||
pt = geompy.MakeRotation(pi, OZ, angi)
|
pt = geompy.MakeRotation(pi, OZ, angi)
|
||||||
points.append(pt)
|
points.append(pt)
|
||||||
for i in range(nbp+1):
|
for i in range(nbp+1):
|
||||||
@ -407,30 +407,30 @@ class fissureCoude(fissureGenerique):
|
|||||||
pt = geompy.MakeTranslation(pt, 0, 0, -l_tube_p1)
|
pt = geompy.MakeTranslation(pt, 0, 0, -l_tube_p1)
|
||||||
pt = geompy.MakeRotation(pt, axe, alpha*math.pi/180.)
|
pt = geompy.MakeRotation(pt, axe, alpha*math.pi/180.)
|
||||||
points[i] = pt
|
points[i] = pt
|
||||||
wire0 = geompy.MakeInterpol(points[0:nbp+1])
|
wire0 = geompy.MakeInterpol(points[0:nbp+1])
|
||||||
wire1 = geompy.MakeInterpol(points[nbp:2*nbp+1])
|
wire1 = geompy.MakeInterpol(points[nbp:2*nbp+1])
|
||||||
wire2 = geompy.MakeInterpol(points[2*nbp:3*nbp+1])
|
wire2 = geompy.MakeInterpol(points[2*nbp:3*nbp+1])
|
||||||
#wiretube = geompy.MakeInterpol(points)
|
#wiretube = geompy.MakeInterpol(points)
|
||||||
wiretube=geompy.MakeWire([wire0,wire1,wire2])
|
wiretube=geompy.MakeWire([wire0,wire1,wire2])
|
||||||
geomPublish(initLog.debug, wiretube,"wiretube")
|
geomPublish(initLog.debug, wiretube,"wiretube")
|
||||||
|
|
||||||
pe = geompy.MakeVertex(rayext, 0, 0)
|
pe = geompy.MakeVertex(rayext, 0, 0)
|
||||||
pe = geompy.MakeRotation(pe, OZ, azimut*math.pi/180.)
|
pe = geompy.MakeRotation(pe, OZ, azimut*math.pi/180.)
|
||||||
pe = geompy.MakeTranslation(pe, 0, 0, -l_tube_p1)
|
pe = geompy.MakeTranslation(pe, 0, 0, -l_tube_p1)
|
||||||
pe = geompy.MakeRotation(pe, axe, alpha*math.pi/180.)
|
pe = geompy.MakeRotation(pe, axe, alpha*math.pi/180.)
|
||||||
|
|
||||||
arce = geompy.MakeArc(points[0], pe, points[-1])
|
arce = geompy.MakeArc(points[0], pe, points[-1])
|
||||||
geomPublish(initLog.debug, arce,"arce")
|
geomPublish(initLog.debug, arce,"arce")
|
||||||
|
|
||||||
facefiss = geompy.MakeFaceWires([arce, wiretube], 1)
|
facefiss = geompy.MakeFaceWires([arce, wiretube], 1)
|
||||||
geomPublish(initLog.debug, facefiss, 'facefissPlace' )
|
geomPublish(initLog.debug, facefiss, 'facefissPlace' )
|
||||||
|
|
||||||
pc = geompy.MakeVertex((raybor + rayint)/2.0, 0, 0)
|
pc = geompy.MakeVertex((raybor + rayint)/2.0, 0, 0)
|
||||||
centre = geompy.MakeRotation(pc, OZ, azimut*math.pi/180.)
|
centre = geompy.MakeRotation(pc, OZ, azimut*math.pi/180.)
|
||||||
centre = geompy.MakeTranslation(centre, 0, 0, -l_tube_p1)
|
centre = geompy.MakeTranslation(centre, 0, 0, -l_tube_p1)
|
||||||
centre = geompy.MakeRotation(centre, axe, alpha*math.pi/180.)
|
centre = geompy.MakeRotation(centre, axe, alpha*math.pi/180.)
|
||||||
geomPublish(initLog.debug, centre, 'centrefissPlace' )
|
geomPublish(initLog.debug, centre, 'centrefissPlace' )
|
||||||
|
|
||||||
wiretube = geompy.GetInPlace(facefiss, wiretube)
|
wiretube = geompy.GetInPlace(facefiss, wiretube)
|
||||||
geomPublish(initLog.debug, wiretube, 'wiretubePlace' )
|
geomPublish(initLog.debug, wiretube, 'wiretubePlace' )
|
||||||
try:
|
try:
|
||||||
@ -449,7 +449,7 @@ class fissureCoude(fissureGenerique):
|
|||||||
else:
|
else:
|
||||||
raybor = de/2. - epais
|
raybor = de/2. - epais
|
||||||
dp = +1.0
|
dp = +1.0
|
||||||
prof = dp * profondeur
|
prof = dp * profondeur
|
||||||
lgfond = longueur -2*profondeur
|
lgfond = longueur -2*profondeur
|
||||||
cosaz = math.cos(azimut*math.pi/180.)
|
cosaz = math.cos(azimut*math.pi/180.)
|
||||||
sinaz = math.sin(azimut*math.pi/180.)
|
sinaz = math.sin(azimut*math.pi/180.)
|
||||||
@ -477,9 +477,9 @@ class fissureCoude(fissureGenerique):
|
|||||||
for i in range(nbp+2):
|
for i in range(nbp+2):
|
||||||
x = math.sin(i*math.pi/(nbp+1)) # fonction de répartition des points : distance relative
|
x = math.sin(i*math.pi/(nbp+1)) # fonction de répartition des points : distance relative
|
||||||
x2 = x*x
|
x2 = x*x
|
||||||
totx += x2
|
totx += x2
|
||||||
xs.append(totx)
|
xs.append(totx)
|
||||||
logging.debug("x2: %s, totx: %s", x2, totx)
|
logging.debug("x2: %s, totx: %s", x2, totx)
|
||||||
for i in range(nbp+1):
|
for i in range(nbp+1):
|
||||||
#posi = nbp -i # répartition équidistante des points sur la courbe
|
#posi = nbp -i # répartition équidistante des points sur la courbe
|
||||||
posi = nbp*(1 -xs[i]/totx) # points plus resserrés aux extrémités de la courbe
|
posi = nbp*(1 -xs[i]/totx) # points plus resserrés aux extrémités de la courbe
|
||||||
@ -501,11 +501,11 @@ class fissureCoude(fissureGenerique):
|
|||||||
x = math.sin(i*math.pi/nbp)
|
x = math.sin(i*math.pi/nbp)
|
||||||
#x = 1.0 # répartition équidistante des points sur la courbe
|
#x = 1.0 # répartition équidistante des points sur la courbe
|
||||||
x2 = x*x # points plus resserrés aux extrémités de la courbe
|
x2 = x*x # points plus resserrés aux extrémités de la courbe
|
||||||
totx += x2
|
totx += x2
|
||||||
xs.append(totx)
|
xs.append(totx)
|
||||||
logging.debug("x2: %s, totx: %s", x2, totx)
|
logging.debug("x2: %s, totx: %s", x2, totx)
|
||||||
for i in range(nbp):
|
for i in range(nbp):
|
||||||
angi = alfrd -angle +2.0*angle*xs[i]/totx
|
angi = alfrd -angle +2.0*angle*xs[i]/totx
|
||||||
pt = geompy.MakeRotation(pi, axe, angi)
|
pt = geompy.MakeRotation(pi, axe, angi)
|
||||||
points.append(pt)
|
points.append(pt)
|
||||||
curves.append(geompy.MakeInterpol(points))
|
curves.append(geompy.MakeInterpol(points))
|
||||||
@ -521,9 +521,9 @@ class fissureCoude(fissureGenerique):
|
|||||||
for i in range(nbp+2):
|
for i in range(nbp+2):
|
||||||
x = math.sin(i*math.pi/(nbp+1))
|
x = math.sin(i*math.pi/(nbp+1))
|
||||||
x2 = x*x
|
x2 = x*x
|
||||||
totx += x2
|
totx += x2
|
||||||
xs.append(totx)
|
xs.append(totx)
|
||||||
logging.debug("x2: %s, totx: %s", x2, totx)
|
logging.debug("x2: %s, totx: %s", x2, totx)
|
||||||
for i in range(nbp+1):
|
for i in range(nbp+1):
|
||||||
#posi = nbp -i # répartition équidistante des points sur la courbe
|
#posi = nbp -i # répartition équidistante des points sur la courbe
|
||||||
posi = nbp*xs[i]/totx # points plus resserrés aux extrémités de la courbe
|
posi = nbp*xs[i]/totx # points plus resserrés aux extrémités de la courbe
|
||||||
@ -536,7 +536,7 @@ class fissureCoude(fissureGenerique):
|
|||||||
# for i, pt in enumerate(points):
|
# for i, pt in enumerate(points):
|
||||||
# name = "point%d"%i
|
# name = "point%d"%i
|
||||||
# geomPublishInFather(initLog.debug,curves[-1], pt, name)
|
# geomPublishInFather(initLog.debug,curves[-1], pt, name)
|
||||||
|
|
||||||
wiretube = geompy.MakeWire(curves)
|
wiretube = geompy.MakeWire(curves)
|
||||||
geomPublish(initLog.debug, wiretube,"wiretube")
|
geomPublish(initLog.debug, wiretube,"wiretube")
|
||||||
try:
|
try:
|
||||||
@ -545,26 +545,26 @@ class fissureCoude(fissureGenerique):
|
|||||||
except:
|
except:
|
||||||
logging.debug("erreur MakeEdgeWire sur fond de fissure, on fait sans")
|
logging.debug("erreur MakeEdgeWire sur fond de fissure, on fait sans")
|
||||||
edgetube = None
|
edgetube = None
|
||||||
|
|
||||||
pts = []
|
pts = []
|
||||||
pts.append(point0)
|
pts.append(point0)
|
||||||
dpr = prof*math.cos(5.0*math.pi/8.0)
|
dpr = prof*math.cos(5.0*math.pi/8.0)
|
||||||
pe = geompy.MakeTranslation(pb, dpr*cosaz, dpr*sinaz, 0., "pe")
|
pe = geompy.MakeTranslation(pb, dpr*cosaz, dpr*sinaz, 0., "pe")
|
||||||
for i in range(nbp):
|
for i in range(nbp):
|
||||||
angi = alfrd -angle +2.0*i*angle/nbp
|
angi = alfrd -angle +2.0*i*angle/nbp
|
||||||
pt = geompy.MakeRotation(pe, axe, angi)
|
pt = geompy.MakeRotation(pe, axe, angi)
|
||||||
pts.append(pt)
|
pts.append(pt)
|
||||||
pts.append(point1)
|
pts.append(point1)
|
||||||
arce = geompy.MakeInterpol(pts)
|
arce = geompy.MakeInterpol(pts)
|
||||||
geomPublish(initLog.debug, arce,"arce")
|
geomPublish(initLog.debug, arce,"arce")
|
||||||
|
|
||||||
facefiss = geompy.MakeFaceWires([arce, wiretube], 0)
|
facefiss = geompy.MakeFaceWires([arce, wiretube], 0)
|
||||||
geomPublish(initLog.debug, facefiss, 'facefissPlace' )
|
geomPublish(initLog.debug, facefiss, 'facefissPlace' )
|
||||||
|
|
||||||
pc = geompy.MakeTranslation(pb, 0.5*prof*cosaz, 0.5*prof*sinaz, 0.)
|
pc = geompy.MakeTranslation(pb, 0.5*prof*cosaz, 0.5*prof*sinaz, 0.)
|
||||||
centre = geompy.MakeRotation(pc, axe, alfrd)
|
centre = geompy.MakeRotation(pc, axe, alfrd)
|
||||||
geomPublish(initLog.debug, centre, 'centrefissPlace' )
|
geomPublish(initLog.debug, centre, 'centrefissPlace' )
|
||||||
|
|
||||||
edges = geompy.ExtractShapes(facefiss, geompy.ShapeType["EDGE"], True)
|
edges = geompy.ExtractShapes(facefiss, geompy.ShapeType["EDGE"], True)
|
||||||
edgesTriees, minl, maxl = sortEdges(edges)
|
edgesTriees, minl, maxl = sortEdges(edges)
|
||||||
edges = edgesTriees[:-1] # la plus grande correspond à arce, on l'elimine
|
edges = edgesTriees[:-1] # la plus grande correspond à arce, on l'elimine
|
||||||
@ -581,7 +581,7 @@ class fissureCoude(fissureGenerique):
|
|||||||
else:
|
else:
|
||||||
raybor = de/2. - epais
|
raybor = de/2. - epais
|
||||||
dp = +1.0
|
dp = +1.0
|
||||||
prof = dp * profondeur
|
prof = dp * profondeur
|
||||||
cosaz = math.cos(azimut*math.pi/180.)
|
cosaz = math.cos(azimut*math.pi/180.)
|
||||||
sinaz = math.sin(azimut*math.pi/180.)
|
sinaz = math.sin(azimut*math.pi/180.)
|
||||||
alfrd = alpha*math.pi/180.
|
alfrd = alpha*math.pi/180.
|
||||||
@ -602,7 +602,7 @@ class fissureCoude(fissureGenerique):
|
|||||||
cox = geompy.VectorCoordinates(ax1)
|
cox = geompy.VectorCoordinates(ax1)
|
||||||
coy = geompy.VectorCoordinates(ay1)
|
coy = geompy.VectorCoordinates(ay1)
|
||||||
localLCS = geompy.MakeMarker(coo[0], coo[1], coo[2], cox[0], cox[1], cox[2], coy[0], coy[1], coy[2], "localLCS")
|
localLCS = geompy.MakeMarker(coo[0], coo[1], coo[2], cox[0], cox[1], cox[2], coy[0], coy[1], coy[2], "localLCS")
|
||||||
|
|
||||||
pco = geompy.MakeVertex(0, 0, -profondeur, "pco")
|
pco = geompy.MakeVertex(0, 0, -profondeur, "pco")
|
||||||
pao = geompy.MakeRotation(pco, OY, 0.6*math.pi, "pao")
|
pao = geompy.MakeRotation(pco, OY, 0.6*math.pi, "pao")
|
||||||
pbo = geompy.MakeRotation(pco, OY, -0.6*math.pi, "pbo")
|
pbo = geompy.MakeRotation(pco, OY, -0.6*math.pi, "pbo")
|
||||||
@ -620,7 +620,7 @@ class fissureCoude(fissureGenerique):
|
|||||||
edgesTriees, minl, maxl = sortEdges(edges)
|
edgesTriees, minl, maxl = sortEdges(edges)
|
||||||
edgetube = edgesTriees[-1] # la plus grande correspond à arci
|
edgetube = edgesTriees[-1] # la plus grande correspond à arci
|
||||||
wiretube = edgetube
|
wiretube = edgetube
|
||||||
|
|
||||||
pc = geompy.MakeTranslation(pb, 0.5*prof*cosaz, 0.5*prof*sinaz, 0.)
|
pc = geompy.MakeTranslation(pb, 0.5*prof*cosaz, 0.5*prof*sinaz, 0.)
|
||||||
centre = geompy.MakeRotation(pc, axe, alfrd)
|
centre = geompy.MakeRotation(pc, axe, alfrd)
|
||||||
geomPublish(initLog.debug, centre, 'centrefissPlace' )
|
geomPublish(initLog.debug, centre, 'centrefissPlace' )
|
||||||
|
@ -15,16 +15,16 @@ def identifieEdgesPeau(edgesFissExtPipe,verticesPipePeau, facePeau, facesPeauSor
|
|||||||
identification précise des edges et disques des faces de peau selon index extremité fissure
|
identification précise des edges et disques des faces de peau selon index extremité fissure
|
||||||
"""
|
"""
|
||||||
logging.info('start')
|
logging.info('start')
|
||||||
|
|
||||||
facesPipePeau = [None for i in range(len(edgesFissExtPipe))]
|
facesPipePeau = [None for i in range(len(edgesFissExtPipe))]
|
||||||
endsEdgeFond = [None for i in range(len(edgesFissExtPipe))]
|
endsEdgeFond = [None for i in range(len(edgesFissExtPipe))]
|
||||||
edgeRadFacePipePeau = [None for i in range(len(edgesFissExtPipe))]
|
edgeRadFacePipePeau = [None for i in range(len(edgesFissExtPipe))]
|
||||||
|
|
||||||
edgesListees = []
|
edgesListees = []
|
||||||
edgesCircPeau = []
|
edgesCircPeau = []
|
||||||
verticesCircPeau = []
|
verticesCircPeau = []
|
||||||
if len(verticesPipePeau) > 0: # --- au moins une extrémité du pipe sur cette face de peau
|
if len(verticesPipePeau) > 0: # --- au moins une extrémité du pipe sur cette face de peau
|
||||||
|
|
||||||
for face in facesPeauSorted[:-1]: # la ou les faces débouchantes, pas la grande face de peau
|
for face in facesPeauSorted[:-1]: # la ou les faces débouchantes, pas la grande face de peau
|
||||||
logging.debug("examen face debouchante circulaire")
|
logging.debug("examen face debouchante circulaire")
|
||||||
for i,efep in enumerate(edgesFissExtPipe):
|
for i,efep in enumerate(edgesFissExtPipe):
|
||||||
@ -52,11 +52,11 @@ def identifieEdgesPeau(edgesFissExtPipe,verticesPipePeau, facePeau, facesPeauSor
|
|||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# --- edges circulaires de la face de peau et points de jonction de la face externe de fissure
|
# --- edges circulaires de la face de peau et points de jonction de la face externe de fissure
|
||||||
logging.debug("facesPipePeau: %s", facesPipePeau)
|
logging.debug("facesPipePeau: %s", facesPipePeau)
|
||||||
edgesCircPeau = [None for i in range(len(facesPipePeau))]
|
edgesCircPeau = [None for i in range(len(facesPipePeau))]
|
||||||
verticesCircPeau = [None for i in range(len(facesPipePeau))]
|
verticesCircPeau = [None for i in range(len(facesPipePeau))]
|
||||||
for i,fcirc in enumerate(facesPipePeau):
|
for i,fcirc in enumerate(facesPipePeau):
|
||||||
edges = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["EDGE"])
|
edges = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["EDGE"])
|
||||||
grpEdgesCirc = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
|
grpEdgesCirc = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
|
||||||
@ -96,8 +96,26 @@ def identifieEdgesPeau(edgesFissExtPipe,verticesPipePeau, facePeau, facesPeauSor
|
|||||||
geompy.UnionList(groupEdgesBordPeau, edgesBords)
|
geompy.UnionList(groupEdgesBordPeau, edgesBords)
|
||||||
bordsVifs = None
|
bordsVifs = None
|
||||||
if aretesVivesC is not None:
|
if aretesVivesC is not None:
|
||||||
logging.debug("identification des bords vifs par GetInPlace (old)")
|
logging.debug("identification des bords vifs par GetInPlace")
|
||||||
bordsVifs = geompy.GetInPlace(facePeau, aretesVivesC)
|
bordsVifs = geompy.GetInPlace(facePeau, aretesVivesC)
|
||||||
|
if bordsVifs is None:
|
||||||
|
logging.debug("pas d'identification des bords vifs par GetInPlace: test par distance")
|
||||||
|
edvifs = []
|
||||||
|
arvives = geompy.ExtractShapes(aretesVivesC, geompy.ShapeType["EDGE"], False)
|
||||||
|
edgs = geompy.ExtractShapes(facePeau, geompy.ShapeType["EDGE"], False)
|
||||||
|
for ed in edgs:
|
||||||
|
vxs = geompy.ExtractShapes(ed, geompy.ShapeType["VERTEX"], False)
|
||||||
|
for ar in arvives:
|
||||||
|
d = geompy.MinDistance(vxs[0], ar)
|
||||||
|
d += geompy.MinDistance(vxs[1], ar)
|
||||||
|
logging.debug("test distance bord face peau - arete vive: %s",d)
|
||||||
|
if d < 0.001:
|
||||||
|
edvifs.append(ed)
|
||||||
|
break
|
||||||
|
if len(edvifs) >0:
|
||||||
|
bordsVifs = geompy.CreateGroup(facePeau,geompy.ShapeType["EDGE"])
|
||||||
|
for ed in edvifs:
|
||||||
|
geompy.AddObject(bordsVifs, geompy.GetSubShapeID(facePeau, ed))
|
||||||
if bordsVifs is not None:
|
if bordsVifs is not None:
|
||||||
geomPublishInFather(initLog.debug, facePeau, bordsVifs, "bordsVifs")
|
geomPublishInFather(initLog.debug, facePeau, bordsVifs, "bordsVifs")
|
||||||
groupEdgesBordPeau = geompy.CutGroups(groupEdgesBordPeau, bordsVifs)
|
groupEdgesBordPeau = geompy.CutGroups(groupEdgesBordPeau, bordsVifs)
|
||||||
@ -114,9 +132,9 @@ def identifieEdgesPeau(edgesFissExtPipe,verticesPipePeau, facePeau, facesPeauSor
|
|||||||
aretesVivesCoupees += edv
|
aretesVivesCoupees += edv
|
||||||
logging.debug("aretesVivesCoupees %s",aretesVivesCoupees)
|
logging.debug("aretesVivesCoupees %s",aretesVivesCoupees)
|
||||||
geomPublishInFather(initLog.debug, facePeau, groupEdgesBordPeau , "EdgesBords")
|
geomPublishInFather(initLog.debug, facePeau, groupEdgesBordPeau , "EdgesBords")
|
||||||
|
|
||||||
# --- edges de la face de peau partagées avec la face de fissure
|
# --- edges de la face de peau partagées avec la face de fissure
|
||||||
|
|
||||||
edgesPeau = geompy.ExtractShapes(facePeau, geompy.ShapeType["EDGE"], False)
|
edgesPeau = geompy.ExtractShapes(facePeau, geompy.ShapeType["EDGE"], False)
|
||||||
edges = substractSubShapes(facePeau, edgesPeau, edgesListees)
|
edges = substractSubShapes(facePeau, edgesPeau, edgesListees)
|
||||||
edgesFissurePeau = []
|
edgesFissurePeau = []
|
||||||
@ -136,7 +154,7 @@ def identifieEdgesPeau(edgesFissExtPipe,verticesPipePeau, facePeau, facesPeauSor
|
|||||||
edgesFissurePeau.append(edge)
|
edgesFissurePeau.append(edge)
|
||||||
name = "edgeFissurePeau%d"%i
|
name = "edgeFissurePeau%d"%i
|
||||||
geomPublishInFather(initLog.debug, facePeau, edge, name)
|
geomPublishInFather(initLog.debug, facePeau, edge, name)
|
||||||
|
|
||||||
return (endsEdgeFond, facesPipePeau, edgeRadFacePipePeau,
|
return (endsEdgeFond, facesPipePeau, edgeRadFacePipePeau,
|
||||||
edgesCircPeau, verticesCircPeau, groupEdgesBordPeau,
|
edgesCircPeau, verticesCircPeau, groupEdgesBordPeau,
|
||||||
bordsVifs, edgesFissurePeau, aretesVivesCoupees)
|
bordsVifs, edgesFissurePeau, aretesVivesCoupees)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user