From 89664982fb74d6e64944a6ce556bfe75f63d893f Mon Sep 17 00:00:00 2001 From: AjinkyaDahale Date: Wed, 22 Feb 2017 04:13:14 +0530 Subject: [PATCH] Sketcher: External edges in constraint modes (DistanceX/Y) --- src/Mod/Sketcher/Gui/CommandConstraints.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandConstraints.cpp b/src/Mod/Sketcher/Gui/CommandConstraints.cpp index 867f3821e..fe364677c 100644 --- a/src/Mod/Sketcher/Gui/CommandConstraints.cpp +++ b/src/Mod/Sketcher/Gui/CommandConstraints.cpp @@ -912,7 +912,7 @@ public: newSelType = (allowedSelTypes & SelVAxis) ? SelVAxis : SelEdgeOrAxis; ss << "V_Axis"; } - else if (allowedSelTypes & SelExternalEdge) { + else if (allowedSelTypes & SelExternalEdge && CrvId <= Sketcher::GeoEnum::RefExt) { //TODO: Figure out how this works selIdPair.GeoId = CrvId; newSelType = SelExternalEdge; @@ -2506,7 +2506,7 @@ CmdSketcherConstrainDistanceX::CmdSketcherConstrainDistanceX() eType = ForEdit; allowedSelSequences = {{SelVertex, SelVertexOrRoot}, {SelRoot, SelVertex}, - {SelEdge}}; // Can't do single vertex because its a prefix for 2 vertices + {SelEdge}, {SelExternalEdge}}; // Can't do single vertex because its a prefix for 2 vertices constraintCursor = cursor_genericconstraint; } @@ -2654,6 +2654,7 @@ void CmdSketcherConstrainDistanceX::applyConstraint(std::vector &selS break; } case 2: // {SelEdge} + case 4: // {SelExternalEdge} { GeoId1 = GeoId2 = selSeq.at(0).GeoId; PosId1 = Sketcher::start; PosId2 = Sketcher::end; @@ -2745,7 +2746,7 @@ CmdSketcherConstrainDistanceY::CmdSketcherConstrainDistanceY() eType = ForEdit; allowedSelSequences = {{SelVertex, SelVertexOrRoot}, {SelRoot, SelVertex}, - {SelEdge}}; // Can't do single vertex because its a prefix for 2 vertices + {SelEdge}, {SelExternalEdge}}; // Can't do single vertex because its a prefix for 2 vertices constraintCursor = cursor_genericconstraint; } @@ -2892,6 +2893,7 @@ void CmdSketcherConstrainDistanceY::applyConstraint(std::vector &selS break; } case 2: // {SelEdge} + case 3: // {SelExternalEdge} { GeoId1 = GeoId2 = selSeq.at(0).GeoId; PosId1 = Sketcher::start; PosId2 = Sketcher::end;