1 # -*- coding: utf-8 -*-
3 from blocFissure import gmu
4 from blocFissure.gmu.geomsmesh import geompy, smesh
15 from blocFissure.gmu.fissureGenerique import fissureGenerique
17 from blocFissure.gmu.triedreBase import triedreBase
18 from blocFissure.gmu.genereMeshCalculZoneDefaut import genereMeshCalculZoneDefaut
19 from blocFissure.gmu.creeZoneDefautDansObjetSain import creeZoneDefautDansObjetSain
20 from blocFissure.gmu.insereFissureLongue import insereFissureLongue
22 O, OX, OY, OZ = triedreBase()
24 class fissure_Coude(fissureGenerique):
26 problème de fissure du Coude : version de base
30 nomProbleme = "tuyau_Coude"
32 # ---------------------------------------------------------------------------
33 def setParamGeometrieSaine(self):
35 Paramètres géométriques du tuyau coudé sain:
43 self.geomParams = dict(angleCoude = 60,
50 # ---------------------------------------------------------------------------
51 def genereGeometrieSaine(self, geomParams):
52 logging.info("genereGeometrieSaine %s", self.nomCas)
54 angleCoude = geomParams['angleCoude']
55 r_cintr = geomParams['r_cintr']
56 l_tube_p1 = geomParams['l_tube_p1']
57 l_tube_p2 = geomParams['l_tube_p2']
58 epais = geomParams['epais']
61 centre = geompy.MakeVertex(0, 0, -l_tube_p1)
62 Disk_1 = geompy.MakeDiskPntVecR(centre, OZ, de/2.)
63 Disk_2 = geompy.MakeDiskPntVecR(centre, OZ, de/2. -epais)
64 Cut_1 = geompy.MakeCut(Disk_1, Disk_2)
65 Extrusion_1 = geompy.MakePrismVecH(Cut_1, OZ, l_tube_p1)
66 axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1)
67 Revolution_1 = geompy.MakeRevolution(Cut_1, axe, angleCoude*math.pi/180.0)
68 Rotation_1 = geompy.MakeRotation(Cut_1, axe, angleCoude*math.pi/180.0)
69 Rotation_2 = geompy.MakeRotation(OZ, OY, angleCoude*math.pi/180.0)
70 Extrusion_2 = geompy.MakePrismVecH(Rotation_1, Rotation_2, -l_tube_p2)
71 Plane_1 = geompy.MakePlaneLCS(None, 100000, 3)
72 geompy.addToStudy( Plane_1, "Plane_1" )
73 geompy.addToStudy( Extrusion_1, "Extrusion_1" )
74 geompy.addToStudy( Revolution_1, "Revolution_1" )
75 geompy.addToStudy( Extrusion_2, "Extrusion_2" )
78 geompy.addToStudy( P1, "P1" )
79 op2 = geompy.MakeVertex(0, 0, -l_tube_p1)
80 P2 = geompy.MakeRotation(op2, axe, angleCoude*math.pi/180.0)
81 P2 = geompy.MakeTranslationVectorDistance(P2, Rotation_2, -l_tube_p2)
82 geompy.addToStudy( P2, "P2" )
86 geometrieSaine = geompy.MakePartition([Extrusion_1, Revolution_1, Extrusion_2, P1, P2], [Plane_1], [], [], geompy.ShapeType["SOLID"], 0, [], 1)
87 geompy.addToStudy( geometrieSaine, self.nomCas )
88 [P1, P2] = geompy.RestoreGivenSubShapes(geometrieSaine, [P1, P2], GEOM.FSM_GetInPlaceByHistory, False, True)
90 [ep, circ_g, circ_d, long_p2, long_coude, long_p1] = geompy.Propagate(geometrieSaine)
91 geompy.addToStudyInFather( geometrieSaine, long_p1, 'long_p1' )
92 geompy.addToStudyInFather( geometrieSaine, ep, 'ep' )
93 geompy.addToStudyInFather( geometrieSaine, long_coude, 'long_coude' )
94 geompy.addToStudyInFather( geometrieSaine, circ_g, 'circ_g' )
95 geompy.addToStudyInFather( geometrieSaine, circ_d, 'circ_d' )
96 geompy.addToStudyInFather( geometrieSaine, long_p2, 'long_p2' )
98 # --- face extremite tube (EXTUBE)
100 facesIds = geompy.GetShapesOnPlaneIDs(geometrieSaine, geompy.ShapeType["FACE"], OZ, GEOM.ST_ON)
101 EXTUBE = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
102 geompy.UnionIDs(EXTUBE, facesIds)
103 geompy.addToStudyInFather( geometrieSaine, EXTUBE, 'EXTUBE' )
105 # --- edge bord extremite tube (BORDTU)
107 edge1Ids = geompy.GetShapesOnPlaneIDs(geometrieSaine, geompy.ShapeType["EDGE"], OZ, GEOM.ST_ON)
108 edge2Ids = geompy.GetShapesOnCylinderIDs(geometrieSaine, geompy.ShapeType["EDGE"], OZ, de/2., GEOM.ST_ON)
110 for edge in edge1Ids:
112 edgesIds.append(edge)
113 BORDTU = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["EDGE"])
114 geompy.UnionIDs(BORDTU, edgesIds)
115 geompy.addToStudyInFather( geometrieSaine, BORDTU, 'BORDTU' )
117 # --- face origine tube (CLGV)
119 pp2 = geompy.MakeTranslationVectorDistance(P2, Rotation_2, 10)
120 vec2 = geompy.MakeVector(P2, pp2)
121 #geompy.addToStudy(vec2, 'vec2')
122 facesIds = geompy.GetShapesOnPlaneIDs(geometrieSaine, geompy.ShapeType["FACE"], vec2, GEOM.ST_ON)
123 CLGV = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
124 geompy.UnionIDs(CLGV, facesIds)
125 geompy.addToStudyInFather( geometrieSaine, CLGV, 'CLGV' )
127 # --- peau tube interieur (PEAUINT)
129 extru1 = geompy.MakePrismVecH(Disk_2, OZ, l_tube_p1)
130 revol1 = geompy.MakeRevolution(Disk_2, axe, angleCoude*math.pi/180.0)
131 rot1 = geompy.MakeRotation(Disk_2, axe, angleCoude*math.pi/180.0)
132 extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
133 interne = geompy.MakeFuse(extru1, revol1)
134 interne = geompy.MakeFuse(extru2, interne)
135 geompy.addToStudy(interne, 'interne')
136 facesIds = geompy.GetShapesOnShapeIDs(interne, geometrieSaine, geompy.ShapeType["FACE"], GEOM.ST_ONIN)
137 PEAUINT = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
138 geompy.UnionIDs(PEAUINT, facesIds)
139 geompy.addToStudyInFather( geometrieSaine, PEAUINT, 'PEAUINT' )
141 # --- peau tube exterieur (PEAUEXT)
143 cercle1 = geompy.MakeCircle(centre, OZ, de/2.)
144 extru1 = geompy.MakePrismVecH(cercle1, OZ, l_tube_p1)
145 revol1 = geompy.MakeRevolution(cercle1, axe, angleCoude*math.pi/180.0)
146 rot1 = geompy.MakeRotation(cercle1, axe, angleCoude*math.pi/180.0)
147 extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
148 externe = geompy.MakeFuse(extru1, revol1)
149 externe = geompy.MakeFuse(extru2, externe)
150 geompy.addToStudy(externe, 'externe')
151 facesIds = geompy.GetShapesOnShapeIDs(externe, geometrieSaine, geompy.ShapeType["FACE"], GEOM.ST_ON)
152 PEAUEXT = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
153 geompy.UnionIDs(PEAUEXT, facesIds)
154 geompy.addToStudyInFather( geometrieSaine, PEAUEXT, 'PEAUEXT' )
158 volIds = geompy.SubShapeAllIDs(geometrieSaine, geompy.ShapeType["SOLID"])
159 COUDE = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["SOLID"])
160 geompy.UnionIDs(COUDE, volIds)
161 geompy.addToStudyInFather( geometrieSaine, COUDE, 'COUDSAIN' )
163 geometriesSaines = [geometrieSaine, long_p1, ep, long_coude, circ_g, circ_d, long_p2, P1, P2, EXTUBE, BORDTU, CLGV, PEAUINT, PEAUEXT, COUDE]
165 return geometriesSaines
167 # ---------------------------------------------------------------------------
168 def setParamMaillageSain(self):
169 self.meshParams = dict(n_long_p1 = 16,
176 # ---------------------------------------------------------------------------
177 def genereMaillageSain(self, geometriesSaines, meshParams):
178 logging.info("genereMaillageSain %s", self.nomCas)
180 geometrieSaine = geometriesSaines[0]
181 long_p1 = geometriesSaines[1]
182 ep = geometriesSaines[2]
183 long_coude = geometriesSaines[3]
184 circ_g = geometriesSaines[4]
185 circ_d = geometriesSaines[5]
186 long_p2 = geometriesSaines[6]
187 P1 = geometriesSaines[7]
188 P2 = geometriesSaines[8]
189 EXTUBE = geometriesSaines[9]
190 BORDTU = geometriesSaines[10]
191 CLGV = geometriesSaines[11]
192 PEAUINT = geometriesSaines[12]
193 PEAUEXT = geometriesSaines[13]
194 COUDE = geometriesSaines[14]
196 n_long_p1 = meshParams['n_long_p1']
197 n_ep = meshParams['n_ep']
198 n_long_coude = meshParams['n_long_coude']
199 n_circ_g = meshParams['n_circ_g']
200 n_circ_d = meshParams['n_circ_d']
201 n_long_p2 = meshParams['n_long_p2']
203 maillageSain = smesh.Mesh(geometrieSaine)
205 algo3d = maillageSain.Hexahedron()
206 algo2d = maillageSain.Quadrangle()
207 smesh.SetName(algo3d, "algo3d_maillageSain")
208 smesh.SetName(algo2d, "algo2d_maillageSain")
210 algo1d_long_p1 = maillageSain.Segment(geom=long_p1)
211 hypo1d_long_p1 = algo1d_long_p1.NumberOfSegments(n_long_p1)
212 smesh.SetName(algo1d_long_p1, "algo1d_long_p1")
213 smesh.SetName(hypo1d_long_p1, "hypo1d_long_p1")
215 algo1d_ep = maillageSain.Segment(geom=ep)
216 hypo1d_ep = algo1d_ep.NumberOfSegments(n_ep)
217 smesh.SetName(algo1d_ep, "algo1d_ep")
218 smesh.SetName(hypo1d_ep, "hypo1d_ep")
220 algo1d_long_coude = maillageSain.Segment(geom=long_coude)
221 hypo1d_long_coude = algo1d_long_coude.NumberOfSegments(n_long_coude)
222 smesh.SetName(algo1d_long_coude, "algo1d_long_coude")
223 smesh.SetName(hypo1d_long_coude, "hypo1d_long_coude")
225 algo1d_circ_g = maillageSain.Segment(geom=circ_g)
226 hypo1d_circ_g = algo1d_circ_g.NumberOfSegments(n_circ_g)
227 smesh.SetName(algo1d_circ_g, "algo1d_circ_g")
228 smesh.SetName(hypo1d_circ_g, "hypo1d_circ_g")
230 algo1d_circ_d = maillageSain.Segment(geom=circ_d)
231 hypo1d_circ_d = algo1d_circ_d.NumberOfSegments(n_circ_d)
232 smesh.SetName(algo1d_circ_d, "algo1d_circ_d")
233 smesh.SetName(hypo1d_circ_d, "hypo1d_circ_d")
235 algo1d_long_p2 = maillageSain.Segment(geom=long_p2)
236 hypo1d_long_p2 = algo1d_long_p2.NumberOfSegments(n_long_p2)
237 smesh.SetName(algo1d_long_p2, "algo1d_long_p2")
238 smesh.SetName(hypo1d_long_p2, "hypo1d_long_p2")
240 isDone = maillageSain.Compute()
242 mp1 = maillageSain.GroupOnGeom(P1,'P1',SMESH.NODE)
243 mp2 = maillageSain.GroupOnGeom(P2,'P2',SMESH.NODE)
244 ext = maillageSain.GroupOnGeom(EXTUBE,'EXTUBE',SMESH.FACE)
245 btu = maillageSain.GroupOnGeom(BORDTU,'BORDTU',SMESH.EDGE)
246 clg = maillageSain.GroupOnGeom(CLGV,'CLGV',SMESH.FACE)
247 pei = maillageSain.GroupOnGeom(PEAUINT,'PEAUINT',SMESH.FACE)
248 pex = maillageSain.GroupOnGeom(PEAUEXT,'PEAUEXT',SMESH.FACE)
249 cou = maillageSain.GroupOnGeom(COUDE,'COUDSAIN',SMESH.VOLUME)
251 return [maillageSain, True] # True : maillage hexa
253 # ---------------------------------------------------------------------------
254 def setParamShapeFissure(self):
256 paramètres de la fissure
257 profondeur : 0 < profondeur <= épaisseur
258 azimut : entre 0 et 360°
259 alpha : 0 < alpha < angleCoude
260 longueur : <=2*profondeur ==> ellipse, >2*profondeur = fissure longue
261 lgInfluence : distance autour de la shape de fissure a remailler (si 0, pris égal à profondeur. A ajuster selon le maillage)
262 orientation : 0° : longitudinale, 90° : circonférentielle, autre : uniquement fissures elliptiques
263 externe : True : fissure face externe, False : fissure face interne
265 logging.info("setParamShapeFissure %s", self.nomCas)
266 self.shapeFissureParams = dict(profondeur = 10,
275 # ---------------------------------------------------------------------------
276 def genereShapeFissure( self, geometriesSaines, geomParams, shapeFissureParams):
277 logging.info("genereShapeFissure %s", self.nomCas)
278 logging.info("shapeFissureParams %s", shapeFissureParams)
280 angleCoude = geomParams['angleCoude']
281 r_cintr = geomParams['r_cintr']
282 l_tube_p1 = geomParams['l_tube_p1']
283 l_tube_p2 = geomParams['l_tube_p2']
284 epais = geomParams['epais']
285 de = geomParams['de']
287 profondeur = shapeFissureParams['profondeur']
288 azimut = shapeFissureParams['azimut']
289 alpha = shapeFissureParams['alpha']
290 longueur = shapeFissureParams['longueur']
291 orientation = shapeFissureParams['orientation']
292 externe = shapeFissureParams['externe']
293 lgInfluence = shapeFissureParams['lgInfluence']
295 azimut = -azimut # axe inverse / ASCOUF
296 axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1)
299 lgInfluence = profondeur
301 if longueur > 2*profondeur:
302 self.fissureLongue=True
304 self.fissureLongue=False
306 self.circonferentielle = False
307 self.longitudinale = False
308 if self.fissureLongue and (abs(orientation) < 45) :
309 self.longitudinale = True
310 elif self.fissureLongue:
311 self.circonferentielle = True
313 if self.circonferentielle:
316 rayint = raybor - profondeur
317 rayext = raybor + profondeur
319 rayext = de/2. - epais
320 rayint = raybor + profondeur
321 rayext = raybor - profondeur
322 lgfond = longueur -2*profondeur
323 angle = lgfond/(2*raybor)
324 pb = geompy.MakeVertex(raybor, 0, 0)
325 pi = geompy.MakeVertex(rayint, 0, 0)
326 pe = geompy.MakeVertex(rayext, 0, 0)
327 pl = geompy.MakeVertex(raybor, profondeur, 0)
328 pr = geompy.MakeVertex(raybor, -profondeur, 0)
329 pil = geompy.MakeRotation(pi, OZ, angle)
330 pll = geompy.MakeRotation(pl, OZ, angle)
331 pel = geompy.MakeRotation(pe, OZ, angle)
332 pir = geompy.MakeRotation(pi, OZ, -angle)
333 prr = geompy.MakeRotation(pr, OZ, -angle)
334 per = geompy.MakeRotation(pe, OZ, -angle)
335 arcl = geompy.MakeArc(pil, pll, pel)
336 arcr = geompy.MakeArc(pir, prr, per)
337 arci = geompy.MakeArc(pil, pi, pir)
338 arce = geompy.MakeArc(pel, pe, per)
339 wire0 = geompy.MakeWire([arcr, arci, arcl])
340 cercle0 = geompy.MakeCircle(O, OY, profondeur/4.0)
341 cercle0 = geompy.MakeRotation(cercle0, OY, math.pi/2.0)
342 cercle0 = geompy.MakeTranslationTwoPoints(cercle0, O, pi)
343 facetube0 = geompy.MakeFaceWires([cercle0], 1)
344 facetubel = geompy.MakeRotation(facetube0, OZ, angle)
345 facetuber = geompy.MakeRotation(facetube0, OZ, -angle)
346 face0 = geompy.MakeFaceWires([arcl,arci, arce, arcr], 1)
347 plan0 = geompy.MakePlane(O, OZ, 10000)
348 geompy.addToStudy( face0, 'facefissOrig' )
349 face1 = geompy.MakeRotation(face0, OZ, azimut*math.pi/180.)
350 face2 = geompy.MakeTranslation(face1, 0, 0, -l_tube_p1)
351 facefiss = geompy.MakeRotation(face2, axe, alpha*math.pi/180.)
352 geompy.addToStudy( facefiss, 'facefissPlace' )
353 centre = geompy.MakeRotation(pb, OZ, azimut*math.pi/180.)
354 centre = geompy.MakeTranslation(centre, 0, 0, -l_tube_p1)
355 centre = geompy.MakeRotation(centre, axe, alpha*math.pi/180.)
356 geompy.addToStudy( centre, 'centrefissPlace' )
357 arcr = geompy.MakeRotation(arcr, OZ, azimut*math.pi/180.)
358 arcr = geompy.MakeTranslation(arcr, 0, 0, -l_tube_p1)
359 arcr = geompy.MakeRotation(arcr, axe, alpha*math.pi/180.)
360 arci = geompy.MakeRotation(arci, OZ, azimut*math.pi/180.)
361 arci = geompy.MakeTranslation(arci, 0, 0, -l_tube_p1)
362 arci = geompy.MakeRotation(arci, axe, alpha*math.pi/180.)
363 arcl = geompy.MakeRotation(arcl, OZ, azimut*math.pi/180.)
364 arcl = geompy.MakeTranslation(arcl, 0, 0, -l_tube_p1)
365 arcl = geompy.MakeRotation(arcl, axe, alpha*math.pi/180.)
366 wiretube = geompy.MakeRotation(wire0, OZ, azimut*math.pi/180.)
367 wiretube = geompy.MakeTranslation(wiretube, 0, 0, -l_tube_p1)
368 wiretube = geompy.MakeRotation(wiretube, axe, alpha*math.pi/180.)
369 geompy.addToStudy(wiretube, 'wiretubePlace' )
370 facetubel = geompy.MakeRotation(facetubel, OZ, azimut*math.pi/180.)
371 facetubel = geompy.MakeTranslation(facetubel, 0, 0, -l_tube_p1)
372 facetubel = geompy.MakeRotation(facetubel, axe, alpha*math.pi/180.)
373 geompy.addToStudy(facetubel, 'facetubeGauche' )
374 facetuber = geompy.MakeRotation(facetuber, OZ, azimut*math.pi/180.)
375 facetuber = geompy.MakeTranslation(facetuber, 0, 0, -l_tube_p1)
376 facetuber = geompy.MakeRotation(facetuber, axe, alpha*math.pi/180.)
377 geompy.addToStudy(facetuber, 'facetubeDroit' )
378 planfiss = geompy.MakeRotation(plan0, OZ, azimut*math.pi/180.)
379 planfiss = geompy.MakeTranslation(planfiss, 0, 0, -l_tube_p1)
380 planfiss = geompy.MakeRotation(planfiss, axe, alpha*math.pi/180.)
381 geompy.addToStudy(planfiss, 'planfissPlace' )
382 pipefissl = geompy.MakePipe(facetubel, arcl)
383 pipefissi = geompy.MakePipe(facetubel, arci)
384 pipefissr = geompy.MakePipe(facetuber, arcr)
385 pipefiss = geompy.MakePartition([pipefissl, pipefissi, pipefissr], [planfiss, wiretube], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
386 geompy.addToStudy(pipefiss, 'pipefissPlace' )
389 elif self.longitudinale:
391 raybor = r_cintr + de/2.
392 rayint = raybor - profondeur
393 rayext = raybor + profondeur
395 rayext = r_cintr + de/2. - epais
396 rayint = raybor + profondeur
397 rayext = raybor - profondeur
398 lgfond = longueur -2*profondeur
399 angle = lgfond/(2*raybor)
400 pb = geompy.MakeVertex(-raybor, 0, 0)
401 pi = geompy.MakeVertex(-rayint, 0, 0)
402 pe = geompy.MakeVertex(-rayext, 0, 0)
403 pl = geompy.MakeVertex(-raybor, 0, -profondeur)
404 pr = geompy.MakeVertex(-raybor, 0, profondeur)
405 pil = geompy.MakeRotation(pi, OY, -angle)
406 pll = geompy.MakeRotation(pl, OY, -angle)
407 pel = geompy.MakeRotation(pe, OY, -angle)
408 pir = geompy.MakeRotation(pi, OY, angle)
409 prr = geompy.MakeRotation(pr, OY, angle)
410 per = geompy.MakeRotation(pe, OY, angle)
411 arcl = geompy.MakeArc(pil, pll, pel)
412 arcr = geompy.MakeArc(pir, prr, per)
413 arci = geompy.MakeArc(pil, pi, pir)
414 arce = geompy.MakeArc(pel, pe, per)
415 geompy.addToStudy( arcl, 'arcl' )
416 geompy.addToStudy( arcr, 'arcr' )
417 geompy.addToStudy( arci, 'arci' )
418 geompy.addToStudy( arce, 'arce' )
419 wire0 = geompy.MakeWire([arcr, arci, arcl])
420 cercle0 = geompy.MakeCircle(O, OZ, profondeur/4.0)
421 #cercle0 = geompy.MakeRotation(cercle0, OZ, math.pi/2.0)
422 cercle0 = geompy.MakeTranslationTwoPoints(cercle0, O, pi)
423 geompy.addToStudy( cercle0, 'cercle0' )
424 facetube0 = geompy.MakeFaceWires([cercle0], 1)
425 facetubel = geompy.MakeRotation(facetube0, OY, -angle)
426 facetuber = geompy.MakeRotation(facetube0, OY, angle)
427 geompy.addToStudy(facetubel , 'facetubel' )
428 geompy.addToStudy( facetuber, 'facetuber' )
429 face0 = geompy.MakeFaceWires([arcl,arci, arce, arcr], 1)
430 plan0 = geompy.MakePlane(O, OY, 10000)
431 geompy.addToStudy( face0, 'facefissOrig' )
432 facefiss = geompy.MakeRotation(face0, OY, alpha*math.pi/180.)
433 geompy.addToStudy( facefiss, 'facefissPlace' )
434 centre = geompy.MakeRotation(pb, OY, alpha*math.pi/180.)
435 geompy.addToStudy( centre, 'centrefissPlace' )
436 arcr = geompy.MakeRotation(arcr, OY, alpha*math.pi/180.)
437 arci = geompy.MakeRotation(arci, OY, alpha*math.pi/180.)
438 arcl = geompy.MakeRotation(arcl, OY, alpha*math.pi/180.)
439 wiretube = geompy.MakeRotation(wire0, OY, alpha*math.pi/180.)
440 geompy.addToStudy(wiretube, 'wiretubePlace' )
441 facetubel = geompy.MakeRotation(facetubel, OY, alpha*math.pi/180.)
442 geompy.addToStudy(facetubel, 'facetubeGauche' )
443 facetuber = geompy.MakeRotation(facetuber, OY, alpha*math.pi/180.)
444 geompy.addToStudy(facetubel, 'facetubeDroit' )
445 planfiss = geompy.MakeRotation(plan0, OY, alpha*math.pi/180.)
446 geompy.addToStudy(planfiss, 'planfissPlace' )
447 pipefissl = geompy.MakePipe(facetubel, arcl)
448 pipefissi = geompy.MakePipe(facetubel, arci)
449 pipefissr = geompy.MakePipe(facetuber, arcr)
450 pipefiss = geompy.MakePartition([pipefissl, pipefissi, pipefissr], [planfiss, wiretube], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
451 geompy.addToStudy(pipefiss, 'pipefissPlace' )
455 coordsNoeudsFissure = genereMeshCalculZoneDefaut(facefiss, 5 ,10)
457 return [facefiss, centre, lgInfluence, coordsNoeudsFissure, wiretube, facetubel, facetuber, planfiss, pipefiss]
459 # ---------------------------------------------------------------------------
460 def setParamMaillageFissure(self):
461 self.maillageFissureParams = dict(nomRep = '.',
462 nomFicSain = self.nomCas,
463 nomFicFissure = 'fissure_' + self.nomCas,
472 # ---------------------------------------------------------------------------
473 def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams):
474 elementsDefaut = creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams)
475 return elementsDefaut
477 # ---------------------------------------------------------------------------
478 def genereMaillageFissure(self, geometriesSaines, maillagesSains,
479 shapesFissure, shapeFissureParams,
480 maillageFissureParams, elementsDefaut, step):
481 maillageFissure = insereFissureLongue(geometriesSaines, maillagesSains,
482 shapesFissure, shapeFissureParams,
483 maillageFissureParams, elementsDefaut, step)
484 return maillageFissure
486 # ---------------------------------------------------------------------------
487 def setReferencesMaillageFissure(self):
488 self.referencesMaillageFissure = dict(Entity_Node = 77491,
489 Entity_Quad_Edge = 1006,
490 Entity_Quad_Triangle = 2412,
491 Entity_Quad_Quadrangle = 6710,
492 Entity_Quad_Tetra = 20853,
493 Entity_Quad_Hexa = 8656,
494 Entity_Quad_Penta = 1176,
495 Entity_Quad_Pyramid = 1232)