@@ -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 }
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user