Arbitrary unit conversions
It can be useful to convert real-world units to and from Zaber native units without sending a command to the device. An example may be checking what 1 cm is in native units for the currently connected device.
The example below shows how to use the library for this.
const nativeUnits = axis.settings.convertToNativeUnits('pos', 1, Length.cm);
console.log('1 cm to native units:', nativeUnits);
const cm = axis.settings.convertFromNativeUnits('pos', 10000, Length.cm);
console.log('10000 native units to cm:', cm);
native_units = axis.settings.convert_to_native_units("pos", 1, Units.LENGTH_CENTIMETRES)
print("1 cm to native units:", native_units)
cm = axis.settings.convert_from_native_units("pos", 10000, Units.LENGTH_CENTIMETRES)
print("10000 native units to cm:", cm)
var nativeUnits = axis.Settings.ConvertToNativeUnits("pos", 1, Units.Length_Centimetres);
Console.WriteLine("1 cm to native units: {0}", nativeUnits);
var cm = axis.Settings.ConvertFromNativeUnits("pos", 10000, Units.Length_Centimetres);
Console.WriteLine("10000 native units to cm: {0}", cm);
double nativeUnits = axis.getSettings().convertToNativeUnits("pos", 1, Units.LENGTH_CENTIMETRES);
System.out.println("1 cm to native units: " + nativeUnits);
double cm = axis.getSettings().convertFromNativeUnits("pos", 10000, Units.LENGTH_CENTIMETRES);
System.out.println("10000 native units to cm: " + cm);
nativeUnits = axis.getSettings().convertToNativeUnits('pos', 1, Units.LENGTH_CENTIMETRES);
fprintf('1 cm to native units: %d.\n', nativeUnits);
cm = axis.getSettings().convertFromNativeUnits('pos', 10000, Units.LENGTH_CENTIMETRES);
fprintf('10000 native units to cm: %d.\n', cm);
double nativeUnits = axis.getSettings().convertToNativeUnits("pos", 1, Units::LENGTH_CENTIMETRES);
std::cout << "1 cm to native units: " << nativeUnits << std::endl;
double cm = axis.getSettings().convertFromNativeUnits("pos", 10000, Units::LENGTH_CENTIMETRES);
std::cout << "10000 native units to cm: " << cm << std::endl;
The first argument of the method specifies the nature of the unit by referencing the name of the setting that uses it. The table below provides typical settings you can use for converting units.
Property | Setting | Linear Device Units Example | Rotary Device Units Example |
---|---|---|---|
Position | pos | Units.LENGTH_CENTIMETRES | Units.ANGLE_DEGREES |
Velocity | maxspeed | Units.VELOCITY_MILLIMETRES_PER_SECOND | Units.ANGULAR_VELOCITY_DEGREES_PER_SECOND |
Acceleration | accel | Units.ACCELERATION_MILLIMETRES_PER_SECOND_SQUARED | Units.ANGULAR_ACCELERATION_DEGREES_PER_SECOND_SQUARED |
The converted value will be specific to the axis, and you should use them only for that axis.
Reference
To read more about native units, refer to: