[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:
@@ -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()
|
||||
|
||||
@@ -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"));
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user