]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchPlugin/Test/TestSplit.py
Salome HOME
fd02949addaed00270b314124dc845e7c54272d8
[modules/shaper.git] / src / SketchPlugin / Test / TestSplit.py
1 from salome.shaper import model
2
3 from ModelAPI import *
4 from ModelGeomAlgo import ModelGeomAlgo_Point2D
5 from salome.shaper import geom
6
7 SketchPointId = 'SketchPoint'
8 SketchLineId = 'SketchLine'
9 SketchArcId = 'SketchArc'
10 SketchConstraintCoincidenceId = 'SketchConstraintCoincidence'
11 SketchConstraintParallelId = 'SketchConstraintParallel'
12 SketchConstraintTangentId = 'SketchConstraintTangent'
13 SketchConstraintEqualId = 'SketchConstraintEqual'
14
15 # Test split on line with one point
16 model.begin()
17 partSet = model.moduleDocument()
18 Part_1 = model.addPart(partSet)
19 Part_1_doc = Part_1.document()
20 Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
21 SketchLine_1 = Sketch_1.addLine(0, 50, 100, 50)
22 SketchPoint_1 = Sketch_1.addPoint(50, 50)
23 SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchPoint_1.coordinates(), SketchLine_1.result())
24 GeomPoint = geom.Pnt2d(20, 50)
25 Sketch_1.addSplit(SketchLine_1, GeomPoint)
26 model.do()
27
28 Sketch_1_feature = featureToCompositeFeature(Sketch_1.feature())
29 idList = []
30 for index in range(Sketch_1_feature.numberOfSubs()):
31   idList.append(Sketch_1_feature.subFeature(index).getKind())
32
33 assert(idList.count(SketchLineId) == 2)
34 assert(idList.count(SketchPointId) == 1)
35 assert(idList.count(SketchConstraintCoincidenceId) == 3)
36 assert(idList.count(SketchConstraintParallelId) == 0)
37 # Test end
38
39 # Test split on line with two points
40 Sketch_2 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
41 SketchLine_2_1 = Sketch_2.addLine(0, 50, 100, 50)
42 SketchPoint_2_1 = Sketch_2.addPoint(25, 50)
43 SketchPoint_2_2 = Sketch_2.addPoint(75, 50)
44 SketchConstraintCoincidence_2_1 = Sketch_2.setCoincident(SketchPoint_2_1.coordinates(), SketchLine_2_1.result())
45 SketchConstraintCoincidence_2_2 = Sketch_2.setCoincident(SketchPoint_2_2.coordinates(), SketchLine_2_1.result())
46 GeomPoint = geom.Pnt2d(40, 50)
47 Sketch_2.addSplit(SketchLine_2_1, GeomPoint)
48 model.do()
49
50 Sketch_2_feature = featureToCompositeFeature(Sketch_2.feature())
51 idList = []
52 for index in range(Sketch_2_feature.numberOfSubs()):
53   idList.append(Sketch_2_feature.subFeature(index).getKind())
54
55 assert(idList.count(SketchLineId) == 3)
56 assert(idList.count(SketchPointId) == 2)
57 assert(idList.count(SketchConstraintCoincidenceId) == 6)
58 assert(idList.count(SketchConstraintParallelId) == 0)
59 # Test end
60
61 # Test split on circle with two points
62 Sketch_3 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
63 SketchCircle_3_1 = Sketch_3.addCircle(50, 50, 50)
64 SketchPoint_3_1 = Sketch_3.addPoint(50, 0)
65 SketchPoint_3_2 = Sketch_3.addPoint(50, 100)
66 SketchConstraintCoincidence_3_1 = Sketch_3.setCoincident(SketchPoint_3_1.coordinates(), SketchCircle_3_1.results()[1])
67 SketchConstraintCoincidence_3_2 = Sketch_3.setCoincident(SketchPoint_3_2.coordinates(), SketchCircle_3_1.results()[1])
68 GeomPoint = geom.Pnt2d(0, 50)
69 Sketch_3.addSplit(SketchCircle_3_1, GeomPoint)
70 model.do()
71
72 Sketch_3_feature = featureToCompositeFeature(Sketch_3.feature())
73 idList = []
74 for index in range(Sketch_3_feature.numberOfSubs()):
75   idList.append(Sketch_3_feature.subFeature(index).getKind())
76
77 assert(idList.count(SketchArcId) == 2)
78 assert(idList.count(SketchPointId) == 2)
79 assert(idList.count(SketchConstraintCoincidenceId) == 6)
80 assert(idList.count(SketchConstraintTangentId) == 0)
81 # Test end
82
83 # Test split on arc with one point
84 Sketch_4 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
85 SketchArc_4_1 = Sketch_4.addArc(50, 50, 50, 0, 0, 50, False)
86 Sketch_4.setFixed(SketchArc_4_1.startPoint())
87 Sketch_4.setFixed(SketchArc_4_1.endPoint())
88 Sketch_4.setRadius(SketchArc_4_1, 50)
89 SketchPoint_4_1 = Sketch_4.addPoint(50, 100)
90 SketchConstraintCoincidence_4_1 = Sketch_4.setCoincident(SketchPoint_4_1.coordinates(), SketchArc_4_1.results()[1])
91 # prepare point on circle
92 SketchLine_intersecting = Sketch_4.addLine(0, 100, 50, 50)
93 Intersection_Point = ModelGeomAlgo_Point2D.getSetOfPntIntersectedShape(SketchArc_4_1.feature(), FeatureList([SketchLine_intersecting.feature()]))
94 removeFeaturesAndReferences(FeatureSet([SketchLine_intersecting.feature()]))
95 Intersection_GeomPoint = Intersection_Point[0]
96 Sketch_4.addSplit(SketchArc_4_1, Sketch_1.to2D(Intersection_GeomPoint))
97 model.do()
98
99 Sketch_4_feature = featureToCompositeFeature(Sketch_4.feature())
100 idList = []
101 for index in range(Sketch_4_feature.numberOfSubs()):
102   idList.append(Sketch_4_feature.subFeature(index).getKind())
103
104 assert(idList.count(SketchArcId) == 2)
105 assert(idList.count(SketchPointId) == 1)
106 assert(idList.count(SketchConstraintCoincidenceId) == 3)
107 assert(idList.count(SketchConstraintEqualId) == 0)
108 assert(idList.count(SketchConstraintTangentId) == 0)
109 # Test end
110
111 # Test split on arc with two points
112 Sketch_5 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
113 SketchArc_5_1 = Sketch_5.addArc(50, 50, 93.30127018922, 75, 0, 50, False)
114 Sketch_5.setFixed(SketchArc_5_1.startPoint())
115 Sketch_5.setFixed(SketchArc_5_1.endPoint())
116 Sketch_5.setRadius(SketchArc_5_1, 50)
117 SketchLine_5_1 = Sketch_5.addLine(25, 93.301270189222, 75, 93.301270189222)
118 SketchConstraintCoincidence_5_1 = Sketch_5.setCoincident(SketchLine_5_1.startPoint(), SketchArc_5_1.results()[1])
119 SketchConstraintCoincidence_5_2 = Sketch_5.setCoincident(SketchLine_5_1.endPoint(), SketchArc_5_1.results()[1])
120 SketchConstraintHorizontal_5_1 = Sketch_5.setHorizontal(SketchLine_5_1.result())
121 SketchConstraintLength_5_1 = Sketch_5.setLength(SketchLine_5_1.result(), 50)
122 GeomPoint = geom.Pnt2d(50, 100)
123 Sketch_5.addSplit(SketchArc_5_1, GeomPoint)
124 model.do()
125
126 Sketch_5_feature = featureToCompositeFeature(Sketch_5.feature())
127 idList = []
128 for index in range(Sketch_5_feature.numberOfSubs()):
129   idList.append(Sketch_5_feature.subFeature(index).getKind())
130
131 assert(idList.count(SketchArcId) == 3)
132 assert(idList.count(SketchPointId) == 0)
133 assert(idList.count(SketchConstraintCoincidenceId) == 6)
134 assert(idList.count(SketchConstraintEqualId) == 0)
135 assert(idList.count(SketchConstraintTangentId) == 0)
136 # Test end
137
138 model.end()
139
140 assert(model.checkPythonDump())