diff --git a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp
index 208440295..79c02372b 100644
--- a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp
+++ b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp
@@ -77,7 +77,7 @@ void CmdPrimtiveCompAdditive::activated(int iMsg)
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveCylinder\',\'%s\')",
FeatName.c_str());
}
- else if(iMsg == 3) {
+ else if(iMsg == 2) {
FeatName = getUniqueObjectName("Sphere");
@@ -85,6 +85,47 @@ void CmdPrimtiveCompAdditive::activated(int iMsg)
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());
+ }
+
Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.addFeature(App.activeDocument().%s)"
,pcActiveBody->getNameInDocument(), FeatName.c_str());
@@ -116,6 +157,16 @@ Gui::Action * CmdPrimtiveCompAdditive::createAction(void)
p2->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Cylinder"));
QAction* p3 = pcAction->addAction(QString());
p3->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Sphere"));
+ QAction* p4 = pcAction->addAction(QString());
+ p4->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Cone"));
+ QAction* p5 = pcAction->addAction(QString());
+ p5->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Ellipsoid"));
+ QAction* p6 = pcAction->addAction(QString());
+ p6->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Torus"));
+ QAction* p7 = pcAction->addAction(QString());
+ p7->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Prism"));
+ QAction* p8 = pcAction->addAction(QString());
+ p8->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Wedge"));
_pcAction = pcAction;
languageChange();
@@ -148,6 +199,26 @@ void CmdPrimtiveCompAdditive::languageChange()
arc3->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Sphere"));
arc3->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive sphere by its radius and varius angles"));
arc3->setStatusTip(arc3->toolTip());
+ QAction* arc4 = a[3];
+ arc4->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Cone"));
+ arc4->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive cone"));
+ arc4->setStatusTip(arc4->toolTip());
+ QAction* arc5 = a[4];
+ arc5->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Ellipsoid"));
+ arc5->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive ellipsoid"));
+ arc5->setStatusTip(arc5->toolTip());
+ QAction* arc6 = a[5];
+ arc6->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Torus"));
+ arc6->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive torus"));
+ arc6->setStatusTip(arc6->toolTip());
+ QAction* arc7 = a[6];
+ arc7->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Prism"));
+ arc7->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive prism"));
+ arc7->setStatusTip(arc7->toolTip());
+ QAction* arc8 = a[7];
+ arc8->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Wedge"));
+ arc8->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive wedge"));
+ arc8->setStatusTip(arc8->toolTip());
}
bool CmdPrimtiveCompAdditive::isActive(void)
@@ -203,6 +274,46 @@ void CmdPrimtiveCompSubtractive::activated(int iMsg)
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::doCommand(Doc,"App.ActiveDocument.%s.addFeature(App.activeDocument().%s)"
,pcActiveBody->getNameInDocument(), FeatName.c_str());
@@ -236,6 +347,16 @@ Gui::Action * CmdPrimtiveCompSubtractive::createAction(void)
p2->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Cylinder"));
QAction* p3 = pcAction->addAction(QString());
p3->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Sphere"));
+ QAction* p4 = pcAction->addAction(QString());
+ p4->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Cone"));
+ QAction* p5 = pcAction->addAction(QString());
+ p5->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Ellipsoid"));
+ QAction* p6 = pcAction->addAction(QString());
+ p6->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Torus"));
+ QAction* p7 = pcAction->addAction(QString());
+ p7->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Prism"));
+ QAction* p8 = pcAction->addAction(QString());
+ p8->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Wedge"));
_pcAction = pcAction;
languageChange();
@@ -268,6 +389,26 @@ void CmdPrimtiveCompSubtractive::languageChange()
arc3->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Sphere"));
arc3->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive sphere by its radius and varius angles"));
arc3->setStatusTip(arc3->toolTip());
+ QAction* arc4 = a[3];
+ arc4->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Cone"));
+ arc4->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive cone"));
+ arc4->setStatusTip(arc4->toolTip());
+ QAction* arc5 = a[4];
+ arc5->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Ellipsoid"));
+ arc5->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive ellipsoid"));
+ arc5->setStatusTip(arc5->toolTip());
+ QAction* arc6 = a[5];
+ arc6->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Torus"));
+ arc6->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive torus"));
+ arc6->setStatusTip(arc6->toolTip());
+ QAction* arc7 = a[6];
+ arc7->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Prism"));
+ arc7->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive prism"));
+ arc7->setStatusTip(arc7->toolTip());
+ QAction* arc8 = a[7];
+ arc8->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Wedge"));
+ arc8->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive wedge"));
+ arc8->setStatusTip(arc8->toolTip());
}
bool CmdPrimtiveCompSubtractive::isActive(void)
diff --git a/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc b/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc
index 7aefa0afd..73f48e9ef 100644
--- a/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc
+++ b/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc
@@ -30,9 +30,19 @@
icons/PartDesign_Additive_Box.svg
icons/PartDesign_Additive_Cylinder.svg
icons/PartDesign_Additive_Sphere.svg
+ icons/PartDesign_Additive_Cone.svg
+ icons/PartDesign_Additive_Torus.svg
+ icons/PartDesign_Additive_Ellipsoid.svg
+ icons/PartDesign_Additive_Prism.svg
+ icons/PartDesign_Additive_Wedge.svg
icons/PartDesign_Subtractive_Box.svg
icons/PartDesign_Subtractive_Cylinder.svg
icons/PartDesign_Subtractive_Sphere.svg
+ icons/PartDesign_Subtractive_Cone.svg
+ icons/PartDesign_Subtractive_Torus.svg
+ icons/PartDesign_Subtractive_Ellipsoid.svg
+ icons/PartDesign_Subtractive_Prism.svg
+ icons/PartDesign_Subtractive_Wedge.svg
translations/PartDesign_af.qm
translations/PartDesign_de.qm
translations/PartDesign_fi.qm
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Cone.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Cone.svg
new file mode 100644
index 000000000..164c611f0
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Cone.svg
@@ -0,0 +1,166 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Ellipsoid.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Ellipsoid.svg
new file mode 100644
index 000000000..4438313aa
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Ellipsoid.svg
@@ -0,0 +1,242 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Prism.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Prism.svg
new file mode 100644
index 000000000..026db9031
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Prism.svg
@@ -0,0 +1,320 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Torus.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Torus.svg
new file mode 100644
index 000000000..c2d0f9bd6
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Torus.svg
@@ -0,0 +1,265 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Wedge.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Wedge.svg
new file mode 100644
index 000000000..cbc1a961c
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Wedge.svg
@@ -0,0 +1,236 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Cone.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Cone.svg
new file mode 100644
index 000000000..53d9db4b2
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Cone.svg
@@ -0,0 +1,179 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Ellipsoid.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Ellipsoid.svg
new file mode 100644
index 000000000..2792b9afc
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Ellipsoid.svg
@@ -0,0 +1,232 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Prism.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Prism.svg
new file mode 100644
index 000000000..21a3cff92
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Prism.svg
@@ -0,0 +1,332 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Torus.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Torus.svg
new file mode 100644
index 000000000..c47121b49
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Torus.svg
@@ -0,0 +1,272 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Wedge.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Wedge.svg
new file mode 100644
index 000000000..4fe674be9
--- /dev/null
+++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Wedge.svg
@@ -0,0 +1,236 @@
+
+
+
+
diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp
index d73a27d70..a0e79ebad 100644
--- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp
+++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp
@@ -49,7 +49,6 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
proxy = new QWidget(this);
ui.setupUi(proxy);
- // set limits
// box
ui.boxLength->setMaximum(INT_MAX);
ui.boxWidth->setMaximum(INT_MAX);
@@ -69,6 +68,10 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
ui.coneRadius1->setMaximum(INT_MAX);
ui.coneRadius2->setMaximum(INT_MAX);
ui.coneHeight->setMaximum(INT_MAX);
+ connect(ui.coneRadius1, SIGNAL(valueChanged(double)), this, SLOT(onConeRadius1Changed(double)));
+ connect(ui.coneRadius2, SIGNAL(valueChanged(double)), this, SLOT(onConeRadius2Changed(double)));
+ connect(ui.coneAngle, SIGNAL(valueChanged(double)), this, SLOT(onConeAngleChanged(double)));
+ connect(ui.coneHeight, SIGNAL(valueChanged(double)), this, SLOT(onConeHeightChanged(double)));
// sphere
ui.sphereRadius->setMaximum(INT_MAX);
@@ -81,9 +84,27 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
ui.ellipsoidRadius1->setMaximum(INT_MAX);
ui.ellipsoidRadius2->setMaximum(INT_MAX);
ui.ellipsoidRadius3->setMaximum(INT_MAX);
+ connect(ui.ellipsoidRadius1, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidRadius1Changed(double)));
+ connect(ui.ellipsoidRadius2, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidRadius2Changed(double)));
+ connect(ui.ellipsoidRadius3, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidRadius3Changed(double)));
+ connect(ui.ellipsoidAngle1, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidAngle1Changed(double)));
+ connect(ui.ellipsoidAngle2, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidAngle2Changed(double)));
+ connect(ui.ellipsoidAngle3, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidAngle3Changed(double)));
+
// torus
ui.torusRadius1->setMaximum(INT_MAX);
ui.torusRadius2->setMaximum(INT_MAX);
+ connect(ui.torusRadius1, SIGNAL(valueChanged(double)), this, SLOT(onTorusRadius1Changed(double)));
+ connect(ui.torusRadius2, SIGNAL(valueChanged(double)), this, SLOT(onTorusRadius2Changed(double)));
+ connect(ui.torusAngle1, SIGNAL(valueChanged(double)), this, SLOT(onTorusAngle1Changed(double)));
+ connect(ui.torusAngle2, SIGNAL(valueChanged(double)), this, SLOT(onTorusAngle2Changed(double)));
+ connect(ui.torusAngle3, SIGNAL(valueChanged(double)), this, SLOT(onTorusAngle3Changed(double)));
+
+ //prism
+ connect(ui.prismCircumradius, SIGNAL(valueChanged(double)), this, SLOT(onPrismCircumradiusChanged(double)));
+ connect(ui.prismHeight, SIGNAL(valueChanged(double)), this, SLOT(onPrismHeightChanged(double)));
+ connect(ui.prismPolygon, SIGNAL(valueChanged(int)), this, SLOT(onPrismPolygonChanged(int)));
+
// wedge
ui.wedgeXmin->setMinimum(INT_MIN);
ui.wedgeXmin->setMaximum(INT_MAX);
@@ -105,7 +126,17 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
ui.wedgeX2max->setMaximum(INT_MAX);
ui.wedgeZ2max->setMinimum(INT_MIN);
ui.wedgeZ2max->setMaximum(INT_MAX);
-
+ connect(ui.wedgeXmax, SIGNAL(valueChanged(double)), this, SLOT(onWedgeXmaxChanged(double)));
+ connect(ui.wedgeXmin, SIGNAL(valueChanged(double)), this, SLOT(onWedgeXinChanged(double)));
+ connect(ui.wedgeYmax, SIGNAL(valueChanged(double)), this, SLOT(onWedgeYmaxChanged(double)));
+ connect(ui.wedgeYmin, SIGNAL(valueChanged(double)), this, SLOT(onWedgeYinChanged(double)));
+ connect(ui.wedgeZmax, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZmaxChanged(double)));
+ connect(ui.wedgeZmin, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZinChanged(double)));
+ connect(ui.wedgeX2max, SIGNAL(valueChanged(double)), this, SLOT(onWedgeX2maxChanged(double)));
+ connect(ui.wedgeX2min, SIGNAL(valueChanged(double)), this, SLOT(onWedgeX2inChanged(double)));
+ connect(ui.wedgeZ2max, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZ2maxChanged(double)));
+ connect(ui.wedgeZ2min, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZ2inChanged(double)));
+
this->groupLayout()->addWidget(proxy);
int index = 0;
@@ -130,6 +161,49 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
ui.sphereAngle3->setValue(static_cast(vp->getObject())->Angle3.getValue());
ui.sphereRadius->setValue(static_cast(vp->getObject())->Radius.getValue());
break;
+ case PartDesign::FeaturePrimitive::Cone:
+ index = 3;
+ ui.coneAngle->setValue(static_cast(vp->getObject())->Angle.getValue());
+ ui.coneHeight->setValue(static_cast(vp->getObject())->Height.getValue());
+ ui.coneRadius1->setValue(static_cast(vp->getObject())->Radius1.getValue());
+ ui.coneRadius2->setValue(static_cast(vp->getObject())->Radius2.getValue());
+ break;
+ case PartDesign::FeaturePrimitive::Ellipsoid:
+ index = 5;
+ ui.ellipsoidAngle1->setValue(static_cast(vp->getObject())->Angle1.getValue());
+ ui.ellipsoidAngle2->setValue(static_cast(vp->getObject())->Angle2.getValue());
+ ui.ellipsoidAngle3->setValue(static_cast(vp->getObject())->Angle3.getValue());
+ ui.ellipsoidRadius1->setValue(static_cast(vp->getObject())->Radius1.getValue());
+ ui.ellipsoidRadius2->setValue(static_cast(vp->getObject())->Radius2.getValue());
+ ui.ellipsoidRadius3->setValue(static_cast(vp->getObject())->Radius3.getValue());
+ break;
+ case PartDesign::FeaturePrimitive::Torus:
+ index = 6;
+ ui.torusAngle1->setValue(static_cast(vp->getObject())->Angle1.getValue());
+ ui.torusAngle2->setValue(static_cast(vp->getObject())->Angle2.getValue());
+ ui.torusAngle3->setValue(static_cast(vp->getObject())->Angle3.getValue());
+ ui.torusRadius1->setValue(static_cast(vp->getObject())->Radius1.getValue());
+ ui.torusRadius2->setValue(static_cast(vp->getObject())->Radius2.getValue());
+ break;
+ case PartDesign::FeaturePrimitive::Prism:
+ index = 7;
+ ui.prismPolygon->setValue(static_cast(vp->getObject())->Polygon.getValue());
+ ui.prismCircumradius->setValue(static_cast(vp->getObject())->Circumradius.getValue());
+ ui.prismHeight->setValue(static_cast(vp->getObject())->Height.getValue());
+ break;
+ case PartDesign::FeaturePrimitive::Wedge:
+ index = 8;
+ ui.wedgeXmax->setValue(static_cast(vp->getObject())->Xmax.getValue());
+ ui.wedgeXmin->setValue(static_cast(vp->getObject())->Xmin.getValue());
+ ui.wedgeX2max->setValue(static_cast(vp->getObject())->X2max.getValue());
+ ui.wedgeX2min->setValue(static_cast(vp->getObject())->X2min.getValue());
+ ui.wedgeYmax->setValue(static_cast(vp->getObject())->Ymax.getValue());
+ ui.wedgeYmin->setValue(static_cast(vp->getObject())->Ymin.getValue());
+ ui.wedgeZmax->setValue(static_cast(vp->getObject())->Zmax.getValue());
+ ui.wedgeZmin->setValue(static_cast(vp->getObject())->Zmin.getValue());
+ ui.wedgeZ2max->setValue(static_cast(vp->getObject())->Z2max.getValue());
+ ui.wedgeZ2min->setValue(static_cast(vp->getObject())->Z2min.getValue());
+ break;
}
ui.widgetStack->setCurrentIndex(index);
@@ -208,6 +282,177 @@ void TaskBoxPrimitives::onSphereRadiusChanged(double v) {
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
}
+void TaskBoxPrimitives::onConeAngleChanged(double v) {
+
+ PartDesign::Cone* sph = static_cast(vp->getObject());
+ sph->Angle.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onConeHeightChanged(double v) {
+ PartDesign::Cone* sph = static_cast(vp->getObject());
+ sph->Height.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onConeRadius1Changed(double v) {
+ PartDesign::Cone* sph = static_cast(vp->getObject());
+ sph->Radius1.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onConeRadius2Changed(double v) {
+ PartDesign::Cone* sph = static_cast(vp->getObject());
+ sph->Radius2.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onEllipsoidAngle1Changed(double v) {
+ PartDesign::Ellipsoid* sph = static_cast(vp->getObject());
+ sph->Angle1.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onEllipsoidAngle2Changed(double v) {
+ PartDesign::Ellipsoid* sph = static_cast(vp->getObject());
+ sph->Angle2.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onEllipsoidAngle3Changed(double v) {
+ PartDesign::Ellipsoid* sph = static_cast(vp->getObject());
+ sph->Angle3.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onEllipsoidRadius1Changed(double v) {
+ PartDesign::Ellipsoid* sph = static_cast(vp->getObject());
+ sph->Radius1.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onEllipsoidRadius2Changed(double v) {
+ PartDesign::Ellipsoid* sph = static_cast(vp->getObject());
+ sph->Radius2.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onEllipsoidRadius3Changed(double v) {
+ PartDesign::Ellipsoid* sph = static_cast(vp->getObject());
+ sph->Radius3.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onTorusAngle1Changed(double v) {
+ PartDesign::Torus* sph = static_cast(vp->getObject());
+ sph->Angle1.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onTorusAngle2Changed(double v) {
+ PartDesign::Torus* sph = static_cast(vp->getObject());
+ sph->Angle2.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onTorusAngle3Changed(double v) {
+ PartDesign::Torus* sph = static_cast(vp->getObject());
+ sph->Angle3.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onTorusRadius1Changed(double v) {
+ PartDesign::Torus* sph = static_cast(vp->getObject());
+ sph->Radius1.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onTorusRadius2Changed(double v) {
+ PartDesign::Torus* sph = static_cast(vp->getObject());
+ sph->Radius2.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onPrismCircumradiusChanged(double v) {
+ PartDesign::Prism* sph = static_cast(vp->getObject());
+ sph->Circumradius.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onPrismHeightChanged(double v) {
+ PartDesign::Prism* sph = static_cast(vp->getObject());
+ sph->Height.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onPrismPolygonChanged(int v) {
+ PartDesign::Prism* sph = static_cast(vp->getObject());
+ sph->Polygon.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+
+void TaskBoxPrimitives::onWedgeX2inChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->X2min.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeX2maxChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->X2max.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeXinChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Xmin.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeXmaxChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Xmax.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeYinChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Ymin.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeYmaxChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Ymax.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeZ2inChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Z2min.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeZ2maxChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Z2max.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeZinChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Zmin.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+void TaskBoxPrimitives::onWedgeZmaxChanged(double v) {
+ PartDesign::Wedge* sph = static_cast(vp->getObject());
+ sph->Zmax.setValue(v);
+ vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
+}
+
+
/*
void TaskBoxPrimitives::createPrimitive(const QString& placement)
diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h
index 4e4681f68..53e8d2d46 100644
--- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h
+++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h
@@ -67,6 +67,34 @@ public Q_SLOTS:
void onSphereAngle1Changed(double);
void onSphereAngle2Changed(double);
void onSphereAngle3Changed(double);
+ void onConeRadius1Changed(double);
+ void onConeRadius2Changed(double);
+ void onConeAngleChanged(double);
+ void onConeHeightChanged(double);
+ void onEllipsoidRadius1Changed(double);
+ void onEllipsoidRadius2Changed(double);
+ void onEllipsoidRadius3Changed(double);
+ void onEllipsoidAngle1Changed(double);
+ void onEllipsoidAngle2Changed(double);
+ void onEllipsoidAngle3Changed(double);
+ void onTorusRadius1Changed(double);
+ void onTorusRadius2Changed(double);
+ void onTorusAngle1Changed(double);
+ void onTorusAngle2Changed(double);
+ void onTorusAngle3Changed(double);
+ void onPrismCircumradiusChanged(double);
+ void onPrismHeightChanged(double);
+ void onPrismPolygonChanged(int);
+ void onWedgeXmaxChanged(double);
+ void onWedgeXinChanged(double);
+ void onWedgeYmaxChanged(double);
+ void onWedgeYinChanged(double);
+ void onWedgeZmaxChanged(double);
+ void onWedgeZinChanged(double);
+ void onWedgeX2maxChanged(double);
+ void onWedgeX2inChanged(double);
+ void onWedgeZ2maxChanged(double);
+ void onWedgeZ2inChanged(double);
private:
QWidget* proxy;
diff --git a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp
index acd4ee3b9..5ba45ee8d 100644
--- a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp
+++ b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp
@@ -355,6 +355,21 @@ QIcon ViewProviderPrimitive::getIcon(void) const {
case PartDesign::FeaturePrimitive::Sphere:
str += QString::fromAscii("Sphere");
break;
+ case PartDesign::FeaturePrimitive::Cone:
+ str += QString::fromAscii("Cone");
+ break;
+ case PartDesign::FeaturePrimitive::Ellipsoid:
+ str += QString::fromAscii("Ellipsoid");
+ break;
+ case PartDesign::FeaturePrimitive::Torus:
+ str += QString::fromAscii("Torus");
+ break;
+ case PartDesign::FeaturePrimitive::Prism:
+ str += QString::fromAscii("Prism");
+ break;
+ case PartDesign::FeaturePrimitive::Wedge:
+ str += QString::fromAscii("Wedge");
+ break;
}
str += QString::fromAscii(".svg");