]> SALOME platform Git repositories - modules/shaper.git/blob - src/FeaturesPlugin/Test/TestExtrusionSketch.py
Salome HOME
Tests for ExtrusionSketch and RevolutionSketch
[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 anExtrusionSketchFt.string("CreationMethod").setValue("BySizes")
42 anExtrusionSketchFt.real("to_size").setValue(10)
43 anExtrusionSketchFt.real("from_size").setValue(10)
44 anExtrusionSketchFt.real("to_offset").setValue(0) #TODO: remove
45 anExtrusionSketchFt.real("from_offset").setValue(0) #TODO: remove
46 anExtrusionSketchFt.execute()
47 aSession.finishOperation()
48
49 #=========================================================================
50 # Test results
51 #=========================================================================
52 aFactory = ModelAPI_Session.get().validators()
53 assert (aFactory.validate(anExtrusionSketchFt))
54 assert (len(anExtrusionSketchFt.results()) > 0)
55 aCurrentResult = modelAPI_ResultBody(anExtrusionSketchFt.firstResult())
56 assert (aCurrentResult is not None)
57
58 #=========================================================================
59 # Test extrusion between bounding planes
60 #=========================================================================
61 # Create from plane
62 aSession.startOperation()
63 aSketchPlaneFeature = aPart.addFeature("Plane")
64 aSketchPlaneFeature.string("CreationMethod").setValue("PlaneByGeneralEquation")
65 aSketchPlaneFeature.real("A").setValue(0.)
66 aSketchPlaneFeature.real("B").setValue(0.)
67 aSketchPlaneFeature.real("C").setValue(1.)
68 aSketchPlaneFeature.real("D").setValue(30.)
69 aSession.finishOperation()
70 aFromResult = aSketchPlaneFeature.firstResult()
71 aFromShape = modelAPI_ResultConstruction(aFromResult).shape()
72
73 # Create to plane
74 aSession.startOperation()
75 aToPlaneFeature = aPart.addFeature("Plane")
76 aToPlaneFeature.string("CreationMethod").setValue("PlaneByGeneralEquation")
77 aToPlaneFeature.real("A").setValue(0.)
78 aToPlaneFeature.real("B").setValue(0.)
79 aToPlaneFeature.real("C").setValue(1.)
80 aToPlaneFeature.real("D").setValue(-30.)
81 aSession.finishOperation()
82 aToResult = aToPlaneFeature.firstResult()
83 aToShape = modelAPI_ResultConstruction(aToResult).shape()
84
85 #=========================================================================
86 # Make extrusion sketch
87 #=========================================================================
88 aSession.startOperation()
89 anExtrusionSketchFt = featureToCompositeFeature(aPart.addFeature("ExtrusionSketch"))
90 assert (anExtrusionSketchFt.getKind() == "ExtrusionSketch")
91 aSession.startOperation()
92 aCircleSketchFeature = featureToCompositeFeature(anExtrusionSketchFt.addFeature("Sketch"))
93 origin = geomDataAPI_Point(aCircleSketchFeature.attribute("Origin"))
94 origin.setValue(0, 0, 0)
95 dirx = geomDataAPI_Dir(aCircleSketchFeature.attribute("DirX"))
96 dirx.setValue(1, 0, 0)
97 norm = geomDataAPI_Dir(aCircleSketchFeature.attribute("Norm"))
98 norm.setValue(0, 0, 1)
99 aSketchCircle = aCircleSketchFeature.addFeature("SketchCircle")
100 anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("CircleCenter"))
101 aCircleRadius = aSketchCircle.real("CircleRadius")
102 anCircleCentr.setValue(0, 0)
103 aCircleRadius.setValue(10)
104 aSession.finishOperation()
105 anExtrusionSketchFt.string("CreationMethod").setValue("ByPlanesAndOffsets")
106 anExtrusionSketchFt.real("to_size").setValue(0) #TODO: remove
107 anExtrusionSketchFt.real("from_size").setValue(0) #TODO: remove
108 anExtrusionSketchFt.selection("to_object").setValue(aToResult, aToShape)
109 anExtrusionSketchFt.real("to_offset").setValue(0)
110 anExtrusionSketchFt.selection("from_object").setValue(aFromResult, aFromShape)
111 anExtrusionSketchFt.real("from_offset").setValue(0)
112 anExtrusionSketchFt.execute()
113 aSession.finishOperation()
114
115 #=========================================================================
116 # Test results
117 #=========================================================================
118 aFactory = ModelAPI_Session.get().validators()
119 assert (aFactory.validate(anExtrusionSketchFt))
120 assert (len(anExtrusionSketchFt.results()) > 0)
121 aCurrentResult = modelAPI_ResultBody(anExtrusionSketchFt.firstResult())
122 assert (aCurrentResult is not None)