Salome HOME
Issue #803: Put all the python modules in the same python package newgeom
[modules/shaper.git] / src / BuildPlugin / Test / TestShell.py
1 # Initialization of the test
2 from ModelAPI import *
3 from GeomDataAPI import *
4 from GeomAlgoAPI import *
5 from GeomAPI import *
6
7 def createFace(thePart, theNormX, theNormY, theNormZ):
8     # Create a sketch
9     aSession.startOperation()
10     aSketchFeature = featureToCompositeFeature(thePart.addFeature("Sketch"))
11     anOrigin = geomDataAPI_Point(aSketchFeature.attribute("Origin"))
12     anOrigin.setValue(0, 0, 0)
13     aDirX = geomDataAPI_Dir(aSketchFeature.attribute("DirX"))
14     aDirX.setValue(1, 0, 0)
15     aNorm = geomDataAPI_Dir(aSketchFeature.attribute("Norm"))
16     aNorm.setValue(theNormX, theNormY, theNormZ)
17
18     # Create lines
19     aSketchLineFeature = aSketchFeature.addFeature("SketchLine")
20     aSketchLineStartPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("StartPoint"))
21     aSketchLineEndPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("EndPoint"))
22     aSketchLineStartPoint.setValue(0, 0)
23     aSketchLineEndPoint.setValue(0, 50)
24     aSketchLineFeature = aSketchFeature.addFeature("SketchLine")
25     aSketchLineStartPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("StartPoint"))
26     aSketchLineEndPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("EndPoint"))
27     aSketchLineStartPoint.setValue(0, 50)
28     aSketchLineEndPoint.setValue(50, 50)
29     aSketchLineFeature = aSketchFeature.addFeature("SketchLine")
30     aSketchLineStartPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("StartPoint"))
31     aSketchLineEndPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("EndPoint"))
32     aSketchLineStartPoint.setValue(50, 50)
33     aSketchLineEndPoint.setValue(50, 0)
34     aSketchLineFeature = aSketchFeature.addFeature("SketchLine")
35     aSketchLineStartPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("StartPoint"))
36     aSketchLineEndPoint = geomDataAPI_Point2D(aSketchLineFeature.attribute("EndPoint"))
37     aSketchLineStartPoint.setValue(50, 0)
38     aSketchLineEndPoint.setValue(0, 0)
39     aSession.finishOperation()
40     aSketchResult = aSketchFeature.firstResult()
41     aSketchShape = aSketchResult.shape()
42
43     # Create face
44     aSession.startOperation()
45     aFaceFeature = thePart.addFeature("Face")
46     aBaseObjectsList = aFaceFeature.selectionList("base_objects")
47     aShapeExplorer = GeomAPI_ShapeExplorer(aSketchShape, GeomAPI_Shape.EDGE)
48     while aShapeExplorer.more():
49         aBaseObjectsList.append(aSketchResult, aShapeExplorer.current())
50         aShapeExplorer.next()
51     aSession.finishOperation()
52     return aFaceFeature.firstResult()
53
54 # Get document
55 aSession = ModelAPI_Session.get()
56 aDocument = aSession.moduleDocument()
57
58 # Create a part
59 aSession.startOperation()
60 aPartFeature = aDocument.addFeature("Part")
61 aSession.finishOperation()
62 aPartResult = modelAPI_ResultPart(aPartFeature.firstResult())
63 aPart = aPartResult.partDoc()
64
65 # Create faces
66 aFaceResults = []
67 aFaceResults.append(createFace(aPart, 0, 0, 1))
68 aFaceResults.append(createFace(aPart, 0, 1, 0))
69
70 # Create shell
71 aSession.startOperation()
72 aShellFeature = aPart.addFeature("Shell")
73 aBaseObjectsList = aShellFeature.selectionList("base_objects")
74 for aFaceResult in aFaceResults:
75     aBaseObjectsList.append(aFaceResult, None)
76 aSession.finishOperation()
77
78 # Test results
79 assert (len(aShellFeature.results()) > 0)
80
81 from salome.shaper import model
82 assert(model.checkPythonDump())