]> SALOME platform Git repositories - modules/shaper.git/blob - src/PythonAPI/model/sketcher/line.py
Salome HOME
[PythonAPI] Rename 'modeler' into 'model'
[modules/shaper.git] / src / PythonAPI / model / sketcher / line.py
1 from GeomDataAPI import geomDataAPI_Point2D
2
3 class Line():
4     """Interface for editing of a sketch line feature."""
5     def __init__(self, line_feature, *args):
6         self._feature = line_feature
7         self._start_point = geomDataAPI_Point2D(
8             self._feature.data().attribute("StartPoint")
9             )
10         self._end_point = geomDataAPI_Point2D(
11             self._feature.data().attribute("EndPoint")
12             )
13         if len(args) == 4:
14             self.__createByCoordinates(*args)
15         elif len(args) == 2:
16             self.__createByPoints(*args)
17         elif len(args) == 1:
18             self.__createByName(sketch, *args)
19         else:
20             raise Exception("cannot create the Line")
21
22     def __createByCoordinates(self, x1, y1, x2, y2):
23         self._start_point.setValue(x1, y1)
24         self._end_point.setValue(x2, y2)
25         self._feature.execute()
26
27     def __createByPoints(self, p1, p2):
28         self._start_point.setValue(p1.x(), p1.y())
29         self._end_point.setValue(p2.x(), p2.y())
30         self._feature.execute()
31
32     def __createByName(self, sketch, name):
33         self._feature.data().selection("External").selectSubShape("EDGE", name)
34         self._feature.execute()
35         rigid = sketch.addFeature("SketchConstraintRigid")
36         rigid.refattr("ConstraintEntityA").setObject( self._feature.firstResult() )
37
38     def startPointData (self):
39         return self._start_point
40
41     def endPointData (self):
42         return self._end_point
43
44     def result (self):
45         return self._feature.firstResult()