X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FTest%2FTestMultiRotation.py;h=27b0aae2430b8fc0de718f988352bc18884a4e64;hb=29e40e5c48e4ac68c20cfc0bf202d6e01f7fb2e3;hp=68a3b6a392cea8b78803a0c35b1a5d512d327809;hpb=413db95d4a393f9a966a4e81e82a0efbb8728048;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/Test/TestMultiRotation.py b/src/SketchPlugin/Test/TestMultiRotation.py index 68a3b6a39..27b0aae24 100644 --- a/src/SketchPlugin/Test/TestMultiRotation.py +++ b/src/SketchPlugin/Test/TestMultiRotation.py @@ -35,6 +35,15 @@ def createSketch(theSketch): theSketch.execute() return allFeatures +def createLine(theSketch): + aSketchLine = theSketch.addFeature("SketchLine") + aStartPoint = geomDataAPI_Point2D(aSketchLine.attribute("StartPoint")) + aEndPoint = geomDataAPI_Point2D(aSketchLine.attribute("EndPoint")) + aStartPoint.setValue(7., 5.) + aEndPoint.setValue(1., 3.) + theSketch.execute() + return aSketchLine + def checkRotation(theObjects, theNbObjects, theCenterX, theCenterY, theAngle): # Verify distances of the objects and the number of copies aFeatures = [] @@ -112,6 +121,14 @@ CENTER_X = 0. CENTER_Y = 0. ANGLE = 30. #========================================================================= +# Create rotation point +#========================================================================= +aSession.startOperation() +aRotationPoint = aSketchFeature.addFeature("SketchPoint") +aRotationPointPoint = geomDataAPI_Point2D(aRotationPoint.attribute("PointCoordindates")) +aRotationPointPoint.setValue(CENTER_X, CENTER_Y) +aSession.finishOperation() +#========================================================================= # Create the Rotation constraint #========================================================================= aSession.startOperation() @@ -125,12 +142,17 @@ for aFeature in aFeaturesList: aValueType = aMultiRotation.string("AngleType") aValueType.setValue("SingleValue") -aCenter = geomDataAPI_Point2D(aMultiRotation.attribute("MultiRotationCenter")) +aCenter = aMultiRotation.refattr("MultiRotationCenter") +aCenter.setAttr(aRotationPointPoint) + anAngle = aMultiRotation.real("MultiRotationAngle") -aCenter.setValue(CENTER_X, CENTER_Y) anAngle.setValue(ANGLE) + +anAngle = aMultiRotation.string("AngleType") +anAngle.setValue("SingleAngle") + aNbCopies = aMultiRotation.integer("MultiRotationObjects") -aNbCopies.setValue(1) +aNbCopies.setValue(2) aMultiRotation.execute() aSession.finishOperation() #========================================================================= @@ -146,11 +168,54 @@ aNbCopies.setValue(3) aSession.finishOperation() aRotated = aMultiRotation.reflist("ConstraintEntityB") checkRotation(aRotated, aNbCopies.value(), CENTER_X, CENTER_Y, ANGLE) + +#========================================================================= +# Create new feature and add it into the Rotation +#========================================================================= +aSession.startOperation() +aLine = createLine(aSketchFeature) +aSession.finishOperation() +aSession.startOperation() +aResult = modelAPI_ResultConstruction(aLine.lastResult()) +assert(aResult is not None) +aRotList.append(aResult) +aSession.finishOperation() +checkRotation(aRotated, aNbCopies.value(), CENTER_X, CENTER_Y, ANGLE) +#========================================================================= +# Move line and check the copies are moved too +#========================================================================= +aSession.startOperation() +aStartPoint = geomDataAPI_Point2D(aLine.attribute("StartPoint")) +aStartPoint.setValue(12., 5.) +aSession.finishOperation() +checkRotation(aRotated, aNbCopies.value(), CENTER_X, CENTER_Y, ANGLE) +#========================================================================= +# Change number of copies and verify Rotation +#========================================================================= +aSession.startOperation() +aNbCopies.setValue(2) +aSession.finishOperation() +checkRotation(aRotated, aNbCopies.value(), CENTER_X, CENTER_Y, ANGLE) + #========================================================================= -# TODO: improve test -# 1. Add more features into Rotation -# 2. Move one of initial features and check the Rotated is moved too +# Remove a feature from the Rotation #========================================================================= +aSession.startOperation() +aRemoveIt = aRotList.object(0) +aRotList.remove(aRemoveIt) +aSession.finishOperation() +checkRotation(aRotated, aNbCopies.value(), CENTER_X, CENTER_Y, ANGLE) + +#========================================================================= +# Clear the list of rotated features +#========================================================================= +aSession.startOperation() +aRotList.clear() +checkRotation(aRotated, 1, CENTER_X, CENTER_Y, ANGLE) +# Add line once again +aRotList.append(aResult) +aSession.finishOperation() +checkRotation(aRotated, aNbCopies.value(), CENTER_X, CENTER_Y, ANGLE) #========================================================================= # End of test #=========================================================================