diff --git a/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp b/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp
index 71a1ad29d9..a4fb1168b0 100644
--- a/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp
+++ b/src/Mod/Sketcher/Gui/CommandSketcherBSpline.cpp
@@ -32,6 +32,7 @@
#endif
#include
+#include
#include
#include
#include
@@ -979,7 +980,7 @@ CmdSketcherInsertKnot::CmdSketcherInsertKnot()
sAppModule = "Sketcher";
sGroup = "Sketcher";
sMenuText = QT_TR_NOOP("Insert knot");
- sToolTipText = QT_TR_NOOP("Inserts knot at given parameter with the given multiplicity. If a knot already exists at that parameter, it's multiplicity is increased by the value.");
+ sToolTipText = QT_TR_NOOP("Inserts knot at given parameter. If a knot already exists at that parameter, it's multiplicity is increased by one.");
sWhatsThis = "Sketcher_BSplineInsertKnot";
sStatusTip = sToolTipText;
sPixmap = "Sketcher_BSplineInsertKnot";
@@ -1039,7 +1040,7 @@ void CmdSketcherInsertKnot::activated(int iMsg)
const auto& mults = bsp->getMultiplicities();
QInputDialog knotDialog(Gui::getMainWindow());
knotDialog.setInputMode(QInputDialog::DoubleInput);
- knotDialog.setDoubleDecimals(8);
+ knotDialog.setDoubleDecimals(Base::UnitsApi::getDecimals());
knotDialog.setWindowTitle(QObject::tr("Knot parameter"));
// use values from `knots` and `weights` and insert in label
std::stringstream knotList;
@@ -1055,6 +1056,8 @@ void CmdSketcherInsertKnot::activated(int iMsg)
.arg(QString::fromUtf8(multList.str().c_str())));
// use an appropriate middle value from `knots`
knotDialog.setDoubleValue(0.5 * (knots.front() + knots.back()));
+ // set step size dependent on the knot range
+ knotDialog.setDoubleStep(0.001 * (knots.back() - knots.front()));
// use min/max from `knots`
knotDialog.setDoubleRange(knots.front(), knots.back());