From: azv Date: Mon, 27 Nov 2017 05:22:54 +0000 (+0300) Subject: Fix crash while changing the argument of the Projection X-Git-Tag: V_2.10.0RC~138 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=82874628678a6b4eb234bf5663c7707e25dc1589;p=modules%2Fshaper.git Fix crash while changing the argument of the Projection --- diff --git a/src/SketchPlugin/SketchPlugin_Projection.cpp b/src/SketchPlugin/SketchPlugin_Projection.cpp index 3d783a408..198173850 100644 --- a/src/SketchPlugin/SketchPlugin_Projection.cpp +++ b/src/SketchPlugin/SketchPlugin_Projection.cpp @@ -162,7 +162,8 @@ void SketchPlugin_Projection::computeProjection(const std::string& theID) std::dynamic_pointer_cast(lastResult()); if (aResult && aResult->shape() && theID == EXTERNAL_FEATURE_ID()) { aResult->setShape(std::shared_ptr()); - aProjection->selection(EXTERNAL_ID())->setValue(lastResult(), lastResult()->shape()); + if (aProjection) + aProjection->selection(EXTERNAL_ID())->setValue(lastResult(), lastResult()->shape()); } if (aVertex) { diff --git a/src/SketchPlugin/Test/TestProjectionUpdate.py b/src/SketchPlugin/Test/TestProjectionUpdate.py new file mode 100644 index 000000000..e3312d02e --- /dev/null +++ b/src/SketchPlugin/Test/TestProjectionUpdate.py @@ -0,0 +1,42 @@ +## 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 +## + +""" + Check that there is no crash while changing the projecting feature +""" + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() + +Sketch_1 = model.addSketch(partSet, model.defaultPlane("XOY")) +SketchLine_1 = Sketch_1.addLine(20, -50, 70, 50) +model.do() + +Sketch_2 = model.addSketch(partSet, model.defaultPlane("YOZ")) +SketchProjection_1 = Sketch_2.addProjection(model.selection("VERTEX", "Sketch_1/Vertex-SketchLine_1s"), True) +model.do() + +# change the feature projected (no crash expected) +SketchProjection_1.setExternalFeature(model.selection("EDGE", "Sketch_1/Edge-SketchLine_1")) +model.do() + +model.end()