X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FTest%2FTestRevolution.py;h=cfac07013495388e06287617ebf342503e1c79a3;hb=ebc5236aba00c21e854d6705d1cbbc6599e1bf36;hp=f0806e666acd6be26a9e89f034a9e89e1068c99d;hpb=7b575e65da4aaf7e4cbf41ccf7d61b83c5842b7f;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/Test/TestRevolution.py b/src/FeaturesPlugin/Test/TestRevolution.py index f0806e666..cfac07013 100644 --- a/src/FeaturesPlugin/Test/TestRevolution.py +++ b/src/FeaturesPlugin/Test/TestRevolution.py @@ -6,17 +6,23 @@ static const std::string MY_REVOLUTION_ID("Revolution"); static const std::string MY_GROUP_LIST_ID("base"); static const std::string MY_TO_OBJECT_ID("axis_object"); + static const std::string METHOD_ATTR("CreationMethod"); static const std::string MY_TO_ANGLE_ID("to_angle"); static const std::string MY_FROM_ANGLE_ID("from_angle"); static const std::string MY_TO_OBJECT_ID("to_object"); + static const std::string MY_TO_OFFSET_ID("to_offset"); static const std::string MY_FROM_OBJECT_ID("from_object"); + static const std::string MY_FROM_OFFSET_ID("from_offset"); - data()->addAttribute(FeaturesPlugin_Revolution::LIST_ID(), ModelAPI_AttributeSelectionList::typeId()); - data()->addAttribute(FeaturesPlugin_Revolution::AXIS_OBJECT_ID(), ModelAPI_AttributeSelection::typeId()); - data()->addAttribute(FeaturesPlugin_Revolution::FROM_OBJECT_ID(), ModelAPI_AttributeSelection::typeId()); - data()->addAttribute(FeaturesPlugin_Revolution::FROM_ANGLE_ID(), ModelAPI_AttributeDouble::typeId()); - data()->addAttribute(FeaturesPlugin_Revolution::TO_OBJECT_ID(), ModelAPI_AttributeSelection::typeId()); - data()->addAttribute(FeaturesPlugin_Revolution::TO_ANGLE_ID(), ModelAPI_AttributeDouble::typeId()); + data()->addAttribute(LIST_ID(), ModelAPI_AttributeSelectionList::typeId()); + data()->addAttribute(AXIS_OBJECT_ID(), ModelAPI_AttributeSelection::typeId()); + data()->addAttribute(CREATION_METHOD(), ModelAPI_AttributeString::typeId()); + data()->addAttribute(TO_ANGLE_ID(), ModelAPI_AttributeDouble::typeId()); + data()->addAttribute(FROM_ANGLE_ID(), ModelAPI_AttributeDouble::typeId()); + data()->addAttribute(TO_OBJECT_ID(), ModelAPI_AttributeSelection::typeId()); + data()->addAttribute(TO_OFFSET_ID(), ModelAPI_AttributeDouble::typeId()); + data()->addAttribute(FROM_OBJECT_ID(), ModelAPI_AttributeSelection::typeId()); + data()->addAttribute(FROM_OFFSET_ID(), ModelAPI_AttributeDouble::typeId()); """ #========================================================================= # Initialization of the test @@ -106,8 +112,11 @@ assert (aRevolFt.getKind() == "Revolution") aRevolFt.selectionList("base").append( aCircleSketchResult, aCircleSketchFaces[0]) aRevolFt.selection("axis_object").setValue(aLineSketchResult, aLineEdge) +aRevolFt.string("CreationMethod").setValue("ByAngles") aRevolFt.real("from_angle").setValue(10) aRevolFt.real("to_angle").setValue(10) +aRevolFt.real("to_offset").setValue(0) #TODO: remove +aRevolFt.real("from_offset").setValue(0) #TODO: remove aRevolFt.execute() aSession.finishOperation() assert (aRevolFt.real("from_angle").value() == 10.0) @@ -118,3 +127,85 @@ assert (len(aRevolFt.results()) > 0) aRevolResult = modelAPI_ResultBody(aRevolFt.firstResult()) assert (aRevolResult is not None) +#========================================================================= +# Create bounding planes +#========================================================================= +# Create from plane +aSession.startOperation() +aFromPlaneFeature = aPart.addFeature("Plane") +aFromPlaneFeature.string("creation_method").setValue("by_general_equation") +aFromPlaneFeature.string("by_other_plane_option").setValue("by_distance_from_other") # TODO: remove +aFromPlaneFeature.real("A").setValue(0.) +aFromPlaneFeature.real("B").setValue(0.) +aFromPlaneFeature.real("C").setValue(1.) +aFromPlaneFeature.real("D").setValue(50.) +aSession.finishOperation() +aFromResult = aFromPlaneFeature.firstResult() +aFromShape = modelAPI_ResultConstruction(aFromResult).shape() + +# Create to plane +aSession.startOperation() +aToPlaneFeature = aPart.addFeature("Plane") +aToPlaneFeature.string("creation_method").setValue("by_general_equation") +aToPlaneFeature.string("by_other_plane_option").setValue("by_distance_from_other") # TODO: remove +aToPlaneFeature.real("A").setValue(0.) +aToPlaneFeature.real("B").setValue(0.) +aToPlaneFeature.real("C").setValue(1.) +aToPlaneFeature.real("D").setValue(-50.) +aSession.finishOperation() +aToResult = aToPlaneFeature.firstResult() +aToShape = modelAPI_ResultConstruction(aToResult).shape() + +#========================================================================= +# Test revol between bounding planes +#========================================================================= +aSession.startOperation() +aRevolFt = aPart.addFeature("Revolution") +assert (aRevolFt.getKind() == "Revolution") +# selection type FACE=4 +aRevolFt.selectionList("base").append( + aCircleSketchResult, aCircleSketchFaces[0]) +aRevolFt.selection("axis_object").setValue(aLineSketchResult, aLineEdge) +aRevolFt.string("CreationMethod").setValue("ByPlanesAndOffsets") +aRevolFt.real("from_angle").setValue(0) #TODO: remove +aRevolFt.real("to_angle").setValue(0) #TODO: remove +aRevolFt.selection("to_object").setValue(aToResult, None) +aRevolFt.real("to_offset").setValue(0) +aRevolFt.selection("from_object").setValue(aFromResult, None) +aRevolFt.real("from_offset").setValue(0) +aRevolFt.execute() +aSession.finishOperation() + +# Check revol results +assert (len(aRevolFt.results()) > 0) +aRevolResult = modelAPI_ResultBody(aRevolFt.firstResult()) +assert (aRevolResult is not None) +aSession.undo() + +#========================================================================= +# Test revol between bounding plane +#========================================================================= +aSession.startOperation() +aRevolFt = aPart.addFeature("Revolution") +assert (aRevolFt.getKind() == "Revolution") +# selection type FACE=4 +aRevolFt.selectionList("base").append( + aCircleSketchResult, aCircleSketchFaces[0]) +aRevolFt.selection("axis_object").setValue(aLineSketchResult, aLineEdge) +aRevolFt.string("CreationMethod").setValue("ByPlanesAndOffsets") +aRevolFt.real("from_angle").setValue(0) #TODO: remove +aRevolFt.real("to_angle").setValue(0) #TODO: remove +aRevolFt.selection("to_object").setValue(aToResult, None) +aRevolFt.real("to_offset").setValue(0) +aRevolFt.selection("from_object").setValue(None, None) +aRevolFt.real("from_offset").setValue(0) +aRevolFt.execute() +aSession.finishOperation() + +# Check revol results +assert (len(aRevolFt.results()) > 0) +aRevolResult = modelAPI_ResultBody(aRevolFt.firstResult()) +assert (aRevolResult is not None) + +import model +assert(model.checkPythonDump())