From 201ef90a89649f753bfed490c68ff2653cc6173d Mon Sep 17 00:00:00 2001 From: Ajinkya Dahale Date: Tue, 8 Mar 2022 05:32:33 -0500 Subject: [PATCH] [Sketcher] Constrain first pole when created By doing this, duplicate radius constraints are not made when deleting and redefining second pole. --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index d251982092..400d9c1813 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -4632,13 +4632,16 @@ public: // insert circle point for pole, defer internal alignment constraining. try { - Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Add Pole circle")); //Add pole Gui::cmdAppObjectArgs(sketchgui->getObject(), "addGeometry(Part.Circle(App.Vector(%f,%f,0),App.Vector(0,0,1),10),True)", EditCurve[0].x,EditCurve[0].y); + FirstPoleGeoId = getHighestCurveIndex(); + + Gui::cmdAppObjectArgs(sketchgui->getObject(), "addConstraint(Sketcher.Constraint('Weight',%d,%f)) ", + FirstPoleGeoId, 1.0 ); // First pole defaults to 1.0 weight } catch (const Base::Exception& e) { Base::Console().Error("%s\n", e.what()); @@ -4653,8 +4656,6 @@ public: //static_cast(sketchgui->getObject())->solve(); - FirstPoleGeoId = getHighestCurveIndex(); - // add auto constraints on pole if (sugConstr[CurrentConstraint].size() > 0) { createAutoConstraints(sugConstr[CurrentConstraint], FirstPoleGeoId, Sketcher::PointPos::mid, false); @@ -4698,11 +4699,6 @@ public: Gui::cmdAppObjectArgs(sketchgui->getObject(), "addGeometry(Part.Circle(App.Vector(%f,%f,0),App.Vector(0,0,1),10),True)", EditCurve[EditCurve.size()-1].x,EditCurve[EditCurve.size()-1].y); - if(EditCurve.size() == 2) { - Gui::cmdAppObjectArgs(sketchgui->getObject(), "addConstraint(Sketcher.Constraint('Weight',%d,%f)) ", - FirstPoleGeoId, 1.0 ); // First pole defaults to 1.0 weight - } - Gui::cmdAppObjectArgs(sketchgui->getObject(), "addConstraint(Sketcher.Constraint('Equal',%d,%d)) ", FirstPoleGeoId, FirstPoleGeoId+ EditCurve.size()-1); }