From aa7ce8bd36a44173fd76fefa189d8b6123d76ad2 Mon Sep 17 00:00:00 2001 From: mpv Date: Tue, 14 Nov 2017 17:19:50 +0300 Subject: [PATCH] Fix for the issue #2287. --- src/SketchPlugin/CMakeLists.txt | 1 + src/SketchPlugin/SketchPlugin_Projection.cpp | 2 +- src/SketchPlugin/Test/Test2287.py | 40 ++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/SketchPlugin/Test/Test2287.py diff --git a/src/SketchPlugin/CMakeLists.txt b/src/SketchPlugin/CMakeLists.txt index e7ec8b7c7..30bf99ae1 100644 --- a/src/SketchPlugin/CMakeLists.txt +++ b/src/SketchPlugin/CMakeLists.txt @@ -225,6 +225,7 @@ ADD_UNIT_TESTS(TestSketchPointLine.py TestSignedDistancePointLine.py Test2273.py Test2280.py + Test2287.py ) if(${SKETCHER_CHANGE_RADIUS_WHEN_MOVE}) diff --git a/src/SketchPlugin/SketchPlugin_Projection.cpp b/src/SketchPlugin/SketchPlugin_Projection.cpp index fb6815a16..59f4cd6fb 100644 --- a/src/SketchPlugin/SketchPlugin_Projection.cpp +++ b/src/SketchPlugin/SketchPlugin_Projection.cpp @@ -259,7 +259,7 @@ void SketchPlugin_Projection::computeProjection(const std::string& theID) if (aResult) { aResult->setShape(aProjection->lastResult()->shape()); setResult(aResult); - aProjection->selection(EXTERNAL_ID())->setValue(lastResult(), lastResult()->shape()); + aProjection->selection(EXTERNAL_ID())->setValue(lastResult(), NULL); } } } diff --git a/src/SketchPlugin/Test/Test2287.py b/src/SketchPlugin/Test/Test2287.py new file mode 100644 index 000000000..1049f7d1c --- /dev/null +++ b/src/SketchPlugin/Test/Test2287.py @@ -0,0 +1,40 @@ +## Copyright (C) 2014-2017 CEA/DEN, EDF R&D +## +## 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 +## + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOZ")) +SketchLine_1 = Sketch_1.addLine(-20, -62, 81, 60) +model.do() +Sketch_2 = model.addSketch(Part_1_doc, model.defaultPlane("YOZ")) +SketchProjection_1 = Sketch_2.addProjection(model.selection("EDGE", "Sketch_1/Edge-SketchLine_1"), True) +SketchLine_2 = SketchProjection_1.createdFeature() +model.do() +Edge_1 = model.addEdge(Part_1_doc, [model.selection("EDGE", "Sketch_2/Edge-SketchProjection_1")]) +model.end() + +# before bug fix it was "Sketch_2" +assert(Edge_1.baseObjects().value(0).namingName() == "Sketch_2/Edge-SketchProjection_1") + +assert(model.checkPythonDump()) -- 2.39.2