From 86a1757c2049e9e028525297636a2b1fdfce6006 Mon Sep 17 00:00:00 2001 From: DeepSOIC Date: Sun, 16 Nov 2014 23:45:13 +0400 Subject: [PATCH] Sketcher: Slot: proper tangent constraints Endpoint-to-endpoint tangency is applied now instead of tangency+coincident. Fixes issue #0001828 ( http://freecadweb.org/tracker/view.php?id=0001828 ) --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 24 ++++++----------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index db7e1c9c3..82cb3de2a 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -3009,32 +3009,20 @@ public: Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addGeometry(Part.Line(App.Vector(%f,%f,0),App.Vector(%f,%f,0)))", sketchgui->getObject()->getNameInDocument(), EditCurve[0].fX,EditCurve[0].fY,EditCurve[34].fX,EditCurve[34].fY); - //// add the tnagent constraints - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,%i)) " - ,sketchgui->getObject()->getNameInDocument() - ,firstCurve,firstCurve+2); - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,%i)) " + + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,1,%i,1)) " ,sketchgui->getObject()->getNameInDocument() ,firstCurve,firstCurve+3); - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,%i)) " - ,sketchgui->getObject()->getNameInDocument() - ,firstCurve+1,firstCurve+2); - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,%i)) " - ,sketchgui->getObject()->getNameInDocument() - ,firstCurve+1,firstCurve+3); - // add the four coincidents to ty them together - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,1,%i,1)) " - ,sketchgui->getObject()->getNameInDocument() - ,firstCurve,firstCurve+3); - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,2,%i,1)) " + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,2,%i,1)) " ,sketchgui->getObject()->getNameInDocument() ,firstCurve,firstCurve+2); - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,2,%i,1)) " + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,2,%i,1)) " ,sketchgui->getObject()->getNameInDocument() ,firstCurve+2,firstCurve+1); - Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,2,%i,2)) " + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Tangent',%i,2,%i,2)) " ,sketchgui->getObject()->getNameInDocument() ,firstCurve+3,firstCurve+1); + //// add the either horizontal or vertical constraints if(fabs(lx)>fabs(ly)) Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Horizontal',%i)) "