Refactor PartDesign create primitive commands

This commit is contained in:
Ian Rees
2017-04-04 16:50:48 +12:00
committed by wmayer
parent a86583e833
commit 05b5b48af8

View File

@@ -46,6 +46,21 @@ using namespace std;
DEF_STD_CMD_ACL(CmdPrimtiveCompAdditive);
static const char * primitiveIntToName(int id)
{
switch(id) {
case 0: return "Box";
case 1: return "Cylinder";
case 2: return "Sphere";
case 3: return "Cone";
case 4: return "Ellipsoid";
case 5: return "Torus";
case 6: return "Prism";
case 7: return "Wedge";
default: return nullptr;
};
};
CmdPrimtiveCompAdditive::CmdPrimtiveCompAdditive()
: Command("PartDesign_CompPrimitiveAdditive")
{
@@ -72,72 +87,14 @@ void CmdPrimtiveCompAdditive::activated(int iMsg)
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
pcAction->setIcon(pcAction->actions().at(iMsg)->icon());
std::string FeatName;
if(iMsg == 0) {
FeatName = getUniqueObjectName("Box");
Gui::Command::openCommand("Make additive box");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveBox\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 1) {
FeatName = getUniqueObjectName("Cylinder");
Gui::Command::openCommand("Make additive cylinder");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveCylinder\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 2) {
FeatName = getUniqueObjectName("Sphere");
Gui::Command::openCommand("Make additive sphere");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveSphere\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 3) {
FeatName = getUniqueObjectName("Cone");
Gui::Command::openCommand("Make additive cone");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveCone\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 4) {
FeatName = getUniqueObjectName("Ellipsoid");
Gui::Command::openCommand("Make additive ellipsoid");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveEllipsoid\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 5) {
FeatName = getUniqueObjectName("Torus");
Gui::Command::openCommand("Make additive torus");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveTorus\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 6) {
FeatName = getUniqueObjectName("Prism");
Gui::Command::openCommand("Make additive prism");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditivePrism\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 7) {
FeatName = getUniqueObjectName("Wedge");
Gui::Command::openCommand("Make additive wedge");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveWedge\',\'%s\')",
FeatName.c_str());
}
auto shapeType( primitiveIntToName(iMsg) );
auto FeatName( getUniqueObjectName(shapeType) );
Gui::Command::openCommand( (std::string("Make additive ") + shapeType).c_str() );
Gui::Command::doCommand(
Gui::Command::Doc,
"App.ActiveDocument.addObject(\'PartDesign::Additive%s\',\'%s\')",
shapeType, FeatName.c_str() );
Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.addObject(App.activeDocument().%s)"
,pcActiveBody->getNameInDocument(), FeatName.c_str());
@@ -268,77 +225,20 @@ void CmdPrimtiveCompSubtractive::activated(int iMsg)
return;
}
std::string FeatName;
if(iMsg == 0) {
auto shapeType( primitiveIntToName(iMsg) );
auto FeatName( getUniqueObjectName(shapeType) );
FeatName = getUniqueObjectName("Box");
Gui::Command::openCommand("Make subtractive box");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveBox\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 1) {
FeatName = getUniqueObjectName("Cylinder");
Gui::Command::openCommand("Make subtractive cylinder");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveCylinder\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 2) {
FeatName = getUniqueObjectName("Sphere");
Gui::Command::openCommand("Make subtractive sphere");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveSphere\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 3) {
FeatName = getUniqueObjectName("Cone");
Gui::Command::openCommand("Make subtractive cone");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveCone\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 4) {
FeatName = getUniqueObjectName("Ellipsoid");
Gui::Command::openCommand("Make subtractive ellipsoid");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveEllipsoid\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 5) {
FeatName = getUniqueObjectName("Torus");
Gui::Command::openCommand("Make subtractive torus");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveTorus\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 6) {
FeatName = getUniqueObjectName("Prism");
Gui::Command::openCommand("Make subtractive prism");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractivePrism\',\'%s\')",
FeatName.c_str());
}
else if(iMsg == 7) {
FeatName = getUniqueObjectName("Wedge");
Gui::Command::openCommand("Make subtractive wedge");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveWedge\',\'%s\')",
FeatName.c_str());
}
Gui::Command::openCommand( (std::string("Make subtractive ") + shapeType).c_str() );
Gui::Command::doCommand(
Gui::Command::Doc,
"App.ActiveDocument.addObject(\'PartDesign::Subtractive%s\',\'%s\')",
shapeType, FeatName.c_str() );
Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.addObject(App.activeDocument().%s)"
,pcActiveBody->getNameInDocument(), FeatName.c_str());
Gui::Command::updateActive();
if (isActiveObjectValid() && (pcActiveBody != NULL)) {
if ( isActiveObjectValid() ) {
// TODO (2015-08-05, Fat-Zer)
if (prevSolid) {
doCommand(Gui,"Gui.activeDocument().hide(\"%s\")", prevSolid->getNameInDocument());