X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FTest%2FTestRevolution.py;h=45d5a2bcb693f8ebeb2fd858967b16fbe55a0428;hb=06e7f5859095193fc7f498bd89a7d28009794f53;hp=1dd1ee277a11be158a18a06f663d8869a67c6917;hpb=39318e10d9345c5b596d16c89469ee5e68ee734a;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/Test/TestRevolution.py b/src/FeaturesPlugin/Test/TestRevolution.py index 1dd1ee277..45d5a2bcb 100644 --- a/src/FeaturesPlugin/Test/TestRevolution.py +++ b/src/FeaturesPlugin/Test/TestRevolution.py @@ -1,3 +1,22 @@ +# Copyright (C) 2014-2023 CEA, EDF +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + """ TestRevolution.py Unit test of FeaturesPlugin_Revolution class @@ -7,10 +26,10 @@ 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_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_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"); @@ -59,23 +78,15 @@ norm.setValue(0, 0, 1) # Create circle aSketchCircle = aCircleSketchFeature.addFeature("SketchCircle") -anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("CircleCenter")) -aCircleRadius = aSketchCircle.real("CircleRadius") +anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("circle_center")) +aCircleRadius = aSketchCircle.real("circle_radius") anCircleCentr.setValue(0., 0.) aCircleRadius.setValue(30.) aSession.finishOperation() # Build shape from sketcher results -aCircleSketchResult = aCircleSketchFeature.firstResult() -aCircleSketchEdges = modelAPI_ResultConstruction(aCircleSketchResult).shape() -origin = geomDataAPI_Point(aCircleSketchFeature.attribute("Origin")).pnt() -dirX = geomDataAPI_Dir(aCircleSketchFeature.attribute("DirX")).dir() -norm = geomDataAPI_Dir(aCircleSketchFeature.attribute("Norm")).dir() -aCircleSketchFaces = ShapeList() -GeomAlgoAPI_SketchBuilder.createFaces( - origin, dirX, norm, aCircleSketchEdges, aCircleSketchFaces) -assert (len(aCircleSketchFaces) > 0) -assert (aCircleSketchFaces[0] is not None) +aCircleSketchResult = modelAPI_ResultConstruction(aCircleSketchFeature.firstResult()) +assert (aCircleSketchResult.facesNum() > 0) #========================================================================= # Create a sketch line to revol @@ -110,7 +121,7 @@ aRevolFt = aPart.addFeature("Revolution") assert (aRevolFt.getKind() == "Revolution") # selection type FACE=4 aRevolFt.selectionList("base").append( - aCircleSketchResult, aCircleSketchFaces[0]) + aCircleSketchResult, aCircleSketchResult.face(0)) aRevolFt.selection("axis_object").setValue(aLineSketchResult, aLineEdge) aRevolFt.string("CreationMethod").setValue("ByAngles") aRevolFt.real("from_angle").setValue(10) @@ -128,50 +139,76 @@ aRevolResult = modelAPI_ResultBody(aRevolFt.firstResult()) assert (aRevolResult is not None) #========================================================================= -# Create a first plane +# Create bounding planes #========================================================================= -aXOYPlane = modelAPI_Result(aDocument.objectByName("Construction", "XOY")) +# 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() -aPlaneFeature = aPart.addFeature("Plane") -aPlaneFeatureData = aPlaneFeature.data() -assert(aPlaneFeatureData is not None) -aPlaneFeatureData.string("CreationMethod").setValue("PlaneByFaceAndDistance") -aPlaneFeatureData.selection("planeFace").setValue(aXOYPlane, None) -aPlaneFeatureData.real("distance").setValue(50) -aPlaneFeature.execute() +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() -aPlane1Result = aPlaneFeature.firstResult(); +aToResult = aToPlaneFeature.firstResult() +aToShape = modelAPI_ResultConstruction(aToResult).shape() #========================================================================= -# Create a second plane +# Test revol between bounding planes #========================================================================= aSession.startOperation() -aPlaneFeature = aPart.addFeature("Plane") -aPlaneFeatureData = aPlaneFeature.data() -assert(aPlaneFeatureData is not None) -aPlaneFeatureData.string("CreationMethod").setValue("PlaneByFaceAndDistance") -aPlaneFeatureData.selection("planeFace").setValue(aXOYPlane, None) -aPlaneFeatureData.real("distance").setValue(-50) -aPlaneFeature.execute() +aRevolFt = aPart.addFeature("Revolution") +assert (aRevolFt.getKind() == "Revolution") +# selection type FACE=4 +aRevolFt.selectionList("base").append( + aCircleSketchResult, aCircleSketchResult.face(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() -aPlane2Result = aPlaneFeature.firstResult(); + +# Check revol results +assert (len(aRevolFt.results()) > 0) +aRevolResult = modelAPI_ResultBody(aRevolFt.firstResult()) +assert (aRevolResult is not None) +aSession.undo() #========================================================================= -# Test revol between bounding planes +# 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]) + aCircleSketchResult, aCircleSketchResult.face(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(aPlane1Result, None) +aRevolFt.selection("to_object").setValue(aToResult, None) aRevolFt.real("to_offset").setValue(0) -aRevolFt.selection("from_object").setValue(aPlane2Result, None) +aRevolFt.selection("from_object").setValue(None, None) aRevolFt.real("from_offset").setValue(0) aRevolFt.execute() aSession.finishOperation() @@ -179,4 +216,7 @@ aSession.finishOperation() # Check revol results assert (len(aRevolFt.results()) > 0) aRevolResult = modelAPI_ResultBody(aRevolFt.firstResult()) -assert (aRevolResult is not None) \ No newline at end of file +assert (aRevolResult is not None) + +from salome.shaper import model +assert(model.checkPythonDump())