+# remove all segments created by the last command
+for g in groups:
+ if g.GetType() == SMESH.EDGE:
+ mesh.RemoveGroupWithContents( g )
+
+# extrude all segments into faces along Z
+obj = mesh
+stepVector = [0.,0.,1.]
+mesh.ExtrusionSweepObject1D( obj, stepVector, nbSteps )
+
+# extrude a group
+obj = mesh.GetGroupByName( "line_extruded", SMESH.FACE )[0]
+stepVector = [0,-5.,0.]
+nbSteps = 1
+mesh.ExtrusionSweepObject( obj, stepVector, nbSteps )
+
+# extrude all nodes and triangle faces of the disk quarter, applying a scale factor
+diskGroup = mesh.GetGroupByName( "line_rotated", SMESH.FACE )[0]
+crit = [ smesh.GetCriterion( SMESH.FACE, SMESH.FT_ElemGeomType,'=',SMESH.Geom_TRIANGLE ),
+ smesh.GetCriterion( SMESH.FACE, SMESH.FT_BelongToMeshGroup,'=', diskGroup )]
+trianglesFilter = smesh.GetFilterFromCriteria( crit )
+
+nodes = [ diskGroup ]
+edges = []
+faces = [ trianglesFilter ]
+stepVector = [0,0,1]
+nbSteps = 10
+mesh.ExtrusionSweepObjects( nodes, edges, faces, stepVector, nbSteps, scaleFactors=[0.5], linearVariation=True )
+
+# extrude a cylindrical group of faces by normal
+cylGroup = None
+for g in mesh.GetGroups( SMESH.FACE ):
+ if g.GetName().startswith("node "):
+ cylGroup = g
+ break
+
+elements = cylGroup
+stepSize = 5.
+nbSteps = 2
+mesh.ExtrusionByNormal( elements, stepSize, nbSteps )
+
+salome.sg.updateObjBrowser()