From 6bbf61b1f2bc52eee6ed5aa302463ea2b38f4042 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Mon, 27 May 2024 10:47:35 +0200 Subject: [PATCH] Sketcher: Fix copy of geo constrained to axis. Fixes #14233 --- src/Mod/Sketcher/App/PythonConverter.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/App/PythonConverter.cpp b/src/Mod/Sketcher/App/PythonConverter.cpp index af88bcf7cc..e5d5b53df3 100644 --- a/src/Mod/Sketcher/App/PythonConverter.cpp +++ b/src/Mod/Sketcher/App/PythonConverter.cpp @@ -347,9 +347,13 @@ PythonConverter::SingleGeometry PythonConverter::process(const Part::Geometry* g std::string PythonConverter::process(const Sketcher::Constraint* constraint, GeoIdMode geoIdMode) { bool addLastIdVar = geoIdMode == GeoIdMode::AddLastGeoIdToGeoIds; - std::string geoId1 = (addLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->First); - std::string geoId2 = (addLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->Second); - std::string geoId3 = (addLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->Third); + bool addLastIdVar1 = constraint->First >= 0 && addLastIdVar; + bool addLastIdVar2 = constraint->Second >= 0 && addLastIdVar; + bool addLastIdVar3 = constraint->Third >= 0 && addLastIdVar; + + std::string geoId1 = (addLastIdVar1 ? "lastGeoId + " : "") + std::to_string(constraint->First); + std::string geoId2 = (addLastIdVar2 ? "lastGeoId + " : "") + std::to_string(constraint->Second); + std::string geoId3 = (addLastIdVar3 ? "lastGeoId + " : "") + std::to_string(constraint->Third); static std::map< const Sketcher::ConstraintType,