[PD] Hole: fix angle constraints

- all 3 angles cannot be >= 180°
- also add missing minimum in UI for taper angle
This commit is contained in:
Uwe
2022-01-06 18:05:14 +01:00
parent 7c158a3751
commit 9a8e055cc6
2 changed files with 5 additions and 1 deletions

View File

@@ -645,7 +645,7 @@ const char* Hole::ThreadDirectionEnums[] = { "Right", "Left", NULL};
PROPERTY_SOURCE(PartDesign::Hole, PartDesign::ProfileBased)
const App::PropertyAngle::Constraints Hole::floatAngle = { Base::toDegrees<double>(Precision::Angular()), 360.0, 1.0 };
const App::PropertyAngle::Constraints Hole::floatAngle = { Base::toDegrees<double>(Precision::Angular()), 180.0 - Base::toDegrees<double>(Precision::Angular()), 1.0 };
// OCC can only create holes with a min diameter of 10 times the Precision::Confusion()
const App::PropertyQuantityConstraint::Constraints diameterRange = { 10 * Precision::Confusion(), FLT_MAX, 1.0 };

View File

@@ -129,6 +129,7 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
ui->HoleCutDepth->setValue(pcHole->HoleCutDepth.getValue());
ui->HoleCutDepth->setDisabled(pcHole->HoleCutDepth.isReadOnly());
ui->HoleCutCountersinkAngle->setMinimum(pcHole->HoleCutCountersinkAngle.getMinimum());
ui->HoleCutCountersinkAngle->setMaximum(pcHole->HoleCutCountersinkAngle.getMaximum());
ui->HoleCutCountersinkAngle->setValue(pcHole->HoleCutCountersinkAngle.getValue());
ui->HoleCutCountersinkAngle->setDisabled(pcHole->HoleCutCountersinkAngle.isReadOnly());
@@ -139,6 +140,7 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
else
ui->drillPointAngled->setChecked(true);
ui->DrillPointAngle->setMinimum(pcHole->DrillPointAngle.getMinimum());
ui->DrillPointAngle->setMaximum(pcHole->DrillPointAngle.getMaximum());
ui->DrillPointAngle->setValue(pcHole->DrillPointAngle.getValue());
ui->DrillForDepth->setChecked(pcHole->DrillForDepth.getValue());
// drill point settings are only enabled (sensible) if type is 'Dimension'
@@ -166,6 +168,8 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
ui->Tapered->setChecked(pcHole->Tapered.getValue());
// Angle is only enabled (sensible) if tapered
ui->TaperedAngle->setEnabled(pcHole->Tapered.getValue());
ui->TaperedAngle->setMinimum(pcHole->TaperedAngle.getMinimum());
ui->TaperedAngle->setMaximum(pcHole->TaperedAngle.getMaximum());
ui->TaperedAngle->setValue(pcHole->TaperedAngle.getValue());
ui->Reversed->setChecked(pcHole->Reversed.getValue());