mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-13 02:00:34 +05:00
Update of the documentation of the plugin "blocfissure"
Merge branch 'gni/documentation'
This commit is contained in:
commit
0f2942f29e
@ -73,7 +73,7 @@ class cubeAngle(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/CubeAngleFiss.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/CubeAngleFiss.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [3])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -77,7 +77,7 @@ class cylindre(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/FissInCylindre2.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/FissInCylindre2.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [6])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -49,7 +49,7 @@ class cylindre_2(cylindre):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/FissInCylindre.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/FissInCylindre.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [3])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -81,7 +81,7 @@ class ellipse_1(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [3])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -53,7 +53,7 @@ class ellipse_2(ellipse_1):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1_pb.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/ellipse1_pb.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [3])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -75,7 +75,7 @@ class eprouvetteCourbe(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/EprouvetteCourbeFiss.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/EprouvetteCourbeFiss.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [8])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -77,7 +77,7 @@ class eprouvetteDroite(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/EprouvetteDroiteFiss_1.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/EprouvetteDroiteFiss_1.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [8])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -53,7 +53,7 @@ class eprouvetteDroite_2(eprouvetteDroite):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/EprouvetteDroiteFiss_2.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/EprouvetteDroiteFiss_2.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [10])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -32,134 +32,137 @@ initLog.setVerbose()
|
||||
# ---tous les cas en sequence, ou les cas selectionnés ...
|
||||
runall = True
|
||||
if runall:
|
||||
torun = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
||||
else: #prob 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
|
||||
torun = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,]
|
||||
torun = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
else: #prob 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29
|
||||
torun = [ 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
|
||||
from blocFissure.gmu import geomsmesh
|
||||
from blocFissure.gmu.casStandard import casStandard
|
||||
|
||||
problemes = []
|
||||
problemes = list()
|
||||
|
||||
cas=0
|
||||
from blocFissure.CasTests.fissure_Coude import fissure_Coude
|
||||
problemes.append(fissure_Coude(cas))
|
||||
|
||||
cas=1
|
||||
from blocFissure.CasTests.faceGauche import faceGauche
|
||||
problemes.append(faceGauche(cas))
|
||||
|
||||
cas=2
|
||||
from blocFissure.CasTests.faceGauche_2 import faceGauche_2
|
||||
problemes.append(faceGauche_2(cas))
|
||||
|
||||
cas=3
|
||||
from blocFissure.CasTests.ellipse_1 import ellipse_1
|
||||
problemes.append(ellipse_1(cas))
|
||||
|
||||
cas=4
|
||||
from blocFissure.CasTests.fissure_Coude_4 import fissure_Coude_4
|
||||
problemes.append(fissure_Coude_4(cas))
|
||||
|
||||
cas=5
|
||||
from blocFissure.CasTests.cylindre import cylindre
|
||||
problemes.append(cylindre(cas))
|
||||
|
||||
cas=6
|
||||
from blocFissure.CasTests.cylindre_2 import cylindre_2
|
||||
problemes.append(cylindre_2(cas))
|
||||
|
||||
cas=7
|
||||
from blocFissure.CasTests.eprouvetteCourbe import eprouvetteCourbe
|
||||
problemes.append(eprouvetteCourbe(cas))
|
||||
|
||||
cas=8
|
||||
from blocFissure.CasTests.eprouvetteDroite import eprouvetteDroite
|
||||
problemes.append(eprouvetteDroite(cas))
|
||||
|
||||
cas=9
|
||||
from blocFissure.CasTests.eprouvetteDroite_2 import eprouvetteDroite_2
|
||||
problemes.append(eprouvetteDroite_2(cas))
|
||||
|
||||
cas=10
|
||||
from blocFissure.CasTests.cubeAngle import cubeAngle
|
||||
problemes.append(cubeAngle(cas))
|
||||
|
||||
cas=11
|
||||
from blocFissure.CasTests.fissureCoude_1 import fissureCoude_1
|
||||
problemes.append(fissureCoude_1(cas))
|
||||
|
||||
cas=12
|
||||
from blocFissure.CasTests.fissureCoude_2 import fissureCoude_2
|
||||
problemes.append(fissureCoude_2(cas))
|
||||
|
||||
cas=13
|
||||
from blocFissure.CasTests.fissureCoude_3 import fissureCoude_3
|
||||
problemes.append(fissureCoude_3(cas))
|
||||
|
||||
cas=14
|
||||
from blocFissure.CasTests.fissureCoude_4 import fissureCoude_4
|
||||
problemes.append(fissureCoude_4(cas))
|
||||
|
||||
cas=15
|
||||
from blocFissure.CasTests.fissureCoude_5 import fissureCoude_5
|
||||
problemes.append(fissureCoude_5(cas))
|
||||
|
||||
cas=16
|
||||
from blocFissure.CasTests.ellipse_2 import ellipse_2
|
||||
problemes.append(ellipse_2(cas))
|
||||
|
||||
cas=17
|
||||
cas+=1
|
||||
from blocFissure.CasTests.cubeAngle2 import cubeAngle2
|
||||
problemes.append(cubeAngle2(cas))
|
||||
|
||||
cas=18
|
||||
from blocFissure.CasTests import disquePerce
|
||||
problemes.append(casStandard(disquePerce.dicoParams, disquePerce.referencesMaillageFissure, cas))
|
||||
|
||||
cas=19
|
||||
from blocFissure.CasTests.fissureCoude_6 import fissureCoude_6
|
||||
problemes.append(fissureCoude_6(cas))
|
||||
|
||||
cas=20
|
||||
from blocFissure.CasTests.fissureCoude_7 import fissureCoude_7
|
||||
problemes.append(fissureCoude_7(cas))
|
||||
|
||||
cas=21
|
||||
from blocFissure.CasTests.fissureCoude_8 import fissureCoude_8
|
||||
problemes.append(fissureCoude_8(cas))
|
||||
|
||||
cas=22
|
||||
from blocFissure.CasTests.fissureCoude_9 import fissureCoude_9
|
||||
problemes.append(fissureCoude_9(cas))
|
||||
|
||||
cas=23
|
||||
from blocFissure.CasTests.fissureCoude_10 import fissureCoude_10
|
||||
problemes.append(fissureCoude_10(cas))
|
||||
|
||||
cas=24
|
||||
from blocFissure.CasTests.vis_1 import vis_1
|
||||
problemes.append(vis_1(cas))
|
||||
|
||||
cas=25
|
||||
cas+=1
|
||||
from blocFissure.CasTests import cubeCoin
|
||||
problemes.append(casStandard(cubeCoin.dicoParams, cubeCoin.referencesMaillageFissure, cas))
|
||||
|
||||
cas=26
|
||||
cas+=1
|
||||
from blocFissure.CasTests import cubeMilieu
|
||||
problemes.append(casStandard(cubeMilieu.dicoParams, cubeMilieu.referencesMaillageFissure, cas))
|
||||
|
||||
cas=27
|
||||
cas+=1
|
||||
from blocFissure.CasTests import cubeTransverse
|
||||
problemes.append(casStandard(cubeTransverse.dicoParams, cubeTransverse.referencesMaillageFissure, cas))
|
||||
|
||||
|
||||
for i in range(len(problemes)):
|
||||
if torun[i]:
|
||||
logging.critical("=== Execution cas %s", i)
|
||||
cas+=1
|
||||
from blocFissure.CasTests.cylindre import cylindre
|
||||
problemes.append(cylindre(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.cylindre_2 import cylindre_2
|
||||
problemes.append(cylindre_2(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests import disquePerce
|
||||
problemes.append(casStandard(disquePerce.dicoParams, disquePerce.referencesMaillageFissure, cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.ellipse_1 import ellipse_1
|
||||
problemes.append(ellipse_1(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.ellipse_2 import ellipse_2
|
||||
problemes.append(ellipse_2(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.eprouvetteCourbe import eprouvetteCourbe
|
||||
problemes.append(eprouvetteCourbe(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.eprouvetteDroite import eprouvetteDroite
|
||||
problemes.append(eprouvetteDroite(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.eprouvetteDroite_2 import eprouvetteDroite_2
|
||||
problemes.append(eprouvetteDroite_2(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.faceGauche import faceGauche
|
||||
problemes.append(faceGauche(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.faceGauche_2 import faceGauche_2
|
||||
problemes.append(faceGauche_2(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissure_Coude import fissure_Coude
|
||||
problemes.append(fissure_Coude(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissure_Coude_4 import fissure_Coude_4
|
||||
problemes.append(fissure_Coude_4(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_1 import fissureCoude_1
|
||||
problemes.append(fissureCoude_1(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_2 import fissureCoude_2
|
||||
problemes.append(fissureCoude_2(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_3 import fissureCoude_3
|
||||
problemes.append(fissureCoude_3(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissure_Coude_4 import fissure_Coude_4
|
||||
problemes.append(fissure_Coude_4(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_4 import fissureCoude_4
|
||||
problemes.append(fissureCoude_4(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_5 import fissureCoude_5
|
||||
problemes.append(fissureCoude_5(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_6 import fissureCoude_6
|
||||
problemes.append(fissureCoude_6(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_7 import fissureCoude_7
|
||||
problemes.append(fissureCoude_7(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_8 import fissureCoude_8
|
||||
problemes.append(fissureCoude_8(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_9 import fissureCoude_9
|
||||
problemes.append(fissureCoude_9(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.fissureCoude_10 import fissureCoude_10
|
||||
problemes.append(fissureCoude_10(cas))
|
||||
|
||||
cas+=1
|
||||
from blocFissure.CasTests.vis_1 import vis_1
|
||||
problemes.append(vis_1(cas))
|
||||
|
||||
for iaux, cas in enumerate(problemes):
|
||||
if torun[iaux]:
|
||||
logging.critical("=== Execution cas {}".format(iaux))
|
||||
try:
|
||||
problemes[i].executeProbleme()
|
||||
cas.executeProbleme()
|
||||
except:
|
||||
traceback.print_exc()
|
||||
print("---------------------------------------------------------------------")
|
||||
|
@ -75,7 +75,7 @@ class faceGauche(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/faceGaucheFiss.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/faceGaucheFiss.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [6])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -76,7 +76,7 @@ class faceGauche_2(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/faceGauche2FissCoupe.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/faceGauche2FissCoupe.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [14, 9])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -75,7 +75,7 @@ class vis_1(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile(os.path.join(gmu.pathBloc, "materielCasTests/visFiss.brep"), "BREP")
|
||||
shellFiss = geompy.ImportBREP(os.path.join(gmu.pathBloc, "materielCasTests/visFiss.brep"))
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, [6, 8])
|
||||
geompy.addToStudy( shellFiss, 'shellFiss' )
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
Exécution des exemples et cas tests :
|
||||
=====================================
|
||||
|
||||
@ -7,7 +6,7 @@ Exécution des exemples et cas tests :
|
||||
ou dans une console Python avec l'environnement SALOME (salome shell)
|
||||
|
||||
# les shapes et fichiers med nécessaires aux tests sont créés dans
|
||||
${SMESH_ROOT_DIR}/lib/python2.7/site-packages/salome/blocFissure/CasTests
|
||||
${SMESH_ROOT_DIR}/lib/python3.6/site-packages/salome/blocFissure/CasTests
|
||||
|
||||
# les maillages fissurés sont écrits dans le répertoire d'exécution.
|
||||
|
||||
@ -21,9 +20,10 @@ from blocFissure.materielCasTests import genereMateriel
|
||||
-------------------
|
||||
|
||||
from blocFissure import exemple
|
||||
exemple(0).executeProbleme()
|
||||
|
||||
# exécution des cas tests (long: 1/2 heure)
|
||||
-------------------------------------------
|
||||
# exécution de tous les cas tests (long : 1/2 heure)
|
||||
----------------------------------------------------
|
||||
|
||||
from blocFissure.CasTests import execution_Cas
|
||||
|
||||
@ -32,7 +32,7 @@ from blocFissure.CasTests import execution_Cas
|
||||
|
||||
Mauvaise détection d'arête vive avec GetInPlace : cas 7, 24
|
||||
|
||||
Le maillage longitudinal du pipe peut creer des mailles de faible épaisseur
|
||||
Le maillage longitudinal du pipe peut créer des mailles de faible épaisseur
|
||||
à une des extrémités : le maillage en triangles des faces de fissure et de peau
|
||||
peut être moche au voisinage, de même que les tétraèdres qui s'appuient dessus.
|
||||
(2,3,16,26 ?)
|
||||
|
@ -4,16 +4,16 @@
|
||||
FAQ
|
||||
#######################
|
||||
|
||||
- Does Bloc Fissure works on a 2D mesh ?
|
||||
- Does Bloc Fissure works on a 2D mesh?
|
||||
|
||||
No, Bloc Fissure works only for 3D meshes. However, the user can extrude the 2D mesh to a 3D mesh, insert a crack and then extract a surface containing the crack.
|
||||
|
||||
- Can I insert a crack in a symmetry plan ?
|
||||
- Can I insert a crack in a symmetry plan?
|
||||
|
||||
No, the user must insert the crack without using the symmetry plan passing through the crack lips.
|
||||
|
||||
- I can't have Bloc Fissure working, it raises a pure python error, what can I do ?
|
||||
- I can't have Bloc Fissure working, it raises a pure python error, what can I do?
|
||||
|
||||
Bloc Fissure has some error messages for the most commonly encountered misuses. If the program raises a pure python error, it means that this error is rare or has not been encountered by the programmers yet.
|
||||
Bloc Fissure has some error messages for the most commonly encountered misuses. If the program raises a pure python error, it means that this error is rare or has not been encountered by the programmers yet. Contact the bugtracker.
|
||||
|
||||
Still, either the case can't be treated using Bloc Fissure or the insertion procedure was not fully respected. In the first case, use Zcracks (soon available). In the second case, see the :ref:`tutorial <tutorials>`.
|
||||
Still, either the case can't be treated using Bloc Fissure or the insertion procedure was not fully respected. In the first case, use Zcracks. In the second case, see the :ref:`tutorial <tutorials>`.
|
||||
|
@ -9,14 +9,14 @@ Introduction
|
||||
:scale: 50
|
||||
:align: center
|
||||
|
||||
« Bloc Fissure » is a SMESH extension used to insert cracks in existing meshes. It has the advantage of meshing the crack front and the surrounding elements with a tore containing ruled elements. The rest of the crack contains a free mesh. The tore is made of prism elements (extruded triangles connected to the crack front) and hexahedrons elsewhere. The main interests of such type of mesh are:
|
||||
« Bloc Fissure » is an extension of SMESH used to insert cracks in an existing mesh. It has the advantage of meshing the front of the crack and the surrounding elements with a torus containing ruled elements. The rest of the crack contains a free mesh. The torus consists of prismatic elements (extruded triangles connected to the crack front) and hexahedrons elsewhere. The main interests of this type of mesh are as follows :
|
||||
|
||||
- Having sets of Gauss points in plans perpendicular to the crack front in order to calculate stress field without any interpolation, which would be the case on free mesh. It avoids strong oscillations along the crack front on the energy release rate and stress intensity factors calculated by `extrapolation <http://code-aster.org/doc/default/fr/man_r/r7/r7.02.08.pdf>`_ or `G-theta method <http://code-aster.org/doc/default/fr/man_r/r7/r7.02.01.pdf>`_.
|
||||
|
||||
- Decrease the element number. In fracture mechanics, a fine mesh is necessary radially to the crack front and more rarely along the front axis. Yet hexahedrons and prisms elements can have geometrical aspect ratios up to 20 without major matrix conditioning problems. On the contrary, tetrahedrons of free meshes are generally limited to aspect ratios around 3. The use of very elongated elements is then no longer a limitation and number of elements can be significantly decreased.
|
||||
- Decrease in the number of elements. In fracture mechanics, a fine mesh is required radially at the fissure front and more rarely in the axis of the front. Hexhedral and prismatic elements can have geometric aspect ratios of up to 20 without major matrix conditioning problems. On the other hand, the tetrahedrons of free meshes are generally limited to aspect ratios of about 3. The use of very elongated elements is then no longer a limitation and the number of elements can be considerably reduced.
|
||||
|
||||
« Bloc Fissure » is not applicable every time. It is highly recommended to read the section on :ref:`general principles <general_principles>` to see how « Bloc Fissure » works. This section also gives the functional scope and the :ref:`limitations <recommendations>` of the tool. Finally, this part deals with cautions that the user must take using « Bloc Fissure ». The user can also refers himself to the :ref:`tutorial <tutorials>` to get some advice on how to make « Bloc Fissure » works.
|
||||
« Bloc Fissure » is not always usable. It is highly recommended to read the section on :ref:`general principles <general_principles>` to see how « Bloc Fissure » works. This section also gives the functional scope and the :ref:`limitations <recommendations>` of the tool. Finally, this part deals with cautions that the user must take using « Bloc Fissure ». The user can also refers himself to the :ref:`tutorial <tutorials>` to get some advice on how to make « Bloc Fissure » works.
|
||||
|
||||
If « Bloc Fissure » can’t be used on a case, the user may switch to the other FEM insertion tool Zcracks in SALOME (soon available). It’s more robust and has less limitations but the result is a cracked free mesh with tetrahedral elements. Another possibility is the `X-FEM method <http://www.code-aster.org/doc/v11/fr/man_u/u2/u2.05.02.pdf>`_ method in SALOME_MECA.
|
||||
If « Bloc Fissure » cannot be used on a case, the user can switch to the other Zcracks insertion tool in SALOME. It is more robust and has fewer limitations, but the result is a free mesh of the crack with tetrahedral elements. Another possibility is the `X-FEM method <http://www.code-aster.org/doc/v11/fr/man_u/u2/u2.05.02.pdf>`_ method in SALOME_MECA.
|
||||
|
||||
|
||||
|
@ -100,5 +100,16 @@ The GUI is a window with mandatory and optional parameters. Optional parameters
|
||||
|
||||
- **Sauver**: save a .dic file with the active parameters
|
||||
|
||||
Example
|
||||
--------------------
|
||||
|
||||
.. image:: images/coude_0.png
|
||||
:align: center
|
||||
:alt: Crak in a bended pipe
|
||||
:scale: 100
|
||||
|
||||
This example can be computed using this file for the data:
|
||||
|
||||
* :download:`data for a bended puipe <../ihm/dialogFissureCoude.dic>`
|
||||
|
||||
|
||||
|
@ -4,19 +4,19 @@
|
||||
General principles
|
||||
###################
|
||||
|
||||
« Bloc Fissure » is based on GEOM module geometrical Boolean operations. The initial structure being a mesh, a conversion from mesh to geometry becomes necessary. This operation is called extraction and reconstruction because it is only applied to a small part of the mesh, which is around the crack. The extracted mesh is called the « Box » and only external faces of this mesh are kept and converted into several geometrical surfaces. This operation implies some limitations on the input mesh. When all the Booleans operations are done, the geometry that contains the crack is meshed again with a ruled mesh in the tore and a free mesh elsewhere.
|
||||
« Bloc Fissure » is based on GEOM module geometrical Boolean operations. The initial structure being a mesh, a conversion from mesh to geometry becomes necessary. This operation is called extraction and reconstruction because it is only applied to a small part of the mesh, which is around the crack. The extracted mesh is called the « Box » and only external faces of this mesh are kept and converted into several geometrical surfaces. This operation implies some limitations on the input mesh. When all the Boolean operations are done, the geometry that contains the crack is meshed again with a ruled mesh in the torus and a free mesh elsewhere.
|
||||
|
||||
In order to illustrate « Bloc Fissure » principle, the simple case of a crack insertion in a parallelepipedic specimen is detailed step by step:
|
||||
|
||||
1. The first step consists in loading the structure mesh (a) as well as the crack surface geometry (b).
|
||||
|
||||
2. The crack is then meshed (c). A length criterion defines the size of the extracted « Box ». This length is called the length of influence. All elements having a node within this zone is included in the « Box ». A second operation adds elements in the Box in order to have continuous faces (d).
|
||||
2. The crack is then meshed (c). A length criterion defines the size of the extracted « Box ». This length is called the length of influence. Every element having a node within this zone is included in the « Box ». A second operation adds elements in the Box in order to have continuous faces (d).
|
||||
|
||||
3. A geometrical Box is reconstructed from the extracted Box mesh. The reconstruction is limited to faces which intersect the crack (e). A tore is created following the crack front (f).
|
||||
3. A geometrical Box is reconstructed from the extracted Box mesh. The reconstruction is limited to faces which intersect the crack (e). A torus is created following the crack front (f).
|
||||
|
||||
4. The geometrical Box is then cut by the tore and the crack (g). Several plans are created in order to partition the box and the tore into radiuses for the future mesh (h).
|
||||
4. The geometrical Box is then cut by the torus and the crack (g). Several plans are created in order to partition the box and the torus into radiuses for the future mesh (h).
|
||||
|
||||
5. The Box, the crack and the tore are meshed on their external surface (i) and then filled with volumetric elements (j). Crack nodes are doubled to « open » crack lips.
|
||||
5. The Box, the crack and the torus are meshed on their external surface (i) and then filled with volumetric elements (j). Crack nodes are doubled to « open » crack lips.
|
||||
|
||||
6. Finally the cracked box mesh is reinserted in the initial mesh ensuring the connectivity (k).
|
||||
|
||||
@ -64,7 +64,7 @@ The length of influence is important. It defines the size of the extracted Box.
|
||||
:width: 600
|
||||
:align: center
|
||||
|
||||
All elements having a node at a smaller distance to the crack than the length of influence is selected. Then a filling algorithm fulfill the Box with elements to get a Box. The Box is not limited to rectangular shapes. See the section on :ref:`test cases <test_cases>` to see examples.
|
||||
Every element having a node at a smaller distance to the crack than the length of influence is selected. Then a filling algorithm fulfill the Box with elements to get a Box. The Box is not limited to rectangular shapes. See the section on :ref:`test cases <test_cases>` to see examples.
|
||||
|
||||
.. _recommendations:
|
||||
|
||||
@ -86,7 +86,7 @@ Surface crack geometry shall exceed from the structure mesh. Boolean operation c
|
||||
|
||||
4) **Crack front edges must exceed from the structure:**
|
||||
|
||||
For similar reasons, crack front edges must exceed from the structure mesh. The user shall be really careful when fusing crack front edges within the structure with edges outside of the structure because junction mustn’t be on the box external face. For example the following figure shows the bad and the good practice. In grew a 2D view of a structure to cut and in red the crack surface. Line 1 is the edge declared as the crack front. On the left case, Line 1 stops on the box boundary. Even if Line 1 is extended with Line 2 and 5, « Bloc Fissure» will fail. The good practice is to extend the Line 1 with the same shape. See how to extend the front edges in the :ref:`tutorials section <tutorials>`
|
||||
For similar reasons, crack front edges must exceed from the structure mesh. The user shall be really careful when fusing crack front edges within the structure with edges outside of the structure because junction mustn’t be on the box external face. For example the following figure shows the bad and the good practice. In grey a 2D view of a structure to cut and in red the crack surface. Line 1 is the edge declared as the crack front. On the left case, Line 1 stops on the box boundary. Even if Line 1 is extended with Line 2 and 5, « Bloc Fissure» will fail. The good practice is to extend the Line 1 with the same shape. See how to extend the front edges in the :ref:`tutorials section <tutorials>`
|
||||
|
||||
.. image:: images/schema_lignes1.png
|
||||
:scale: 80
|
||||
|
@ -4,7 +4,7 @@
|
||||
Test cases
|
||||
#######################
|
||||
|
||||
A base of 25 test cases ensures the proper functioning of « Bloc Fissure ». 12 cases are dedicated to :ref:`cracked bended pipes <pipeTC>` and the others 13 are for other :ref:`generic geometries <genericTC>`. They are shown here in order to illustrate cases on which « Bloc Fissure » works.
|
||||
A base of 30 test cases guarantees the correct functioning of « Bloc Fissure ». 12 cases are dedicated to :ref:`cracked bended pipes <pipeTC>` and the others 13 are for other :ref:`generic geometries <genericTC>`. They are shown here in order to illustrate cases on which « Bloc Fissure » works.
|
||||
|
||||
.. _genericTC:
|
||||
|
||||
@ -115,18 +115,30 @@ All 12 bended pipe test cases are not shown here because they are relatively sim
|
||||
| with an external crack | |
|
||||
+--------------------------------+----------------------------------------------+
|
||||
|
||||
coude_0 can be computed using this file for the data:
|
||||
|
||||
* :download:`data for a bended puipe <../ihm/dialogFissureCoude.dic>`
|
||||
|
||||
« Bloc Fissure » is very efficient for the case of bended pipes. The generation of the geometry and the crack insertion takes only around 15s.
|
||||
|
||||
Running test cases
|
||||
=====================================
|
||||
|
||||
In SALOME interface:
|
||||
All the files for these test cases are stored in the directory of the installation of SALOME:
|
||||
|
||||
0) **Generate med and breps files.** Once the files are generated, they are saved in SALOME source files. There is no need to generate them again::
|
||||
``Salome-VXXXX_package-YY/modules/SMESH_VXXXX/lib/python3.6/site-packages/salome/blocFissure``
|
||||
|
||||
The test cases can be runned either through the python window of the SALOME GUI or with a python script.
|
||||
|
||||
0) **Generate med and breps files.**::
|
||||
|
||||
from blocFissure.materielCasTests import genereMateriel
|
||||
|
||||
Then the user can either launch all test cases, several at once or just one :
|
||||
Once the files are generated, they are saved into the directory of the installation of SALOME:
|
||||
|
||||
``Salome-VXXXX_package-YY/modules/SMESH_VXXXX/lib/python3.6/site-packages/salome/blocFissure/materielCasTests``
|
||||
|
||||
There is no need to generate them again.
|
||||
|
||||
1) **To execute all test cases**::
|
||||
|
||||
@ -134,37 +146,42 @@ Then the user can either launch all test cases, several at once or just one :
|
||||
|
||||
2) **To execute only selected test cases**:
|
||||
|
||||
modify execution_Cas.py file and change::
|
||||
modify the file ``execution_Cas.py`` and change::
|
||||
|
||||
runall = False. #old : True
|
||||
|
||||
And change from 0 to 1 of the number of the test you want to launch::
|
||||
And change from 0 to 1 of the index of the test you want to launch::
|
||||
|
||||
torun = [ 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]
|
||||
torun = [ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
|
||||
then launch the test cases::
|
||||
|
||||
from blocFissure.CasTests import execution_Cas
|
||||
|
||||
The index of each test is the position of the test in the following table, from 0 for cubeAngle, 1 for cubeAngle2,
|
||||
2 for cubeCoin... from top to bottom, then from left to right.
|
||||
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| cubeAngle | cylindre_2 | eprouvetteDroite_2 | fissureCoude_3 | fissureCoude_8 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| cubeAngle2 | disquePerce | faceGauche | fissureCoude_4 | fissureCoude_10 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| cubeCoin | ellipse_1 | faceGauche_2 | fissure_Coude_4 | fissureCoude_10 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| cubeMilieu | ellipse_2 | fissure_Coude | fissureCoude_5 | vis_1 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| cubeTransverse | eprouvetteCourbe | fissureCoude_1 | fissureCoude_6 | |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| cylindre | eprouvetteDroite | fissureCoude_2 | fissureCoude_7 | |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
|
||||
3) **To execute only one test case**::
|
||||
|
||||
from blocFissure.CasTests.[TEST_CASE_NAME] import [TEST_CASE_NAME]
|
||||
|
||||
[TEST_CASE_NAME](0).executeProbleme()
|
||||
|
||||
[TEST_CASE_NAME] is the name of the test case in the following list. Note that the test cases fissureCoude_4 and fissure_Coude_4 are very similar.
|
||||
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| faceGauche | cylindre_2 | disquePerce | fissureCoude_3 | fissureCoude_6 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| faceGauche_2 | eprouvetteCourbe | vis_1 | fissureCoude_4 | fissureCoude_7 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| ellipse_1 | eprouvetteDroite | fissureCoude | fissure_Coude_4 | fissureCoude_8 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| ellipse_2 | cubeAngle | fissureCoude_1 | fissureCoude_5 | fissureCoude_9 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
| cylindre | cubeAngle2 | fissureCoude_2 | fissureCoude_5 | fissureCoude_10 |
|
||||
+--------------------+--------------------+--------------------+-----------------+-----------------+
|
||||
[TEST_CASE_NAME] is the name of the test case in the previous list. Note that the test cases fissureCoude_4 and fissure_Coude_4 are very similar.
|
||||
|
||||
|
||||
|
||||
|
@ -122,7 +122,7 @@ class casStandard(fissureGenerique):
|
||||
|
||||
lgInfluence = shapeFissureParams['lgInfluence']
|
||||
|
||||
shellFiss = geompy.ImportFile( self.dicoParams['brepFaceFissure'], "BREP")
|
||||
shellFiss = geompy.ImportBREP( self.dicoParams['brepFaceFissure'])
|
||||
fondFiss = geompy.CreateGroup(shellFiss, geompy.ShapeType["EDGE"])
|
||||
geompy.UnionIDs(fondFiss, self.dicoParams['edgeFissIds'] )
|
||||
geomPublish(initLog.debug, shellFiss, 'shellFiss' )
|
||||
|
@ -169,10 +169,10 @@
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_optDiscrSain">
|
||||
<property name="toolTip">
|
||||
<string>Paramètres optionnels de discretisation</string>
|
||||
<string>Paramètres optionnels de discrétisation</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Options de discretisation</string>
|
||||
<string>Options de discrétisation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -347,7 +347,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="title">
|
||||
<string>position</string>
|
||||
<string>Position</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
@ -356,7 +356,7 @@
|
||||
<string><html><head/><body><p>Fissure positionnée sur la face interne</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>fissure interne</string>
|
||||
<string>Fissure interne</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -366,7 +366,7 @@
|
||||
<string><html><head/><body><p>Fissure positionnée sur la face externe</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>fissure externe</string>
|
||||
<string>Fissure externe</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -395,7 +395,7 @@
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>forcer elliptique</string>
|
||||
<string>Forcer elliptique</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -513,7 +513,7 @@
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="groupBox_11">
|
||||
<property name="title">
|
||||
<string>position longitudinale</string>
|
||||
<string>Position longitudinale</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_11">
|
||||
<item row="0" column="0">
|
||||
@ -600,13 +600,13 @@
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_8">
|
||||
<property name="title">
|
||||
<string>maillage zone de fissure</string>
|
||||
<string>Maillage zone de fissure</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_9">
|
||||
<property name="title">
|
||||
<string>pipe rayonnant</string>
|
||||
<string>Pipe rayonnant</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
@ -667,7 +667,7 @@
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="sb_nbTranches">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Pipe rayonnant construit sur le fond de fissure :</p><p>Nombre de mailles (approximatif) le long de la ligne de fond de fissure.</p></body></html></string>
|
||||
<string><html><head/><body><p>Pipe rayonnant construit sur le fond de fissure :</p><p>nombre de mailles (approximatif) le long de la ligne de fond de fissure.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>7</number>
|
||||
@ -730,7 +730,7 @@
|
||||
<string>Paramètres optionnels de discrétisation</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Options de discretisation</string>
|
||||
<string>Options de discrétisation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -740,15 +740,15 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>faces externes</string>
|
||||
<string>Faces externes</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="text">
|
||||
<string>aretes face fissure</string>
|
||||
<string>Arêtes face fissure</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>arete
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="dsb_aretesFaceFissure">
|
||||
@ -788,7 +788,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>identification zone à remailler</string>
|
||||
<string>Identification zone à remailler</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_16">
|
||||
<item row="0" column="0">
|
||||
@ -809,7 +809,7 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="text">
|
||||
<string>distance influence</string>
|
||||
<string>Distance influence</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -914,7 +914,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_reset">
|
||||
<property name="toolTip">
|
||||
<string>réinitialisation de tous les paramètres à leur valeur par défaut</string>
|
||||
<string>Réinitialisation de tous les paramètres à leur valeur par défaut</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Reset</string>
|
||||
@ -924,7 +924,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_valPrec">
|
||||
<property name="toolTip">
|
||||
<string>réinitialisation de tous les paramètres à leur valeur de la précédente éxécution</string>
|
||||
<string>Réinitialisation de tous les paramètres à leur valeur de la précédente éxécution</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Précédent</string>
|
||||
@ -934,7 +934,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_recharger">
|
||||
<property name="toolTip">
|
||||
<string>réinitialisation des paramètres à partir d'un fichier préalablement sauvegardé</string>
|
||||
<string>Réinitialisation des paramètres à partir d'un fichier préalablement sauvegardé</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Recharger</string>
|
||||
@ -944,7 +944,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_sauver">
|
||||
<property name="toolTip">
|
||||
<string>sauvegarde des paramètres dans un fichier à choisir</string>
|
||||
<string>Sauvegarde des paramètres dans un fichier à choisir</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sauver</string>
|
||||
|
@ -14,13 +14,13 @@
|
||||
<string>Insertion de fissure dans un maillage sain</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Insertion d'un maillage de fissure dans un maillage hexaédrique sain.</p><p>Le maillage sain est fourni sous forme de fichier Med.</p><p>La face de fissure est décrite par une géométrie dans un fichier brep.</p><p>La ou les arêtes de fond de fissure sont données par leurs index dans la face de fissure.</p><p>La procédure identfie des mailles saines à enlever et remailler, construit un maillage régulier rayonnant autour de la ligne de fond de fissure, reconstitue les faces externes en triangles, complète la zone à remailler en tétraèdres.</p></body></html></string>
|
||||
<string><html><head/><body><p>Insertion d'un maillage de fissure dans un maillage hexaédrique sain.</p><p>Le maillage sain est fourni sous forme de fichier med.</p><p>La face de fissure est décrite par une géométrie dans un fichier brep.</p><p>La ou les arêtes de fond de fissure sont données par leurs index dans la face de fissure du point de vue de GEOM.</p><p>La procédure identifie des mailles saines à enlever et à remailler, construit un maillage régulier rayonnant autour de la ligne de fond de fissure, reconstitue les faces externes en triangles, complète la zone à remailler en tétraèdres.</p></body></html></string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>maillage sain et géometries de fissure</string>
|
||||
<string>Maillage sain et géometries de fissure</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="1" column="0">
|
||||
@ -28,14 +28,14 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>index edges fond fissure</string>
|
||||
<string>Index arêtes fond de fissure</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_fondfiss">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Index des edges décrivant le fond de fissure, dans la face de fissure.</p><p>Sous forme d'une liste Python.</p><p>Exemples : <span style=" font-weight:600; font-style:italic; color:#000080;">[5,9]</span> ou<span style=" font-weight:600;"/><span style=" font-weight:600; font-style:italic; color:#000080;">[3]</span></p><p>(on peut récupérer ces valeurs à l'aide du dialogue de création de groupes d'edges, dans GEOM)</p></body></html></string>
|
||||
<string><html><head/><body><p>Index des arêtes décrivant le fond de fissure, dans la face de fissure.</p><p>Sous forme d'une liste Python.</p><p>Exemples : <span style=" font-weight:600; font-style:italic; color:#000080;">[5,9]</span> ou<span style=" font-weight:600;"/><span style=" font-weight:600; font-style:italic; color:#000080;">[3]</span></p><p>(On peut récupérer ces valeurs à l'aide du dialogue de création de groupes d'edges, dans GEOM)</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -59,7 +59,7 @@
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="le_maillage">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>fichier med du maillage sain (hexaèdres)</p></body></html></string>
|
||||
<string><html><head/><body><p>Fichier med du maillage sain (hexaèdres)</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -69,14 +69,14 @@
|
||||
<string><html><head/><body><p>sélection du fichier brep (géométrie) décrivant la face de fissure.</p><p>Un champ rouge correspond à un fichier inexistant.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>face fissure</string>
|
||||
<string>Face fissure</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="le_facefiss">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>fichier brep (géométrie) décrivant la face de fissure.</p></body></html></string>
|
||||
<string><html><head/><body><p>Fichier brep de la géométrie décrivant la face de fissure.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -86,7 +86,7 @@
|
||||
<string><html><head/><body><p>sélection du fichier med du maillage sain (hexaèdres)</p><p>Un champ rouge correspond à un fichier inexistant.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>maillage sain</string>
|
||||
<string>Maillage sain</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -102,7 +102,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>identification zone à remailler</string>
|
||||
<string>Identification zone à remailler</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
@ -110,7 +110,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>distance influence</string>
|
||||
<string>Distance influence</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -131,7 +131,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>prémaillage face fissure</string>
|
||||
<string>Prémaillage face fissure</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||
<item>
|
||||
@ -201,7 +201,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_7">
|
||||
<property name="title">
|
||||
<string>messages</string>
|
||||
<string>Messages</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
@ -294,13 +294,13 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>maillage zone de fissure</string>
|
||||
<string>Maillage zone de fissure</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="title">
|
||||
<string>pipe rayonnant</string>
|
||||
<string>Pipe rayonnant</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||
<item>
|
||||
@ -308,7 +308,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>rayon pipe</string>
|
||||
<string>Rayon pipe</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -328,7 +328,7 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>longueur mailles</string>
|
||||
<string>Longueur mailles</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -348,14 +348,14 @@
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>couronnes</string>
|
||||
<string>Couronnes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="sb_couronnes">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Pipe rayonnant construit sur le fond de fissure :</p><p>nombre de couronnes de mailles autour de la ligne de fond de fissure.</p></body></html></string>
|
||||
<string><html><head/><body><p>Pipe rayonnant construit sur le fond de fissure :</p><p>Nombre de couronnes de mailles autour de la ligne de fond de fissure.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>2</number>
|
||||
@ -371,14 +371,14 @@
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>secteurs</string>
|
||||
<string>Secteurs</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="sb_secteurs">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Pipe rayonnant construit sur le fond de fissure :</p><p>nombre de secteurs selon un cercle normal au fond de fissure.</p></body></html></string>
|
||||
<string><html><head/><body><p>Pipe rayonnant construit sur le fond de fissure :</p><p>Nombre de secteurs selon un cercle normal au fond de fissure.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>4</number>
|
||||
@ -412,7 +412,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="title">
|
||||
<string>faces externes</string>
|
||||
<string>Faces externes</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_11">
|
||||
<item>
|
||||
@ -420,7 +420,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>triangles face fissure</string>
|
||||
<string>Triangles face fissure</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -440,14 +440,14 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>aretes vives</string>
|
||||
<string>Arêtes vives</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="dsb_aretesVives">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Arêtes vives de la zone à remailler.</p><p>Longueur des segments sur ces arêtes.</p><p>Ce paramètre est <span style=" font-weight:600; font-style:italic; color:#2631c1;">optionnel</span> : laissé à 0,</p><p>il est est ajusté automatiquement.</p></body></html></string>
|
||||
<string><html><head/><body><p>Longueur des segments sur les arêtes vives de la zone à remailler.</p>Ce paramètre est <span style=" font-weight:600; font-style:italic; color:#2631c1;">optionnel</span> : laissé à 0, il est ajusté automatiquement.</p></body></html></string>
|
||||
</property>
|
||||
<property name="decimals">
|
||||
<number>5</number>
|
||||
@ -485,21 +485,21 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="pb_reptrav">
|
||||
<property name="text">
|
||||
<string>répertoire de travail</string>
|
||||
<string>Répertoire de travail</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="le_reptrav">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>Répertoire dans lequel seront rangés le maillage final, les objets intermédiaires, la log d'exécution.</p></body></html></string>
|
||||
<string><html><head/><body><p>Répertoire dans lequel seront rangés le maillage final, les objets intermédiaires, la log d'exécution.</p><p>Ce répertoire doit exister avant l'exécution.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="pb_nomres">
|
||||
<property name="text">
|
||||
<string>nom résultat</string>
|
||||
<string>Nom résultat</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -572,7 +572,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_exemple">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>génération de jeux de données exemple :</p><p>maillages sain et face de fissure.</p><p>(from blocFissure.materielCasTests import genereMateriel)</p></body></html></string>
|
||||
<string><html><head/><body><p>Génération de jeux de données exemple :</p><p>maillages sain et face de fissure.</p><p>(from blocFissure.materielCasTests import genereMateriel)</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Exemple</string>
|
||||
@ -582,7 +582,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_reset">
|
||||
<property name="toolTip">
|
||||
<string>réinitialisation de tous les paramètres à leur valeur par défaut</string>
|
||||
<string>Réinitialisation de tous les paramètres à leur valeur par défaut</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Reset</string>
|
||||
@ -592,7 +592,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_valPrec">
|
||||
<property name="toolTip">
|
||||
<string>réinitialisation de tous les paramètres à leur valeur de la précédente éxécution</string>
|
||||
<string>Réinitialisation de tous les paramètres à leur valeur de la précédente éxécution</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Précédent</string>
|
||||
@ -602,7 +602,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_recharger">
|
||||
<property name="toolTip">
|
||||
<string>réinitialisation des paramètres à partir d'un fichier préalablement sauvegardé</string>
|
||||
<string>Réinitialisation des paramètres à partir d'un fichier préalablement sauvegardé</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Recharger</string>
|
||||
@ -612,7 +612,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_sauver">
|
||||
<property name="toolTip">
|
||||
<string>sauvegarde des paramètres dans un fichier à choisir</string>
|
||||
<string>Sauvegarde des paramètres dans un fichier à choisir</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sauver</string>
|
||||
|
@ -89,7 +89,7 @@ def fissureGeneraleDlg(context):
|
||||
areteFaceFissure = 10,
|
||||
areteVives = 0,
|
||||
reptrav = '.',
|
||||
nomres = 'casStandard_fissure.med',
|
||||
nomres = 'maillage_avec_fissure',
|
||||
verbosite = 0)
|
||||
|
||||
|
||||
|
@ -51,7 +51,7 @@ geomObj_2 = geompy.MakeCylinder(O, OX, 2000, 5000)
|
||||
Cylinder_2 = geompy.MakeRotation(geomObj_2, OX, 180*math.pi/180.0)
|
||||
Translation_1 = geompy.MakeTranslation(Cylinder_2, -2000, 0, 0)
|
||||
Fuse_1 = geompy.MakeFuse(Cylinder_1, Translation_1)
|
||||
Fillet_1 = geompy.MakeFillet(Fuse_1, 800, geompy.ShapeType["EDGE"], [11])
|
||||
Fillet_1 = geompy.MakeFillet(Fuse_1, 800, geompy.ShapeType["EDGE"], [8])
|
||||
Vertex_1 = geompy.MakeVertex(0, -3000, -3000)
|
||||
Vertex_2 = geompy.MakeVertex(2500, 3000, 3000)
|
||||
Box_1 = geompy.MakeBoxTwoPnt(Vertex_2, Vertex_1)
|
||||
|
Loading…
Reference in New Issue
Block a user