from salome.shaper import model
import math
-__updated__ = "2023-06-28"
+__updated__ = "2017-03-22"
#=========================================================================
aDistCL = model.distancePointLine(aCenter, theLine)
assert math.fabs(aDistCL - aRadius) < TOLERANCE, "Circle and line are not tangent"
-#=========================================================================
-# Set old version of Circle for avoid create point.
-#=========================================================================
-def setOldVersionOfCircleFeature(theCircle):
- aCircleVersion = theCircle.integer("version")
- assert (type(aCircleVersion) == ModelAPI_AttributeInteger)
- aCircleVersion.setValue(0)
#=========================================================================
# Start of test
aCircleType = aCircle.string("circle_type")
assert (not aCircleType.isInitialized())
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1.setValue(expectedCenter[0] - expectedRadius, expectedCenter[1])
aCirclePnt2.setValue(expectedCenter[0] + expectedRadius, expectedCenter[1])
aCirclePnt3.setValue(expectedCenter[0], expectedCenter[1] + expectedRadius)
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1Ref.setAttr(aPrevCenter)
aCirclePnt1.setValue(aPrevCenter.pnt())
aCirclePnt2Ref.setObject(aPoint.lastResult())
aCirclePnt2Ref = aCircle.refattr("second_point_ref")
aCirclePnt3Ref = aCircle.refattr("third_point_ref")
aCircleType = aCircle.string("circle_type")
-setOldVersionOfCircleFeature(aCircle)
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
aCirclePnt1Ref.setObject(aPrevCircle.lastResult())
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1Ref.setAttr(aStartPnt)
aCirclePnt1.setValue(aStartPnt.pnt())
aCirclePnt2Ref.setAttr(aEndPnt)
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1.setValue(aLineStart[0] + aDistanceFromLine, aLineStart[1])
aCirclePnt2.setValue(aLineStart[0] - aDistanceFromLine, aLineStart[1])
aCirclePnt3Ref.setObject(aLine.lastResult())
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1.setValue(0, 0)
aCirclePnt2Ref.setObject(SketchLine_1.feature().lastResult())
aCirclePnt2.setValue(SketchLine_1.startPoint().x(), SketchLine_1.startPoint().y())
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1.setValue(0, 0)
aCirclePnt2Ref.setObject(SketchCircle_3.feature().lastResult())
aCirclePnt2.setValue(40, 0)
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1.setValue(0, 0)
aCirclePnt2Ref.setObject(SketchLine_3.feature().lastResult())
aCirclePnt2.setValue(30, 0)
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1Ref.setObject(SketchLine_1.feature().lastResult())
aCirclePnt1.setValue(20, 0)
aCirclePnt2Ref.setObject(SketchLine_2.feature().lastResult())
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1Ref.setObject(SketchLine_1.feature().lastResult())
aCirclePnt1.setValue(20, 0)
aCirclePnt2Ref.setObject(SketchLine_2.feature().lastResult())
aCircleType = aCircle.string("circle_type")
# initialize attributes
aCircleType.setValue("circle_type_by_three_points")
-setOldVersionOfCircleFeature(aCircle)
aCirclePnt1Ref.setObject(SketchCircle_1.feature().lastResult())
aCirclePnt1.setValue(10, 0)
aCirclePnt2Ref.setObject(SketchCircle_2.feature().lastResult())
model.testNbSubFeatures(Sketch_1, "SketchConstraintCoincidence", 0)
model.testNbSubFeatures(Sketch_1, "SketchConstraintTangent", 15)
-#=========================================================================
-# Test 12. Create a circle with point on circle line (addCircleWithPoint)
-#=========================================================================
-# create new circle
-aSession.startOperation()
-aCircle = aSketchFeature.addFeature("SketchMacroCircle")
-aCirclePnt1 = geomDataAPI_Point2D(aCircle.attribute("first_point"))
-aCirclePnt2 = geomDataAPI_Point2D(aCircle.attribute("second_point"))
-aCirclePnt3 = geomDataAPI_Point2D(aCircle.attribute("third_point"))
-aCirclePnt1Ref = aCircle.refattr("first_point_ref")
-aCirclePnt2Ref = aCircle.refattr("second_point_ref")
-aCirclePnt3Ref = aCircle.refattr("third_point_ref")
-aCircleType = aCircle.string("circle_type")
-aCircleAngle = aCircle.real("circle_angle")
-# initialize attributes
-aCircleType.setValue("circle_type_by_three_points")
-aCirclePnt1Ref.setObject(SketchCircle_1.feature().lastResult())
-aCirclePnt1.setValue(20, 0)
-aCirclePnt2Ref.setObject(SketchCircle_2.feature().lastResult())
-aCirclePnt2.setValue(40, 20)
-aCirclePnt3Ref.setObject(SketchCircle_3.feature().lastResult())
-aCirclePnt3.setValue(50, 0)
-aCircleAngle.setValue(180.)
-anExpectedRot = [60.853417638885404, 4.3837725517883515]
-aSession.finishOperation()
-assert (aSketchFeature.numberOfSubs() == 33)
-# verify newly created circle
-aCircle = model.lastSubFeature(aSketchFeature, "SketchCircle")
-aCenter = geomDataAPI_Point2D(aCircle.attribute("circle_center"))
-aRotPoint = geomDataAPI_Point2D(aCircle.attribute("circle_rotate"))
-model.assertPoint(aCenter, [35.2879593663427, 5.1151837465370855])
-model.assertPoint(aCirclePnt1, [20, 0])
-model.assertPoint(aCirclePnt2, [40, 20])
-model.assertPoint(aCirclePnt3, [50., 0.])
-model.assertPoint(aRotPoint, anExpectedRot)
-model.testNbSubFeatures(aSketch, "SketchConstraintCoincidence", 3)
-model.testNbSubFeatures(aSketch, "SketchConstraintTangent", 3)
-
#=========================================================================
# End of test
#=========================================================================