Salome HOME
Tests update
[modules/shaper.git] / src / FeaturesPlugin / Test / TestExtrusionSketch.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 aSession.startOperation()
14 aPartFeature = aDocument.addFeature("Part")
15 aSession.finishOperation()
16 assert (len(aPartFeature.results()) == 1)
17 aPartResult = modelAPI_ResultPart(aPartFeature.firstResult())
18 aPart = aPartResult.partDoc()
19
20 #=========================================================================
21 # Make extrusion sketch
22 #=========================================================================
23 aSession.startOperation()
24 anExtrusionSketchFt = featureToCompositeFeature(aPart.addFeature("ExtrusionSketch"))
25 assert (anExtrusionSketchFt.getKind() == "ExtrusionSketch")
26 # selection type FACE=4
27 aSession.startOperation()
28 aCircleSketchFeature = featureToCompositeFeature(anExtrusionSketchFt.addFeature("Sketch"))
29 origin = geomDataAPI_Point(aCircleSketchFeature.attribute("Origin"))
30 origin.setValue(0, 0, 0)
31 dirx = geomDataAPI_Dir(aCircleSketchFeature.attribute("DirX"))
32 dirx.setValue(1, 0, 0)
33 norm = geomDataAPI_Dir(aCircleSketchFeature.attribute("Norm"))
34 norm.setValue(0, 0, 1)
35 aSketchCircle = aCircleSketchFeature.addFeature("SketchCircle")
36 anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("CircleCenter"))
37 aCircleRadius = aSketchCircle.real("CircleRadius")
38 anCircleCentr.setValue(0, 0)
39 aCircleRadius.setValue(10)
40 aSession.finishOperation()
41 aSession.startOperation()
42 anExtrusionSketchFt.string("CreationMethod").setValue("BySizes")
43 anExtrusionSketchFt.real("to_size").setValue(10)
44 anExtrusionSketchFt.real("from_size").setValue(10)
45 anExtrusionSketchFt.real("to_offset").setValue(0) #TODO: remove
46 anExtrusionSketchFt.real("from_offset").setValue(0) #TODO: remove
47 anExtrusionSketchFt.execute()
48 aSession.finishOperation()
49 aSession.finishOperation()
50
51 #=========================================================================
52 # Test results
53 #=========================================================================
54 aFactory = ModelAPI_Session.get().validators()
55 assert (aFactory.validate(anExtrusionSketchFt))
56 assert (len(anExtrusionSketchFt.results()) > 0)
57 aCurrentResult = modelAPI_ResultBody(anExtrusionSketchFt.firstResult())
58 assert (aCurrentResult is not None)
59
60 #=========================================================================
61 # Test extrusion between bounding planes
62 #=========================================================================
63 # Create from plane
64 aSession.startOperation()
65 aSketchPlaneFeature = aPart.addFeature("Plane")
66 aSketchPlaneFeature.string("CreationMethod").setValue("PlaneByGeneralEquation")
67 aSketchPlaneFeature.real("A").setValue(0.)
68 aSketchPlaneFeature.real("B").setValue(0.)
69 aSketchPlaneFeature.real("C").setValue(1.)
70 aSketchPlaneFeature.real("D").setValue(30.)
71 aSession.finishOperation()
72 aFromResult = aSketchPlaneFeature.firstResult()
73 aFromShape = modelAPI_ResultConstruction(aFromResult).shape()
74
75 # Create to plane
76 aSession.startOperation()
77 aToPlaneFeature = aPart.addFeature("Plane")
78 aToPlaneFeature.string("CreationMethod").setValue("PlaneByGeneralEquation")
79 aToPlaneFeature.real("A").setValue(0.)
80 aToPlaneFeature.real("B").setValue(0.)
81 aToPlaneFeature.real("C").setValue(1.)
82 aToPlaneFeature.real("D").setValue(-30.)
83 aSession.finishOperation()
84 aToResult = aToPlaneFeature.firstResult()
85 aToShape = modelAPI_ResultConstruction(aToResult).shape()
86
87 #=========================================================================
88 # Make extrusion sketch
89 #=========================================================================
90 aSession.startOperation()
91 anExtrusionSketchFt = featureToCompositeFeature(aPart.addFeature("ExtrusionSketch"))
92 assert (anExtrusionSketchFt.getKind() == "ExtrusionSketch")
93 aSession.startOperation()
94 aCircleSketchFeature = featureToCompositeFeature(anExtrusionSketchFt.addFeature("Sketch"))
95 origin = geomDataAPI_Point(aCircleSketchFeature.attribute("Origin"))
96 origin.setValue(0, 0, 0)
97 dirx = geomDataAPI_Dir(aCircleSketchFeature.attribute("DirX"))
98 dirx.setValue(1, 0, 0)
99 norm = geomDataAPI_Dir(aCircleSketchFeature.attribute("Norm"))
100 norm.setValue(0, 0, 1)
101 aSketchCircle = aCircleSketchFeature.addFeature("SketchCircle")
102 anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("CircleCenter"))
103 aCircleRadius = aSketchCircle.real("CircleRadius")
104 anCircleCentr.setValue(0, 0)
105 aCircleRadius.setValue(10)
106 aSession.finishOperation()
107 aSession.startOperation()
108 anExtrusionSketchFt.string("CreationMethod").setValue("ByPlanesAndOffsets")
109 anExtrusionSketchFt.real("to_size").setValue(0) #TODO: remove
110 anExtrusionSketchFt.real("from_size").setValue(0) #TODO: remove
111 anExtrusionSketchFt.selection("to_object").setValue(aToResult, aToShape)
112 anExtrusionSketchFt.real("to_offset").setValue(0)
113 anExtrusionSketchFt.selection("from_object").setValue(aFromResult, aFromShape)
114 anExtrusionSketchFt.real("from_offset").setValue(0)
115 anExtrusionSketchFt.execute()
116 aSession.finishOperation()
117 aSession.finishOperation()
118
119 #=========================================================================
120 # Test results
121 #=========================================================================
122 aFactory = ModelAPI_Session.get().validators()
123 assert (aFactory.validate(anExtrusionSketchFt))
124 assert (len(anExtrusionSketchFt.results()) > 0)
125 aCurrentResult = modelAPI_ResultBody(anExtrusionSketchFt.firstResult())
126 assert (aCurrentResult is not None)