+# Create an arc, tangent to the line
+#=========================================================================
+aSession.startOperation()
+aSketchLine = aSketchFeature.addFeature("SketchLine")
+aLineStart = geomDataAPI_Point2D(aSketchLine.attribute("StartPoint"))
+aLineEnd = geomDataAPI_Point2D(aSketchLine.attribute("EndPoint"))
+aLineStart.setValue(0., 0.)
+aLineEnd.setValue(50., 0.)
+aSession.finishOperation()
+aSession.startOperation()
+aFixed = aSketchFeature.addFeature("SketchConstraintRigid")
+aRefObjectA = aFixed.refattr("ConstraintEntityA")
+aRefObjectA.setObject(modelAPI_ResultConstruction(aSketchLine.lastResult()))
+aFixed.execute()
+aSession.finishOperation()
+aSession.startOperation()
+aSketchArcTangent = aSketchFeature.addFeature("SketchArc")
+aSketchArcTangent.string("ArcType").setValue("Tangent")
+anArcEndPoint = geomDataAPI_Point2D(aSketchArcTangent.attribute("ArcEndPoint"))
+aTangent = aSketchArcTangent.refattr("ArcTangentPoint")
+aTangent.setAttr(aLineEnd)
+anArcEndPoint.setValue(51., 1.)
+aSession.finishOperation()
+aSession.startOperation()
+anArcEndPoint.setValue(100., 25.)
+aSession.finishOperation()
+anArcCenter = geomDataAPI_Point2D(aSketchArcTangent.attribute("ArcCenter"))
+aDot = dot(anArcCenter, aLineEnd, aLineStart, aLineEnd)
+assert math.fabs(aDot) <= 2.e-4, "Observed dot product: {0}".format(aDot)
+#=========================================================================
+# Create an arc, tangent to the previous arc
+#=========================================================================
+aSession.startOperation()
+aSketchArcTangent2 = aSketchFeature.addFeature("SketchArc")
+aSketchArcTangent2.string("ArcType").setValue("Tangent")
+anArcEndPoint2 = geomDataAPI_Point2D(aSketchArcTangent2.attribute("ArcEndPoint"))
+aTangent = aSketchArcTangent2.refattr("ArcTangentPoint")
+aTangent.setAttr(anArcEndPoint)
+anArcEndPoint2.setValue(50., 150.)
+aSession.finishOperation()
+#=========================================================================