diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp
index ba337b8872..3152015f76 100644
--- a/src/Gui/View3DInventorViewer.cpp
+++ b/src/Gui/View3DInventorViewer.cpp
@@ -92,6 +92,7 @@
#include
#include
#include
+#include
#include "View3DInventorViewer.h"
#include "ViewProviderDocumentObject.h"
@@ -1545,35 +1546,18 @@ void View3DInventorViewer::printDimension()
else if (dimX < dimY)
fHeight *= ((float)dimY)/((float)dimX);
- float fLog = float(log10(fWidth)), fFac;
- int nExp = int(fLog);
- QString unit;
+ // Translate screen units into user's unit schema
+ Base::Quantity qWidth(Base::Quantity::MilliMetre);
+ Base::Quantity qHeight(Base::Quantity::MilliMetre);
+ qWidth.setValue(fWidth);
+ qHeight.setValue(fHeight);
+ QString wStr = Base::UnitsApi::schemaTranslate(qWidth);
+ QString hStr = Base::UnitsApi::schemaTranslate(qHeight);
- if (nExp >= 6) {
- fFac = 1.0e+6f;
- unit = QLatin1String("km");
- }
- else if (nExp >= 3) {
- fFac = 1.0e+3f;
- unit = QLatin1String("m");
- }
- else if ((nExp >= 0) && (fLog > 0.0f)) {
- fFac = 1.0e+0f;
- unit = QLatin1String("mm");
- }
- else if (nExp >= -3) {
- fFac = 1.0e-3f;
- unit = QLatin1String("um");
- }
- else {
- fFac = 1.0e-6f;
- unit = QLatin1String("nm");
- }
-
- QString dim = QString::fromLatin1("%1 x %2 %3")
- .arg(fWidth / fFac,0,'f',2)
- .arg(fHeight / fFac,0,'f',2)
- .arg(unit);
+ // Create final string and update window
+ QString dim = QString::fromLatin1("%1 x %2")
+ .arg(wStr)
+ .arg(hStr);
getMainWindow()->setPaneText(2, dim);
}
else