#!/usr/bin/env python

###
### This file is generated automatically by SALOME v9.15.0 with dump python functionality
###

import sys
import salome

salome.salome_init()
import salome_notebook
notebook = salome_notebook.NoteBook()
sys.path.insert(0, r'/home/franco/Downloads')

###
### GEOM component
###

import GEOM
from salome.geom import geomBuilder
import math
import SALOMEDS


geompy = geomBuilder.New()

O = geompy.MakeVertex(0, 0, 0)
OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200)
[Compound_1, Compound_2, Compound_3] = geompy.Propagate(Box_1)
[Face_1,Face_2,Face_3,Face_4,Face_5,Face_6] = geompy.ExtractShapes(Box_1, geompy.ShapeType["FACE"], True)
[Compound_1, Compound_2, Compound_3, Face_1, Face_2, Face_3, Face_4, Face_5, Face_6] = geompy.GetExistingSubObjects(Box_1, False)
Compound_4 = geompy.MakeCompound([Box_1])
[Compound_5, Compound_6, Compound_7] = geompy.Propagate(Compound_4)
[Face_7,Face_8,Face_9,Face_10,Face_11,Face_12] = geompy.ExtractShapes(Compound_4, geompy.ShapeType["FACE"], True)
[Solid_1] = geompy.ExtractShapes(Compound_4, geompy.ShapeType["SOLID"], True)
[Compound_5, Compound_6, Compound_7, Face_7, Face_8, Face_9, Face_10, Face_11, Face_12, Solid_1] = geompy.GetExistingSubObjects(Compound_4, False)
geompy.addToStudy( O, 'O' )
geompy.addToStudy( OX, 'OX' )
geompy.addToStudy( OY, 'OY' )
geompy.addToStudy( OZ, 'OZ' )
geompy.addToStudy( Box_1, 'Box_1' )
geompy.addToStudyInFather( Box_1, Compound_1, 'Compound_1' )
geompy.addToStudyInFather( Box_1, Compound_2, 'Compound_2' )
geompy.addToStudyInFather( Box_1, Compound_3, 'Compound_3' )
geompy.addToStudyInFather( Box_1, Face_1, 'Face_1' )
geompy.addToStudyInFather( Box_1, Face_2, 'Face_2' )
geompy.addToStudyInFather( Box_1, Face_3, 'Face_3' )
geompy.addToStudyInFather( Box_1, Face_4, 'Face_4' )
geompy.addToStudyInFather( Box_1, Face_5, 'Face_5' )
geompy.addToStudyInFather( Box_1, Face_6, 'Face_6' )
geompy.addToStudy( Compound_4, 'Compound_4' )
geompy.addToStudyInFather( Compound_4, Compound_5, 'Compound_5' )
geompy.addToStudyInFather( Compound_4, Compound_6, 'Compound_6' )
geompy.addToStudyInFather( Compound_4, Compound_7, 'Compound_7' )
geompy.addToStudyInFather( Compound_4, Face_7, 'Face_7' )
geompy.addToStudyInFather( Compound_4, Face_8, 'Face_8' )
geompy.addToStudyInFather( Compound_4, Face_9, 'Face_9' )
geompy.addToStudyInFather( Compound_4, Face_10, 'Face_10' )
geompy.addToStudyInFather( Compound_4, Face_11, 'Face_11' )
geompy.addToStudyInFather( Compound_4, Face_12, 'Face_12' )
geompy.addToStudyInFather( Compound_4, Solid_1, 'Solid_1' )

###
### SMESH component
###

import  SMESH, SALOMEDS
from salome.smesh import smeshBuilder

smesh = smeshBuilder.New()
#smesh.SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations:
                                 # multiples meshes built in parallel, complex and numerous mesh edition (performance)

