Use unit conversion when changing feedrates in the tools table of the job edit panel.

if the user enters a valid velocity quantity it will be used,
Otherwize if the user enters a unitless value the default velocity unit will be used,
Otherwise error.
This commit is contained in:
Itai Nahshon
2017-10-09 02:47:55 +03:00
parent d2f50247ff
commit 8d839b81ad

View File

@@ -752,6 +752,18 @@ class TaskPanel:
except:
pass
item.setText("%s%g" % ('+' if tc.SpindleDir == 'Forward' else '-', tc.SpindleSpeed))
elif 'HorizFeed' == prop or 'VertFeed' == prop:
vUnit = FreeCAD.Units.Quantity(1, FreeCAD.Units.Velocity).getUserPreferred()[2]
try:
val = FreeCAD.Units.Quantity(item.text())
if FreeCAD.Units.Velocity == val.Unit:
setattr(tc, prop, val)
elif FreeCAD.Units.Unit() == val.Unit:
val = FreeCAD.Units.Quantity(item.text()+vUnit);
setattr(tc, prop, val)
except:
pass
item.setText("%g" % getattr(tc, prop).getValueAs(vUnit))
else:
try:
val = FreeCAD.Units.Quantity(item.text())