1 from GeomDataAPI import geomDataAPI_Point2D
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")
10 self._end_point = geomDataAPI_Point2D(
11 self._feature.data().attribute("EndPoint")
14 self.__createByCoordinates(*args)
16 self.__createByPoints(*args)
18 self.__createByName(sketch, *args)
20 raise Exception("cannot create the Line")
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()
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()
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() )
38 def startPointData (self):
39 return self._start_point
41 def endPointData (self):
42 return self._end_point
45 return self._feature.firstResult()