Generating G Code from MDI history log
31 Mar 2012 16:18 - 31 Mar 2012 16:21 #18889
by ArcEye
Replied by ArcEye on topic Re:Generating G Code from MDI history log
Hi,
'To build a better mousetrap' ( or just do the same thing differently for the sake of it! )
I decided to take a different tack and added some functionality which hopefully will come in useful for other things too.
In the unknown but definitely irregularly spaced holes, each requiring multiple drilling operations, scenario, it works thus.
Manually jog to each hole position in turn and when aligned press pyvcp button [Mark Co-ordinates].
This will save the current co-ords to a file /tmp/cords.txt. Repeat for each hole.
Clear the MDI history and enter the g code commands necessary to drill a single hole (either for real or in fresh air).
Last command needs to be a movement to a Safe Z height.
In ~/emc2/ngc there should be 2 files header.ngc and footer.ngc. These contain the standard preparatory and terminating g code for your operations.
The header can contain the spindle start up, speed and coolant commands followed by a move to Safe Z, to save having this all in MDI history and repeating each hole.
Pressing the pyvcp [Generate] button creates a file consisting of header, move to first co-ords, mdi commands for operation, move to next co-ords, operation ... etc until all co-ords used and finally footer.
The engine behind the file creation is a C++ QT3 program I called 'splice' which takes all the file names as command line arguments and splices them together to make the final g code file. (this could be a bash script or python prog. I just find it easier to think in C / C++)
[Mark Co-ordinates] button is linked to halui.mdi-command.0 ,which calls <writecords> a g code subroutine to get co-ords, then calls M152 to write them to file.
[Generate] button is linked to halui.mdi-command.1, which calls M153, which calls splice with all the relevant file names as arguments
Screen capture 1 shows MDI window with code for one hole and trace where hole co-ords have been captured.
Screen capture 2 (next post) shows resulting plot from generated file.
Overall just demonstrates the power and flexibility of both LinuxCNC and Linux itself, using a combination of HAL, g code, user M codes and a binary to achieve a degree of automation.
I think I may be building upon the co-ordinate capture at some point in the future to do basic 'teach' routines.
Feel free to 'borrow with pride' if any of it appeals.
regards
'To build a better mousetrap' ( or just do the same thing differently for the sake of it! )
I decided to take a different tack and added some functionality which hopefully will come in useful for other things too.
In the unknown but definitely irregularly spaced holes, each requiring multiple drilling operations, scenario, it works thus.
Manually jog to each hole position in turn and when aligned press pyvcp button [Mark Co-ordinates].
This will save the current co-ords to a file /tmp/cords.txt. Repeat for each hole.
Clear the MDI history and enter the g code commands necessary to drill a single hole (either for real or in fresh air).
Last command needs to be a movement to a Safe Z height.
In ~/emc2/ngc there should be 2 files header.ngc and footer.ngc. These contain the standard preparatory and terminating g code for your operations.
The header can contain the spindle start up, speed and coolant commands followed by a move to Safe Z, to save having this all in MDI history and repeating each hole.
Pressing the pyvcp [Generate] button creates a file consisting of header, move to first co-ords, mdi commands for operation, move to next co-ords, operation ... etc until all co-ords used and finally footer.
The engine behind the file creation is a C++ QT3 program I called 'splice' which takes all the file names as command line arguments and splices them together to make the final g code file. (this could be a bash script or python prog. I just find it easier to think in C / C++)
[Mark Co-ordinates] button is linked to halui.mdi-command.0 ,which calls <writecords> a g code subroutine to get co-ords, then calls M152 to write them to file.
[Generate] button is linked to halui.mdi-command.1, which calls M153, which calls splice with all the relevant file names as arguments
Screen capture 1 shows MDI window with code for one hole and trace where hole co-ords have been captured.
Screen capture 2 (next post) shows resulting plot from generated file.
Overall just demonstrates the power and flexibility of both LinuxCNC and Linux itself, using a combination of HAL, g code, user M codes and a binary to achieve a degree of automation.
I think I may be building upon the co-ordinate capture at some point in the future to do basic 'teach' routines.
Feel free to 'borrow with pride' if any of it appeals.
regards
Last edit: 31 Mar 2012 16:21 by ArcEye.
The following user(s) said Thank You: susam
Please Log in or Create an account to join the conversation.
31 Mar 2012 16:22 #18890
by ArcEye
Replied by ArcEye on topic Re:Generating G Code from MDI history log
Please Log in or Create an account to join the conversation.
04 Mar 2013 19:44 #30828
by susam
Replied by susam on topic Re:Generating G Code from MDI history log
Hi,
I am quite new to linuxCNC. I was looking for a way to record jog positions. Somewhat similar to what you have mentioned. However, I am unable to use the solution you provided. When I press the "Mark Co-ordinates" or "Generate" buttons, nothing happens. No .txt file is generated in the temp folder etc. It will be of great help if you could provide with a more detailed step by step guide to use this.
Thanks a lot!
I am quite new to linuxCNC. I was looking for a way to record jog positions. Somewhat similar to what you have mentioned. However, I am unable to use the solution you provided. When I press the "Mark Co-ordinates" or "Generate" buttons, nothing happens. No .txt file is generated in the temp folder etc. It will be of great help if you could provide with a more detailed step by step guide to use this.
Thanks a lot!
Please Log in or Create an account to join the conversation.
04 Mar 2013 20:43 - 04 Mar 2013 21:00 #30830
by BigJohnT
Replied by BigJohnT on topic Re:Generating G Code from MDI history log
The changes_to.ini has POSTGUI_HALFILE = custom_postgui.hal listed under [DISPLAY] and it should be in the [HAL] section.
The sub writecoords.ngc calls M122 and I don't see that file in the zip.
The M153 file has what looks like some hard coded directories to ~emc2/ngc/header.ngc etc. I assume that needs to be changed to where the files are...
John
The sub writecoords.ngc calls M122 and I don't see that file in the zip.
The M153 file has what looks like some hard coded directories to ~emc2/ngc/header.ngc etc. I assume that needs to be changed to where the files are...
John
Last edit: 04 Mar 2013 21:00 by BigJohnT.
Please Log in or Create an account to join the conversation.
04 Mar 2013 20:52 #30831
by susam
Replied by susam on topic Re:Generating G Code from MDI history log
The changes_to.ini has POSTGUI_HALFILE = custom_postgui.hal listed under [DISPLAY] and it should be in the [HAL] section.
- It is under [HAL] section too. The error I get is:
" Unable to open file <writecords> "
- It is under [HAL] section too. The error I get is:
" Unable to open file <writecords> "
Please Log in or Create an account to join the conversation.
04 Mar 2013 21:05 #30832
by BigJohnT
Replied by BigJohnT on topic Re:Generating G Code from MDI history log
I created a directory called splice and placed all the files in there. I changed the ini to point to that location.
I edited the writecords.ngc file and changed M122 to M152.
John
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
SUBROUTINE_PATH = /home/john/linuxcnc/splice
USER_M_PATH = /home/john/linuxcnc/splice
I edited the writecords.ngc file and changed M122 to M152.
John
Please Log in or Create an account to join the conversation.
04 Mar 2013 21:10 - 04 Mar 2013 21:11 #30833
by BigJohnT
Replied by BigJohnT on topic Re:Generating G Code from MDI history log
Running M153 I get splice: command not found... so I assume that needs to be copied to a bin or changed to ./splice...
That works now to change the paths to the header and footer files...
John
That works now to change the paths to the header and footer files...
John
Last edit: 04 Mar 2013 21:11 by BigJohnT.
Please Log in or Create an account to join the conversation.
04 Mar 2013 21:13 #30834
by BigJohnT
Replied by BigJohnT on topic Re:Generating G Code from MDI history log
I changed the M153 file to:
and it now runs... now to find the output file...
John
#!/bin/bash
./splice header.ngc footer.ngc /tmp/cords.txt ~/.axis_mdi_history /tmp/op.ngc
exit 0
and it now runs... now to find the output file...
John
Please Log in or Create an account to join the conversation.
04 Mar 2013 21:16 - 04 Mar 2013 21:19 #30835
by BigJohnT
Replied by BigJohnT on topic Re:Generating G Code from MDI history log
Ok, the last parameter is the output file so set it to the location and name you want.
For some reason the generate button does not work yet but running ./M153 from a terminal does.
John
For some reason the generate button does not work yet but running ./M153 from a terminal does.
John
Last edit: 04 Mar 2013 21:19 by BigJohnT.
Please Log in or Create an account to join the conversation.
04 Mar 2013 21:51 #30836
by susam
Replied by susam on topic Re:Generating G Code from MDI history log
Thanks John. I did it according to your instructions. However, not when I want to launch the linuxCNC stepconfig does created, it gives and error and doesn't launch. I guess I still have some issues with the .ini file.
Please Log in or Create an account to join the conversation.
Time to create page: 0.091 seconds