Thanks for the patch. Unfortunately still some issues are there.
Ok
Bug, the property Interpreter.SaveVars is private, not exposed publiclyExpose Interpreter.SaveVars to save the GCode Interpreter Variables to disk which include fixture and global offsets.
OkExpose CoordMotion.RapidParamsDirty to force refresh of Rapid axis parameters from KFLOP/Kogna
Bug, the property DoRapidsAsFeeds is private, not exposed publicly
Expose DoRapidsAsFeeds which breaks down Rapids into small segments which is necessary for non-linear kinematics so that Rapids follow a straight line in CAD Space (which is curved in actuator space).
KM_Axis Velocity and Acceleration seems to be in inches only (see point 3)Fix Issues with KM_Axis and KM_AxisGroup:
1. Velocity and Acceleration will be in 'Units' (inches or mm) and represent the values for Independent motions, Jogging, and G0 Rapids.
KM_Axis Jerk seems to be in inches only (see point 3)2. Jerk will be added to be complete and will be in 'Units' as well.
OK, the boolean CPU_is_mm is not used as I mentioned in point 1 and 23. When set these values will be written to KFLOP/Kogna multiplied by the CPU (Counts/per unit)
Ok4. 2 new Parameters CoordVelocity and CoordAccel will be added for Coordinated Motion and be in 'Units'
Ok5. Changed KM_AxisGroup property name from Velocity to FeedRate
This new boolean CPU_is_mm gives me problems when set to true.6. A new Boolean, CPU_is_mm will be added to indicate if Units are mm, otherwise Units are Inches, which will be used within EnableGroup to set the MotionParameters in inches appropriately
It seems that the positions (individual moves or Gcode) are multiplied by 25.4 and feedrates in Gcode interpreter are divided by 25.4
Not easy for me to identify the relationship but some mm<>inches conversions seems confused..
My actual working solution:
1/ set everything to units (not think about mm or inches, even if those values are more relevant to mm)
CountsPerUnit10000
Velocity 150
Acceleration 1400
Jerk 1400
CPU_is_mm = False
2/ force KM_Controller.CoordMotion.Interpreter.SetupParams.LengthUnits = KMotion_dotNet.CANON_UNITS.CANON_UNITS_INCHES
it can work but a G21 (mm mode) in program would give big troubles.
Regards
Frederic