From bc8d2d2294ba0ce95991abebb19d4056f3d1a2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Thu, 24 Oct 2013 21:06:11 +0200 Subject: [PATCH] reduce solver calls and fix cylinder-cylinder coincident options --- src/Mod/Assembly/App/ItemAssembly.cpp | 1 + src/Mod/Assembly/App/opendcm/core/system.hpp | 3 +++ src/Mod/Assembly/Gui/CommandConstraints.cpp | 23 +++++++++++++------ .../Assembly/Gui/TaskAssemblyConstraints.cpp | 3 ++- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/Mod/Assembly/App/ItemAssembly.cpp b/src/Mod/Assembly/App/ItemAssembly.cpp index f73e531bb..79067e1cd 100644 --- a/src/Mod/Assembly/App/ItemAssembly.cpp +++ b/src/Mod/Assembly/App/ItemAssembly.cpp @@ -57,6 +57,7 @@ short ItemAssembly::mustExecute() const { App::DocumentObjectExecReturn* ItemAssembly::execute(void) { + Base::Console().Message("Execute\n"); try { //create a solver and init all child assemblys with subsolvers diff --git a/src/Mod/Assembly/App/opendcm/core/system.hpp b/src/Mod/Assembly/App/opendcm/core/system.hpp index f3398a85c..c20cc27ee 100644 --- a/src/Mod/Assembly/App/opendcm/core/system.hpp +++ b/src/Mod/Assembly/App/opendcm/core/system.hpp @@ -274,6 +274,9 @@ public: s->m_cluster = m_cluster->createCluster().first; s->m_storage = m_storage; s->m_cluster->template setProperty(details::subcluster); +#ifdef USE_LOGGING + stop_log(s->sink); +#endif return s; }; diff --git a/src/Mod/Assembly/Gui/CommandConstraints.cpp b/src/Mod/Assembly/Gui/CommandConstraints.cpp index 7f1541dd4..cba2be874 100644 --- a/src/Mod/Assembly/Gui/CommandConstraints.cpp +++ b/src/Mod/Assembly/Gui/CommandConstraints.cpp @@ -181,7 +181,7 @@ void CmdAssemblyConstraint::activated(int iMsg) doCommand(Doc, typestr2.str().c_str()); doCommand(Doc, "App.activeDocument().%s.Constraints = App.activeDocument().%s.Constraints + [App.activeDocument().ActiveObject]", ConstGrp->getNameInDocument(), ConstGrp->getNameInDocument()); - updateActive(); + //updateActive(); doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", ConstrName.c_str()); commitCommand(); @@ -250,7 +250,7 @@ void CmdAssemblyConstraintDistance::activated(int iMsg) doCommand(Doc, "App.activeDocument().ActiveObject.Second = %s", asSubLinkString(part2.first, objs[1].getSubNames()[0]).c_str()); doCommand(Doc, "App.activeDocument().%s.Constraints = App.activeDocument().%s.Constraints + [App.activeDocument().ActiveObject]", ConstGrp->getNameInDocument(), ConstGrp->getNameInDocument()); - updateActive(); + //updateActive(); doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", ConstrName.c_str()); commitCommand(); @@ -313,10 +313,12 @@ void CmdAssemblyConstraintFix::activated(int iMsg) doCommand(Doc, "App.activeDocument().ActiveObject.First = %s", asSubLinkString(part.first, objs[0].getSubNames()[0]).c_str()); doCommand(Doc, "App.activeDocument().%s.Constraints = App.activeDocument().%s.Constraints + [App.activeDocument().ActiveObject]", ConstGrp->getNameInDocument(), ConstGrp->getNameInDocument()); - updateActive(); + //updateActive(); doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", ConstrName.c_str()); commitCommand(); + + Gui::Selection().clearCompleteSelection(); } @@ -380,11 +382,12 @@ void CmdAssemblyConstraintAngle::activated(int iMsg) doCommand(Doc, "App.activeDocument().ActiveObject.Second = %s", asSubLinkString(part2.first, objs[1].getSubNames()[0]).c_str()); doCommand(Doc, "App.activeDocument().%s.Constraints = App.activeDocument().%s.Constraints + [App.activeDocument().ActiveObject]", ConstGrp->getNameInDocument(), ConstGrp->getNameInDocument()); - updateActive(); + //updateActive(); doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", ConstrName.c_str()); commitCommand(); + Gui::Selection().clearCompleteSelection(); } @@ -448,10 +451,12 @@ void CmdAssemblyConstraintOrientation::activated(int iMsg) doCommand(Doc, "App.activeDocument().ActiveObject.Second = %s", asSubLinkString(part2.first, objs[1].getSubNames()[0]).c_str()); doCommand(Doc, "App.activeDocument().%s.Constraints = App.activeDocument().%s.Constraints + [App.activeDocument().ActiveObject]", ConstGrp->getNameInDocument(), ConstGrp->getNameInDocument()); - updateActive(); + //updateActive(); doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", ConstrName.c_str()); commitCommand(); + + Gui::Selection().clearCompleteSelection(); } /******************************************************************************************/ @@ -514,10 +519,12 @@ void CmdAssemblyConstraintCoincidence::activated(int iMsg) doCommand(Doc, "App.activeDocument().ActiveObject.Second = %s", asSubLinkString(part2.first, objs[1].getSubNames()[0]).c_str()); doCommand(Doc, "App.activeDocument().%s.Constraints = App.activeDocument().%s.Constraints + [App.activeDocument().ActiveObject]", ConstGrp->getNameInDocument(), ConstGrp->getNameInDocument()); - updateActive(); + //updateActive(); doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", ConstrName.c_str()); commitCommand(); + + Gui::Selection().clearCompleteSelection(); } /******************************************************************************************/ @@ -580,10 +587,12 @@ void CmdAssemblyConstraintAlignment::activated(int iMsg) doCommand(Doc, "App.activeDocument().ActiveObject.Second = %s", asSubLinkString(part2.first, objs[1].getSubNames()[0]).c_str()); doCommand(Doc, "App.activeDocument().%s.Constraints = App.activeDocument().%s.Constraints + [App.activeDocument().ActiveObject]", ConstGrp->getNameInDocument(), ConstGrp->getNameInDocument()); - updateActive(); + //updateActive(); doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", ConstrName.c_str()); commitCommand(); + + Gui::Selection().clearCompleteSelection(); } void CreateAssemblyConstraintCommands(void) diff --git a/src/Mod/Assembly/Gui/TaskAssemblyConstraints.cpp b/src/Mod/Assembly/Gui/TaskAssemblyConstraints.cpp index 7e27153b0..e02feb512 100644 --- a/src/Mod/Assembly/Gui/TaskAssemblyConstraints.cpp +++ b/src/Mod/Assembly/Gui/TaskAssemblyConstraints.cpp @@ -420,7 +420,8 @@ void TaskAssemblyConstraints::setPossibleOptions() { if(isCombination(g1,g2, dcm::geometry::line, dcm::geometry::cylinder) || isCombination(g1,g2, dcm::geometry::plane, dcm::geometry::plane) || - isCombination(g1,g2, dcm::geometry::line, dcm::geometry::cylinder)) { + isCombination(g1,g2, dcm::geometry::line, dcm::geometry::cylinder) || + isCombination(g1,g2, dcm::geometry::cylinder, dcm::geometry::cylinder)) { ui->parallel->setEnabled(true); ui->equal->setEnabled(true); ui->opposite->setEnabled(true);