Mesh_1 = smesh.Mesh(Box_1,'Mesh_1')
Compound_1_1 = Mesh_1.GroupOnGeom(Compound_1,'Compound_1',SMESH.EDGE)
Compound_2_1 = Mesh_1.GroupOnGeom(Compound_2,'Compound_2',SMESH.EDGE)
Compound_3_1 = Mesh_1.GroupOnGeom(Compound_3,'Compound_3',SMESH.EDGE)
Face_1_1 = Mesh_1.GroupOnGeom(Face_1,'Face_1',SMESH.FACE)
Face_2_1 = Mesh_1.GroupOnGeom(Face_2,'Face_2',SMESH.FACE)
Face_3_1 = Mesh_1.GroupOnGeom(Face_3,'Face_3',SMESH.FACE)
Face_4_1 = Mesh_1.GroupOnGeom(Face_4,'Face_4',SMESH.FACE)
Face_5_1 = Mesh_1.GroupOnGeom(Face_5,'Face_5',SMESH.FACE)
Face_6_1 = Mesh_1.GroupOnGeom(Face_6,'Face_6',SMESH.FACE)
GMSH_2D = Mesh_1.Triangle(algo=smeshBuilder.GMSH_2D,geom=Face_3)
Gmsh_Parameters = GMSH_2D.Parameters()
Gmsh_Parameters.SetMinSize( 0 )
Gmsh_Parameters.SetMaxSize( 1e+22 )
Gmsh_Parameters.Set2DAlgo( 6 )
Gmsh_Parameters.SetIs2d( 1 )
isDone = Mesh_1.Compute()
Mesh_1.CheckCompute()
[ Compound_1_1, Compound_2_1, Compound_3_1, Face_1_1, Face_2_1, Face_3_1, Face_4_1, Face_5_1, Face_6_1 ] = Mesh_1.GetGroups()
isDone = Mesh_1.RemoveNodes( [ 172 ] )
[ Compound_1_1, Compound_2_1, Compound_3_1, Face_1_1, Face_2_1, Face_3_1, Face_4_1, Face_5_1, Face_6_1 ] = Mesh_1.GetGroups()
faceID = Mesh_1.AddPolygonalFace( [ 189, 172, 156, 155, 154, 171, 187, 188 ] )
Regular_1D = Mesh_1.Segment(geom=Compound_1)
Number_of_Segments_1 = Regular_1D.NumberOfSegments(1)
Prism_3D = Mesh_1.Prism()
isDone = Mesh_1.Compute()
Mesh_1.CheckCompute()
[ Compound_1_1, Compound_2_1, Compound_3_1, Face_1_1, Face_2_1, Face_3_1, Face_4_1, Face_5_1, Face_6_1 ] = Mesh_1.GetGroups()
Mesh_2 = smesh.Mesh(Compound_4,'Mesh_2')
Compound_5_1 = Mesh_2.GroupOnGeom(Compound_5,'Compound_5',SMESH.EDGE)
Compound_6_1 = Mesh_2.GroupOnGeom(Compound_6,'Compound_6',SMESH.EDGE)
Compound_7_1 = Mesh_2.GroupOnGeom(Compound_7,'Compound_7',SMESH.EDGE)
Face_7_1 = Mesh_2.GroupOnGeom(Face_7,'Face_7',SMESH.FACE)
Face_8_1 = Mesh_2.GroupOnGeom(Face_8,'Face_8',SMESH.FACE)
Face_9_1 = Mesh_2.GroupOnGeom(Face_9,'Face_9',SMESH.FACE)
Face_10_1 = Mesh_2.GroupOnGeom(Face_10,'Face_10',SMESH.FACE)
Face_11_1 = Mesh_2.GroupOnGeom(Face_11,'Face_11',SMESH.FACE)
Face_12_1 = Mesh_2.GroupOnGeom(Face_12,'Face_12',SMESH.FACE)
Solid_1_1 = Mesh_2.GroupOnGeom(Solid_1,'Solid_1',SMESH.VOLUME)
Prism_3D_1 = Mesh_2.Prism(geom=Box_1)
Regular_1D_1 = Mesh_2.Segment(geom=Compound_5)
status = Mesh_2.AddHypothesis(Number_of_Segments_1,Compound_5)
GMSH_2D_1 = Mesh_2.Triangle(algo=smeshBuilder.GMSH_2D,geom=Face_3)
Gmsh_Parameters_1 = GMSH_2D_1.Parameters()
Gmsh_Parameters_1.SetMinSize( 0 )
Gmsh_Parameters_1.SetMaxSize( 1e+22 )
Gmsh_Parameters_1.Set2DAlgo( 6 )
Gmsh_Parameters_1.SetIs2d( 1 )
isDone = Mesh_2.Compute()
Mesh_2.CheckCompute()
[ Compound_5_1, Compound_6_1, Compound_7_1, Face_7_1, Face_8_1, Face_9_1, Face_10_1, Face_11_1, Face_12_1, Solid_1_1 ] = Mesh_2.GetGroups()
isDone = Mesh_2.RemoveNodes( [ 321 ] )
[ Compound_5_1, Compound_6_1, Compound_7_1, Face_7_1, Face_8_1, Face_9_1, Face_10_1, Face_11_1, Face_12_1, Solid_1_1 ] = Mesh_2.GetGroups()
faceID = Mesh_2.AddPolygonalFace( [ 337, 338, 321, 305, 304, 303, 320, 336 ] )
[ Compound_5_1, Compound_6_1, Compound_7_1, Face_7_1, Face_8_1, Face_9_1, Face_10_1, Face_11_1, Face_12_1, Solid_1_1 ] = Mesh_2.GetGroups()
isDone = Mesh_2.Compute()
Mesh_2.CheckCompute()
[ Compound_5_1, Compound_6_1, Compound_7_1, Face_7_1, Face_8_1, Face_9_1, Face_10_1, Face_11_1, Face_12_1, Solid_1_1 ] = Mesh_2.GetGroups()
Sub_mesh_1 = GMSH_2D.GetSubMesh()
Sub_mesh_2 = Regular_1D.GetSubMesh()
Sub_mesh_3 = Mesh_2.GetSubMesh( Solid_1, 'Sub-mesh_3' )
Sub_mesh_4 = Regular_1D_1.GetSubMesh()
Sub_mesh_5 = Mesh_2.GetSubMesh( Face_9, 'Sub-mesh_5' )


