I build CSE-simulation model for OLD CNC-machine, with no-name CNC.
All motions must be in incremental mode. No problem for linear G01, but for G02 and G03 must be:
G02 X Y Z I J K, where (I,J) (I,K) (J,K) is UNSIGNED (always +) INCREMENTAL vector from Start Point of Arc to Center.
How I can adjust my MCF\CCF for G02\03? I think - I must to change a sign for IJK Value depends QUADRANT of Arc. How I can know which Quadrant my arc ?
And one additional question:
How I can output onto screen any double value as message?
I can use Assert command with MINOR parameter, but - how I can "sprintf" double variable to string???
Solved! Go to Solution.
It is a bit hard for me to understand how IJ, IK or JK can be Unsigned when it is Start Point of Arc to Center, unless the assumption is that arcs are always less than 180 degrees.
In that case i would calculate the radius based on the vector, and pass that as the radius together with then end point.
Look at the CSE command : SetCircleParameter
Regarding your second question:
"Real number = " + STRING(RealNumberVariable)
Of course, I forget say - all arcs divided into quadrants, so each arc < 90 deg.
But your idea working!
I have attached small video, you can see exotic NC-program with positive IJ.
Motions looks nice, but....
I build this model for NC-program verification and checking, for example - check for correct values for I, J. And when I use classical method IJK as incremental vector from start to center WITH SIGN - CSE simulator can detect error when radius in start point not equal radius at target point.
If I use RADIUS method - I calculate R=SQRT(I*I+J*J) - I cannot detect this error.
In any case - your advise help me. KUDO.