Salome HOME
Merge branch 'master' into cgt/devCEA
[modules/shaper.git] / src / FeaturesPlugin / Test / TestRemoveSubShapes.py
1 #=========================================================================
2 # Initialization of the test
3 #=========================================================================
4 from ModelAPI import *
5 from GeomDataAPI import *
6 from GeomAlgoAPI import *
7 from GeomAPI import *
8 import math
9
10 aSession = ModelAPI_Session.get()
11 aDocument = aSession.moduleDocument()
12
13 # Create a part for extrusion
14 aSession.startOperation()
15 aPartFeature = aDocument.addFeature("Part")
16 aSession.finishOperation()
17 assert (len(aPartFeature.results()) == 1)
18
19 aPartResult = modelAPI_ResultPart(aPartFeature.firstResult())
20 aPart = aPartResult.partDoc()
21
22 #=========================================================================
23 # Create a sketch to extrude
24 #=========================================================================
25 aSession.startOperation()
26 aSketchFeature = featureToCompositeFeature(aPart.addFeature("Sketch"))
27 origin = geomDataAPI_Point(aSketchFeature.attribute("Origin"))
28 origin.setValue(0, 0, 0)
29 dirx = geomDataAPI_Dir(aSketchFeature.attribute("DirX"))
30 dirx.setValue(1, 0, 0)
31 norm = geomDataAPI_Dir(aSketchFeature.attribute("Norm"))
32 norm.setValue(0, 0, 1)
33
34 # Create circles
35 aSketchCircle = aSketchFeature.addFeature("SketchCircle")
36 anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("circle_center"))
37 aCircleRadius = aSketchCircle.real("circle_radius")
38 anCircleCentr.setValue(-25, 0)
39 aCircleRadius.setValue(50)
40 aSketchCircle = aSketchFeature.addFeature("SketchCircle")
41 anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("circle_center"))
42 aCircleRadius = aSketchCircle.real("circle_radius")
43 anCircleCentr.setValue(25, 0)
44 aCircleRadius.setValue(50)
45 aSession.finishOperation()
46 aSketchResult = aSketchFeature.firstResult()
47
48 #=========================================================================
49 # Make extrusion on sketch
50 #=========================================================================
51 # Create extrusion
52 aSession.startOperation()
53 anExtrusionFeature = aPart.addFeature("Extrusion")
54 anExtrusionFeature.selectionList("base").append(aSketchResult, None)
55 anExtrusionFeature.string("CreationMethod").setValue("BySizes")
56 anExtrusionFeature.real("to_size").setValue(50)
57 anExtrusionFeature.real("from_size").setValue(0)
58 anExtrusionFeature.real("to_offset").setValue(0) #TODO: remove
59 anExtrusionFeature.real("from_offset").setValue(0) #TODO: remove
60 anExtrusionFeature.execute()
61 aSession.finishOperation()
62 anExtrusionResult = modelAPI_ResultCompSolid(modelAPI_ResultBody(anExtrusionFeature.firstResult()))
63
64 #=========================================================================
65 # Remove sub-shapes
66 #=========================================================================
67 aSession.startOperation()
68 aRemoveSubShapesFeature = aPart.addFeature("Remove_SubShapes")
69 aRemoveSubShapesFeature.selection("base_shape").setValue(anExtrusionResult, None)
70 aRemoveSubShapesFeature.selectionList("subshapes").removeLast();
71 aSession.finishOperation()
72 assert (len(aRemoveSubShapesFeature.results()) > 0)
73 anUnionResult = modelAPI_ResultCompSolid(modelAPI_ResultBody(aRemoveSubShapesFeature.firstResult()))
74 assert (anUnionResult.numberOfSubs() == 2)
75
76 from salome.shaper import model
77 assert(model.checkPythonDump())