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 Disk_3 = geompy.MakeDiskPntVecR(centre, OZ, de/2. +epais)
144 couronne1 = geompy.MakeCut(Disk_3, Disk_1)
145 extru1 = geompy.MakePrismVecH(couronne1, OZ, l_tube_p1)
146 revol1 = geompy.MakeRevolution(couronne1, axe, angleCoude*math.pi/180.0)
147 rot1 = geompy.MakeRotation(couronne1, axe, angleCoude*math.pi/180.0)
148 extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
149 externe = geompy.MakeFuse(extru1, revol1)
150 externe = geompy.MakeFuse(extru2, externe)
151 geompy.addToStudy(externe, 'externe')
152 facesIds = geompy.GetShapesOnShapeIDs(externe, geometrieSaine, geompy.ShapeType["FACE"], GEOM.ST_ON)
153 PEAUEXT = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
154 geompy.UnionIDs(PEAUEXT, facesIds)
155 geompy.addToStudyInFather( geometrieSaine, PEAUEXT, 'PEAUEXT' )
159 volIds = geompy.SubShapeAllIDs(geometrieSaine, geompy.ShapeType["SOLID"])
160 COUDE = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["SOLID"])
161 geompy.UnionIDs(COUDE, volIds)
162 geompy.addToStudyInFather( geometrieSaine, COUDE, 'COUDSAIN' )
164 geometriesSaines = [geometrieSaine, long_p1, ep, long_coude, circ_g, circ_d, long_p2, P1, P2, EXTUBE, BORDTU, CLGV, PEAUINT, PEAUEXT, COUDE]
166 return geometriesSaines
168 # ---------------------------------------------------------------------------
169 def setParamMaillageSain(self):
170 self.meshParams = dict(n_long_p1 = 16,
177 # ---------------------------------------------------------------------------
178 def genereMaillageSain(self, geometriesSaines, meshParams):
179 logging.info("genereMaillageSain %s", self.nomCas)
181 geometrieSaine = geometriesSaines[0]
182 long_p1 = geometriesSaines[1]
183 ep = geometriesSaines[2]
184 long_coude = geometriesSaines[3]
185 circ_g = geometriesSaines[4]
186 circ_d = geometriesSaines[5]
187 long_p2 = geometriesSaines[6]
188 P1 = geometriesSaines[7]
189 P2 = geometriesSaines[8]
190 EXTUBE = geometriesSaines[9]
191 BORDTU = geometriesSaines[10]
192 CLGV = geometriesSaines[11]
193 PEAUINT = geometriesSaines[12]
194 PEAUEXT = geometriesSaines[13]
195 COUDE = geometriesSaines[14]
197 n_long_p1 = meshParams['n_long_p1']
198 n_ep = meshParams['n_ep']
199 n_long_coude = meshParams['n_long_coude']
200 n_circ_g = meshParams['n_circ_g']
201 n_circ_d = meshParams['n_circ_d']
202 n_long_p2 = meshParams['n_long_p2']
204 maillageSain = smesh.Mesh(geometrieSaine)
206 algo3d = maillageSain.Hexahedron()
207 algo2d = maillageSain.Quadrangle()
208 smesh.SetName(algo3d, "algo3d_maillageSain")
209 smesh.SetName(algo2d, "algo2d_maillageSain")
211 algo1d_long_p1 = maillageSain.Segment(geom=long_p1)
212 hypo1d_long_p1 = algo1d_long_p1.NumberOfSegments(n_long_p1)
213 smesh.SetName(algo1d_long_p1, "algo1d_long_p1")
214 smesh.SetName(hypo1d_long_p1, "hypo1d_long_p1")
216 algo1d_ep = maillageSain.Segment(geom=ep)
217 hypo1d_ep = algo1d_ep.NumberOfSegments(n_ep)
218 smesh.SetName(algo1d_ep, "algo1d_ep")
219 smesh.SetName(hypo1d_ep, "hypo1d_ep")
221 algo1d_long_coude = maillageSain.Segment(geom=long_coude)
222 hypo1d_long_coude = algo1d_long_coude.NumberOfSegments(n_long_coude)
223 smesh.SetName(algo1d_long_coude, "algo1d_long_coude")
224 smesh.SetName(hypo1d_long_coude, "hypo1d_long_coude")
226 algo1d_circ_g = maillageSain.Segment(geom=circ_g)
227 hypo1d_circ_g = algo1d_circ_g.NumberOfSegments(n_circ_g)
228 smesh.SetName(algo1d_circ_g, "algo1d_circ_g")
229 smesh.SetName(hypo1d_circ_g, "hypo1d_circ_g")
231 algo1d_circ_d = maillageSain.Segment(geom=circ_d)
232 hypo1d_circ_d = algo1d_circ_d.NumberOfSegments(n_circ_d)
233 smesh.SetName(algo1d_circ_d, "algo1d_circ_d")
234 smesh.SetName(hypo1d_circ_d, "hypo1d_circ_d")
236 algo1d_long_p2 = maillageSain.Segment(geom=long_p2)
237 hypo1d_long_p2 = algo1d_long_p2.NumberOfSegments(n_long_p2)
238 smesh.SetName(algo1d_long_p2, "algo1d_long_p2")
239 smesh.SetName(hypo1d_long_p2, "hypo1d_long_p2")
241 isDone = maillageSain.Compute()
243 mp1 = maillageSain.GroupOnGeom(P1,'P1',SMESH.NODE)
244 mp2 = maillageSain.GroupOnGeom(P2,'P2',SMESH.NODE)
245 ext = maillageSain.GroupOnGeom(EXTUBE,'EXTUBE',SMESH.FACE)
246 btu = maillageSain.GroupOnGeom(BORDTU,'BORDTU',SMESH.EDGE)
247 clg = maillageSain.GroupOnGeom(CLGV,'CLGV',SMESH.FACE)
248 pei = maillageSain.GroupOnGeom(PEAUINT,'PEAUINT',SMESH.FACE)
249 pex = maillageSain.GroupOnGeom(PEAUEXT,'PEAUEXT',SMESH.FACE)
250 cou = maillageSain.GroupOnGeom(COUDE,'COUDSAIN',SMESH.VOLUME)
252 return [maillageSain, True] # True : maillage hexa
254 # ---------------------------------------------------------------------------
255 def setParamShapeFissure(self):
257 paramètres de la fissure
258 profondeur : 0 < profondeur <= épaisseur
259 azimut : entre 0 et 360°
260 alpha : 0 < alpha < angleCoude
261 longueur : <=2*profondeur ==> ellipse, >2*profondeur = fissure longue
262 lgInfluence : distance autour de la shape de fissure a remailler (si 0, pris égal à profondeur. A ajuster selon le maillage)
263 orientation : 0° : longitudinale, 90° : circonférentielle, autre : uniquement fissures elliptiques
264 externe : True : fissure face externe, False : fissure face interne
266 logging.info("setParamShapeFissure %s", self.nomCas)
267 self.shapeFissureParams = dict(profondeur = 10,
276 # ---------------------------------------------------------------------------
277 def genereShapeFissure( self, geometriesSaines, geomParams, shapeFissureParams):
278 logging.info("genereShapeFissure %s", self.nomCas)
279 logging.info("shapeFissureParams %s", shapeFissureParams)
281 angleCoude = geomParams['angleCoude']
282 r_cintr = geomParams['r_cintr']
283 l_tube_p1 = geomParams['l_tube_p1']
284 l_tube_p2 = geomParams['l_tube_p2']
285 epais = geomParams['epais']
286 de = geomParams['de']
288 profondeur = shapeFissureParams['profondeur']
289 azimut = shapeFissureParams['azimut']
290 alpha = shapeFissureParams['alpha']
291 longueur = shapeFissureParams['longueur']
292 orientation = shapeFissureParams['orientation']
293 externe = shapeFissureParams['externe']
294 lgInfluence = shapeFissureParams['lgInfluence']
296 azimut = -azimut # axe inverse / ASCOUF
297 axe = geompy.MakeTranslation(OY, -r_cintr, 0, -l_tube_p1)
300 lgInfluence = profondeur
302 if longueur > 2*profondeur:
303 self.fissureLongue=True
305 self.fissureLongue=False
307 self.circonferentielle = False
308 self.longitudinale = False
309 if self.fissureLongue and (abs(orientation) < 45) :
310 self.longitudinale = True
311 elif self.fissureLongue:
312 self.circonferentielle = True
314 if self.circonferentielle:
317 rayint = raybor - profondeur
318 rayext = raybor + profondeur
320 rayext = de/2. - epais
321 rayint = raybor + profondeur
322 rayext = raybor - profondeur
323 lgfond = longueur -2*profondeur
324 angle = lgfond/(2*raybor)
325 pb = geompy.MakeVertex(raybor, 0, 0)
326 pi = geompy.MakeVertex(rayint, 0, 0)
327 pe = geompy.MakeVertex(rayext, 0, 0)
328 pl = geompy.MakeVertex(raybor, profondeur, 0)
329 pr = geompy.MakeVertex(raybor, -profondeur, 0)
330 pil = geompy.MakeRotation(pi, OZ, angle)
331 pll = geompy.MakeRotation(pl, OZ, angle)
332 pel = geompy.MakeRotation(pe, OZ, angle)
333 pir = geompy.MakeRotation(pi, OZ, -angle)
334 prr = geompy.MakeRotation(pr, OZ, -angle)
335 per = geompy.MakeRotation(pe, OZ, -angle)
336 arcl = geompy.MakeArc(pil, pll, pel)
337 arcr = geompy.MakeArc(pir, prr, per)
338 arci = geompy.MakeArc(pil, pi, pir)
339 arce = geompy.MakeArc(pel, pe, per)
340 wire0 = geompy.MakeWire([arcr, arci, arcl])
341 cercle0 = geompy.MakeCircle(O, OY, profondeur/4.0)
342 cercle0 = geompy.MakeRotation(cercle0, OY, math.pi/2.0)
343 cercle0 = geompy.MakeTranslationTwoPoints(cercle0, O, pi)
344 facetube0 = geompy.MakeFaceWires([cercle0], 1)
345 facetubel = geompy.MakeRotation(facetube0, OZ, angle)
346 facetuber = geompy.MakeRotation(facetube0, OZ, -angle)
347 face0 = geompy.MakeFaceWires([arcl,arci, arce, arcr], 1)
348 plan0 = geompy.MakePlane(O, OZ, 10000)
349 geompy.addToStudy( face0, 'facefissOrig' )
350 face1 = geompy.MakeRotation(face0, OZ, azimut*math.pi/180.)
351 face2 = geompy.MakeTranslation(face1, 0, 0, -l_tube_p1)
352 facefiss = geompy.MakeRotation(face2, axe, alpha*math.pi/180.)
353 geompy.addToStudy( facefiss, 'facefissPlace' )
354 centre = geompy.MakeRotation(pb, OZ, azimut*math.pi/180.)
355 centre = geompy.MakeTranslation(centre, 0, 0, -l_tube_p1)
356 centre = geompy.MakeRotation(centre, axe, alpha*math.pi/180.)
357 geompy.addToStudy( centre, 'centrefissPlace' )
358 arcr = geompy.MakeRotation(arcr, OZ, azimut*math.pi/180.)
359 arcr = geompy.MakeTranslation(arcr, 0, 0, -l_tube_p1)
360 arcr = geompy.MakeRotation(arcr, axe, alpha*math.pi/180.)
361 arci = geompy.MakeRotation(arci, OZ, azimut*math.pi/180.)
362 arci = geompy.MakeTranslation(arci, 0, 0, -l_tube_p1)
363 arci = geompy.MakeRotation(arci, axe, alpha*math.pi/180.)
364 arcl = geompy.MakeRotation(arcl, OZ, azimut*math.pi/180.)
365 arcl = geompy.MakeTranslation(arcl, 0, 0, -l_tube_p1)
366 arcl = geompy.MakeRotation(arcl, axe, alpha*math.pi/180.)
367 wiretube = geompy.MakeRotation(wire0, OZ, azimut*math.pi/180.)
368 wiretube = geompy.MakeTranslation(wiretube, 0, 0, -l_tube_p1)
369 wiretube = geompy.MakeRotation(wiretube, axe, alpha*math.pi/180.)
370 geompy.addToStudy(wiretube, 'wiretubePlace' )
371 facetubel = geompy.MakeRotation(facetubel, OZ, azimut*math.pi/180.)
372 facetubel = geompy.MakeTranslation(facetubel, 0, 0, -l_tube_p1)
373 facetubel = geompy.MakeRotation(facetubel, axe, alpha*math.pi/180.)
374 geompy.addToStudy(facetubel, 'facetubeGauche' )
375 facetuber = geompy.MakeRotation(facetuber, OZ, azimut*math.pi/180.)
376 facetuber = geompy.MakeTranslation(facetuber, 0, 0, -l_tube_p1)
377 facetuber = geompy.MakeRotation(facetuber, axe, alpha*math.pi/180.)
378 geompy.addToStudy(facetuber, 'facetubeDroit' )
379 planfiss = geompy.MakeRotation(plan0, OZ, azimut*math.pi/180.)
380 planfiss = geompy.MakeTranslation(planfiss, 0, 0, -l_tube_p1)
381 planfiss = geompy.MakeRotation(planfiss, axe, alpha*math.pi/180.)
382 geompy.addToStudy(planfiss, 'planfissPlace' )
383 pipefissl = geompy.MakePipe(facetubel, arcl)
384 pipefissi = geompy.MakePipe(facetubel, arci)
385 pipefissr = geompy.MakePipe(facetuber, arcr)
386 pipefiss = geompy.MakePartition([pipefissl, pipefissi, pipefissr], [planfiss, wiretube], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
387 geompy.addToStudy(pipefiss, 'pipefissPlace' )
390 elif self.longitudinale:
392 raybor = r_cintr + de/2.
393 rayint = raybor - profondeur
394 rayext = raybor + profondeur
396 rayext = r_cintr + de/2. - epais
397 rayint = raybor + profondeur
398 rayext = raybor - profondeur
399 lgfond = longueur -2*profondeur
400 angle = lgfond/(2*raybor)
401 pb = geompy.MakeVertex(-raybor, 0, 0)
402 pi = geompy.MakeVertex(-rayint, 0, 0)
403 pe = geompy.MakeVertex(-rayext, 0, 0)
404 pl = geompy.MakeVertex(-raybor, 0, -profondeur)
405 pr = geompy.MakeVertex(-raybor, 0, profondeur)
406 pil = geompy.MakeRotation(pi, OY, -angle)
407 pll = geompy.MakeRotation(pl, OY, -angle)
408 pel = geompy.MakeRotation(pe, OY, -angle)
409 pir = geompy.MakeRotation(pi, OY, angle)
410 prr = geompy.MakeRotation(pr, OY, angle)
411 per = geompy.MakeRotation(pe, OY, angle)
412 arcl = geompy.MakeArc(pil, pll, pel)
413 arcr = geompy.MakeArc(pir, prr, per)
414 arci = geompy.MakeArc(pil, pi, pir)
415 arce = geompy.MakeArc(pel, pe, per)
416 geompy.addToStudy( arcl, 'arcl' )
417 geompy.addToStudy( arcr, 'arcr' )
418 geompy.addToStudy( arci, 'arci' )
419 geompy.addToStudy( arce, 'arce' )
420 wire0 = geompy.MakeWire([arcr, arci, arcl])
421 cercle0 = geompy.MakeCircle(O, OZ, profondeur/4.0)
422 #cercle0 = geompy.MakeRotation(cercle0, OZ, math.pi/2.0)
423 cercle0 = geompy.MakeTranslationTwoPoints(cercle0, O, pi)
424 geompy.addToStudy( cercle0, 'cercle0' )
425 facetube0 = geompy.MakeFaceWires([cercle0], 1)
426 facetubel = geompy.MakeRotation(facetube0, OY, -angle)
427 facetuber = geompy.MakeRotation(facetube0, OY, angle)
428 geompy.addToStudy(facetubel , 'facetubel' )
429 geompy.addToStudy( facetuber, 'facetuber' )
430 face0 = geompy.MakeFaceWires([arcl,arci, arce, arcr], 1)
431 plan0 = geompy.MakePlane(O, OY, 10000)
432 geompy.addToStudy( face0, 'facefissOrig' )
433 facefiss = geompy.MakeRotation(face0, OY, alpha*math.pi/180.)
434 geompy.addToStudy( facefiss, 'facefissPlace' )
435 centre = geompy.MakeRotation(pb, OY, alpha*math.pi/180.)
436 geompy.addToStudy( centre, 'centrefissPlace' )
437 arcr = geompy.MakeRotation(arcr, OY, alpha*math.pi/180.)
438 arci = geompy.MakeRotation(arci, OY, alpha*math.pi/180.)
439 arcl = geompy.MakeRotation(arcl, OY, alpha*math.pi/180.)
440 wiretube = geompy.MakeRotation(wire0, OY, alpha*math.pi/180.)
441 geompy.addToStudy(wiretube, 'wiretubePlace' )
442 facetubel = geompy.MakeRotation(facetubel, OY, alpha*math.pi/180.)
443 geompy.addToStudy(facetubel, 'facetubeGauche' )
444 facetuber = geompy.MakeRotation(facetuber, OY, alpha*math.pi/180.)
445 geompy.addToStudy(facetubel, 'facetubeDroit' )
446 planfiss = geompy.MakeRotation(plan0, OY, alpha*math.pi/180.)
447 geompy.addToStudy(planfiss, 'planfissPlace' )
448 pipefissl = geompy.MakePipe(facetubel, arcl)
449 pipefissi = geompy.MakePipe(facetubel, arci)
450 pipefissr = geompy.MakePipe(facetuber, arcr)
451 pipefiss = geompy.MakePartition([pipefissl, pipefissi, pipefissr], [planfiss, wiretube], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
452 geompy.addToStudy(pipefiss, 'pipefissPlace' )
456 coordsNoeudsFissure = genereMeshCalculZoneDefaut(facefiss, 5 ,10)
458 return [facefiss, centre, lgInfluence, coordsNoeudsFissure, wiretube, facetubel, facetuber, planfiss, pipefiss]
460 # ---------------------------------------------------------------------------
461 def setParamMaillageFissure(self):
462 self.maillageFissureParams = dict(nomRep = '.',
463 nomFicSain = self.nomCas,
464 nomFicFissure = 'fissure_' + self.nomCas,
473 # ---------------------------------------------------------------------------
474 def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams):
475 elementsDefaut = creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams)
476 return elementsDefaut
478 # ---------------------------------------------------------------------------
479 def genereMaillageFissure(self, geometriesSaines, maillagesSains,
480 shapesFissure, shapeFissureParams,
481 maillageFissureParams, elementsDefaut, step):
482 maillageFissure = insereFissureLongue(geometriesSaines, maillagesSains,
483 shapesFissure, shapeFissureParams,
484 maillageFissureParams, elementsDefaut, step)
485 return maillageFissure
487 # ---------------------------------------------------------------------------
488 def setReferencesMaillageFissure(self):
489 self.referencesMaillageFissure = dict(Entity_Node = 77491,
490 Entity_Quad_Edge = 1006,
491 Entity_Quad_Triangle = 2412,
492 Entity_Quad_Quadrangle = 6710,
493 Entity_Quad_Tetra = 20853,
494 Entity_Quad_Hexa = 8656,
495 Entity_Quad_Penta = 1176,
496 Entity_Quad_Pyramid = 1232)