reduce solver calls and fix cylinder-cylinder coincident options

This commit is contained in:
Stefan Tröger 2013-10-24 21:06:11 +02:00
parent e9540eadcc
commit bc8d2d2294
4 changed files with 22 additions and 8 deletions

View File

@ -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

View File

@ -274,6 +274,9 @@ public:
s->m_cluster = m_cluster->createCluster().first;
s->m_storage = m_storage;
s->m_cluster->template setProperty<dcm::type_prop>(details::subcluster);
#ifdef USE_LOGGING
stop_log(s->sink);
#endif
return s;
};

View File

@ -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)

View File

@ -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);