1 # -*- coding: utf-8 -*-
8 theStudy = salome.myStudy
15 from salome.geom import geomBuilder
20 geompy = geomBuilder.New(theStudy)
24 O = geompy.MakeVertex(0, 0, 0)
25 OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
26 OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
27 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
28 Box_1 = geompy.MakeBoxDXDYDZ(box_side, box_side, box_side)
29 geompy.addToStudy( O, 'O' )
30 geompy.addToStudy( OX, 'OX' )
31 geompy.addToStudy( OY, 'OY' )
32 geompy.addToStudy( OZ, 'OZ' )
33 geompy.addToStudy( Box_1, 'Box_1' )
39 import SMESH, SALOMEDS
40 from salome.smesh import smeshBuilder
42 smesh = smeshBuilder.New(theStudy)
43 Mesh_1 = smesh.Mesh(Box_1)
44 MG_CADSurf = Mesh_1.Triangle(algo=smeshBuilder.MG_CADSurf)
45 MG_CADSurf_Parameters_1 = MG_CADSurf.Parameters()
46 MG_CADSurf_Parameters_1.SetPhySize( 10 )
47 MG_CADSurf_Parameters_1.SetMinSize( 0.34641 )
48 MG_CADSurf_Parameters_1.SetMaxSize( 69.282 )
50 isDone = Mesh_1.Compute()
53 Mesh_2 = smesh.CopyMesh( Mesh_1, 'Mesh_2', 0, 0)
56 HYBRID_3D = Mesh_1.Tetrahedron(algo=smeshBuilder.HYBRID)
57 MG_Hybrid_Parameters_1 = HYBRID_3D.Parameters()
58 MG_Hybrid_Parameters_1.SetElementGeneration( 1 )
59 MG_Hybrid_Parameters_1.SetHeightFirstLayer( 1 )
60 MG_Hybrid_Parameters_1.SetNbOfBoundaryLayers( 3 )
64 isDone = Mesh_1.Compute()
67 vol_mesh_1 = smesh.GetVolume(Mesh_1)
69 assert abs(vol_mesh_1-vol_box)/vol_box < 1e-4
71 # Check number of pyramids
72 assert Mesh_1.NbPyramids() > 1000
74 # Add hybrid to skin mesh
75 HYBRID_3D_1 = Mesh_2.Tetrahedron(algo=smeshBuilder.HYBRID,geom=None)
76 status = Mesh_2.AddHypothesis(MG_Hybrid_Parameters_1,None)
78 # Compute mesh without CAD
79 # ========================
80 isDone = Mesh_2.Compute()
83 vol_mesh_2 = smesh.GetVolume(Mesh_2)
85 assert abs(vol_mesh_2-vol_box)/vol_box < 1e-4
87 # Check number of pyramids
88 assert Mesh_2.NbPyramids() > 1000
91 if salome.sg.hasDesktop():
92 salome.sg.updateObjBrowser(True)