[PD] hole UTS fixes

- propose cut values also for UTS profiles
- the UTS defines coarse and fine while for ISO it is regular and fine, thus fix the name
- for the dialog: set minimum values to zero (angles etc. cannot be negative)
This commit is contained in:
donovaly
2020-11-13 03:30:42 +01:00
committed by wwmayer
parent 68673c6ad1
commit e7af8b5c01
3 changed files with 66 additions and 8 deletions

View File

@@ -498,17 +498,23 @@ Hole::Hole()
void Hole::updateHoleCutParams()
{
std::string holeCutType = HoleCutType.getValueAsString();
// there is no cut, thus return
if (holeCutType == "None")
return;
if (ThreadType.getValue() < 0) {
throw Base::IndexError("Thread type out of range");
return;
}
std::string threadType = ThreadType.getValueAsString();
if (threadType == "ISOMetricProfile" || threadType == "ISOMetricFineProfile") {
std::string holeCutType = HoleCutType.getValueAsString();
if (ThreadType.getValue() < 0)
throw Base::IndexError("Thread type out of range");
if (ThreadSize.getValue() < 0)
if (ThreadSize.getValue() < 0) {
throw Base::IndexError("Thread size out of range");
if (holeCutType == "None")
return;
}
// get diameter and size
double diameter = threadDescription[ThreadType.getValue()][ThreadSize.getValue()].diameter;
@@ -580,6 +586,28 @@ void Hole::updateHoleCutParams()
HoleCutDepth.setValue(diameter * 1.25);
}
}
else { // we have an UTS profile
// get diameter
double diameter = threadDescription[ThreadType.getValue()][ThreadSize.getValue()].diameter;
// we don't update for these settings but we need to set a value for new holes
// if we have a cut but the values are zero, we assume it is a new hole
// we use rules of thumbs as proposal
if (holeCutType == "Counterbore") {
if (HoleCutDiameter.getValue() == 0.0) {
HoleCutDiameter.setValue(diameter * 1.6);
HoleCutDepth.setValue(diameter * 0.9);
}
if (HoleCutDepth.getValue() == 0.0)
HoleCutDepth.setValue(diameter * 0.9);
}
else if (holeCutType == "Countersink") {
if (HoleCutDiameter.getValue() == 0.0) {
HoleCutDiameter.setValue(diameter * 1.7);
HoleCutCountersinkAngle.setValue(82.0);
}
}
}
}
void Hole::updateDiameterParam()

View File

@@ -72,7 +72,7 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole *HoleView, QWidget *pare
ui->ThreadType->addItem(tr("None"), QByteArray("None"));
ui->ThreadType->addItem(tr("ISO metric regular profile"), QByteArray("ISO"));
ui->ThreadType->addItem(tr("ISO metric fine profile"), QByteArray("ISO"));
ui->ThreadType->addItem(tr("UTS regular profile"), QByteArray("UTS"));
ui->ThreadType->addItem(tr("UTS coarse profile"), QByteArray("UTS"));
ui->ThreadType->addItem(tr("UTS fine profile"), QByteArray("UTS"));
ui->ThreadType->addItem(tr("UTS extra fine profile"), QByteArray("UTS"));

View File

@@ -29,6 +29,9 @@
<property name="unit" stdset="0">
<string notr="true">deg</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="14" column="0">
@@ -78,6 +81,9 @@
<property name="unit" stdset="0">
<string notr="true">mm</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="7" column="2">
@@ -98,6 +104,9 @@
<property name="unit" stdset="0">
<string notr="true">mm</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="6" column="2">
@@ -115,6 +124,9 @@
<property name="unit" stdset="0">
<string notr="true">mm</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="11" column="6" colspan="2">
@@ -122,6 +134,9 @@
<property name="unit" stdset="0">
<string notr="true">mm</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="15" column="5" colspan="3">
@@ -132,6 +147,9 @@
<property name="unit" stdset="0">
<string notr="true">mm</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="19" column="2" colspan="6">
@@ -185,6 +203,9 @@
<property name="unit" stdset="0">
<string notr="true">deg</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
</layout>
@@ -200,6 +221,9 @@
<property name="unit" stdset="0">
<string notr="true">mm</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="12" column="6" colspan="2">
@@ -274,6 +298,9 @@
<property name="unit" stdset="0">
<string notr="true">deg</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="11" column="2">
@@ -288,6 +315,9 @@
<property name="unit" stdset="0">
<string notr="true">deg</string>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="2" column="2" colspan="6">