add primitive widget to task dialog
This commit is contained in:
parent
296339f980
commit
7654659c18
|
@ -73,6 +73,7 @@ set(PartDesignGui_UIC_SRCS
|
|||
TaskScaledParameters.ui
|
||||
TaskMultiTransformParameters.ui
|
||||
TaskDatumParameters.ui
|
||||
TaskPrimitiveParameters.ui
|
||||
)
|
||||
qt4_wrap_ui(PartDesignGui_UIC_HDRS ${PartDesignGui_UIC_SRCS})
|
||||
|
||||
|
|
|
@ -35,14 +35,444 @@
|
|||
#include "ViewProviderDatumCS.h"
|
||||
#include <Mod/PartDesign/App/FeaturePrimitive.h>
|
||||
#include <Mod/PartDesign/App/DatumCS.h>
|
||||
#include <Mod/Part/Gui/DlgPrimitives.h>
|
||||
#include <Mod/Part/App/DatumFeature.h>
|
||||
#include <Gui/Application.h>
|
||||
#include <Gui/Document.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/BitmapFactory.h>
|
||||
|
||||
using namespace PartDesignGui;
|
||||
|
||||
TaskBoxPrimitives::TaskBoxPrimitives(PartDesign::FeaturePrimitive::Type t, QWidget* parent)
|
||||
: TaskBox(QPixmap(),tr("Primitive parameters"), true, parent)
|
||||
{
|
||||
proxy = new QWidget(this);
|
||||
ui.setupUi(proxy);
|
||||
|
||||
// set limits
|
||||
// plane
|
||||
ui.planeLength->setMaximum(INT_MAX);
|
||||
ui.planeWidth->setMaximum(INT_MAX);
|
||||
// box
|
||||
ui.boxLength->setMaximum(INT_MAX);
|
||||
ui.boxWidth->setMaximum(INT_MAX);
|
||||
ui.boxHeight->setMaximum(INT_MAX);
|
||||
// cylinder
|
||||
ui.cylinderRadius->setMaximum(INT_MAX);
|
||||
ui.cylinderHeight->setMaximum(INT_MAX);
|
||||
// cone
|
||||
ui.coneRadius1->setMaximum(INT_MAX);
|
||||
ui.coneRadius2->setMaximum(INT_MAX);
|
||||
ui.coneHeight->setMaximum(INT_MAX);
|
||||
// sphere
|
||||
ui.sphereRadius->setMaximum(INT_MAX);
|
||||
// ellipsoid
|
||||
ui.ellipsoidRadius1->setMaximum(INT_MAX);
|
||||
ui.ellipsoidRadius2->setMaximum(INT_MAX);
|
||||
ui.ellipsoidRadius3->setMaximum(INT_MAX);
|
||||
// torus
|
||||
ui.torusRadius1->setMaximum(INT_MAX);
|
||||
ui.torusRadius2->setMaximum(INT_MAX);
|
||||
// wedge
|
||||
ui.wedgeXmin->setMinimum(INT_MIN);
|
||||
ui.wedgeXmin->setMaximum(INT_MAX);
|
||||
ui.wedgeYmin->setMinimum(INT_MIN);
|
||||
ui.wedgeYmin->setMaximum(INT_MAX);
|
||||
ui.wedgeZmin->setMinimum(INT_MIN);
|
||||
ui.wedgeZmin->setMaximum(INT_MAX);
|
||||
ui.wedgeX2min->setMinimum(INT_MIN);
|
||||
ui.wedgeX2min->setMaximum(INT_MAX);
|
||||
ui.wedgeZ2min->setMinimum(INT_MIN);
|
||||
ui.wedgeZ2min->setMaximum(INT_MAX);
|
||||
ui.wedgeXmax->setMinimum(INT_MIN);
|
||||
ui.wedgeXmax->setMaximum(INT_MAX);
|
||||
ui.wedgeYmax->setMinimum(INT_MIN);
|
||||
ui.wedgeYmax->setMaximum(INT_MAX);
|
||||
ui.wedgeZmax->setMinimum(INT_MIN);
|
||||
ui.wedgeZmax->setMaximum(INT_MAX);
|
||||
ui.wedgeX2max->setMinimum(INT_MIN);
|
||||
ui.wedgeX2max->setMaximum(INT_MAX);
|
||||
ui.wedgeZ2max->setMinimum(INT_MIN);
|
||||
ui.wedgeZ2max->setMaximum(INT_MAX);
|
||||
// helix
|
||||
ui.helixPitch->setMaximum(INT_MAX);
|
||||
ui.helixHeight->setMaximum(INT_MAX);
|
||||
ui.helixRadius->setMaximum(INT_MAX);
|
||||
// circle
|
||||
ui.circleRadius->setMaximum(INT_MAX);
|
||||
// vertex
|
||||
ui.vertexX->setMaximum(INT_MAX);
|
||||
ui.vertexY->setMaximum(INT_MAX);
|
||||
ui.vertexZ->setMaximum(INT_MAX);
|
||||
ui.vertexX->setMinimum(INT_MIN);
|
||||
ui.vertexY->setMinimum(INT_MIN);
|
||||
ui.vertexZ->setMinimum(INT_MIN);
|
||||
// line
|
||||
ui.edgeX1->setMaximum(INT_MAX);
|
||||
ui.edgeX1->setMinimum(INT_MIN);
|
||||
ui.edgeY1->setMaximum(INT_MAX);
|
||||
ui.edgeY1->setMinimum(INT_MIN);
|
||||
ui.edgeZ1->setMaximum(INT_MAX);
|
||||
ui.edgeZ1->setMinimum(INT_MIN);
|
||||
ui.edgeX2->setMaximum(INT_MAX);
|
||||
ui.edgeX2->setMinimum(INT_MIN);
|
||||
ui.edgeY2->setMaximum(INT_MAX);
|
||||
ui.edgeY2->setMinimum(INT_MIN);
|
||||
ui.edgeZ2->setMaximum(INT_MAX);
|
||||
ui.edgeZ2->setMinimum(INT_MIN);
|
||||
// RegularPolygon
|
||||
|
||||
this->groupLayout()->addWidget(proxy);
|
||||
|
||||
int index = 0;
|
||||
switch(t) {
|
||||
|
||||
case PartDesign::FeaturePrimitive::Box:
|
||||
index = 1;
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Cylinder:
|
||||
index = 2;
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Sphere:
|
||||
index = 4;
|
||||
break;
|
||||
}
|
||||
|
||||
ui.widgetStack->setCurrentIndex(index);
|
||||
ui.widgetStack->setMinimumSize(ui.widgetStack->widget(index)->minimumSize());
|
||||
for(int i=0; i<ui.widgetStack->count(); ++i) {
|
||||
|
||||
if(i != index)
|
||||
ui.widgetStack->widget(i)->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Destroys the object and frees any allocated resources
|
||||
*/
|
||||
TaskBoxPrimitives::~TaskBoxPrimitives()
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
void TaskBoxPrimitives::createPrimitive(const QString& placement)
|
||||
{
|
||||
try {
|
||||
QString cmd; QString name;
|
||||
App::Document* doc = App::GetApplication().getActiveDocument();
|
||||
if (!doc) {
|
||||
QMessageBox::warning(this, tr("Create %1")
|
||||
.arg(ui.comboBox1->currentText()), tr("No active document"));
|
||||
return;
|
||||
}
|
||||
if (ui.comboBox1->currentIndex() == 0) { // plane
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Plane").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Plane\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Length=%2\n"
|
||||
"App.ActiveDocument.%1.Width=%3\n"
|
||||
"App.ActiveDocument.%1.Placement=%4\n"
|
||||
"App.ActiveDocument.%1.Label='%5'\n")
|
||||
.arg(name)
|
||||
.arg(ui.planeLength->value().getValue(),0,'f',2)
|
||||
.arg(ui.planeWidth->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Plane"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 1) { // box
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Box").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Box\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Length=%2\n"
|
||||
"App.ActiveDocument.%1.Width=%3\n"
|
||||
"App.ActiveDocument.%1.Height=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(name)
|
||||
.arg(ui.boxLength->value().getValue(),0,'f',2)
|
||||
.arg(ui.boxWidth->value().getValue(),0,'f',2)
|
||||
.arg(ui.boxHeight->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Box"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 2) { // cylinder
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Cylinder").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Cylinder\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Radius=%2\n"
|
||||
"App.ActiveDocument.%1.Height=%3\n"
|
||||
"App.ActiveDocument.%1.Angle=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(name)
|
||||
.arg(ui.cylinderRadius->value().getValue(),0,'f',2)
|
||||
.arg(ui.cylinderHeight->value().getValue(),0,'f',2)
|
||||
.arg(ui.cylinderAngle->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Cylinder"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 3) { // cone
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Cone").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Cone\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Radius1=%2\n"
|
||||
"App.ActiveDocument.%1.Radius2=%3\n"
|
||||
"App.ActiveDocument.%1.Height=%4\n"
|
||||
"App.ActiveDocument.%1.Angle=%5\n"
|
||||
"App.ActiveDocument.%1.Placement=%6\n"
|
||||
"App.ActiveDocument.%1.Label='%7'\n")
|
||||
.arg(name)
|
||||
.arg(ui.coneRadius1->value().getValue(),0,'f',2)
|
||||
.arg(ui.coneRadius2->value().getValue(),0,'f',2)
|
||||
.arg(ui.coneHeight->value().getValue(),0,'f',2)
|
||||
.arg(ui.coneAngle->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Cone"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 4) { // sphere
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Sphere").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Sphere\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Radius=%2\n"
|
||||
"App.ActiveDocument.%1.Angle1=%3\n"
|
||||
"App.ActiveDocument.%1.Angle2=%4\n"
|
||||
"App.ActiveDocument.%1.Angle3=%5\n"
|
||||
"App.ActiveDocument.%1.Placement=%6\n"
|
||||
"App.ActiveDocument.%1.Label='%7'\n")
|
||||
.arg(name)
|
||||
.arg(ui.sphereRadius->value().getValue(),0,'f',2)
|
||||
.arg(ui.sphereAngle1->value().getValue(),0,'f',2)
|
||||
.arg(ui.sphereAngle2->value().getValue(),0,'f',2)
|
||||
.arg(ui.sphereAngle3->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Sphere"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 5) { // ellipsoid
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Ellipsoid").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Ellipsoid\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Radius1=%2\n"
|
||||
"App.ActiveDocument.%1.Radius2=%3\n"
|
||||
"App.ActiveDocument.%1.Radius3=%4\n"
|
||||
"App.ActiveDocument.%1.Angle1=%5\n"
|
||||
"App.ActiveDocument.%1.Angle2=%6\n"
|
||||
"App.ActiveDocument.%1.Angle3=%7\n"
|
||||
"App.ActiveDocument.%1.Placement=%8\n"
|
||||
"App.ActiveDocument.%1.Label='%9'\n")
|
||||
.arg(name)
|
||||
.arg(ui.ellipsoidRadius1->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipsoidRadius2->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipsoidRadius3->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipsoidAngle1->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipsoidAngle2->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipsoidAngle3->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Ellipsoid"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 6) { // torus
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Torus").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Torus\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Radius1=%2\n"
|
||||
"App.ActiveDocument.%1.Radius2=%3\n"
|
||||
"App.ActiveDocument.%1.Angle1=%4\n"
|
||||
"App.ActiveDocument.%1.Angle2=%5\n"
|
||||
"App.ActiveDocument.%1.Angle3=%6\n"
|
||||
"App.ActiveDocument.%1.Placement=%7\n"
|
||||
"App.ActiveDocument.%1.Label='%8'\n")
|
||||
.arg(name)
|
||||
.arg(ui.torusRadius1->value().getValue(),0,'f',2)
|
||||
.arg(ui.torusRadius2->value().getValue(),0,'f',2)
|
||||
.arg(ui.torusAngle1->value().getValue(),0,'f',2)
|
||||
.arg(ui.torusAngle2->value().getValue(),0,'f',2)
|
||||
.arg(ui.torusAngle3->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Torus"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 7) { // prism
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Prism").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Prism\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Polygon=%2\n"
|
||||
"App.ActiveDocument.%1.Circumradius=%3\n"
|
||||
"App.ActiveDocument.%1.Height=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(name)
|
||||
.arg(ui.prismPolygon->value())
|
||||
.arg(ui.prismCircumradius->value().getValue(),0,'f',2)
|
||||
.arg(ui.prismHeight->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Prism"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 8) { // wedge
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Wedge").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Wedge\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Xmin=%2\n"
|
||||
"App.ActiveDocument.%1.Ymin=%3\n"
|
||||
"App.ActiveDocument.%1.Zmin=%4\n"
|
||||
"App.ActiveDocument.%1.X2min=%5\n"
|
||||
"App.ActiveDocument.%1.Z2min=%6\n"
|
||||
"App.ActiveDocument.%1.Xmax=%7\n"
|
||||
"App.ActiveDocument.%1.Ymax=%8\n"
|
||||
"App.ActiveDocument.%1.Zmax=%9\n"
|
||||
"App.ActiveDocument.%1.X2max=%10\n"
|
||||
"App.ActiveDocument.%1.Z2max=%11\n"
|
||||
"App.ActiveDocument.%1.Placement=%12\n"
|
||||
"App.ActiveDocument.%1.Label='%13'\n")
|
||||
.arg(name)
|
||||
.arg(ui.wedgeXmin->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeYmin->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeZmin->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeX2min->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeZ2min->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeXmax->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeYmax->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeZmax->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeX2max->value().getValue(),0,'f',2)
|
||||
.arg(ui.wedgeZ2max->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Wedge"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 9) { // helix
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Helix").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Helix\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Pitch=%2\n"
|
||||
"App.ActiveDocument.%1.Height=%3\n"
|
||||
"App.ActiveDocument.%1.Radius=%4\n"
|
||||
"App.ActiveDocument.%1.Angle=%5\n"
|
||||
"App.ActiveDocument.%1.LocalCoord=%6\n"
|
||||
"App.ActiveDocument.%1.Style=1\n"
|
||||
"App.ActiveDocument.%1.Placement=%7\n"
|
||||
"App.ActiveDocument.%1.Label='%8'\n")
|
||||
.arg(name)
|
||||
.arg(ui.helixPitch->value().getValue(),0,'f',2)
|
||||
.arg(ui.helixHeight->value().getValue(),0,'f',2)
|
||||
.arg(ui.helixRadius->value().getValue(),0,'f',2)
|
||||
.arg(ui.helixAngle->value().getValue(),0,'f',2)
|
||||
.arg(ui.helixLocalCS->currentIndex())
|
||||
.arg(placement)
|
||||
.arg(tr("Helix"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 10) { // spiral
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Spiral").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Spiral\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Growth=%2\n"
|
||||
"App.ActiveDocument.%1.Rotations=%3\n"
|
||||
"App.ActiveDocument.%1.Radius=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(name)
|
||||
.arg(ui.spiralGrowth->value().getValue(),0,'f',2)
|
||||
.arg(ui.spiralRotation->value(),0,'f',2)
|
||||
.arg(ui.spiralRadius->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Spiral"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 11) { // circle
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Circle").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Circle\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Radius=%2\n"
|
||||
"App.ActiveDocument.%1.Angle0=%3\n"
|
||||
"App.ActiveDocument.%1.Angle1=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(name)
|
||||
.arg(ui.circleRadius->value().getValue(),0,'f',2)
|
||||
.arg(ui.circleAngle0->value().getValue(),0,'f',2)
|
||||
.arg(ui.circleAngle1->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Circle"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 12) { // ellipse
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Ellipse").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Ellipse\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.MajorRadius=%2\n"
|
||||
"App.ActiveDocument.%1.MinorRadius=%3\n"
|
||||
"App.ActiveDocument.%1.Angle0=%4\n"
|
||||
"App.ActiveDocument.%1.Angle1=%5\n"
|
||||
"App.ActiveDocument.%1.Placement=%6\n"
|
||||
"App.ActiveDocument.%1.Label='%7'\n")
|
||||
.arg(name)
|
||||
.arg(ui.ellipseMajorRadius->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipseMinorRadius->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipseAngle0->value().getValue(),0,'f',2)
|
||||
.arg(ui.ellipseAngle1->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Ellipse"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 13) { // vertex
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Vertex").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Vertex\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.X=%2\n"
|
||||
"App.ActiveDocument.%1.Y=%3\n"
|
||||
"App.ActiveDocument.%1.Z=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(name)
|
||||
.arg(ui.vertexX->value().getValue(),0,'f',2)
|
||||
.arg(ui.vertexY->value().getValue(),0,'f',2)
|
||||
.arg(ui.vertexZ->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Vertex"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 14) { // line
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Line").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Line\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.X1=%2\n"
|
||||
"App.ActiveDocument.%1.Y1=%3\n"
|
||||
"App.ActiveDocument.%1.Z1=%4\n"
|
||||
"App.ActiveDocument.%1.X2=%5\n"
|
||||
"App.ActiveDocument.%1.Y2=%6\n"
|
||||
"App.ActiveDocument.%1.Z2=%7\n"
|
||||
"App.ActiveDocument.%1.Placement=%8\n"
|
||||
"App.ActiveDocument.%1.Label='%9'\n")
|
||||
.arg(name)
|
||||
.arg(ui.edgeX1->value().getValue(),0,'f',2)
|
||||
.arg(ui.edgeY1->value().getValue(),0,'f',2)
|
||||
.arg(ui.edgeZ1->value().getValue(),0,'f',2)
|
||||
.arg(ui.edgeX2->value().getValue(),0,'f',2)
|
||||
.arg(ui.edgeY2->value().getValue(),0,'f',2)
|
||||
.arg(ui.edgeZ2->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Line"));
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 15) { // RegularPolygon
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("RegularPolygon").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::RegularPolygon\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Polygon=%2\n"
|
||||
"App.ActiveDocument.%1.Circumradius=%3\n"
|
||||
"App.ActiveDocument.%1.Placement=%4\n"
|
||||
"App.ActiveDocument.%1.Label='%5'\n")
|
||||
.arg(name)
|
||||
.arg(ui.regularPolygonPolygon->value())
|
||||
.arg(ui.regularPolygonCircumradius->value().getValue(),0,'f',2)
|
||||
.arg(placement)
|
||||
.arg(tr("Regular polygon"));
|
||||
}
|
||||
|
||||
// Execute the Python block
|
||||
QString prim = tr("Create %1").arg(ui.comboBox1->currentText());
|
||||
Gui::Application::Instance->activeDocument()->openCommand(prim.toUtf8());
|
||||
Gui::Command::doCommand(Gui::Command::Doc, (const char*)cmd.toUtf8());
|
||||
Gui::Application::Instance->activeDocument()->commitCommand();
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.recompute()");
|
||||
Gui::Command::doCommand(Gui::Command::Gui, "Gui.SendMsgToActiveView(\"ViewFit\")");
|
||||
}
|
||||
catch (const Base::PyException& e) {
|
||||
QMessageBox::warning(this, tr("Create %1")
|
||||
.arg(ui.comboBox1->currentText()), QString::fromLatin1(e.what()));
|
||||
}
|
||||
}*/
|
||||
|
||||
TaskPrimitiveParameters::TaskPrimitiveParameters(ViewProviderPrimitive* PrimitiveView)
|
||||
{
|
||||
|
||||
|
@ -67,6 +497,9 @@ TaskPrimitiveParameters::TaskPrimitiveParameters(ViewProviderPrimitive* Primitiv
|
|||
vp->Visibility.setValue(true);
|
||||
parameter = new TaskDatumParameters(vp);
|
||||
Content.push_back(parameter);
|
||||
|
||||
primitive = new TaskBoxPrimitives(prm->getPrimitiveType());
|
||||
Content.push_back(primitive);
|
||||
}
|
||||
|
||||
TaskPrimitiveParameters::~TaskPrimitiveParameters()
|
||||
|
|
|
@ -32,7 +32,8 @@
|
|||
#include "ViewProviderPrimitive.h"
|
||||
#include "TaskDatumParameters.h"
|
||||
#include <Mod/PartDesign/App/DatumCS.h>
|
||||
#include <Mod/Part/Gui/DlgPrimitives.h>
|
||||
#include <Mod/PartDesign/App/FeaturePrimitive.h>
|
||||
#include "ui_TaskPrimitiveParameters.h"
|
||||
|
||||
class Ui_TaskPrimitiveParameters;
|
||||
|
||||
|
@ -47,6 +48,19 @@ class ViewProvider;
|
|||
namespace PartDesignGui {
|
||||
|
||||
|
||||
class TaskBoxPrimitives : public Gui::TaskView::TaskBox
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TaskBoxPrimitives(PartDesign::FeaturePrimitive::Type t, QWidget* parent = 0);
|
||||
~TaskBoxPrimitives();
|
||||
|
||||
private:
|
||||
QWidget* proxy;
|
||||
Ui_DlgPrimitives ui;
|
||||
};
|
||||
|
||||
class TaskPrimitiveParameters : public Gui::TaskView::TaskDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -62,7 +76,7 @@ protected:
|
|||
virtual bool reject();
|
||||
|
||||
private:
|
||||
PartGui::DlgPrimitives* widget;
|
||||
TaskBoxPrimitives* primitive;
|
||||
TaskDatumParameters* parameter;
|
||||
PartDesign::CoordinateSystem* cs;
|
||||
bool cs_visibility;
|
||||
|
|
1835
src/Mod/PartDesign/Gui/TaskPrimitiveParameters.ui
Normal file
1835
src/Mod/PartDesign/Gui/TaskPrimitiveParameters.ui
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user