Salome HOME
Merge Python 3 porting.
[modules/gui.git] / src / SalomeApp / pluginsdemo / tubebuilder.py
index 5aedfe676cdca34b970428a044451112e992f8bf..44e7ec508f351f8ab9d44114f54b4d2821c48343 100644 (file)
@@ -1,10 +1,10 @@
 # -*- coding: iso-8859-1 -*-
-# Copyright (C) 2010-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2010-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,14 +27,13 @@ DEFAULT_WIDTH  = 20
 
 from salome.geom import geomtools
 
-def createGeometry(study, radius=DEFAULT_RADIUS, length=DEFAULT_LENGTH, width=DEFAULT_WIDTH):
+def createGeometry(radius=DEFAULT_RADIUS, length=DEFAULT_LENGTH, width=DEFAULT_WIDTH):
     '''
     This function creates the geometry on the specified study and with
     given parameters.
     '''
-    print "TUBE: creating the geometry ..."
-    studyId = study._get_StudyId()
-    geompy = geomtools.getGeompy(studyId)
+    print("TUBE: creating the geometry ...")
+    geompy = geomtools.getGeompy()
 
     radius_ext = radius
     radius_int = radius_ext - width
@@ -44,30 +43,30 @@ def createGeometry(study, radius=DEFAULT_RADIUS, length=DEFAULT_LENGTH, width=DE
     Tube = geompy.MakeCut(CylinderExt, CylinderInt)
     return Tube
     
-def createGeometryWithPartition(study, radius=DEFAULT_RADIUS, length=DEFAULT_LENGTH, width=DEFAULT_WIDTH):
+def createGeometryWithPartition(radius=DEFAULT_RADIUS, length=DEFAULT_LENGTH, width=DEFAULT_WIDTH):
     '''
     This function create the geometrical shape with a partition so
     that the hexaedric algorithm could be used for meshing.
     '''
-    shape = createGeometry(study,radius,length,width)
+    shape = createGeometry(radius,length,width)
 
     # We have to create a partition so that we can use an hexaedric
     # meshing algorithm.
-    studyId = study._get_StudyId()
-    geompy = geomtools.getGeompy(studyId)
+    geompy = geomtools.getGeompy()
 
-    print "TUBE: creating a partition ..."
+    print("TUBE: creating a partition ...")
     toolPlane = geompy.MakeFaceHW(2.1*length,2.1*radius,3)
     partition = geompy.MakePartition([shape], [toolPlane], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
     entry = geompy.addToStudy( partition, "TubeWithPartition" )
     return partition
     
-def createMesh(study, shape):
-    '''This function creates the mesh of the specified shape on the specified study'''
-    print "TUBE: creating the mesh ..."
-    import smesh
+def createMesh(shape):
+    '''This function creates the mesh of the specified shape on the current study'''
+    print("TUBE: creating the mesh ...")
+    import SMESH
+    from salome.smesh import smeshBuilder
+    smesh = smeshBuilder.New()
 
-    smesh.SetCurrentStudy(study)
     mesh = smesh.Mesh(shape)
     Regular_1D = mesh.Segment()
     Nb_Segments = Regular_1D.NumberOfSegments(10)
@@ -83,27 +82,27 @@ def createMesh(study, shape):
         smesh.SetName(Nb_Segments, 'Nb. Segments_1')
         smesh.SetName(Quadrangle_2D.GetAlgorithm(), 'Quadrangle_2D')
         smesh.SetName(Hexa_3D.GetAlgorithm(), 'Hexa_3D')
-        salome.sg.updateObjBrowser(0)
+        salome.sg.updateObjBrowser()
 
     return mesh
 
 
-def createModel(study, radius=DEFAULT_RADIUS, length=DEFAULT_LENGTH,width=DEFAULT_WIDTH):
+def createModel(radius=DEFAULT_RADIUS, length=DEFAULT_LENGTH,width=DEFAULT_WIDTH):
     '''
     This function create the geomtrical shape AND the associated mesh.
     '''
     # We first create a shape with a partition so that the hexaedric
     # algorithm could be used.
-    shape = createGeometryWithPartition(study,radius,length,width)
+    shape = createGeometryWithPartition(radius,length,width)
 
     # Then the mesh can be defined and computed
-    mesh = createMesh(study,shape)
+    mesh = createMesh(shape)
     
 def exportModel(mesh, filename):
     '''
     This exports the mesh to the specified filename in the med format
     '''
-    print "TUBE: exporting mesh to file %s ..."%filename
+    print("TUBE: exporting mesh to file %s ..."%filename)
     import SMESH
     mesh.ExportMED(filename, 0, SMESH.MED_V2_2, 1 )
 
@@ -115,25 +114,21 @@ def exportModel(mesh, filename):
 #
 def TEST_createGeometry():
     salome.salome_init()
-    theStudy=salome.myStudy
-    createGeometry(theStudy)
+    createGeometry()
 
 def TEST_createMesh():
     salome.salome_init()
-    theStudy=salome.myStudy
-    shape = createGeometryWithPartition(theStudy)
-    mesh  = createMesh(theStudy, shape)
+    shape = createGeometryWithPartition()
+    mesh  = createMesh(shape)
 
 def TEST_createModel():
     salome.salome_init()
-    theStudy=salome.myStudy
-    createModel(theStudy)
+    createModel()
 
 def TEST_exportModel():
     salome.salome_init()
-    theStudy=salome.myStudy
-    shape = createGeometryWithPartition(theStudy)
-    mesh  = createMesh(theStudy, shape)
+    shape = createGeometryWithPartition()
+    mesh  = createMesh(shape)
     exportModel(mesh,"tubemesh.med")
     
 if __name__ == "__main__":