diff --git a/src/Mod/PartDesign/App/FeatureHole.cpp b/src/Mod/PartDesign/App/FeatureHole.cpp index 50dc45d5ea..e5f0f446d5 100644 --- a/src/Mod/PartDesign/App/FeatureHole.cpp +++ b/src/Mod/PartDesign/App/FeatureHole.cpp @@ -864,9 +864,7 @@ void Hole::updateHoleCutParams() HoleCutDepth.setValue(dimen.depth); } else { - // valid values for visual feedback - HoleCutDiameter.setValue(Diameter.getValue() + 0.1); - HoleCutDepth.setValue(0.1); + calculateAndSetCounterbore(); } } if (HoleCutDepth.getValue() == 0.0) @@ -880,19 +878,23 @@ void Hole::updateHoleCutParams() const CutDimensionSet& counter = find_cutDimensionSet(threadTypeStr, "ISO 10642"); if (HoleCutDiameter.getValue() == 0.0 || HoleCutDiameter.getValue() <= diameterVal) { const CounterSinkDimension& dimen = counter.get_sink(threadSizeStr); + HoleCutCountersinkAngle.setValue(counter.angle); if (dimen.diameter != 0.0) { HoleCutDiameter.setValue(dimen.diameter); } else { - HoleCutDiameter.setValue(Diameter.getValue() + 0.1); + calculateAndSetCountersink(); } - HoleCutCountersinkAngle.setValue(counter.angle); } if (HoleCutCountersinkAngle.getValue() == 0.0) { HoleCutCountersinkAngle.setValue(counter.angle); } - if (HoleCutDepth.getValue() == 0.0 && holeCutTypeStr == "Counterdrill") { - HoleCutDepth.setValue(1.0); + if (HoleCutDepth.getValue() == 0.0) { + if (holeCutTypeStr == "Counterdrill") { + HoleCutDepth.setValue(1.0); + } else { + ProfileBased::onChanged(&HoleCutDiameter); + } } HoleCutDiameter.setReadOnly(false); HoleCutDepth.setReadOnly(false); @@ -940,9 +942,7 @@ void Hole::updateHoleCutParams() HoleCutCountersinkAngle.setReadOnly(true); const CounterBoreDimension& dimen = counter.get_bore(threadSizeStr); if (dimen.thread == "None") { - // valid values for visual feedback - HoleCutDiameter.setValue(Diameter.getValue() + 0.1); - HoleCutDepth.setValue(0.1); + calculateAndSetCounterbore(); // we force custom values since there are no normed ones HoleCutCustomValues.setReadOnly(true); // important to set only if not already true, to avoid loop call of updateHoleCutParams() @@ -974,12 +974,11 @@ void Hole::updateHoleCutParams() else if (counter.cut_type == CutDimensionSet::Countersink) { const CounterSinkDimension& dimen = counter.get_sink(threadSizeStr); if (dimen.thread == "None") { - // valid values for visual feedback - HoleCutDiameter.setValue(Diameter.getValue() + 0.1); // there might be an angle of zero (if no norm exists for the size) if (HoleCutCountersinkAngle.getValue() == 0.0) { HoleCutCountersinkAngle.setValue(counter.angle); } + calculateAndSetCountersink(); // we force custom values since there are no normed ones HoleCutCustomValues.setReadOnly(true); // important to set only if not already true, to avoid loop call of updateHoleCutParams() @@ -1037,8 +1036,12 @@ void Hole::updateHoleCutParams() if (HoleCutCountersinkAngle.getValue() == 0.0) { HoleCutCountersinkAngle.setValue(getCountersinkAngle()); } - if (HoleCutDepth.getValue() == 0.0 && holeCutTypeStr == "Counterdrill") { - HoleCutDepth.setValue(1.0); + if (HoleCutDepth.getValue() == 0.0) { + if (holeCutTypeStr == "Counterdrill") { + HoleCutDepth.setValue(1.0); + } else { + ProfileBased::onChanged(&HoleCutDiameter); + } } HoleCutDiameter.setReadOnly(false); HoleCutDepth.setReadOnly(false); @@ -1627,12 +1630,11 @@ void Hole::onChanged(const App::Property* prop) } } else if (prop == &HoleCutType) { + // the read-only states are set in updateHoleCutParams() + updateHoleCutParams(); ProfileBased::onChanged(&HoleCutDiameter); ProfileBased::onChanged(&HoleCutDepth); ProfileBased::onChanged(&HoleCutCountersinkAngle); - - // the read-only states are set in updateHoleCutParams() - updateHoleCutParams(); } else if (prop == &HoleCutCustomValues) { // when going back to standardized values, we must recalculate @@ -1640,6 +1642,31 @@ void Hole::onChanged(const App::Property* prop) // both an also the read-only states is done in updateHoleCutParams() updateHoleCutParams(); } + else if (prop == &HoleCutDiameter || prop == &HoleCutCountersinkAngle) { + // Recalculate depth if Countersink + const std::string holeCutTypeString = HoleCutType.getValueAsString(); + const std::string threadTypeString = ThreadType.getValueAsString(); + if (!(holeCutTypeString == "Countersink" + || isDynamicCountersink(threadTypeString, holeCutTypeString))) { + return; + } + auto angle = Base::toRadians(HoleCutCountersinkAngle.getValue()); + constexpr double fallback = 2.0; + constexpr double EPSILON = 1e-6; + if (angle <= 0.0 || angle >= std::numbers::pi) { + HoleCutDepth.setValue(fallback); + } else { + double tanHalfAngle = std::tan(angle / 2.0); + if (std::abs(tanHalfAngle) < EPSILON) { + // Avoid near-zero division + HoleCutDepth.setValue(fallback); + } else { + double diameter = HoleCutDiameter.getValue(); + HoleCutDepth.setValue((diameter / 2.0) / tanHalfAngle); + } + } + ProfileBased::onChanged(&HoleCutDepth); + } else if (prop == &DepthType) { std::string DepthMode(DepthType.getValueAsString()); bool isNotDimension = (DepthMode != "Dimension"); @@ -2499,6 +2526,28 @@ bool Hole::isDynamicCountersink(const std::string& thread, const Hole::CounterBoreDimension Hole::CounterBoreDimension::nothing{ "None", 0.0, 0.0 }; const Hole::CounterSinkDimension Hole::CounterSinkDimension::nothing{ "None", 0.0 }; +void Hole::calculateAndSetCounterbore() +{ + // estimate a reasonable value since it's not on the standard + double threadDiameter = Diameter.getValue(); + double dk = (1.5 * threadDiameter) + 1.0; + double k = threadDiameter; + + HoleCutDiameter.setValue(dk); + HoleCutDepth.setValue(k); +} + +void Hole::calculateAndSetCountersink() +{ + // estimate a reasonable value since it's not on the standard + double threadDiameter = Diameter.getValue(); + double dk = 2.24 * threadDiameter; + + HoleCutDiameter.setValue(dk); + ProfileBased::onChanged(&HoleCutDiameter); +} + + Hole::CutDimensionKey::CutDimensionKey(const std::string& t, const std::string& c) : thread_type{ t }, cut_name{ c } { diff --git a/src/Mod/PartDesign/App/FeatureHole.h b/src/Mod/PartDesign/App/FeatureHole.h index 956da4411b..96b8a91d34 100644 --- a/src/Mod/PartDesign/App/FeatureHole.h +++ b/src/Mod/PartDesign/App/FeatureHole.h @@ -239,6 +239,8 @@ private: void addCutType(const CutDimensionSet& dimensions); void updateHoleCutParams(); + void calculateAndSetCounterbore(); + void calculateAndSetCountersink(); std::optional determineDiameter() const; void updateDiameterParam(); void updateThreadDepthParam(); diff --git a/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp b/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp index 6d3e5d2ced..6851b18ce2 100644 --- a/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp @@ -123,10 +123,7 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare ui->HoleCutType->setCurrentIndex(pcHole->HoleCutType.getValue()); ui->HoleCutCustomValues->setChecked(pcHole->HoleCutCustomValues.getValue()); - ui->HoleCutCustomValues->setHidden( - pcHole->HoleCutType.getValue() < 5 - || pcHole->HoleCutCustomValues.isReadOnly() - ); + ui->HoleCutCustomValues->setHidden(pcHole->HoleCutType.getValue() < 4); // HoleCutDiameter must not be smaller or equal than the Diameter updateHoleCutLimits(pcHole); ui->HoleCutDiameter->setValue(pcHole->HoleCutDiameter.getValue()); @@ -385,25 +382,19 @@ void TaskHoleParameters::holeCutTypeChanged(int index) recomputeFeature(); // apply the result to the widgets - ui->HoleCutCustomValues->setHidden(hole->HoleCutCustomValues.isReadOnly()); ui->HoleCutCustomValues->setChecked(hole->HoleCutCustomValues.getValue()); // HoleCutCustomValues is only enabled for screw definitions // we must do this after recomputeFeature() because this gives us the info if // the type is a countersink and thus if HoleCutCountersinkAngle can be enabled - std::string HoleCutTypeString = hole->HoleCutType.getValueAsString(); - if ( - HoleCutTypeString == "None" - || HoleCutTypeString == "Counterbore" - || HoleCutTypeString == "Countersink" - || HoleCutTypeString == "Counterdrill" - ) { - ui->HoleCutCustomValues->setVisible(false); + if (hole->HoleCutType.getValue() < 4) { + ui->HoleCutCustomValues->setHidden(true); } else { // screw definition // we can have the case that we have no normed values // in this case HoleCutCustomValues is read-only AND true + ui->HoleCutCustomValues->setHidden(false); bool isCustom = ui->HoleCutCustomValues->isChecked(); ui->HoleCutDiameter->setEnabled(isCustom); ui->HoleCutDepth->setEnabled(isCustom); diff --git a/src/Mod/PartDesign/Resources/Hole/din7984.json b/src/Mod/PartDesign/Resources/Hole/din7984.json index 5769defaf5..6418161325 100644 --- a/src/Mod/PartDesign/Resources/Hole/din7984.json +++ b/src/Mod/PartDesign/Resources/Hole/din7984.json @@ -3,21 +3,21 @@ "cut_type": "counterbore", "thread_type": "metric", "data": [ - { "thread": "M2", "diameter": 4.3, "depth": 1.6 }, - { "thread": "M2.5", "diameter": 5.0, "depth": 2.0 }, - { "thread": "M3", "diameter": 6.0, "depth": 2.4 }, - { "thread": "M3.5", "diameter": 6.5, "depth": 2.9 }, - { "thread": "M4", "diameter": 8.0, "depth": 3.2 }, - { "thread": "M5", "diameter": 10.0, "depth": 4.0 }, - { "thread": "M6", "diameter": 11.0, "depth": 4.7 }, - { "thread": "M8", "diameter": 15.0, "depth": 6.0 }, - { "thread": "M10", "diameter": 18.0, "depth": 7.0 }, - { "thread": "M12", "diameter": 20.0, "depth": 8.0 }, - { "thread": "M14", "diameter": 24.0, "depth": 9.0 }, - { "thread": "M16", "diameter": 26.0, "depth": 10.5 }, - { "thread": "M18", "diameter": 30.0, "depth": 11.5 }, - { "thread": "M20", "diameter": 33.0, "depth": 12.5 }, - { "thread": "M22", "diameter": 36.0, "depth": 13.5 }, - { "thread": "M24", "diameter": 40.0, "depth": 14.5 } + { "thread": "M2x0.4", "diameter": 4.3, "depth": 1.6 }, + { "thread": "M2.5x0.45", "diameter": 5.0, "depth": 2.0 }, + { "thread": "M3x0.5", "diameter": 6.0, "depth": 2.4 }, + { "thread": "M3.5x0.6", "diameter": 6.5, "depth": 2.9 }, + { "thread": "M4x0.7", "diameter": 8.0, "depth": 3.2 }, + { "thread": "M5x0.8", "diameter": 10.0, "depth": 4.0 }, + { "thread": "M6x1.0", "diameter": 11.0, "depth": 4.7 }, + { "thread": "M8x1.25", "diameter": 15.0, "depth": 6.0 }, + { "thread": "M10x1.5", "diameter": 18.0, "depth": 7.0 }, + { "thread": "M12x1.75", "diameter": 20.0, "depth": 8.0 }, + { "thread": "M14x2.0", "diameter": 24.0, "depth": 9.0 }, + { "thread": "M16x2.0", "diameter": 26.0, "depth": 10.5 }, + { "thread": "M18x2.5", "diameter": 30.0, "depth": 11.5 }, + { "thread": "M20x2.5", "diameter": 33.0, "depth": 12.5 }, + { "thread": "M22x2.5", "diameter": 36.0, "depth": 13.5 }, + { "thread": "M24x3.0", "diameter": 40.0, "depth": 14.5 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso10642-fine.json b/src/Mod/PartDesign/Resources/Hole/iso10642-fine.json index 9fb6eb5e5a..000c1681e8 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso10642-fine.json +++ b/src/Mod/PartDesign/Resources/Hole/iso10642-fine.json @@ -4,22 +4,22 @@ "thread_type": "metricfine", "angle": 90, "data": [ - { "thread": "M1.6x0.2", "diameter": 3.6 }, + { "thread": "M1.6x0.2", "diameter": 3.6 }, { "thread": "M2x0.25", "diameter": 4.5 }, - { "thread": "M2.5x0.35", "diameter": 5.6 }, - { "thread": "M3x0.35", "diameter": 6.7 }, - { "thread": "M4x0.5", "diameter": 9.0 }, - { "thread": "M5x0.5", "diameter": 12.2 }, - { "thread": "M6x0.75", "diameter": 13.5 }, - { "thread": "M8x0.75", "diameter": 18.0 }, - { "thread": "M8x1.0", "diameter": 18.0 }, - { "thread": "M10x1.0", "diameter": 22.4 }, - { "thread": "M10x1.25", "diameter": 22.4 }, - { "thread": "M12x1.25", "diameter": 26.8 }, - { "thread": "M12x1.5", "diameter": 26.8 }, - { "thread": "M14x1.5", "diameter": 30.9 }, - { "thread": "M16x1.5", "diameter": 33.6 }, - { "thread": "M20x1.5", "diameter": 40.3 }, - { "thread": "M20x2.0", "diameter": 40.3 } + { "thread": "M2.5x0.35", "diameter": 5.6 }, + { "thread": "M3x0.35", "diameter": 6.7 }, + { "thread": "M4x0.5", "diameter": 9.0 }, + { "thread": "M5x0.5", "diameter": 12.2 }, + { "thread": "M6x0.75", "diameter": 13.5 }, + { "thread": "M8x0.75", "diameter": 18.0 }, + { "thread": "M8x1.0", "diameter": 18.0 }, + { "thread": "M10x1.0", "diameter": 22.4 }, + { "thread": "M10x1.25", "diameter": 22.4 }, + { "thread": "M12x1.25", "diameter": 26.8 }, + { "thread": "M12x1.5", "diameter": 26.8 }, + { "thread": "M14x1.5", "diameter": 30.9 }, + { "thread": "M16x1.5", "diameter": 33.6 }, + { "thread": "M20x1.5", "diameter": 40.3 }, + { "thread": "M20x2.0", "diameter": 40.3 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso10642.json b/src/Mod/PartDesign/Resources/Hole/iso10642.json index 44d21bfe37..9db88620e0 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso10642.json +++ b/src/Mod/PartDesign/Resources/Hole/iso10642.json @@ -4,17 +4,17 @@ "thread_type": "metric", "angle": 90, "data": [ - { "thread": "M2", "diameter": 4.7 }, - { "thread": "M2.5", "diameter": 5.9 }, - { "thread": "M3", "diameter": 6.7 }, - { "thread": "M4", "diameter": 9.0 }, - { "thread": "M5", "diameter": 11.2 }, - { "thread": "M6", "diameter": 13.4 }, - { "thread": "M8", "diameter": 17.9 }, - { "thread": "M10", "diameter": 22.4 }, - { "thread": "M12", "diameter": 26.9 }, - { "thread": "M14", "diameter": 30.8 }, - { "thread": "M16", "diameter": 33.6 }, - { "thread": "M20", "diameter": 40.3 } + { "thread": "M2x0.4", "diameter": 4.7 }, + { "thread": "M2.5x0.45", "diameter": 5.9 }, + { "thread": "M3x0.5", "diameter": 6.7 }, + { "thread": "M4x0.7", "diameter": 9.0 }, + { "thread": "M5x0.8", "diameter": 11.2 }, + { "thread": "M6x1.0", "diameter": 13.4 }, + { "thread": "M8x1.25", "diameter": 17.9 }, + { "thread": "M10x1.5", "diameter": 22.4 }, + { "thread": "M12x1.75", "diameter": 26.9 }, + { "thread": "M14x2.0", "diameter": 30.8 }, + { "thread": "M16x2.0", "diameter": 33.6 }, + { "thread": "M20x2.5", "diameter": 40.3 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso12474-fine.json b/src/Mod/PartDesign/Resources/Hole/iso12474-fine.json index 75812c6a3a..155f363b06 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso12474-fine.json +++ b/src/Mod/PartDesign/Resources/Hole/iso12474-fine.json @@ -3,21 +3,21 @@ "cut_type": "counterbore", "thread_type": "metricfine", "data": [ - { "thread": "M8x1.0", "diameter": 15.0, "depth": 8.6 }, - { "thread": "M10x1.0", "diameter": 18.0, "depth": 10.6 }, - { "thread": "M10x1.25", "diameter": 18.0, "depth": 10.6 }, - { "thread": "M12x1.25", "diameter": 20.0, "depth": 12.6 }, - { "thread": "M12x1.5", "diameter": 20.0, "depth": 12.6 }, - { "thread": "M14x1.5", "diameter": 24.0, "depth": 14.6 }, - { "thread": "M16x1.5", "diameter": 26.0, "depth": 16.6 }, - { "thread": "M18x1.5", "diameter": 30.0, "depth": 18.6 }, - { "thread": "M20x1.5", "diameter": 33.0, "depth": 20.6 }, - { "thread": "M20x2.0", "diameter": 33.0, "depth": 20.6 }, - { "thread": "M22x1.5", "diameter": 36.0, "depth": 22.8 }, - { "thread": "M24x2.0", "diameter": 40.0, "depth": 24.8 }, - { "thread": "M30x2.0", "diameter": 50.0, "depth": 31.0 }, - { "thread": "M33x1.5", "diameter": 54.0, "depth": 34.0 }, - { "thread": "M36x3.0", "diameter": 58.0, "depth": 37.0 }, - { "thread": "M42x3.0", "diameter": 69.0, "depth": 41.0 } + { "thread": "M8x1.0", "diameter": 15.0, "depth": 8.6 }, + { "thread": "M10x1.0", "diameter": 18.0, "depth": 10.6 }, + { "thread": "M10x1.25", "diameter": 18.0, "depth": 10.6 }, + { "thread": "M12x1.25", "diameter": 20.0, "depth": 12.6 }, + { "thread": "M12x1.5", "diameter": 20.0, "depth": 12.6 }, + { "thread": "M14x1.5", "diameter": 24.0, "depth": 14.6 }, + { "thread": "M16x1.5", "diameter": 26.0, "depth": 16.6 }, + { "thread": "M18x1.5", "diameter": 30.0, "depth": 18.6 }, + { "thread": "M20x1.5", "diameter": 33.0, "depth": 20.6 }, + { "thread": "M20x2.0", "diameter": 33.0, "depth": 20.6 }, + { "thread": "M22x1.5", "diameter": 36.0, "depth": 22.8 }, + { "thread": "M24x2.0", "diameter": 40.0, "depth": 24.8 }, + { "thread": "M30x2.0", "diameter": 50.0, "depth": 31.0 }, + { "thread": "M33x1.5", "diameter": 54.0, "depth": 34.0 }, + { "thread": "M36x3.0", "diameter": 58.0, "depth": 37.0 }, + { "thread": "M42x3.0", "diameter": 69.0, "depth": 41.0 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso14583.json b/src/Mod/PartDesign/Resources/Hole/iso14583.json index cd93871cd8..efcb38b55c 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso14583.json +++ b/src/Mod/PartDesign/Resources/Hole/iso14583.json @@ -3,14 +3,14 @@ "cut_type": "counterbore", "thread_type": "metric", "data": [ - { "thread": "M2", "diameter": 4.4, "depth": 2.0 }, - { "thread": "M2.5", "diameter": 5.4, "depth": 2.5 }, - { "thread": "M3", "diameter": 6.0, "depth": 2.8 }, - { "thread": "M3.5", "diameter": 7.6, "depth": 3.0 }, - { "thread": "M4", "diameter": 8.6, "depth": 3.5 }, - { "thread": "M5", "diameter": 10.1, "depth": 4.1 }, - { "thread": "M6", "diameter": 12.6, "depth": 5.0 }, - { "thread": "M8", "diameter": 16.6, "depth": 6.6 }, - { "thread": "M10", "diameter": 20.8, "depth": 8.1 } + { "thread": "M2x0.4", "diameter": 4.4, "depth": 2.0 }, + { "thread": "M2.5x0.45", "diameter": 5.4, "depth": 2.5 }, + { "thread": "M3x0.5", "diameter": 6.0, "depth": 2.8 }, + { "thread": "M3.5x0.6", "diameter": 7.6, "depth": 3.0 }, + { "thread": "M4x0.7", "diameter": 8.6, "depth": 3.5 }, + { "thread": "M5x0.8", "diameter": 10.1, "depth": 4.1 }, + { "thread": "M6x1.0", "diameter": 12.6, "depth": 5.0 }, + { "thread": "M8x1.25", "diameter": 16.6, "depth": 6.6 }, + { "thread": "M10x1.5", "diameter": 20.8, "depth": 8.1 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso14583part.json b/src/Mod/PartDesign/Resources/Hole/iso14583part.json index 0a2ef672ac..72749795df 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso14583part.json +++ b/src/Mod/PartDesign/Resources/Hole/iso14583part.json @@ -3,14 +3,14 @@ "cut_type": "counterbore", "thread_type": "metric", "data": [ - { "thread": "M2", "diameter": 4.4, "depth": 1.0 }, - { "thread": "M2.5", "diameter": 5.4, "depth": 1.4 }, - { "thread": "M3", "diameter": 6.0, "depth": 1.7 }, - { "thread": "M3.5", "diameter": 7.6, "depth": 1.7 }, - { "thread": "M4", "diameter": 8.6, "depth": 2.0 }, - { "thread": "M5", "diameter": 10.1, "depth": 2.5 }, - { "thread": "M6", "diameter": 12.6, "depth": 3.0 }, - { "thread": "M8", "diameter": 16.6, "depth": 3.9 }, - { "thread": "M10", "diameter": 20.8, "depth": 4.6 } + { "thread": "M2x0.4", "diameter": 4.4, "depth": 1.0 }, + { "thread": "M2.5x0.45", "diameter": 5.4, "depth": 1.4 }, + { "thread": "M3x0.5", "diameter": 6.0, "depth": 1.7 }, + { "thread": "M3.5x0.6", "diameter": 7.6, "depth": 1.7 }, + { "thread": "M4x0.7", "diameter": 8.6, "depth": 2.0 }, + { "thread": "M5x0.8", "diameter": 10.1, "depth": 2.5 }, + { "thread": "M6x1.0", "diameter": 12.6, "depth": 3.0 }, + { "thread": "M8x1.25", "diameter": 16.6, "depth": 3.9 }, + { "thread": "M10x1.5", "diameter": 20.8, "depth": 4.6 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso2009.json b/src/Mod/PartDesign/Resources/Hole/iso2009.json index 3c35196709..d7dc64ca38 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso2009.json +++ b/src/Mod/PartDesign/Resources/Hole/iso2009.json @@ -4,14 +4,14 @@ "thread_type": "metric", "angle": 90, "data": [ - { "thread": "M2", "diameter": 4.3 }, - { "thread": "M2.5", "diameter": 5.3 }, - { "thread": "M3", "diameter": 6.3 }, - { "thread": "M4", "diameter": 9.5 }, - { "thread": "M5", "diameter": 10.5 }, - { "thread": "M6", "diameter": 12.7 }, - { "thread": "M8", "diameter": 17.7 }, - { "thread": "M10", "diameter": 20.2 }, - { "thread": "M12", "diameter": 24.7 } + { "thread": "M2x0.4", "diameter": 4.3 }, + { "thread": "M2.5x0.45", "diameter": 5.3 }, + { "thread": "M3x0.5", "diameter": 6.3 }, + { "thread": "M4x0.7", "diameter": 9.5 }, + { "thread": "M5x0.8", "diameter": 10.5 }, + { "thread": "M6x1.0", "diameter": 12.7 }, + { "thread": "M8x1.25", "diameter": 17.7 }, + { "thread": "M10x1.5", "diameter": 20.2 }, + { "thread": "M12x1.75", "diameter": 24.7 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso4762-fine.json b/src/Mod/PartDesign/Resources/Hole/iso4762-fine.json index 48dc5ee3ab..3c0978628b 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso4762-fine.json +++ b/src/Mod/PartDesign/Resources/Hole/iso4762-fine.json @@ -3,33 +3,33 @@ "cut_type": "counterbore", "thread_type": "metricfine", "data": [ - { "thread": "M1.6x0.2", "diameter": 3.5, "depth": 1.7 }, - { "thread": "M2x0.25", "diameter": 4.3, "depth": 2.1 }, - { "thread": "M2.5x0.35", "diameter": 5.0, "depth": 3.0 }, - { "thread": "M3x0.35", "diameter": 6.0, "depth": 3.4 }, - { "thread": "M3.5x0.35", "diameter": 6.5, "depth": 3.9 }, - { "thread": "M4x0.5", "diameter": 8.0, "depth": 4.4 }, - { "thread": "M5x0.5", "diameter": 10.0, "depth": 5.4 }, - { "thread": "M6x0.75", "diameter": 11.0, "depth": 6.4 }, - { "thread": "M8x0.75", "diameter": 15.0, "depth": 8.6 }, - { "thread": "M8x1.0", "diameter": 15.0, "depth": 8.6 }, - { "thread": "M10x1.0", "diameter": 18.0, "depth": 10.6 }, - { "thread": "M10x1.25", "diameter": 18.0, "depth": 10.6 }, - { "thread": "M12x1.25", "diameter": 20.0, "depth": 12.6 }, - { "thread": "M12x1.5", "diameter": 20.0, "depth": 12.6 }, - { "thread": "M14x1.5", "diameter": 24.0, "depth": 14.6 }, - { "thread": "M16x1.5", "diameter": 26.0, "depth": 16.6 }, - { "thread": "M18x1.5", "diameter": 30.0, "depth": 18.6 }, - { "thread": "M18x2.0", "diameter": 30.0, "depth": 18.6 }, - { "thread": "M20x1.5", "diameter": 33.0, "depth": 20.6 }, - { "thread": "M20x2.0", "diameter": 33.0, "depth": 20.6 }, - { "thread": "M22x1.5", "diameter": 36.0, "depth": 22.8 }, - { "thread": "M22x2.0", "diameter": 36.0, "depth": 22.8 }, - { "thread": "M24x2.0", "diameter": 40.0, "depth": 24.8 }, - { "thread": "M30x2.0", "diameter": 50.0, "depth": 31.0 }, - { "thread": "M33x2.0", "diameter": 54.0, "depth": 34.0 }, - { "thread": "M36x3.0", "diameter": 58.0, "depth": 37.0 }, - { "thread": "M42x3.0", "diameter": 69.0, "depth": 43.0 }, - { "thread": "M48x3.0", "diameter": 78.0, "depth": 49.0 } + { "thread": "M1.6x0.2", "diameter": 3.5, "depth": 1.7 }, + { "thread": "M2x0.25", "diameter": 4.3, "depth": 2.1 }, + { "thread": "M2.5x0.35", "diameter": 5.0, "depth": 3.0 }, + { "thread": "M3x0.35", "diameter": 6.0, "depth": 3.4 }, + { "thread": "M3.5x0.35", "diameter": 6.5, "depth": 3.9 }, + { "thread": "M4x0.5", "diameter": 8.0, "depth": 4.4 }, + { "thread": "M5x0.5", "diameter": 10.0, "depth": 5.4 }, + { "thread": "M6x0.75", "diameter": 11.0, "depth": 6.4 }, + { "thread": "M8x0.75", "diameter": 15.0, "depth": 8.6 }, + { "thread": "M8x1.0", "diameter": 15.0, "depth": 8.6 }, + { "thread": "M10x1.0", "diameter": 18.0, "depth": 10.6 }, + { "thread": "M10x1.25", "diameter": 18.0, "depth": 10.6 }, + { "thread": "M12x1.25", "diameter": 20.0, "depth": 12.6 }, + { "thread": "M12x1.5", "diameter": 20.0, "depth": 12.6 }, + { "thread": "M14x1.5", "diameter": 24.0, "depth": 14.6 }, + { "thread": "M16x1.5", "diameter": 26.0, "depth": 16.6 }, + { "thread": "M18x1.5", "diameter": 30.0, "depth": 18.6 }, + { "thread": "M18x2.0", "diameter": 30.0, "depth": 18.6 }, + { "thread": "M20x1.5", "diameter": 33.0, "depth": 20.6 }, + { "thread": "M20x2.0", "diameter": 33.0, "depth": 20.6 }, + { "thread": "M22x1.5", "diameter": 36.0, "depth": 22.8 }, + { "thread": "M22x2.0", "diameter": 36.0, "depth": 22.8 }, + { "thread": "M24x2.0", "diameter": 40.0, "depth": 24.8 }, + { "thread": "M30x2.0", "diameter": 50.0, "depth": 31.0 }, + { "thread": "M33x2.0", "diameter": 54.0, "depth": 34.0 }, + { "thread": "M36x3.0", "diameter": 58.0, "depth": 37.0 }, + { "thread": "M42x3.0", "diameter": 69.0, "depth": 43.0 }, + { "thread": "M48x3.0", "diameter": 78.0, "depth": 49.0 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso4762.json b/src/Mod/PartDesign/Resources/Hole/iso4762.json index 3adc79d9d5..67a675577d 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso4762.json +++ b/src/Mod/PartDesign/Resources/Hole/iso4762.json @@ -3,29 +3,29 @@ "cut_type": "counterbore", "thread_type": "metric", "data": [ - { "thread": "M1.6", "diameter": 3.5, "depth": 1.7 }, - { "thread": "M2", "diameter": 4.3, "depth": 2.1 }, - { "thread": "M2.5", "diameter": 5.0, "depth": 3.0 }, - { "thread": "M3", "diameter": 6.0, "depth": 3.4 }, - { "thread": "M3.5", "diameter": 6.5, "depth": 3.9 }, - { "thread": "M4", "diameter": 8.0, "depth": 4.4 }, - { "thread": "M5", "diameter": 10.0, "depth": 5.4 }, - { "thread": "M6", "diameter": 11.0, "depth": 6.4 }, - { "thread": "M8", "diameter": 15.0, "depth": 8.6 }, - { "thread": "M10", "diameter": 18.0, "depth": 10.6 }, - { "thread": "M12", "diameter": 20.0, "depth": 12.6 }, - { "thread": "M14", "diameter": 24.0, "depth": 14.6 }, - { "thread": "M16", "diameter": 26.0, "depth": 16.6 }, - { "thread": "M18", "diameter": 30.0, "depth": 18.6 }, - { "thread": "M20", "diameter": 33.0, "depth": 20.6 }, - { "thread": "M22", "diameter": 36.0, "depth": 22.8 }, - { "thread": "M24", "diameter": 40.0, "depth": 24.8 }, - { "thread": "M30", "diameter": 50.0, "depth": 31.0 }, - { "thread": "M33", "diameter": 54.0, "depth": 34.0 }, - { "thread": "M36", "diameter": 58.0, "depth": 37.0 }, - { "thread": "M42", "diameter": 69.0, "depth": 43.0 }, - { "thread": "M48", "diameter": 78.0, "depth": 49.0 }, - { "thread": "M54", "diameter": 90.0, "depth": 55.0 }, - { "thread": "M64", "diameter": 103.0, "depth": 65.0 } + { "thread": "M1.6x0.35", "diameter": 3.5, "depth": 1.7 }, + { "thread": "M2x0.4", "diameter": 4.3, "depth": 2.1 }, + { "thread": "M2.5x0.45", "diameter": 5.0, "depth": 3.0 }, + { "thread": "M3x0.5", "diameter": 6.0, "depth": 3.4 }, + { "thread": "M3.5x0.6", "diameter": 6.5, "depth": 3.9 }, + { "thread": "M4x0.7", "diameter": 8.0, "depth": 4.4 }, + { "thread": "M5x0.8", "diameter": 10.0, "depth": 5.4 }, + { "thread": "M6x1.0", "diameter": 11.0, "depth": 6.4 }, + { "thread": "M8x1.25", "diameter": 15.0, "depth": 8.6 }, + { "thread": "M10x1.5", "diameter": 18.0, "depth": 10.6 }, + { "thread": "M12x1.75", "diameter": 20.0, "depth": 12.6 }, + { "thread": "M14x2.0", "diameter": 24.0, "depth": 14.6 }, + { "thread": "M16x2.0", "diameter": 26.0, "depth": 16.6 }, + { "thread": "M18x2.5", "diameter": 30.0, "depth": 18.6 }, + { "thread": "M20x2.5", "diameter": 33.0, "depth": 20.6 }, + { "thread": "M22x2.5", "diameter": 36.0, "depth": 22.8 }, + { "thread": "M24x3.0", "diameter": 40.0, "depth": 24.8 }, + { "thread": "M30x3.5", "diameter": 50.0, "depth": 31.0 }, + { "thread": "M33x3.5", "diameter": 54.0, "depth": 34.0 }, + { "thread": "M36x4.0", "diameter": 58.0, "depth": 37.0 }, + { "thread": "M42x4.5", "diameter": 69.0, "depth": 43.0 }, + { "thread": "M48x5.0", "diameter": 78.0, "depth": 49.0 }, + { "thread": "M56x5.5", "diameter": 90.0, "depth": 57.0 }, + { "thread": "M64x6.0", "diameter": 103.0, "depth": 65.0 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso4762_7089.json b/src/Mod/PartDesign/Resources/Hole/iso4762_7089.json index f47f54e378..7e5080b27d 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso4762_7089.json +++ b/src/Mod/PartDesign/Resources/Hole/iso4762_7089.json @@ -3,25 +3,25 @@ "cut_type": "counterbore", "thread_type": "metric", "data": [ - { "thread": "M2", "diameter": 6.0, "depth": 2.4 }, - { "thread": "M2.5","diameter": 7.0, "depth": 3.5 }, - { "thread": "M3", "diameter": 9.0, "depth": 3.9 }, - { "thread": "M3.5","diameter": 9.0, "depth": 4.4 }, - { "thread": "M4", "diameter": 10.0, "depth": 5.2 }, - { "thread": "M5", "diameter": 13.0, "depth": 6.4 }, - { "thread": "M6", "diameter": 15.0, "depth": 8.0 }, - { "thread": "M8", "diameter": 18.0, "depth": 10.2 }, - { "thread": "M10", "diameter": 24.0, "depth": 12.6 }, - { "thread": "M12", "diameter": 26.0, "depth": 15.1 }, - { "thread": "M14", "diameter": 30.0, "depth": 17.1 }, - { "thread": "M16", "diameter": 33.0, "depth": 16.6 }, - { "thread": "M18", "diameter": 36.0, "depth": 21.6 }, - { "thread": "M20", "diameter": 40.0, "depth": 23.6 }, - { "thread": "M22", "diameter": 43.0, "depth": 25.8 }, - { "thread": "M24", "diameter": 48.0, "depth": 29.8 }, - { "thread": "M27", "diameter": 54.0, "depth": 35.0 }, - { "thread": "M30", "diameter": 61.0, "depth": 38.0 }, - { "thread": "M33", "diameter": 63.0, "depth": 41.0 }, - { "thread": "M36", "diameter": 69.0, "depth": 42.0 } + { "thread": "M2x0.4", "diameter": 6.0, "depth": 2.4 }, + { "thread": "M2.5x0.45","diameter": 7.0, "depth": 3.5 }, + { "thread": "M3x0.5", "diameter": 9.0, "depth": 3.9 }, + { "thread": "M3.5x0.6", "diameter": 9.0, "depth": 4.4 }, + { "thread": "M4x0.7", "diameter": 10.0, "depth": 5.2 }, + { "thread": "M5x0.8", "diameter": 13.0, "depth": 6.4 }, + { "thread": "M6x1.0", "diameter": 15.0, "depth": 8.0 }, + { "thread": "M8x1.25", "diameter": 18.0, "depth": 10.2 }, + { "thread": "M10x1.5", "diameter": 24.0, "depth": 12.6 }, + { "thread": "M12x1.75", "diameter": 26.0, "depth": 15.1 }, + { "thread": "M14x2.0", "diameter": 30.0, "depth": 17.1 }, + { "thread": "M16x2.0", "diameter": 33.0, "depth": 16.6 }, + { "thread": "M18x2.5", "diameter": 36.0, "depth": 21.6 }, + { "thread": "M20x2.5", "diameter": 40.0, "depth": 23.6 }, + { "thread": "M22x2.5", "diameter": 43.0, "depth": 25.8 }, + { "thread": "M24x3.0", "diameter": 48.0, "depth": 29.8 }, + { "thread": "M27x3.0", "diameter": 54.0, "depth": 35.0 }, + { "thread": "M30x3.5", "diameter": 61.0, "depth": 38.0 }, + { "thread": "M33x3.5", "diameter": 63.0, "depth": 41.0 }, + { "thread": "M36x4.0", "diameter": 69.0, "depth": 42.0 } ] } diff --git a/src/Mod/PartDesign/Resources/Hole/iso7046.json b/src/Mod/PartDesign/Resources/Hole/iso7046.json index ec227e1893..9adc88dba1 100644 --- a/src/Mod/PartDesign/Resources/Hole/iso7046.json +++ b/src/Mod/PartDesign/Resources/Hole/iso7046.json @@ -4,15 +4,15 @@ "thread_type": "metric", "angle": 90, "data": [ - { "thread": "M1.6", "diameter": 3.6 }, - { "thread": "M2", "diameter": 4.4 }, - { "thread": "M2.5", "diameter": 5.5 }, - { "thread": "M3", "diameter": 6.3 }, - { "thread": "M3.5", "diameter": 8.2 }, - { "thread": "M4", "diameter": 9.4 }, - { "thread": "M5", "diameter": 10.4 }, - { "thread": "M6", "diameter": 12.6 }, - { "thread": "M8", "diameter": 17.3 }, - { "thread": "M10", "diameter": 20.0 } + { "thread": "M1.6x0.35", "diameter": 3.6 }, + { "thread": "M2x0.4", "diameter": 4.4 }, + { "thread": "M2.5x0.45", "diameter": 5.5 }, + { "thread": "M3x0.5", "diameter": 6.3 }, + { "thread": "M3.5x0.6", "diameter": 8.2 }, + { "thread": "M4x0.7", "diameter": 9.4 }, + { "thread": "M5x0.8", "diameter": 10.4 }, + { "thread": "M6x1.0", "diameter": 12.6 }, + { "thread": "M8x1.25", "diameter": 17.3 }, + { "thread": "M10x1.5", "diameter": 20.0 } ] }