Salome HOME
34039691e7eeabd4403339a8da507f73ae871ffd
[modules/shaper.git] / src / ConstructionPlugin / Test / TestAxisCreation.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 from ModelAPI import *
10
11 aSession = ModelAPI_Session.get()
12 aDocument = aSession.moduleDocument()
13
14 # Create a part
15 aSession.startOperation()
16 aPartFeature = aDocument.addFeature("Part")
17 aSession.finishOperation()
18 assert (len(aPartFeature.results()) == 1)
19 aPartResult = modelAPI_ResultPart(aPartFeature.firstResult())
20 aPart = aPartResult.partDoc()
21
22 #=========================================================================
23 # Create a first point
24 #=========================================================================
25 aSession.startOperation()
26 aPointFeature = aPart.addFeature("Point")
27 aPointFeatureData = aPointFeature.data()
28 assert(aPointFeatureData is not None)
29 aPointFeatureData.real("x").setValue(0.)
30 aPointFeatureData.real("y").setValue(0.)
31 aPointFeatureData.real("z").setValue(0.)
32 aPointFeature.execute()
33 aSession.finishOperation()
34 aPoint1Result = aPointFeature.firstResult();
35
36 #=========================================================================
37 # Create a second point
38 #=========================================================================
39 aSession.startOperation()
40 aPointFeature = aPart.addFeature("Point")
41 aPointFeatureData = aPointFeature.data()
42 assert(aPointFeatureData is not None)
43 aPointFeatureData.real("x").setValue(0.)
44 aPointFeatureData.real("y").setValue(0.)
45 aPointFeatureData.real("z").setValue(100.)
46 aPointFeature.execute()
47 aSession.finishOperation()
48 aPoint2Result = aPointFeature.firstResult();
49
50 #=========================================================================
51 # Create axis by two points
52 #=========================================================================
53 aSession.startOperation()
54 anAxisFeature = aPart.addFeature("Axis")
55 anAxisFeatureData = anAxisFeature.data()
56 assert(anAxisFeatureData is not None)
57 anAxisFeatureData.string("CreationMethod").setValue("AxisByPointsCase")
58 anAxisFeatureData.selection("FirstPoint").setValue(aPoint1Result, aPoint1Result.shape())
59 anAxisFeatureData.selection("SecondPoint").setValue(aPoint2Result, aPoint2Result.shape())
60 anAxisFeature.execute()
61 aSession.finishOperation()
62
63 assert (len(anAxisFeature.results()) > 0)
64 anAxisResult = modelAPI_ResultConstruction(anAxisFeature.firstResult())
65 assert (anAxisResult is not None)
66
67 #=========================================================================
68 # Create a sketch circle to extrude
69 #=========================================================================
70 aSession.startOperation()
71 aCircleSketchFeature = featureToCompositeFeature(aPart.addFeature("Sketch"))
72 origin = geomDataAPI_Point(aCircleSketchFeature.attribute("Origin"))
73 origin.setValue(0, 0, 0)
74 dirx = geomDataAPI_Dir(aCircleSketchFeature.attribute("DirX"))
75 dirx.setValue(1, 0, 0)
76 norm = geomDataAPI_Dir(aCircleSketchFeature.attribute("Norm"))
77 norm.setValue(0, 0, 1)
78 # Create circle
79 aSketchCircle = aCircleSketchFeature.addFeature("SketchCircle")
80 anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("CircleCenter"))
81 aCircleRadius = aSketchCircle.real("CircleRadius")
82 anCircleCentr.setValue(0, 0)
83 aCircleRadius.setValue(50)
84 aSession.finishOperation()
85
86 #=========================================================================
87 # Make extrusion on circle
88 #=========================================================================
89 # Build shape from sketcher results
90 aCircleSketchResult = aCircleSketchFeature.firstResult()
91 aCircleSketchEdges = modelAPI_ResultConstruction(aCircleSketchResult).shape()
92 origin = geomDataAPI_Point(aCircleSketchFeature.attribute("Origin")).pnt()
93 dirX = geomDataAPI_Dir(aCircleSketchFeature.attribute("DirX")).dir()
94 norm = geomDataAPI_Dir(aCircleSketchFeature.attribute("Norm")).dir()
95 aCircleSketchFaces = ShapeList()
96 GeomAlgoAPI_SketchBuilder.createFaces(origin, dirX, norm, aCircleSketchEdges, aCircleSketchFaces)
97 assert (len(aCircleSketchFaces) > 0)
98 assert (aCircleSketchFaces[0] is not None)
99
100 # Create extrusion
101 aSession.startOperation()
102 anExtrusionFt = aPart.addFeature("Extrusion")
103 assert (anExtrusionFt.getKind() == "Extrusion")
104 # selection type FACE=4
105 anExtrusionFt.selectionList("base").append(aCircleSketchResult, aCircleSketchFaces[0])
106 anExtrusionFt.string("CreationMethod").setValue("BySizes")
107 anExtrusionFt.real("to_size").setValue(100)
108 anExtrusionFt.real("from_size").setValue(0)
109 anExtrusionFt.real("to_offset").setValue(0) #TODO: remove
110 anExtrusionFt.real("from_offset").setValue(0) #TODO: remove
111 anExtrusionFt.execute()
112 aSession.finishOperation()
113 assert (anExtrusionFt.real("to_size").value() == 100.0)
114
115 # Check extrusion results
116 assert (len(anExtrusionFt.results()) > 0)
117 anExtrusionResult = modelAPI_ResultBody(anExtrusionFt.firstResult())
118 assert (anExtrusionResult is not None)
119
120 #=========================================================================
121 # Create axis by cylinder
122 #=========================================================================
123 aSession.startOperation()
124 anAxisFeature = aPart.addFeature("Axis")
125 anAxisFeatureData = anAxisFeature.data()
126 assert(anAxisFeatureData is not None)
127 anAxisFeatureData.string("CreationMethod").setValue("AxisByCylindricalFaceCase")
128 anAxisFeatureData.selection("CylindricalFace").selectSubShape("face", "Extrusion_1_1/Generated_Face_1")
129 anAxisFeature.execute()
130 aSession.finishOperation()
131
132 assert (len(anAxisFeature.results()) > 0)
133 anAxisResult = modelAPI_ResultConstruction(anAxisFeature.firstResult())
134 assert (anAxisResult is not None)