## Set names of Mesh objects
smesh.SetName(Compound_2_1, 'Compound_2')
smesh.SetName(Compound_3_1, 'Compound_3')
smesh.SetName(Sub_mesh_5, 'Sub-mesh_5')
smesh.SetName(Sub_mesh_2, 'Sub-mesh_2')
smesh.SetName(Sub_mesh_4, 'Sub-mesh_4')
smesh.SetName(Compound_6_1, 'Compound_6')
smesh.SetName(Gmsh_Parameters, 'Gmsh Parameters')
smesh.SetName(Face_4_1, 'Face_4')
smesh.SetName(Compound_7_1, 'Compound_7')
smesh.SetName(Face_5_1, 'Face_5')
smesh.SetName(Mesh_1.GetMesh(), 'Mesh_1')
smesh.SetName(Mesh_2.GetMesh(), 'Mesh_2')
smesh.SetName(Face_11_1, 'Face_11')
smesh.SetName(Number_of_Segments_1, 'Number of Segments_1')
smesh.SetName(Face_9_1, 'Face_9')
smesh.SetName(Face_10_1, 'Face_10')
smesh.SetName(Sub_mesh_1, 'Sub-mesh_1')
smesh.SetName(Face_1_1, 'Face_1')
smesh.SetName(Solid_1_1, 'Solid_1')
smesh.SetName(Face_2_1, 'Face_2')
smesh.SetName(Face_8_1, 'Face_8')
smesh.SetName(Face_6_1, 'Face_6')
smesh.SetName(Face_12_1, 'Face_12')
smesh.SetName(Face_7_1, 'Face_7')
smesh.SetName(Compound_1_1, 'Compound_1')
smesh.SetName(Prism_3D.GetAlgorithm(), 'Prism_3D')
smesh.SetName(Sub_mesh_3, 'Sub-mesh_3')
smesh.SetName(Face_3_1, 'Face_3')
smesh.SetName(GMSH_2D.GetAlgorithm(), 'GMSH_2D')
smesh.SetName(Gmsh_Parameters_1, 'Gmsh Parameters')
smesh.SetName(Compound_5_1, 'Compound_5')
smesh.SetName(Regular_1D.GetAlgorithm(), 'Regular_1D')


if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser()
