From 634cbf156639e3f4224080b4292f1ae095f7c34a Mon Sep 17 00:00:00 2001 From: Itai Nahshon Date: Fri, 16 Jun 2017 14:54:18 +0300 Subject: [PATCH] Add Units schemaTranslate for Unit::Velocity. Independent of scale, use only mm/min or in/min because it is compatible with GCODE feed rate units. (My use case is definition os feed-rates in PathLoadTool.py). --- src/Base/UnitsSchemaCentimeters.cpp | 4 ++++ src/Base/UnitsSchemaImperial1.cpp | 12 ++++++++++++ src/Base/UnitsSchemaInternal.cpp | 4 ++++ src/Base/UnitsSchemaMKS.cpp | 4 ++++ 4 files changed, 24 insertions(+) diff --git a/src/Base/UnitsSchemaCentimeters.cpp b/src/Base/UnitsSchemaCentimeters.cpp index aeac683cca..28bc969445 100644 --- a/src/Base/UnitsSchemaCentimeters.cpp +++ b/src/Base/UnitsSchemaCentimeters.cpp @@ -62,6 +62,10 @@ QString UnitsSchemaCentimeters::schemaTranslate(const Base::Quantity& quant, dou unitString = QString::fromLatin1("W/m^2"); factor = 1.0; } + else if (unit == Unit::Velocity) { + unitString = QString::fromLatin1("mm/min"); + factor = 1.0/60; + } else { // default action for all cases without special treatment: unitString = quant.getUnit().getString(); diff --git a/src/Base/UnitsSchemaImperial1.cpp b/src/Base/UnitsSchemaImperial1.cpp index 644d1cedcd..a7bc7c919f 100644 --- a/src/Base/UnitsSchemaImperial1.cpp +++ b/src/Base/UnitsSchemaImperial1.cpp @@ -127,6 +127,10 @@ QString UnitsSchemaImperial1::schemaTranslate(const Quantity &quant, double &fac factor = 0.145038; } } + else if (unit == Unit::Velocity) { + unitString = QString::fromLatin1("in/min"); + factor = 25.4/60; + } else{ // default action for all cases without special treatment: unitString = quant.getUnit().getString(); @@ -188,6 +192,10 @@ QString UnitsSchemaImperialDecimal::schemaTranslate(const Base::Quantity& quant, factor = 0.145038; } } + else if (unit == Unit::Velocity) { + unitString = QString::fromLatin1("in/min"); + factor = 25.4/60; + } else { // default action for all cases without special treatment: unitString = quant.getUnit().getString(); @@ -266,6 +274,10 @@ QString UnitsSchemaImperialBuilding::schemaTranslate(const Quantity &quant, doub unitString = QString::fromLatin1("cuft"); factor = 28316846.592; } + else if (unit == Unit::Velocity) { + unitString = QString::fromLatin1("in/min"); + factor = 25.4/60; + } else { unitString = quant.getUnit().getString(); factor = 1.0; diff --git a/src/Base/UnitsSchemaInternal.cpp b/src/Base/UnitsSchemaInternal.cpp index 09a7e285d1..e84dc2452d 100644 --- a/src/Base/UnitsSchemaInternal.cpp +++ b/src/Base/UnitsSchemaInternal.cpp @@ -163,6 +163,10 @@ QString UnitsSchemaInternal::schemaTranslate(const Quantity &quant, double &fact unitString = QString::fromLatin1("W/m^2"); factor = 1.0; } + else if (unit == Unit::Velocity) { + unitString = QString::fromLatin1("mm/min"); + factor = 1.0/60; + } else { // default action for all cases without special treatment: unitString = quant.getUnit().getString(); diff --git a/src/Base/UnitsSchemaMKS.cpp b/src/Base/UnitsSchemaMKS.cpp index 1f37b71a60..2d6a5fbbae 100644 --- a/src/Base/UnitsSchemaMKS.cpp +++ b/src/Base/UnitsSchemaMKS.cpp @@ -164,6 +164,10 @@ QString UnitsSchemaMKS::schemaTranslate(const Quantity &quant, double &factor, Q unitString = QString::fromLatin1("W/m^2"); factor = 1.0; } + else if (unit == Unit::Velocity) { + unitString = QString::fromLatin1("mm/min"); + factor = 1.0/60; + } else { // default action for all cases without special treatment: unitString = quant.getUnit().getString();