Initial Implementation DRO Resolution
- Added concept of "machine precision" to control Decimal Places in DRO and Jog Spinners
- Added new PopupMenu Sub Menu to allow user to change decimal places.
- Updated DRO Controls to update their decimal places
- Updated StepSizeSpinner control's to all use
This is based on: https://github.com/winder/Universal-G-Code-Sender/issues/1491
What controller are you using that supports more than three decimals?
Even with a Step size of 800 per mm you are unlikely to need that precision, when dealing in metric.
When converting from Inches to MM and back then there is a rounding error which can change the values and this is what I am concerned about here.
5 decimal places is enough to have 1mm convert successfully to inches and back.
Too me as that is used to work in metric this got really confusing.
The smallest unit of change that the controller can report is 0.001 mm. So with the option to have five decimals will guarantee a lot of support questions from metric users. I don't think that this option should be available when using metric.
Having the option to add more precision when using imperial units makes sense. The prerequisite must however be that the controller is set to report in metric which not all controllers are. Otherwise this will cause confusion to imperial users too as they wouldn't see any changes below three decimals in the DRO.
The jog command generation needs to be changed to allow more precision. Otherwise the length of the jog command will become zero for small imperial jogging. It could be as easy as changing the the Utils.formatter here:
https://github.com/winder/Universal-G-Code-Sender/blob/master/ugs-core/src/com/willwinder/universalgcodesender/gcode/util/GcodeUtils.java#L63C45-L63C54
The controllers that I know of does not support decimal feed rates, so I suggest that the rate field only shows as an integer. The step size range should also allow stepping down to the number of decimals:
I have some concerns about making the StepSize-spinner dependant on the BackendAPI. I'll write them up in some other comments, I am however out of time... =(
I decided to put the new options in the Backend since the "seperate step sizes" option was already there and it felt like other view only options could be join it.
I had to have a crash course in imperial after moving to America, and honestly it feels like having "x / y " style of input field which maintains the fractions is the best option for imperial. ( 1 / 4 , 1 / 64 are both more readable than 0.25 and 0.015625 )
All of the review comments seem sensible and I will have some time to work on this tomorrow after work so please let me know of any other review comments you may have.