1 from GeomDataAPI import geomDataAPI_Point2D
3 def addLine(sketch, *args):
4 sketch_feature = sketch.addFeature("SketchLine")
5 return LineInterface(sketch_feature, *args)
9 """Interface for editing of a sketch line feature."""
10 def __init__(self, line_feature, *args):
11 self._feature = line_feature
12 self._start_point = geomDataAPI_Point2D(
13 self._feature.data().attribute("StartPoint")
15 self._end_point = geomDataAPI_Point2D(
16 self._feature.data().attribute("EndPoint")
19 self.__createByCoordinates(*args)
21 self.__createByPoints(*args)
23 self.__createByName(sketch, *args)
25 raise Exception("cannot create the Line")
27 def __createByCoordinates(self, x1, y1, x2, y2):
28 self._start_point.setValue(x1, y1)
29 self._end_point.setValue(x2, y2)
30 self._feature.execute()
32 def __createByPoints(self, p1, p2):
33 self._start_point.setValue(p1.x(), p1.y())
34 self._end_point.setValue(p2.x(), p2.y())
35 self._feature.execute()
37 def __createByName(self, sketch, name):
38 self._feature.data().selection("External").selectSubShape("EDGE", name)
39 self._feature.execute()
40 rigid = sketch.addFeature("SketchConstraintRigid")
41 rigid.refattr("ConstraintEntityA").setObject( self._feature.firstResult() )
43 def startPointData (self):
44 return self._start_point
46 def endPointData (self):
47 return self._end_point
50 return self._feature.firstResult()