Merge pull request #21552 from alfrix/fixup_hole

PD: Fixup hole
This commit is contained in:
Benjamin Nauck
2025-05-27 15:00:13 +02:00
committed by GitHub
14 changed files with 241 additions and 199 deletions

View File

@@ -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 }
{

View File

@@ -239,6 +239,8 @@ private:
void addCutType(const CutDimensionSet& dimensions);
void updateHoleCutParams();
void calculateAndSetCounterbore();
void calculateAndSetCountersink();
std::optional<double> determineDiameter() const;
void updateDiameterParam();
void updateThreadDepthParam();

View File

@@ -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);

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}

View File

@@ -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 }
]
}