add feature to extend given surface
This commit is contained in:
@@ -52,6 +52,7 @@
|
||||
#include <Gui/FileDialog.h>
|
||||
#include <Gui/MainWindow.h>
|
||||
#include <Gui/Selection.h>
|
||||
#include <Gui/SelectionFilter.h>
|
||||
#include <Gui/View3DInventor.h>
|
||||
#include <Gui/View3DInventorViewer.h>
|
||||
#include <Gui/WaitCursor.h>
|
||||
@@ -219,6 +220,48 @@ bool CmdSurfaceCurveOnMesh::isActive(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
DEF_STD_CMD_A(CmdSurfaceExtendFace)
|
||||
|
||||
CmdSurfaceExtendFace::CmdSurfaceExtendFace()
|
||||
: Command("Surface_ExtendFace")
|
||||
{
|
||||
sAppModule = "Surface";
|
||||
sGroup = QT_TR_NOOP("Surface");
|
||||
sMenuText = QT_TR_NOOP("Extend face");
|
||||
sToolTipText = QT_TR_NOOP("Extend face");
|
||||
sWhatsThis = "Surface_ExtendFace";
|
||||
sStatusTip = sToolTipText;
|
||||
}
|
||||
|
||||
void CmdSurfaceExtendFace::activated(int)
|
||||
{
|
||||
Gui::SelectionFilter faceFilter("SELECT Part::Feature SUBELEMENT Face COUNT 1");
|
||||
if (faceFilter.match()) {
|
||||
App::DocumentObject* obj;
|
||||
obj = faceFilter.Result[0][0].getObject();
|
||||
const std::vector<std::string> &sub = faceFilter.Result[0][0].getSubNames();
|
||||
if (sub.size() == 1) {
|
||||
openCommand("Extend surface");
|
||||
std::string FeatName = getUniqueObjectName("Surface");
|
||||
std::string supportString = faceFilter.Result[0][0].getAsPropertyLinkSubString();
|
||||
doCommand(Doc, "App.ActiveDocument.addObject(\"Surface::Extend\",\"%s\")", FeatName.c_str());
|
||||
doCommand(Doc, "App.ActiveDocument.%s.Face = %s",FeatName.c_str(),supportString.c_str());
|
||||
updateActive();
|
||||
commitCommand();
|
||||
}
|
||||
}
|
||||
else {
|
||||
QMessageBox::warning(Gui::getMainWindow(),
|
||||
qApp->translate("Surface_ExtendFace", "Wrong selection"),
|
||||
qApp->translate("Surface_ExtendFace", "Select a single face"));
|
||||
}
|
||||
}
|
||||
|
||||
bool CmdSurfaceExtendFace::isActive(void)
|
||||
{
|
||||
return Gui::Selection().countObjectsOfType(Part::Feature::getClassTypeId()) == 1;
|
||||
}
|
||||
|
||||
void CreateSurfaceCommands(void)
|
||||
{
|
||||
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();
|
||||
@@ -227,4 +270,5 @@ void CreateSurfaceCommands(void)
|
||||
rcCmdMgr.addCommand(new CmdSurfaceFilling());
|
||||
rcCmdMgr.addCommand(new CmdSurfaceGeomFillSurface());
|
||||
rcCmdMgr.addCommand(new CmdSurfaceCurveOnMesh());
|
||||
rcCmdMgr.addCommand(new CmdSurfaceExtendFace());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user