PartDesign: New features AdditiveHelix and SubtractiveHelix

These features, based on the code for the Pipe class, allow the user
to simply create a helical sweep within PartDesign workbench.

Sample application is threads, springs, coils, augers, etc.

Also, remove needless requirement for positive cone angle on helixes.

Thanks to @bitacovir for helping with the icons
Thanks to @chennes for review
Thanks to @vosk for review
Thanks to @wwmayer for review

Enforce that links stay within scope for ProfileBased features
This also ensures that the Body itself is not used for creating features within
the body, causing a "Graph not a DAG" error.
This commit is contained in:
David Osterberg
2020-12-25 12:42:03 +01:00
committed by wwmayer
parent 67aee7cd21
commit cb2da22e86
23 changed files with 4927 additions and 47 deletions

View File

@@ -409,6 +409,8 @@ void Workbench::activated()
"PartDesign_SubtractivePipe",
"PartDesign_AdditiveLoft",
"PartDesign_SubtractiveLoft",
"PartDesign_AdditiveHelix",
"PartDesign_SubtractiveHelix",
0};
Watcher.push_back(new Gui::TaskView::TaskWatcherCommands(
"SELECT Sketcher::SketchObject COUNT 1",
@@ -496,14 +498,14 @@ Gui::MenuItem* Workbench::setupMenuBar() const
Gui::MenuItem* additives = new Gui::MenuItem;
additives->setCommand("Create an additive feature");
*additives << "PartDesign_Pad" << "PartDesign_Revolution"
<< "PartDesign_AdditiveLoft" << "PartDesign_AdditivePipe";
<< "PartDesign_AdditiveLoft" << "PartDesign_AdditivePipe" << "PartDesign_AdditiveHelix";
// subtractives
Gui::MenuItem* subtractives = new Gui::MenuItem;
subtractives->setCommand("Create a subtractive feature");
*subtractives << "PartDesign_Pocket" << "PartDesign_Hole"
<< "PartDesign_Groove" << "PartDesign_SubtractiveLoft"
<< "PartDesign_SubtractivePipe";
<< "PartDesign_SubtractivePipe" << "PartDesign_SubtractiveHelix";
// transformations
Gui::MenuItem* transformations = new Gui::MenuItem;
@@ -598,6 +600,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
<< "PartDesign_Revolution"
<< "PartDesign_AdditiveLoft"
<< "PartDesign_AdditivePipe"
<< "PartDesign_AdditiveHelix"
<< "PartDesign_CompPrimitiveAdditive"
<< "Separator"
<< "PartDesign_Pocket"
@@ -605,6 +608,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
<< "PartDesign_Groove"
<< "PartDesign_SubtractiveLoft"
<< "PartDesign_SubtractivePipe"
<< "PartDesign_SubtractiveHelix"
<< "PartDesign_CompPrimitiveSubtractive"
<< "Separator"
<< "PartDesign_Mirrored"