diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index ee0ca15fa..05febe453 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -2994,40 +2994,52 @@ 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 four coincidents to ty them together - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,2,%i,1)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,firstCurve,firstCurve+1); - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,2,%i,1)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,firstCurve+1,firstCurve+2); - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,2,%i,1)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,firstCurve+2,firstCurve+3); - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%i,2,%i,1)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,firstCurve+3,firstCurve); - //// add the horizontal constraints - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Horizontal',%i)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,firstCurve); - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Horizontal',%i)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,firstCurve+2); - //// add the vertical constraints - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Vertical',%i)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,firstCurve+1); - //Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Vertical',%i)) " - // ,sketchgui->getObject()->getNameInDocument() - // ,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)) " + ,sketchgui->getObject()->getNameInDocument() + ,firstCurve,firstCurve+2); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Coincident',%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)) " + ,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)) " + ,sketchgui->getObject()->getNameInDocument() + ,firstCurve+2); + else + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Vertical',%i)) " + ,sketchgui->getObject()->getNameInDocument() + ,firstCurve+2); + //// 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)) " + ,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); + // make the two arcs equal + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Equal',%i,%i)) " + ,sketchgui->getObject()->getNameInDocument() + ,firstCurve,firstCurve+1); Gui::Command::commitCommand(); Gui::Command::updateActive(); // add auto constraints at the start of the first side if (sugConstr1.size() > 0) { - createAutoConstraints(sugConstr1, getHighestCurveIndex() - 3 , Sketcher::start); + createAutoConstraints(sugConstr1, getHighestCurveIndex() - 3 , Sketcher::mid); sugConstr1.clear(); } @@ -3037,6 +3049,7 @@ public: sugConstr2.clear(); } + EditCurve.clear(); sketchgui->drawEdit(EditCurve); sketchgui->purgeHandler(); // no code after this line, Handler get deleted in ViewProvider