Merge branch 'master' into opening-modes
This commit is contained in:
@@ -1051,8 +1051,8 @@ void PropertyUnitItem::setValue(const QVariant& value)
|
||||
return;
|
||||
const Base::Quantity& val = value.value<Base::Quantity>();
|
||||
|
||||
QString unit = QString::fromLatin1("'%1 %2'").arg(val.getValue(),0,'f',decimals())
|
||||
.arg(val.getUnit().getString());
|
||||
Base::QuantityFormat format(Base::QuantityFormat::Default, decimals());
|
||||
QString unit = Base::UnitsApi::toString(val, format);
|
||||
setPropertyValue(unit);
|
||||
}
|
||||
}
|
||||
@@ -1643,10 +1643,12 @@ void PropertyVectorDistanceItem::setValue(const QVariant& variant)
|
||||
Base::Quantity x = Base::Quantity(value.x, Base::Unit::Length);
|
||||
Base::Quantity y = Base::Quantity(value.y, Base::Unit::Length);
|
||||
Base::Quantity z = Base::Quantity(value.z, Base::Unit::Length);
|
||||
|
||||
Base::QuantityFormat format(Base::QuantityFormat::Default, decimals());
|
||||
QString data = QString::fromLatin1("(%1, %2, %3)")
|
||||
.arg(x.getValue(),0,'f',decimals())
|
||||
.arg(y.getValue(),0,'f',decimals())
|
||||
.arg(z.getValue(),0,'f',decimals());
|
||||
.arg(Base::UnitsApi::toNumber(x, format))
|
||||
.arg(Base::UnitsApi::toNumber(y, format))
|
||||
.arg(Base::UnitsApi::toNumber(z, format));
|
||||
setPropertyValue(data);
|
||||
}
|
||||
|
||||
@@ -2368,16 +2370,17 @@ void PropertyPlacementItem::setValue(const QVariant& value)
|
||||
const Base::Placement& val = value.value<Base::Placement>();
|
||||
Base::Vector3d pos = val.getPosition();
|
||||
|
||||
Base::QuantityFormat format(Base::QuantityFormat::Default, decimals());
|
||||
QString data = QString::fromLatin1("App.Placement("
|
||||
"App.Vector(%1,%2,%3),"
|
||||
"App.Rotation(App.Vector(%4,%5,%6),%7))")
|
||||
.arg(pos.x, 0, 'f', decimals())
|
||||
.arg(pos.y, 0, 'f', decimals())
|
||||
.arg(pos.z, 0, 'f', decimals())
|
||||
.arg(rot_axis.x, 0, 'f', decimals())
|
||||
.arg(rot_axis.y, 0, 'f', decimals())
|
||||
.arg(rot_axis.z, 0, 'f', decimals())
|
||||
.arg(rot_angle, 0, 'f', decimals());
|
||||
.arg(Base::UnitsApi::toNumber(pos.x, format))
|
||||
.arg(Base::UnitsApi::toNumber(pos.y, format))
|
||||
.arg(Base::UnitsApi::toNumber(pos.z, format))
|
||||
.arg(Base::UnitsApi::toNumber(rot_axis.x, format))
|
||||
.arg(Base::UnitsApi::toNumber(rot_axis.y, format))
|
||||
.arg(Base::UnitsApi::toNumber(rot_axis.z, format))
|
||||
.arg(Base::UnitsApi::toNumber(rot_angle, format));
|
||||
setPropertyValue(data);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
|
||||
|
||||
namespace Mesh {
|
||||
const App::PropertyIntegerConstraint::Constraints intSampling = {0,1000,1};
|
||||
const App::PropertyFloatConstraint::Constraints floatRange = {0.0,1000.0,1.0};
|
||||
const App::PropertyIntegerConstraint::Constraints intSampling = {0,INT_MAX,1};
|
||||
const App::PropertyLength::Constraints floatRange = {0.0,FLT_MAX,1.0};
|
||||
}
|
||||
|
||||
using namespace Mesh;
|
||||
@@ -72,6 +72,18 @@ App::DocumentObjectExecReturn *Sphere::execute(void)
|
||||
}
|
||||
}
|
||||
|
||||
void Sphere::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
|
||||
{
|
||||
if (prop == &Radius && strcmp(TypeName, "App::PropertyFloatConstraint") == 0) {
|
||||
App::PropertyFloatConstraint r;
|
||||
r.Restore(reader);
|
||||
Radius.setValue(r.getValue());
|
||||
}
|
||||
else {
|
||||
Mesh::Feature::handleChangedPropertyType(reader, TypeName, prop);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(Mesh::Ellipsoid, Mesh::Feature)
|
||||
@@ -108,6 +120,19 @@ App::DocumentObjectExecReturn *Ellipsoid::execute(void)
|
||||
}
|
||||
}
|
||||
|
||||
void Ellipsoid::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
|
||||
{
|
||||
if ((prop == &Radius1 || prop == &Radius2) &&
|
||||
strcmp(TypeName, "App::PropertyFloatConstraint") == 0) {
|
||||
App::PropertyFloatConstraint r;
|
||||
r.Restore(reader);
|
||||
static_cast<App::PropertyLength*>(prop)->setValue(r.getValue());
|
||||
}
|
||||
else {
|
||||
Mesh::Feature::handleChangedPropertyType(reader, TypeName, prop);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(Mesh::Cylinder, Mesh::Feature)
|
||||
@@ -150,6 +175,19 @@ App::DocumentObjectExecReturn *Cylinder::execute(void)
|
||||
}
|
||||
}
|
||||
|
||||
void Cylinder::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
|
||||
{
|
||||
if ((prop == &Radius || prop == &Length || prop == &EdgeLength) &&
|
||||
strcmp(TypeName, "App::PropertyFloatConstraint") == 0) {
|
||||
App::PropertyFloatConstraint r;
|
||||
r.Restore(reader);
|
||||
static_cast<App::PropertyLength*>(prop)->setValue(r.getValue());
|
||||
}
|
||||
else {
|
||||
Mesh::Feature::handleChangedPropertyType(reader, TypeName, prop);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(Mesh::Cone, Mesh::Feature)
|
||||
@@ -195,6 +233,19 @@ App::DocumentObjectExecReturn *Cone::execute(void)
|
||||
}
|
||||
}
|
||||
|
||||
void Cone::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
|
||||
{
|
||||
if ((prop == &Radius1 || prop == &Radius2 || prop == &Length || prop == &EdgeLength) &&
|
||||
strcmp(TypeName, "App::PropertyFloatConstraint") == 0) {
|
||||
App::PropertyFloatConstraint r;
|
||||
r.Restore(reader);
|
||||
static_cast<App::PropertyLength*>(prop)->setValue(r.getValue());
|
||||
}
|
||||
else {
|
||||
Mesh::Feature::handleChangedPropertyType(reader, TypeName, prop);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(Mesh::Torus, Mesh::Feature)
|
||||
@@ -231,6 +282,19 @@ App::DocumentObjectExecReturn *Torus::execute(void)
|
||||
}
|
||||
}
|
||||
|
||||
void Torus::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
|
||||
{
|
||||
if ((prop == &Radius1 || prop == &Radius2) &&
|
||||
strcmp(TypeName, "App::PropertyFloatConstraint") == 0) {
|
||||
App::PropertyFloatConstraint r;
|
||||
r.Restore(reader);
|
||||
static_cast<App::PropertyLength*>(prop)->setValue(r.getValue());
|
||||
}
|
||||
else {
|
||||
Mesh::Feature::handleChangedPropertyType(reader, TypeName, prop);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(Mesh::Cube, Mesh::Feature)
|
||||
@@ -266,3 +330,16 @@ App::DocumentObjectExecReturn *Cube::execute(void)
|
||||
return new App::DocumentObjectExecReturn("Cannot create cube", this);
|
||||
}
|
||||
}
|
||||
|
||||
void Cube::handleChangedPropertyType(Base::XMLReader &reader, const char *TypeName, App::Property *prop)
|
||||
{
|
||||
if ((prop == &Length || prop == &Width || prop == &Height) &&
|
||||
strcmp(TypeName, "App::PropertyFloatConstraint") == 0) {
|
||||
App::PropertyFloatConstraint r;
|
||||
r.Restore(reader);
|
||||
static_cast<App::PropertyLength*>(prop)->setValue(r.getValue());
|
||||
}
|
||||
else {
|
||||
Mesh::Feature::handleChangedPropertyType(reader, TypeName, prop);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
#include "MeshFeature.h"
|
||||
|
||||
#include <App/PropertyStandard.h>
|
||||
#include <App/PropertyUnits.h>
|
||||
#include <App/PropertyLinks.h>
|
||||
|
||||
namespace Mesh
|
||||
@@ -42,7 +42,7 @@ class Sphere : public Mesh::Feature
|
||||
public:
|
||||
Sphere();
|
||||
|
||||
App::PropertyFloatConstraint Radius;
|
||||
App::PropertyLength Radius;
|
||||
App::PropertyIntegerConstraint Sampling;
|
||||
|
||||
/** @name methods override Feature */
|
||||
@@ -50,6 +50,7 @@ public:
|
||||
/// recalculate the Feature
|
||||
App::DocumentObjectExecReturn *execute(void);
|
||||
short mustExecute() const;
|
||||
void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
|
||||
//@}
|
||||
};
|
||||
|
||||
@@ -62,8 +63,8 @@ class Ellipsoid : public Mesh::Feature
|
||||
public:
|
||||
Ellipsoid();
|
||||
|
||||
App::PropertyFloatConstraint Radius1;
|
||||
App::PropertyFloatConstraint Radius2;
|
||||
App::PropertyLength Radius1;
|
||||
App::PropertyLength Radius2;
|
||||
App::PropertyIntegerConstraint Sampling;
|
||||
|
||||
/** @name methods override Feature */
|
||||
@@ -71,6 +72,7 @@ public:
|
||||
/// recalculate the Feature
|
||||
App::DocumentObjectExecReturn *execute(void);
|
||||
short mustExecute() const;
|
||||
void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
|
||||
//@}
|
||||
};
|
||||
|
||||
@@ -83,9 +85,9 @@ class Cylinder : public Mesh::Feature
|
||||
public:
|
||||
Cylinder();
|
||||
|
||||
App::PropertyFloatConstraint Radius;
|
||||
App::PropertyFloatConstraint Length;
|
||||
App::PropertyFloatConstraint EdgeLength;
|
||||
App::PropertyLength Radius;
|
||||
App::PropertyLength Length;
|
||||
App::PropertyLength EdgeLength;
|
||||
App::PropertyBool Closed;
|
||||
App::PropertyIntegerConstraint Sampling;
|
||||
|
||||
@@ -94,6 +96,7 @@ public:
|
||||
/// recalculate the Feature
|
||||
App::DocumentObjectExecReturn *execute(void);
|
||||
short mustExecute() const;
|
||||
void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
|
||||
//@}
|
||||
};
|
||||
|
||||
@@ -106,10 +109,10 @@ class Cone : public Mesh::Feature
|
||||
public:
|
||||
Cone();
|
||||
|
||||
App::PropertyFloatConstraint Radius1;
|
||||
App::PropertyFloatConstraint Radius2;
|
||||
App::PropertyFloatConstraint Length;
|
||||
App::PropertyFloatConstraint EdgeLength;
|
||||
App::PropertyLength Radius1;
|
||||
App::PropertyLength Radius2;
|
||||
App::PropertyLength Length;
|
||||
App::PropertyLength EdgeLength;
|
||||
App::PropertyBool Closed;
|
||||
App::PropertyIntegerConstraint Sampling;
|
||||
|
||||
@@ -118,6 +121,7 @@ public:
|
||||
/// recalculate the Feature
|
||||
App::DocumentObjectExecReturn *execute(void);
|
||||
short mustExecute() const;
|
||||
void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
|
||||
//@}
|
||||
};
|
||||
|
||||
@@ -130,8 +134,8 @@ class Torus : public Mesh::Feature
|
||||
public:
|
||||
Torus();
|
||||
|
||||
App::PropertyFloatConstraint Radius1;
|
||||
App::PropertyFloatConstraint Radius2;
|
||||
App::PropertyLength Radius1;
|
||||
App::PropertyLength Radius2;
|
||||
App::PropertyIntegerConstraint Sampling;
|
||||
|
||||
/** @name methods override Feature */
|
||||
@@ -139,6 +143,7 @@ public:
|
||||
/// recalculate the Feature
|
||||
App::DocumentObjectExecReturn *execute(void);
|
||||
short mustExecute() const;
|
||||
void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
|
||||
//@}
|
||||
};
|
||||
|
||||
@@ -151,15 +156,16 @@ class Cube : public Mesh::Feature
|
||||
public:
|
||||
Cube();
|
||||
|
||||
App::PropertyFloatConstraint Length;
|
||||
App::PropertyFloatConstraint Width;
|
||||
App::PropertyFloatConstraint Height;
|
||||
App::PropertyLength Length;
|
||||
App::PropertyLength Width;
|
||||
App::PropertyLength Height;
|
||||
|
||||
/** @name methods override Feature */
|
||||
//@{
|
||||
/// recalculate the Feature
|
||||
App::DocumentObjectExecReturn *execute(void);
|
||||
short mustExecute() const;
|
||||
void handleChangedPropertyType(Base::XMLReader &reader, const char * TypeName, App::Property * prop);
|
||||
//@}
|
||||
};
|
||||
|
||||
|
||||
@@ -135,9 +135,9 @@ void DlgRegularSolidImp::on_createSolidButton_clicked()
|
||||
"App.ActiveDocument.%1.Width=%3\n"
|
||||
"App.ActiveDocument.%1.Height=%4\n"))
|
||||
.arg(QLatin1String(name.c_str()))
|
||||
.arg(ui->boxLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxWidth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxLength->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxWidth->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxHeight->value()));
|
||||
}
|
||||
else if (ui->comboBox1->currentIndex() == 1) { // cylinder
|
||||
name = doc->getUniqueObjectName("Cylinder");
|
||||
@@ -149,9 +149,9 @@ void DlgRegularSolidImp::on_createSolidButton_clicked()
|
||||
"App.ActiveDocument.%1.Closed=%5\n"
|
||||
"App.ActiveDocument.%1.Sampling=%6\n"))
|
||||
.arg(QLatin1String(name.c_str()))
|
||||
.arg(ui->cylinderRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderEdgeLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderLength->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderEdgeLength->value()))
|
||||
.arg(QLatin1String((ui->cylinderClosed->isChecked()?"True":"False")))
|
||||
.arg(ui->cylinderCount->value());
|
||||
}
|
||||
@@ -166,10 +166,10 @@ void DlgRegularSolidImp::on_createSolidButton_clicked()
|
||||
"App.ActiveDocument.%1.Closed=%6\n"
|
||||
"App.ActiveDocument.%1.Sampling=%7\n"))
|
||||
.arg(QLatin1String(name.c_str()))
|
||||
.arg(ui->coneRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneEdgeLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneLength->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneEdgeLength->value()))
|
||||
.arg(QLatin1String((ui->coneClosed->isChecked()?"True":"False")))
|
||||
.arg(ui->coneCount->value());
|
||||
}
|
||||
@@ -180,7 +180,7 @@ void DlgRegularSolidImp::on_createSolidButton_clicked()
|
||||
"App.ActiveDocument.%1.Radius=%2\n"
|
||||
"App.ActiveDocument.%1.Sampling=%3\n"))
|
||||
.arg(QLatin1String(name.c_str()))
|
||||
.arg(ui->sphereRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereRadius->value()))
|
||||
.arg(ui->sphereCount->value());
|
||||
}
|
||||
else if (ui->comboBox1->currentIndex() == 4) { // ellipsoid
|
||||
@@ -191,8 +191,8 @@ void DlgRegularSolidImp::on_createSolidButton_clicked()
|
||||
"App.ActiveDocument.%1.Radius2=%3\n"
|
||||
"App.ActiveDocument.%1.Sampling=%4\n"))
|
||||
.arg(QLatin1String(name.c_str()))
|
||||
.arg(ui->ellipsoidRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius2->value()))
|
||||
.arg(ui->ellipsoidCount->value());
|
||||
}
|
||||
else if (ui->comboBox1->currentIndex() == 5) { // toroid
|
||||
@@ -203,8 +203,8 @@ void DlgRegularSolidImp::on_createSolidButton_clicked()
|
||||
"App.ActiveDocument.%1.Radius2=%3\n"
|
||||
"App.ActiveDocument.%1.Sampling=%4\n"))
|
||||
.arg(QLatin1String(name.c_str()))
|
||||
.arg(ui->toroidRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->toroidRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->toroidRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->toroidRadius2->value()))
|
||||
.arg(ui->toroidCount->value());
|
||||
}
|
||||
|
||||
|
||||
@@ -388,10 +388,11 @@ class Frustum:
|
||||
|
||||
class Twist:
|
||||
def __init__(self, obj,child=None,h=1.0,angle=0.0,scale=[1.0,1.0]):
|
||||
import FreeCAD
|
||||
obj.addProperty("App::PropertyLink","Base","Base",
|
||||
"The base object that must be transformed")
|
||||
obj.addProperty("App::PropertyQuantity","Angle","Base","Twist Angle")
|
||||
obj.Angle = App.Units.Angle # assign the Angle unit
|
||||
obj.Angle = FreeCAD.Units.Angle # assign the Angle unit
|
||||
obj.addProperty("App::PropertyDistance","Height","Base","Height of the Extrusion")
|
||||
obj.addProperty("App::PropertyFloatList","Scale","Base","Scale to apply during the Extrusion")
|
||||
|
||||
|
||||
@@ -137,13 +137,13 @@ QString Picker::toPlacement(const gp_Ax2& axis) const
|
||||
gp_Pnt loc = axis.Location();
|
||||
|
||||
return QString::fromLatin1("Base.Placement(Base.Vector(%1,%2,%3),Base.Rotation(%4,%5,%6,%7))")
|
||||
.arg(loc.X(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(loc.Y(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(loc.Z(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[0],0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[1],0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[2],0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[3],0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(loc.X(),0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(loc.Y(),0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(loc.Z(),0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[0],0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[1],0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[2],0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(rot[3],0,'g',Base::UnitsApi::getDecimals());
|
||||
}
|
||||
|
||||
class CircleFromThreePoints : public Picker
|
||||
@@ -174,9 +174,9 @@ public:
|
||||
"App.ActiveDocument.%1.Angle1=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n")
|
||||
.arg(name)
|
||||
.arg(circle->Radius(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::toDegrees(trim->FirstParameter()),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::toDegrees(trim->LastParameter ()),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(circle->Radius(),0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::toDegrees(trim->FirstParameter()),0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::toDegrees(trim->LastParameter ()),0,'g',Base::UnitsApi::getDecimals())
|
||||
.arg(toPlacement(circle->Position()));
|
||||
}
|
||||
|
||||
@@ -720,8 +720,8 @@ QString DlgPrimitives::createPlane(const QString& objectName, const QString& pla
|
||||
"App.ActiveDocument.%1.Placement=%4\n"
|
||||
"App.ActiveDocument.%1.Label='%5'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->planeLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->planeWidth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->planeLength->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->planeWidth->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Plane"));
|
||||
}
|
||||
@@ -736,9 +736,9 @@ QString DlgPrimitives::createBox(const QString& objectName, const QString& place
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->boxLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxWidth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxLength->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxWidth->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxHeight->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Box"));
|
||||
}
|
||||
@@ -755,11 +755,11 @@ QString DlgPrimitives::createCylinder(const QString& objectName, const QString&
|
||||
"App.ActiveDocument.%1.Placement=%7\n"
|
||||
"App.ActiveDocument.%1.Label='%8'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->cylinderRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderAngle->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderXSkew->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderYSkew->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderAngle->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderXSkew->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderYSkew->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Cylinder"));
|
||||
}
|
||||
@@ -775,10 +775,10 @@ QString DlgPrimitives::createCone(const QString& objectName, const QString& plac
|
||||
"App.ActiveDocument.%1.Placement=%6\n"
|
||||
"App.ActiveDocument.%1.Label='%7'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->coneRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneAngle->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneAngle->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Cone"));
|
||||
}
|
||||
@@ -794,10 +794,10 @@ QString DlgPrimitives::createSphere(const QString& objectName, const QString& pl
|
||||
"App.ActiveDocument.%1.Placement=%6\n"
|
||||
"App.ActiveDocument.%1.Label='%7'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->sphereRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle3->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Sphere"));
|
||||
}
|
||||
@@ -815,12 +815,12 @@ QString DlgPrimitives::createEllipsoid(const QString& objectName, const QString&
|
||||
"App.ActiveDocument.%1.Placement=%8\n"
|
||||
"App.ActiveDocument.%1.Label='%9'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->ellipsoidRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidRadius3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius3->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle3->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Ellipsoid"));
|
||||
}
|
||||
@@ -837,11 +837,11 @@ QString DlgPrimitives::createTorus(const QString& objectName, const QString& pla
|
||||
"App.ActiveDocument.%1.Placement=%7\n"
|
||||
"App.ActiveDocument.%1.Label='%8'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->torusRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusRadius2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle3->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Torus"));
|
||||
}
|
||||
@@ -859,10 +859,10 @@ QString DlgPrimitives::createPrism(const QString& objectName, const QString& pla
|
||||
"App.ActiveDocument.%1.Label='%8'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->prismPolygon->value())
|
||||
.arg(ui->prismCircumradius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismXSkew->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismYSkew->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismCircumradius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismXSkew->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismYSkew->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Prism"));
|
||||
}
|
||||
@@ -884,16 +884,16 @@ QString DlgPrimitives::createWedge(const QString& objectName, const QString& pla
|
||||
"App.ActiveDocument.%1.Placement=%12\n"
|
||||
"App.ActiveDocument.%1.Label='%13'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->wedgeXmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeYmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeX2min->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZ2min->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeXmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeYmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeX2max->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZ2max->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeXmin->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeYmin->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZmin->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeX2min->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZ2min->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeXmax->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeYmax->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZmax->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeX2max->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZ2max->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Wedge"));
|
||||
}
|
||||
@@ -911,10 +911,10 @@ QString DlgPrimitives::createHelix(const QString& objectName, const QString& pla
|
||||
"App.ActiveDocument.%1.Placement=%7\n"
|
||||
"App.ActiveDocument.%1.Label='%8'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->helixPitch->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->helixHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->helixRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->helixAngle->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixPitch->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixAngle->value()))
|
||||
.arg(ui->helixLocalCS->currentIndex())
|
||||
.arg(placement)
|
||||
.arg(tr("Helix"));
|
||||
@@ -930,9 +930,9 @@ QString DlgPrimitives::createSpiral(const QString& objectName, const QString& pl
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->spiralGrowth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->spiralRotation->value(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->spiralRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->spiralGrowth->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->spiralRotation->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->spiralRadius->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Spiral"));
|
||||
}
|
||||
@@ -947,9 +947,9 @@ QString DlgPrimitives::createCircle(const QString& objectName, const QString& pl
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->circleRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->circleAngle0->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->circleAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->circleRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->circleAngle0->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->circleAngle1->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Circle"));
|
||||
}
|
||||
@@ -965,10 +965,10 @@ QString DlgPrimitives::createEllipse(const QString& objectName, const QString& p
|
||||
"App.ActiveDocument.%1.Placement=%6\n"
|
||||
"App.ActiveDocument.%1.Label='%7'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->ellipseMajorRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipseMinorRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipseAngle0->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipseAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseMajorRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseMinorRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseAngle0->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseAngle1->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Ellipse"));
|
||||
}
|
||||
@@ -983,9 +983,9 @@ QString DlgPrimitives::createVertex(const QString& objectName, const QString& pl
|
||||
"App.ActiveDocument.%1.Placement=%5\n"
|
||||
"App.ActiveDocument.%1.Label='%6'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->vertexX->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->vertexY->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->vertexZ->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->vertexX->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->vertexY->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->vertexZ->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Vertex"));
|
||||
}
|
||||
@@ -1003,12 +1003,12 @@ QString DlgPrimitives::createLine(const QString& objectName, const QString& plac
|
||||
"App.ActiveDocument.%1.Placement=%8\n"
|
||||
"App.ActiveDocument.%1.Label='%9'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->edgeX1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeY1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeZ1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeX2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeY2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeZ2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeX1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeY1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeZ1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeX2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeY2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeZ2->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Line"));
|
||||
}
|
||||
@@ -1023,7 +1023,7 @@ QString DlgPrimitives::createRegularPolygon(const QString& objectName, const QSt
|
||||
"App.ActiveDocument.%1.Label='%5'\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->regularPolygonPolygon->value())
|
||||
.arg(ui->regularPolygonCircumradius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->regularPolygonCircumradius->value()))
|
||||
.arg(placement)
|
||||
.arg(tr("Regular polygon"));
|
||||
}
|
||||
@@ -1124,8 +1124,8 @@ QString DlgPrimitives::changePlane(const QString& objectName, const QString& pla
|
||||
"%1.Width=%3\n"
|
||||
"%1.Placement=%4\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->planeLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->planeWidth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->planeLength->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->planeWidth->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1137,9 +1137,9 @@ QString DlgPrimitives::changeBox(const QString& objectName, const QString& place
|
||||
"%1.Height=%4\n"
|
||||
"%1.Placement=%5\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->boxLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxWidth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxLength->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxWidth->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxHeight->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1151,9 +1151,9 @@ QString DlgPrimitives::changeCylinder(const QString& objectName, const QString&
|
||||
"%1.Angle=%4\n"
|
||||
"%1.Placement=%5\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->cylinderRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderAngle->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderAngle->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1166,10 +1166,10 @@ QString DlgPrimitives::changeCone(const QString& objectName, const QString& plac
|
||||
"%1.Angle=%5\n"
|
||||
"%1.Placement=%6\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->coneRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneAngle->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneAngle->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1182,10 +1182,10 @@ QString DlgPrimitives::changeSphere(const QString& objectName, const QString& pl
|
||||
"%1.Angle3=%5\n"
|
||||
"%1.Placement=%6\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->sphereRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle3->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1200,12 +1200,12 @@ QString DlgPrimitives::changeEllipsoid(const QString& objectName, const QString&
|
||||
"%1.Angle3=%7\n"
|
||||
"%1.Placement=%8\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->ellipsoidRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidRadius3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius3->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle3->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1219,11 +1219,11 @@ QString DlgPrimitives::changeTorus(const QString& objectName, const QString& pla
|
||||
"%1.Angle3=%6\n"
|
||||
"%1.Placement=%7\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->torusRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusRadius1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusRadius2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle3->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1238,10 +1238,10 @@ QString DlgPrimitives::changePrism(const QString& objectName, const QString& pla
|
||||
"%1.Placement=%7\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->prismPolygon->value())
|
||||
.arg(ui->prismCircumradius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismXSkew->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismYSkew->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismCircumradius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismXSkew->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismYSkew->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1260,16 +1260,16 @@ QString DlgPrimitives::changeWedge(const QString& objectName, const QString& pla
|
||||
"%1.Z2max=%11\n"
|
||||
"%1.Placement=%12\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->wedgeXmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeYmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeX2min->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZ2min->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeXmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeYmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeX2max->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZ2max->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeXmin->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeYmin->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZmin->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeX2min->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZ2min->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeXmax->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeYmax->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZmax->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeX2max->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZ2max->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1283,10 +1283,10 @@ QString DlgPrimitives::changeHelix(const QString& objectName, const QString& pla
|
||||
"%1.LocalCoord=%6\n"
|
||||
"%1.Placement=%7\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->helixPitch->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->helixHeight->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->helixRadius->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->helixAngle->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixPitch->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixHeight->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->helixAngle->value()))
|
||||
.arg(ui->helixLocalCS->currentIndex())
|
||||
.arg(placement);
|
||||
}
|
||||
@@ -1299,9 +1299,9 @@ QString DlgPrimitives::changeSpiral(const QString& objectName, const QString& pl
|
||||
"%1.Radius=%4\n"
|
||||
"%1.Placement=%5\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->spiralGrowth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->spiralRotation->value(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->spiralRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->spiralGrowth->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->spiralRotation->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->spiralRadius->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1313,9 +1313,9 @@ QString DlgPrimitives::changeCircle(const QString& objectName, const QString& pl
|
||||
"%1.Angle1=%4\n"
|
||||
"%1.Placement=%5\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->circleRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->circleAngle0->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->circleAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->circleRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->circleAngle0->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->circleAngle1->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1328,10 +1328,10 @@ QString DlgPrimitives::changeEllipse(const QString& objectName, const QString& p
|
||||
"%1.Angle1=%5\n"
|
||||
"%1.Placement=%6\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->ellipseMajorRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipseMinorRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipseAngle0->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipseAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseMajorRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseMinorRadius->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseAngle0->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipseAngle1->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1343,9 +1343,9 @@ QString DlgPrimitives::changeVertex(const QString& objectName, const QString& pl
|
||||
"%1.Z=%4\n"
|
||||
"%1.Placement=%5\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->vertexX->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->vertexY->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->vertexZ->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->vertexX->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->vertexY->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->vertexZ->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1360,12 +1360,12 @@ QString DlgPrimitives::changeLine(const QString& objectName, const QString& plac
|
||||
"%1.Z2=%7\n"
|
||||
"%1.Placement=%8\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->edgeX1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeY1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeZ1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeX2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeY2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->edgeZ2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeX1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeY1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeZ1->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeX2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeY2->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->edgeZ2->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
@@ -1377,7 +1377,7 @@ QString DlgPrimitives::changeRegularPolygon(const QString& objectName, const QSt
|
||||
"%1.Placement=%4\n")
|
||||
.arg(objectName)
|
||||
.arg(ui->regularPolygonPolygon->value())
|
||||
.arg(ui->regularPolygonCircumradius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(Base::UnitsApi::toNumber(ui->regularPolygonCircumradius->value()))
|
||||
.arg(placement);
|
||||
}
|
||||
|
||||
|
||||
@@ -56,10 +56,13 @@ using namespace PartDesign;
|
||||
|
||||
namespace PartDesign {
|
||||
|
||||
const App::PropertyQuantityConstraint::Constraints torusRangeV = {-180.0,180.0,1.0};
|
||||
const App::PropertyQuantityConstraint::Constraints angleRangeU = {0.0,360.0,1.0};
|
||||
const App::PropertyQuantityConstraint::Constraints angleRangeV = {-90.0,90.0,1.0};
|
||||
const App::PropertyQuantityConstraint::Constraints quantityRange = {0.0,FLT_MAX,0.1};
|
||||
const App::PropertyQuantityConstraint::Constraints torusRangeV = { -180.0, 180.0, 1.0 };
|
||||
const App::PropertyQuantityConstraint::Constraints angleRangeU = { 0.0, 360.0, 1.0 };
|
||||
const App::PropertyQuantityConstraint::Constraints angleRangeV = { -90.0, 90.0, 1.0 };
|
||||
// it turned out that OCC cannot e.g. create a box with a width of Precision::Confusion()
|
||||
// with two times Precision::Confusion() all geometric primitives can be created
|
||||
const App::PropertyQuantityConstraint::Constraints quantityRange = { 2 * Precision::Confusion(), FLT_MAX, 0.1 };
|
||||
const App::PropertyQuantityConstraint::Constraints quantityRangeZero = { 0.0, FLT_MAX, 0.1 };
|
||||
|
||||
PROPERTY_SOURCE_WITH_EXTENSIONS(PartDesign::FeaturePrimitive, PartDesign::FeatureAddSub)
|
||||
|
||||
@@ -77,12 +80,12 @@ App::DocumentObjectExecReturn* FeaturePrimitive::execute(const TopoDS_Shape& pri
|
||||
|
||||
//if we have no base we just add the standard primitive shape
|
||||
TopoDS_Shape base;
|
||||
try{
|
||||
try {
|
||||
//if we have a base shape we need to make sure that it does not get our transformation to
|
||||
BRepBuilderAPI_Transform trsf(getBaseShape(), getLocation().Transformation().Inverted(), true);
|
||||
base = trsf.Shape();
|
||||
}
|
||||
catch(const Base::Exception&) {
|
||||
catch (const Base::Exception&) {
|
||||
|
||||
//as we use this for preview we can add it even if useless for subtractive
|
||||
AddSubShape.setValue(primitiveShape);
|
||||
@@ -95,7 +98,7 @@ App::DocumentObjectExecReturn* FeaturePrimitive::execute(const TopoDS_Shape& pri
|
||||
return App::DocumentObject::StdReturn;
|
||||
}
|
||||
|
||||
if(getAddSubType() == FeatureAddSub::Additive) {
|
||||
if (getAddSubType() == FeatureAddSub::Additive) {
|
||||
|
||||
BRepAlgoAPI_Fuse mkFuse(base, primitiveShape);
|
||||
if (!mkFuse.IsDone())
|
||||
@@ -115,7 +118,7 @@ App::DocumentObjectExecReturn* FeaturePrimitive::execute(const TopoDS_Shape& pri
|
||||
Shape.setValue(getSolid(boolOp));
|
||||
AddSubShape.setValue(primitiveShape);
|
||||
}
|
||||
else if(getAddSubType() == FeatureAddSub::Subtractive) {
|
||||
else if (getAddSubType() == FeatureAddSub::Subtractive) {
|
||||
|
||||
BRepAlgoAPI_Cut mkCut(base, primitiveShape);
|
||||
if (!mkCut.IsDone())
|
||||
@@ -200,10 +203,8 @@ App::DocumentObjectExecReturn* Box::execute(void)
|
||||
|
||||
if (L < Precision::Confusion())
|
||||
return new App::DocumentObjectExecReturn("Length of box too small");
|
||||
|
||||
if (W < Precision::Confusion())
|
||||
return new App::DocumentObjectExecReturn("Width of box too small");
|
||||
|
||||
if (H < Precision::Confusion())
|
||||
return new App::DocumentObjectExecReturn("Height of box too small");
|
||||
|
||||
@@ -213,7 +214,6 @@ App::DocumentObjectExecReturn* Box::execute(void)
|
||||
return FeaturePrimitive::execute(mkBox.Shape());
|
||||
}
|
||||
catch (Standard_Failure& e) {
|
||||
|
||||
return new App::DocumentObjectExecReturn(e.GetMessageString());
|
||||
}
|
||||
}
|
||||
@@ -269,7 +269,6 @@ App::DocumentObjectExecReturn* Cylinder::execute(void)
|
||||
return FeaturePrimitive::execute(result);
|
||||
}
|
||||
catch (Standard_Failure& e) {
|
||||
|
||||
return new App::DocumentObjectExecReturn(e.GetMessageString());
|
||||
}
|
||||
|
||||
@@ -313,13 +312,12 @@ App::DocumentObjectExecReturn* Sphere::execute(void)
|
||||
return new App::DocumentObjectExecReturn("Radius of sphere too small");
|
||||
try {
|
||||
BRepPrimAPI_MakeSphere mkSphere(Radius.getValue(),
|
||||
Angle1.getValue()/180.0f*M_PI,
|
||||
Angle2.getValue()/180.0f*M_PI,
|
||||
Angle3.getValue()/180.0f*M_PI);
|
||||
Base::toRadians<double>(Angle1.getValue()),
|
||||
Base::toRadians<double>(Angle2.getValue()),
|
||||
Base::toRadians<double>(Angle3.getValue()));
|
||||
return FeaturePrimitive::execute(mkSphere.Shape());
|
||||
}
|
||||
catch (Standard_Failure& e) {
|
||||
|
||||
return new App::DocumentObjectExecReturn(e.GetMessageString());
|
||||
}
|
||||
|
||||
@@ -350,8 +348,8 @@ Cone::Cone()
|
||||
ADD_PROPERTY_TYPE(Height,(10.0),"Cone",App::Prop_None,"The height of the cone");
|
||||
ADD_PROPERTY_TYPE(Angle,(360.0),"Cone",App::Prop_None,"The angle of the cone");
|
||||
Angle.setConstraints(&angleRangeU);
|
||||
Radius1.setConstraints(&quantityRange);
|
||||
Radius2.setConstraints(&quantityRange);
|
||||
Radius1.setConstraints(&quantityRangeZero);
|
||||
Radius2.setConstraints(&quantityRangeZero);
|
||||
Height.setConstraints(&quantityRange);
|
||||
|
||||
primitiveType = FeaturePrimitive::Cone;
|
||||
@@ -359,10 +357,12 @@ Cone::Cone()
|
||||
|
||||
App::DocumentObjectExecReturn* Cone::execute(void)
|
||||
{
|
||||
if (Radius1.getValue() < 0)
|
||||
return new App::DocumentObjectExecReturn("Radius of cone too small");
|
||||
if (Radius2.getValue() < 0)
|
||||
return new App::DocumentObjectExecReturn("Radius of cone too small");
|
||||
if (Radius1.getValue() < 0.0)
|
||||
return new App::DocumentObjectExecReturn("Radius of cone cannot be negative");
|
||||
if (Radius2.getValue() < 0.0)
|
||||
return new App::DocumentObjectExecReturn("Radius of cone cannot be negative");
|
||||
if (Radius1.getValue() == Radius2.getValue())
|
||||
return new App::DocumentObjectExecReturn("The radii for cones must not be equal");
|
||||
if (Height.getValue() < Precision::Confusion())
|
||||
return new App::DocumentObjectExecReturn("Height of cone too small");
|
||||
try {
|
||||
@@ -370,12 +370,11 @@ App::DocumentObjectExecReturn* Cone::execute(void)
|
||||
BRepPrimAPI_MakeCone mkCone(Radius1.getValue(),
|
||||
Radius2.getValue(),
|
||||
Height.getValue(),
|
||||
Angle.getValue()/180.0f*M_PI);
|
||||
Base::toRadians<double>(Angle.getValue()));
|
||||
|
||||
return FeaturePrimitive::execute(mkCone.Shape());
|
||||
}
|
||||
catch (Standard_Failure& e) {
|
||||
|
||||
return new App::DocumentObjectExecReturn(e.GetMessageString());
|
||||
}
|
||||
|
||||
@@ -402,12 +401,12 @@ PROPERTY_SOURCE(PartDesign::Ellipsoid, PartDesign::FeaturePrimitive)
|
||||
|
||||
Ellipsoid::Ellipsoid()
|
||||
{
|
||||
ADD_PROPERTY_TYPE(Radius1,(2.0),"Ellipsoid",App::Prop_None,"The radius of the ellipsoid");
|
||||
ADD_PROPERTY_TYPE(Radius1,(2.0),"Ellipsoid",App::Prop_None,"Radius in local z-direction");
|
||||
Radius1.setConstraints(&quantityRange);
|
||||
ADD_PROPERTY_TYPE(Radius2,(4.0),"Ellipsoid",App::Prop_None,"The radius of the ellipsoid");
|
||||
ADD_PROPERTY_TYPE(Radius2,(4.0),"Ellipsoid",App::Prop_None,"Radius in local x-direction");
|
||||
Radius2.setConstraints(&quantityRange);
|
||||
ADD_PROPERTY_TYPE(Radius3,(0.0),"Ellipsoid",App::Prop_None,"The radius of the ellipsoid");
|
||||
Radius3.setConstraints(&quantityRange);
|
||||
ADD_PROPERTY_TYPE(Radius3,(0.0),"Ellipsoid",App::Prop_None,"Radius in local y-direction\nIf zero, it is equal to Radius2");
|
||||
Radius3.setConstraints(&quantityRangeZero);
|
||||
ADD_PROPERTY_TYPE(Angle1,(-90.0f),"Ellipsoid",App::Prop_None,"The angle of the ellipsoid");
|
||||
Angle1.setConstraints(&angleRangeV);
|
||||
ADD_PROPERTY_TYPE(Angle2,(90.0f),"Ellipsoid",App::Prop_None,"The angle of the ellipsoid");
|
||||
@@ -432,9 +431,9 @@ App::DocumentObjectExecReturn* Ellipsoid::execute(void)
|
||||
gp_Ax2 ax2(pnt,dir);
|
||||
BRepPrimAPI_MakeSphere mkSphere(ax2,
|
||||
Radius2.getValue(),
|
||||
Angle1.getValue()/180.0f*M_PI,
|
||||
Angle2.getValue()/180.0f*M_PI,
|
||||
Angle3.getValue()/180.0f*M_PI);
|
||||
Base::toRadians<double>(Angle1.getValue()),
|
||||
Base::toRadians<double>(Angle2.getValue()),
|
||||
Base::toRadians<double>(Angle3.getValue()));
|
||||
Standard_Real scaleX = 1.0;
|
||||
Standard_Real scaleZ = Radius1.getValue()/Radius2.getValue();
|
||||
// issue #1798: A third radius has been introduced. To be backward
|
||||
@@ -457,7 +456,6 @@ App::DocumentObjectExecReturn* Ellipsoid::execute(void)
|
||||
return FeaturePrimitive::execute(mkTrsf.Shape());
|
||||
}
|
||||
catch (Standard_Failure& e) {
|
||||
|
||||
return new App::DocumentObjectExecReturn(e.GetMessageString());
|
||||
}
|
||||
|
||||
@@ -490,9 +488,9 @@ PROPERTY_SOURCE(PartDesign::Torus, PartDesign::FeaturePrimitive)
|
||||
|
||||
Torus::Torus()
|
||||
{
|
||||
ADD_PROPERTY_TYPE(Radius1,(10.0),"Torus",App::Prop_None,"The radius of the torus");
|
||||
ADD_PROPERTY_TYPE(Radius1,(10.0),"Torus",App::Prop_None,"Radius in local xy-plane");
|
||||
Radius1.setConstraints(&quantityRange);
|
||||
ADD_PROPERTY_TYPE(Radius2,(2.0),"Torus",App::Prop_None,"The radius of the torus");
|
||||
ADD_PROPERTY_TYPE(Radius2,(2.0),"Torus",App::Prop_None,"Radius in local xz-plane");
|
||||
Radius2.setConstraints(&quantityRange);
|
||||
ADD_PROPERTY_TYPE(Angle1,(-180.0),"Torus",App::Prop_None,"The angle of the torus");
|
||||
Angle1.setConstraints(&torusRangeV);
|
||||
@@ -515,9 +513,9 @@ App::DocumentObjectExecReturn* Torus::execute(void)
|
||||
#if 0
|
||||
BRepPrimAPI_MakeTorus mkTorus(Radius1.getValue(),
|
||||
Radius2.getValue(),
|
||||
Angle1.getValue()/180.0f*M_PI,
|
||||
Angle2.getValue()/180.0f*M_PI,
|
||||
Angle3.getValue()/180.0f*M_PI);
|
||||
Base::toRadians<double>(Angle1.getValue()),
|
||||
Base::toRadians<double>(Angle2.getValue()),
|
||||
Base::toRadians<double>(Angle3.getValue()));
|
||||
return FeaturePrimitive::execute(mkTorus.Solid());
|
||||
#else
|
||||
Part::TopoShape shape;
|
||||
@@ -639,7 +637,7 @@ Wedge::Wedge()
|
||||
|
||||
App::DocumentObjectExecReturn* Wedge::execute(void)
|
||||
{
|
||||
double xmin = Xmin.getValue();
|
||||
double xmin = Xmin.getValue();
|
||||
double ymin = Ymin.getValue();
|
||||
double zmin = Zmin.getValue();
|
||||
double z2min = Z2min.getValue();
|
||||
@@ -650,7 +648,6 @@ App::DocumentObjectExecReturn* Wedge::execute(void)
|
||||
double z2max = Z2max.getValue();
|
||||
double x2max = X2max.getValue();
|
||||
|
||||
|
||||
double dx = xmax-xmin;
|
||||
double dy = ymax-ymin;
|
||||
double dz = zmax-zmin;
|
||||
@@ -683,7 +680,6 @@ App::DocumentObjectExecReturn* Wedge::execute(void)
|
||||
return FeaturePrimitive::execute(mkSolid.Solid());
|
||||
}
|
||||
catch (Standard_Failure& e) {
|
||||
|
||||
return new App::DocumentObjectExecReturn(e.GetMessageString());
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <Gui/BitmapFactory.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Document.h>
|
||||
#include <Gui/MainWindow.h>
|
||||
#include <Gui/ViewProviderOrigin.h>
|
||||
#include <Mod/Part/App/DatumFeature.h>
|
||||
#include <Mod/PartDesign/App/Body.h>
|
||||
@@ -72,12 +73,12 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
ui->boxHeight->bind(static_cast<PartDesign::Box*>(vp->getObject())->Height);
|
||||
ui->boxWidth->setValue(static_cast<PartDesign::Box*>(vp->getObject())->Width.getValue());
|
||||
ui->boxWidth->bind(static_cast<PartDesign::Box*>(vp->getObject())->Width);
|
||||
ui->boxLength->setMinimum(0.0);
|
||||
ui->boxLength->setMaximum(INT_MAX);
|
||||
ui->boxWidth->setMinimum(0.0);
|
||||
ui->boxWidth->setMaximum(INT_MAX);
|
||||
ui->boxHeight->setMinimum(0.0);
|
||||
ui->boxHeight->setMaximum(INT_MAX);
|
||||
ui->boxLength->setMinimum(static_cast<PartDesign::Box*>(vp->getObject())->Length.getMinimum());
|
||||
ui->boxLength->setMaximum(static_cast<PartDesign::Box*>(vp->getObject())->Length.getMaximum());
|
||||
ui->boxWidth->setMinimum(static_cast<PartDesign::Box*>(vp->getObject())->Width.getMinimum());
|
||||
ui->boxWidth->setMaximum(static_cast<PartDesign::Box*>(vp->getObject())->Width.getMaximum());
|
||||
ui->boxHeight->setMinimum(static_cast<PartDesign::Box*>(vp->getObject())->Height.getMinimum());
|
||||
ui->boxHeight->setMaximum(static_cast<PartDesign::Box*>(vp->getObject())->Height.getMaximum());
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Cylinder:
|
||||
index = 2;
|
||||
@@ -93,10 +94,10 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
ui->cylinderYSkew->bind(static_cast<PartDesign::Cylinder*>(vp->getObject())->SecondAngle);
|
||||
ui->cylinderAngle->setMaximum(static_cast<PartDesign::Cylinder*>(vp->getObject())->Angle.getMaximum());
|
||||
ui->cylinderAngle->setMinimum(static_cast<PartDesign::Cylinder*>(vp->getObject())->Angle.getMinimum());
|
||||
ui->cylinderHeight->setMaximum(INT_MAX);
|
||||
ui->cylinderHeight->setMinimum(0.0);
|
||||
ui->cylinderRadius->setMaximum(INT_MAX);
|
||||
ui->cylinderRadius->setMinimum(0.0);
|
||||
ui->cylinderHeight->setMaximum(static_cast<PartDesign::Cylinder*>(vp->getObject())->Height.getMaximum());
|
||||
ui->cylinderHeight->setMinimum(static_cast<PartDesign::Cylinder*>(vp->getObject())->Height.getMinimum());
|
||||
ui->cylinderRadius->setMaximum(static_cast<PartDesign::Cylinder*>(vp->getObject())->Radius.getMaximum());
|
||||
ui->cylinderRadius->setMinimum(static_cast<PartDesign::Cylinder*>(vp->getObject())->Radius.getMinimum());
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Sphere:
|
||||
index = 4;
|
||||
@@ -114,8 +115,8 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
ui->sphereAngle2->setMinimum(ui->sphereAngle1->rawValue());
|
||||
ui->sphereAngle3->setMaximum(static_cast<PartDesign::Sphere*>(vp->getObject())->Angle3.getMaximum());
|
||||
ui->sphereAngle3->setMinimum(static_cast<PartDesign::Sphere*>(vp->getObject())->Angle3.getMinimum());
|
||||
ui->sphereRadius->setMaximum(INT_MAX);
|
||||
ui->sphereRadius->setMinimum(0.0);
|
||||
ui->sphereRadius->setMaximum(static_cast<PartDesign::Sphere*>(vp->getObject())->Radius.getMaximum());
|
||||
ui->sphereRadius->setMinimum(static_cast<PartDesign::Sphere*>(vp->getObject())->Radius.getMinimum());
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Cone:
|
||||
index = 3;
|
||||
@@ -129,12 +130,12 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
ui->coneRadius2->bind(static_cast<PartDesign::Cone*>(vp->getObject())->Radius2);
|
||||
ui->coneAngle->setMaximum(static_cast<PartDesign::Cone*>(vp->getObject())->Angle.getMaximum());
|
||||
ui->coneAngle->setMinimum(static_cast<PartDesign::Cone*>(vp->getObject())->Angle.getMinimum());
|
||||
ui->coneHeight->setMaximum(INT_MAX);
|
||||
ui->coneHeight->setMinimum(0.0);
|
||||
ui->coneRadius1->setMaximum(INT_MAX);
|
||||
ui->coneRadius1->setMinimum(0.0);
|
||||
ui->coneRadius2->setMaximum(INT_MAX);
|
||||
ui->coneRadius2->setMinimum(0.0);
|
||||
ui->coneHeight->setMaximum(static_cast<PartDesign::Cone*>(vp->getObject())->Height.getMaximum());
|
||||
ui->coneHeight->setMinimum(static_cast<PartDesign::Cone*>(vp->getObject())->Height.getMinimum());
|
||||
ui->coneRadius1->setMaximum(static_cast<PartDesign::Cone*>(vp->getObject())->Radius1.getMaximum());
|
||||
ui->coneRadius1->setMinimum(static_cast<PartDesign::Cone*>(vp->getObject())->Radius1.getMinimum());
|
||||
ui->coneRadius2->setMaximum(static_cast<PartDesign::Cone*>(vp->getObject())->Radius2.getMaximum());
|
||||
ui->coneRadius2->setMinimum(static_cast<PartDesign::Cone*>(vp->getObject())->Radius2.getMinimum());
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Ellipsoid:
|
||||
index = 5;
|
||||
@@ -156,12 +157,12 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
ui->ellipsoidAngle2->setMinimum(ui->ellipsoidAngle1->rawValue());
|
||||
ui->ellipsoidAngle3->setMaximum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Angle3.getMaximum());
|
||||
ui->ellipsoidAngle3->setMinimum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Angle3.getMinimum());
|
||||
ui->ellipsoidRadius1->setMinimum(0.0);
|
||||
ui->ellipsoidRadius1->setMaximum(INT_MAX);
|
||||
ui->ellipsoidRadius2->setMinimum(0.0);
|
||||
ui->ellipsoidRadius2->setMaximum(INT_MAX);
|
||||
ui->ellipsoidRadius3->setMinimum(0.0);
|
||||
ui->ellipsoidRadius3->setMaximum(INT_MAX);
|
||||
ui->ellipsoidRadius1->setMinimum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Radius1.getMinimum());
|
||||
ui->ellipsoidRadius1->setMaximum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Radius1.getMaximum());
|
||||
ui->ellipsoidRadius2->setMinimum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Radius2.getMinimum());
|
||||
ui->ellipsoidRadius2->setMaximum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Radius2.getMaximum());
|
||||
ui->ellipsoidRadius3->setMinimum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Radius3.getMinimum());
|
||||
ui->ellipsoidRadius3->setMaximum(static_cast<PartDesign::Ellipsoid*>(vp->getObject())->Radius3.getMaximum());
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Torus:
|
||||
index = 6;
|
||||
@@ -184,10 +185,10 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
// this is the outer radius that must not be smaller than the inner one
|
||||
// otherwise the geometry is impossible and we can even get a crash:
|
||||
// https://forum.freecadweb.org/viewtopic.php?f=3&t=44467
|
||||
ui->torusRadius1->setMaximum(INT_MAX);
|
||||
ui->torusRadius1->setMaximum(static_cast<PartDesign::Torus*>(vp->getObject())->Radius1.getMaximum());
|
||||
ui->torusRadius1->setMinimum(ui->torusRadius2->rawValue());
|
||||
ui->torusRadius2->setMaximum(ui->torusRadius1->rawValue());
|
||||
ui->torusRadius2->setMinimum(0.0);
|
||||
ui->torusRadius2->setMinimum(static_cast<PartDesign::Torus*>(vp->getObject())->Radius2.getMinimum());
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Prism:
|
||||
index = 7;
|
||||
@@ -200,10 +201,10 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
ui->prismXSkew->bind(static_cast<PartDesign::Prism*>(vp->getObject())->FirstAngle);
|
||||
ui->prismYSkew->setValue(static_cast<PartDesign::Prism*>(vp->getObject())->SecondAngle.getValue());
|
||||
ui->prismYSkew->bind(static_cast<PartDesign::Prism*>(vp->getObject())->SecondAngle);
|
||||
ui->prismCircumradius->setMaximum(INT_MAX);
|
||||
ui->prismCircumradius->setMinimum(0.0);
|
||||
ui->prismHeight->setMaximum(INT_MAX);
|
||||
ui->prismHeight->setMinimum(0.0);
|
||||
ui->prismCircumradius->setMaximum(static_cast<PartDesign::Prism*>(vp->getObject())->Circumradius.getMaximum());
|
||||
ui->prismCircumradius->setMinimum(static_cast<PartDesign::Prism*>(vp->getObject())->Circumradius.getMinimum());
|
||||
ui->prismHeight->setMaximum(static_cast<PartDesign::Prism*>(vp->getObject())->Height.getMaximum());
|
||||
ui->prismHeight->setMinimum(static_cast<PartDesign::Prism*>(vp->getObject())->Height.getMinimum());
|
||||
break;
|
||||
case PartDesign::FeaturePrimitive::Wedge:
|
||||
index = 8;
|
||||
@@ -228,11 +229,11 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent)
|
||||
ui->wedgeZ2min->setValue(static_cast<PartDesign::Wedge*>(vp->getObject())->Z2min.getValue());
|
||||
ui->wedgeZ2min->bind(static_cast<PartDesign::Wedge*>(vp->getObject())->Z2min);
|
||||
ui->wedgeXmin->setMinimum(INT_MIN);
|
||||
ui->wedgeXmin->setMaximum(ui->wedgeXmax->rawValue()); // must be <= than wedgeXmax
|
||||
ui->wedgeXmin->setMaximum(ui->wedgeXmax->rawValue()); // must be < than wedgeXmax
|
||||
ui->wedgeYmin->setMinimum(INT_MIN);
|
||||
ui->wedgeYmin->setMaximum(ui->wedgeYmax->rawValue()); // must be <= than wedgeYmax
|
||||
ui->wedgeYmin->setMaximum(ui->wedgeYmax->rawValue()); // must be < than wedgeYmax
|
||||
ui->wedgeZmin->setMinimum(INT_MIN);
|
||||
ui->wedgeZmin->setMaximum(ui->wedgeZmax->rawValue()); // must be <= than wedgeZmax
|
||||
ui->wedgeZmin->setMaximum(ui->wedgeZmax->rawValue()); // must be < than wedgeZmax
|
||||
ui->wedgeX2min->setMinimum(INT_MIN);
|
||||
ui->wedgeX2min->setMaximum(ui->wedgeX2max->rawValue()); // must be <= than wedgeXmax
|
||||
ui->wedgeZ2min->setMinimum(INT_MIN);
|
||||
@@ -468,12 +469,14 @@ void TaskBoxPrimitives::onConeHeightChanged(double v) {
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onConeRadius1Changed(double v) {
|
||||
|
||||
PartDesign::Cone* sph = static_cast<PartDesign::Cone*>(vp->getObject());
|
||||
sph->Radius1.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onConeRadius2Changed(double v) {
|
||||
|
||||
PartDesign::Cone* sph = static_cast<PartDesign::Cone*>(vp->getObject());
|
||||
sph->Radius2.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
@@ -630,65 +633,65 @@ void TaskBoxPrimitives::onWedgeXminChanged(double v) {
|
||||
|
||||
void TaskBoxPrimitives::onWedgeXmaxChanged(double v) {
|
||||
PartDesign::Wedge* sph = static_cast<PartDesign::Wedge*>(vp->getObject());
|
||||
ui->wedgeXmin->setMaximum(v); // must be <= than wedgeXmax
|
||||
ui->wedgeXmin->setMaximum(v); // must be < than wedgeXmax
|
||||
sph->Xmax.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onWedgeYminChanged(double v) {
|
||||
PartDesign::Wedge* sph = static_cast<PartDesign::Wedge*>(vp->getObject());
|
||||
ui->wedgeYmax->setMinimum(v);
|
||||
ui->wedgeYmax->setMinimum(v); // must be > than wedgeYmin
|
||||
sph->Ymin.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onWedgeYmaxChanged(double v) {
|
||||
PartDesign::Wedge* sph = static_cast<PartDesign::Wedge*>(vp->getObject());
|
||||
ui->wedgeYmin->setMaximum(v);
|
||||
ui->wedgeYmin->setMaximum(v); // must be < than wedgeYmax
|
||||
sph->Ymax.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onWedgeZ2minChanged(double v) {
|
||||
PartDesign::Wedge* sph = static_cast<PartDesign::Wedge*>(vp->getObject());
|
||||
ui->wedgeZ2max->setMinimum(v);
|
||||
ui->wedgeZ2max->setMinimum(v); // must be >= than wedgeZ2min
|
||||
sph->Z2min.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onWedgeZ2maxChanged(double v) {
|
||||
PartDesign::Wedge* sph = static_cast<PartDesign::Wedge*>(vp->getObject());
|
||||
ui->wedgeZ2min->setMaximum(v); // must be <= than wedgeXmax
|
||||
ui->wedgeZ2min->setMaximum(v); // must be <= than wedgeZ2max
|
||||
sph->Z2max.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onWedgeZminChanged(double v) {
|
||||
PartDesign::Wedge* sph = static_cast<PartDesign::Wedge*>(vp->getObject());
|
||||
ui->wedgeZmax->setMinimum(v);
|
||||
ui->wedgeZmax->setMinimum(v); // must be > than wedgeZmin
|
||||
sph->Zmin.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
void TaskBoxPrimitives::onWedgeZmaxChanged(double v) {
|
||||
PartDesign::Wedge* sph = static_cast<PartDesign::Wedge*>(vp->getObject());
|
||||
ui->wedgeZmin->setMaximum(v);
|
||||
ui->wedgeZmin->setMaximum(v); // must be < than wedgeZmax
|
||||
sph->Zmax.setValue(v);
|
||||
vp->getObject()->getDocument()->recomputeFeature(vp->getObject());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
{
|
||||
try {
|
||||
QString name(QString::fromLatin1(Gui::Command::getObjectCmd(obj).c_str()));
|
||||
QString cmd;
|
||||
App::Document* doc = App::GetApplication().getActiveDocument();
|
||||
if (!doc) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
Base::QuantityFormat format(Base::QuantityFormat::Default, Base::UnitsApi::getDecimals());
|
||||
switch(ui->widgetStack->currentIndex()) {
|
||||
case 1: // box
|
||||
cmd = QString::fromLatin1(
|
||||
@@ -696,9 +699,9 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
"%1.Width=%3\n"
|
||||
"%1.Height=%4\n")
|
||||
.arg(name)
|
||||
.arg(ui->boxLength->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxWidth->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->boxHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxLength->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxWidth->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->boxHeight->value(), format));
|
||||
break;
|
||||
|
||||
case 2: // cylinder
|
||||
@@ -709,24 +712,30 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
"%1.FirstAngle=%5\n"
|
||||
"%1.SecondAngle=%6\n")
|
||||
.arg(name)
|
||||
.arg(ui->cylinderRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderAngle->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderXSkew->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->cylinderYSkew->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderRadius->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderHeight->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderAngle->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderXSkew->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->cylinderYSkew->value(), format));
|
||||
break;
|
||||
|
||||
case 3: // cone
|
||||
// the cone radii must not be equal
|
||||
if (ui->coneRadius1->value().getValue() == ui->coneRadius2->value().getValue()) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), tr("Cone radii are equal"),
|
||||
tr("The radii for cones must not be equal!"));
|
||||
return false;
|
||||
}
|
||||
cmd = QString::fromLatin1(
|
||||
"%1.Radius1=%2\n"
|
||||
"%1.Radius2=%3\n"
|
||||
"%1.Height=%4\n"
|
||||
"%1.Angle=%5\n")
|
||||
.arg(name)
|
||||
.arg(ui->coneRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneHeight->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->coneAngle->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius1->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneRadius2->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneHeight->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->coneAngle->value(), format));
|
||||
break;
|
||||
|
||||
case 4: // sphere
|
||||
@@ -736,10 +745,10 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
"%1.Angle2=%4\n"
|
||||
"%1.Angle3=%5\n")
|
||||
.arg(name)
|
||||
.arg(ui->sphereRadius->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->sphereAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereRadius->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle1->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle2->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->sphereAngle3->value(), format));
|
||||
break;
|
||||
case 5: // ellipsoid
|
||||
cmd = QString::fromLatin1(
|
||||
@@ -750,12 +759,12 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
"%1.Angle2=%6\n"
|
||||
"%1.Angle3=%7\n")
|
||||
.arg(name)
|
||||
.arg(ui->ellipsoidRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidRadius3->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->ellipsoidAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius1->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius2->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidRadius3->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle1->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle2->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->ellipsoidAngle3->value(), format));
|
||||
break;
|
||||
|
||||
case 6: // torus
|
||||
@@ -766,11 +775,11 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
"%1.Angle2=%5\n"
|
||||
"%1.Angle3=%6\n")
|
||||
.arg(name)
|
||||
.arg(ui->torusRadius1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusRadius2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle1->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle2->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->torusAngle3->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusRadius1->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusRadius2->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle1->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle2->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->torusAngle3->value(), format));
|
||||
break;
|
||||
case 7: // prism
|
||||
cmd = QString::fromLatin1(
|
||||
@@ -781,12 +790,28 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
"%1.SecondAngle=%6\n")
|
||||
.arg(name)
|
||||
.arg(ui->prismPolygon->value())
|
||||
.arg(ui->prismCircumradius->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismHeight->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismXSkew->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals())
|
||||
.arg(ui->prismYSkew->value().getValue(), 0, 'f', Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismCircumradius->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismHeight->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismXSkew->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->prismYSkew->value(), format));
|
||||
break;
|
||||
case 8: // wedge
|
||||
// Xmin/max, Ymin/max and Zmin/max must each not be equal
|
||||
if (ui->wedgeXmin->value().getValue() == ui->wedgeXmax->value().getValue()) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), tr("Invalid wedge parameters"),
|
||||
tr("X min must not be equal to X max!"));
|
||||
return false;
|
||||
}
|
||||
else if (ui->wedgeYmin->value().getValue() == ui->wedgeYmax->value().getValue()) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), tr("Invalid wedge parameters"),
|
||||
tr("Y min must not be equal to Y max!"));
|
||||
return false;
|
||||
}
|
||||
else if (ui->wedgeZmin->value().getValue() == ui->wedgeZmax->value().getValue()) {
|
||||
QMessageBox::warning(Gui::getMainWindow(), tr("Invalid wedge parameters"),
|
||||
tr("Z min must not be equal to Z max!"));
|
||||
return false;
|
||||
}
|
||||
cmd = QString::fromLatin1(
|
||||
"%1.Xmin=%2\n"
|
||||
"%1.Ymin=%3\n"
|
||||
@@ -799,16 +824,16 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
"%1.X2max=%10\n"
|
||||
"%1.Z2max=%11\n")
|
||||
.arg(name)
|
||||
.arg(ui->wedgeXmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeYmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZmin->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeX2min->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZ2min->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeXmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeYmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZmax->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeX2max->value().getValue(),0,'f',Base::UnitsApi::getDecimals())
|
||||
.arg(ui->wedgeZ2max->value().getValue(),0,'f',Base::UnitsApi::getDecimals());
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeXmin->value()))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeYmin->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZmin->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeX2min->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZ2min->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeXmax->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeYmax->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZmax->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeX2max->value(), format))
|
||||
.arg(Base::UnitsApi::toNumber(ui->wedgeZ2max->value(), format));
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -823,7 +848,9 @@ void TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj)
|
||||
}
|
||||
catch (const Base::PyException& e) {
|
||||
QMessageBox::warning(this, tr("Create primitive"), QString::fromLatin1(e.what()));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TaskPrimitiveParameters::TaskPrimitiveParameters(ViewProviderPrimitive* PrimitiveView) : vp_prm(PrimitiveView)
|
||||
@@ -881,7 +908,9 @@ TaskPrimitiveParameters::~TaskPrimitiveParameters()
|
||||
|
||||
bool TaskPrimitiveParameters::accept()
|
||||
{
|
||||
primitive->setPrimitive(vp_prm->getObject());
|
||||
bool primitiveOK = primitive->setPrimitive(vp_prm->getObject());
|
||||
if (!primitiveOK)
|
||||
return primitiveOK;
|
||||
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.recompute()");
|
||||
Gui::Command::doCommand(Gui::Command::Gui,"Gui.activeDocument().resetEdit()");
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent = 0);
|
||||
~TaskBoxPrimitives();
|
||||
|
||||
void setPrimitive(App::DocumentObject *);
|
||||
bool setPrimitive(App::DocumentObject *);
|
||||
|
||||
public Q_SLOTS:
|
||||
void onBoxLengthChanged(double);
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="Page2_cylinder">
|
||||
<layout class="QGridLayout" name="_5">
|
||||
@@ -755,7 +755,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="Page5_ellipsoid">
|
||||
<layout class="QGridLayout" name="_14">
|
||||
@@ -800,6 +800,9 @@
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="Gui::QuantitySpinBox" name="ellipsoidRadius1">
|
||||
<property name="toolTip">
|
||||
<string>Radius in local z-direction</string>
|
||||
</property>
|
||||
<property name="keyboardTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@@ -820,6 +823,9 @@
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="Gui::QuantitySpinBox" name="ellipsoidRadius2">
|
||||
<property name="toolTip">
|
||||
<string>Radius in local x-direction</string>
|
||||
</property>
|
||||
<property name="keyboardTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@@ -840,6 +846,10 @@
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="Gui::QuantitySpinBox" name="ellipsoidRadius3">
|
||||
<property name="toolTip">
|
||||
<string>Radius in local y-direction
|
||||
If zero, it is equal to Radius2</string>
|
||||
</property>
|
||||
<property name="keyboardTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@@ -964,7 +974,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="Page6_torus">
|
||||
<layout class="QGridLayout" name="_17">
|
||||
@@ -1009,6 +1019,9 @@
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="Gui::QuantitySpinBox" name="torusRadius1">
|
||||
<property name="toolTip">
|
||||
<string>Radius in local xy-plane</string>
|
||||
</property>
|
||||
<property name="keyboardTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@@ -1029,6 +1042,9 @@
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="Gui::QuantitySpinBox" name="torusRadius2">
|
||||
<property name="toolTip">
|
||||
<string>Radius in local xz-plane</string>
|
||||
</property>
|
||||
<property name="keyboardTracking">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@@ -1156,7 +1172,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_prism">
|
||||
<layout class="QGridLayout" name="_20">
|
||||
@@ -1651,7 +1667,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page9_spiral">
|
||||
<layout class="QGridLayout" name="_24">
|
||||
@@ -1762,7 +1778,7 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page10_circle">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
|
||||
@@ -540,7 +540,6 @@ Gui::MenuItem* Workbench::setupMenuBar() const
|
||||
<< "Separator"
|
||||
<< "PartDesign_Boolean"
|
||||
<< "Separator"
|
||||
//<< "PartDesign_Hole"
|
||||
<< "PartDesign_Migrate"
|
||||
<< "PartDesign_Sprocket"
|
||||
<< "PartDesign_InvoluteGear";
|
||||
|
||||
Reference in New Issue
Block a user