Gentlemen, My current attention to the project is driven by my desire to have 5 axis cutter diameter compensation in LinuxCNC. I am now 67 (soon to be 68) years old and have retired. I sold out of MPM in 2013. I had a shop for 5 years. I closed the shop in November of 2019, sold most everything at an auction in January of 2020. The 5 year lease on the shop expired in February of 2020. I did nothing for a few months. This quickly turned into a very boring existence. I have been working on a couple of CAD projects and went to work (contract) for a shop in town to help put together a 100 inch vertical Summit lathe. Since the middle of October 2020 I have been watching one of my grandsons. He was six weeks old then and is now 7 months old. I have him 4 days a week. He is just now at the age where he is beginning to not require my constant attention every minute he is with me so I have some time to think about this cutter diameter project. In my perusal of the project to see where I need to change/insert things to have 5 axis cutter diameter compensation I have seen a number of (I think) needed changes. If the changes look small and easy I may try to do them for the experience. I did one project like that. I saw the reference to G17, G18 and G19 are respective XY, XZ and YZ in LinuxCNC. In most other controls the reference is XY, ZX and YZ. In my system now the reference matches most other controls. I chose this because the function of these changes is so minimal I don't believe I could have broken anything. I changed a few variable names (CANON_PLANE_XZ to CANON_PLANE_ZX, etc) and successfully compiled so I think I have my system clean. I don't plan to ask for these changes to be incorporated into LinuxCNC as this is such a minor issue. I just wanted to do this to see if I could get my grep skills working enough to be able to complete this small project. I have the algorithm for 5 axis cutter diameter compensation in the style of a machine like the Blue Cincinnati at MPM working in NCL. That machine has an A and B head on the Z axis. I believe this can be incorporated in a general way so as to be applicable to any 5 axis machine and maybe even used for 2 axis lathes and 3 (and 4) axis mills. One thing I have seen is I believe cutter diameter compensation can be implemented in such a way as to greatly simplify the handling through LinuxCNC. Handling legacy programs would be no problem so current functionality would not be affected. On going CDC would be handled in all orientation with no problem and very easily. I have the logic figured out. My problem is expressing my project in C/C++ so others can follow it easily. The Cinci at MPM (now in Tulsa) has 5 axis tool length compensation and full 5 axis geometry compensation. I showed my project to Jeff and Chris. Their reaction was amazing (surprise). They had no desire to spend the time necessary to understand how I had accomplished it. I had about 70 lines of variables and math. Jeff's comment was "inscrutable". I have to agree. At that time I was very familiar with it. Now when I look at it inscrutable is very appropriate.
Circular interpolation is also an area to be simplified. G17, G18 and G19 can be eliminated. They would have to stay so legacy programs would still function. I would implement G02/G03 as follows: G02/G03 X Y Z I J K F would circle the tool around a vector perpendicular to a plane described by the IJ values combined with the XY start point values to establish the circle center. The perpendicular vector (the circle interpolation vector) would be established by the K value in relation to the center point. This would not need to be aligned with the tool axis vector but could be. Also, G02/G03 Y Z X J K I F and G02/G03 Z X Y K I J F would be usable. (I think) I haven't worked on this at all. I just saw that when looking at the current code. Also, I would like to see polar interpolation. Also, I would like to see spiral interpolation. Also, I would like G68/G69 (coordinate system rotation). The Fanuc 15MB allowed you to use two consecutive G68 commands to rotate the working plane to any orientation. All programming commands then functioned at that angle as if the part had been rotated to the XY plane. This was on the 5 axis XYZBC Viper bridge mill at MPM. B and C are a two axis head on the end of the Z axis ram. A little tricky and seldom used but sometimes useful. Whew - what a word salad. thanks Stuart -- Addressee is the intended audience. If you are not the addressee then my consent is not given for you to read this email furthermore it is my wish you would close this without saving or reading, and cease and desist from saving or opening my private correspondence. Thank you for honoring my wish. _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users