- Posts: 3
- Thank you received: 0
Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
1 year 2 months ago #332989
by smv
Hi everyone!
I’ve recently been working on integrating g-code++ (a lightweight g-code interpreter inspired by the rs274ngc NIST g-code specification) into the LinuxCNC ecosystem. Before I submit a pull request, I’d like to get some community feedback so as to ensure that it fits well and is aligned with the project's direction.
Link to my original repo: github.com/s-mv/gcode-plus-plus
Link to the LinuxCNC fork: github.com/s-mv/linuxcnc/tree/s-mv/sterp (s-mv/sterp branch)
Demo video: What I’ve Done
Best regards,
s-mv (Shreerang Vaidya)
Link to my original repo: github.com/s-mv/gcode-plus-plus
Link to the LinuxCNC fork: github.com/s-mv/linuxcnc/tree/s-mv/sterp (s-mv/sterp branch)
Demo video: What I’ve Done
- Integrated g-code++ into the LinuxCNC environment.
- Verified it works for 3-axis machines on LinuxCNC.
- Documented the integration process and architecture.
- Set up an ANTLR4-based parser for g-code interpretation.
- Control flow: Support for
loops,Code:whileloops,Code:forstatements, imports,Code:if, andCode:continueCode:break.
- g-code compatibility: Supports standard G-codes like G0, G1, G2, G3, G20, G21, G54, M3, M4, etc.
Best regards,
s-mv (Shreerang Vaidya)
Please Log in to join the conversation.
1 year 2 months ago #333055
by andypugh
Replied by andypugh on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
Does this exist as an alternative plug-in interpreter for LinuxCNC?
LinuxCNC already supports this, though the only alternative that currently exists is called canterp and just passes canonincal commands straight through.
I don't know how much traction you will get with a new G-code dialect, not even well-supported alternatives to G-code like STEP-NC have made much of a dent.
If it's a plug-in interpreter for existing LinuxCNC then I would support it's inclusion in principle.
Are you committed to supporting it for the next 20 years or so?
LinuxCNC already supports this, though the only alternative that currently exists is called canterp and just passes canonincal commands straight through.
I don't know how much traction you will get with a new G-code dialect, not even well-supported alternatives to G-code like STEP-NC have made much of a dent.
If it's a plug-in interpreter for existing LinuxCNC then I would support it's inclusion in principle.
Are you committed to supporting it for the next 20 years or so?
Please Log in to join the conversation.
1 year 2 months ago #333088
by pippin88
Replied by pippin88 on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
Please tell us the advantages of gcode++
Please Log in to join the conversation.
1 year 2 months ago #333278
by smv
Replied by smv on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
Right now gcode++ extends g-code by introducing for loops, while/do-while loops, as well as imports (currently working on test cases for the same for the latest LinuxCNC release).
The inclusion of these control structures and import statements could greatly improve readability and code reusability.
It also ships with an in-house REPL for dry-running programs that can be used outside of LinuxCNC and has richer logging - I intend to add a simple debugger to it possibly in the future.
The inclusion of these control structures and import statements could greatly improve readability and code reusability.
It also ships with an in-house REPL for dry-running programs that can be used outside of LinuxCNC and has richer logging - I intend to add a simple debugger to it possibly in the future.
Please Log in to join the conversation.
1 year 2 months ago #333279
by smv
Replied by smv on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
Thanks a lot for reaching out!
Yes, in the current fork, it lives under src/emc/sterp as a plug-in interpreter.
In fact, I modeled it after studying how canterp works.
I understand that it might not gain much traction.
I'd love to maintain and extend the project as long as life permits me! Currently, I’m just an undergraduate, so I can’t promise a fixed 20-year roadmap just yet, but I've built sterp/gcode++ with maintainability in mind.
I might also extend it in the near future and add more preliminary unit tests.
Yes, in the current fork, it lives under src/emc/sterp as a plug-in interpreter.
In fact, I modeled it after studying how canterp works.
I understand that it might not gain much traction.
I'd love to maintain and extend the project as long as life permits me! Currently, I’m just an undergraduate, so I can’t promise a fixed 20-year roadmap just yet, but I've built sterp/gcode++ with maintainability in mind.
I might also extend it in the near future and add more preliminary unit tests.
Please Log in to join the conversation.
1 year 2 months ago #333671
by andypugh
linuxcnc.org/docs/stable/html/gcode/o-code.html
Replied by andypugh on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
You know that LinuxCNC G-code already has do/while loops?Right now gcode++ extends g-code by introducing for loops, while/do-while loops, as well as imports (currently working on test cases for the same for the latest LinuxCNC release).
linuxcnc.org/docs/stable/html/gcode/o-code.html
Please Log in to join the conversation.
1 year 2 months ago #333710
by cmorley
Replied by cmorley on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
What do you mean "imports" ?
I would think that a more modern approach to parsing could be a good thing to get more people interested in working on the code.
Chris
I would think that a more modern approach to parsing could be a good thing to get more people interested in working on the code.
Chris
Please Log in to join the conversation.
1 year 2 months ago #333751
by Grotius
Replied by Grotius on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
In the source i see you how you handle expressions.
I shoukd use a lib like: mu parser to handle expressions.
This also handles and updates gcode variables for you.
It wont run (nested) while loops. This while loop algo you can design yourself.
in future i love to see gcode dialect parsing,
given a json config file.
Then hopely the interpreter is also able to read fanuc and kuka robot language and produce the motion outputs for it. An extended version off straight_feed xyz...
would look like straigt_feed j1 j2 ....
Mu parser example
I shoukd use a lib like: mu parser to handle expressions.
This also handles and updates gcode variables for you.
It wont run (nested) while loops. This while loop algo you can design yourself.
in future i love to see gcode dialect parsing,
given a json config file.
Then hopely the interpreter is also able to read fanuc and kuka robot language and produce the motion outputs for it. An extended version off straight_feed xyz...
would look like straigt_feed j1 j2 ....
Mu parser example
Please Log in to join the conversation.
- fsabbatini
- Offline
- Senior Member
-
Less
More
- Posts: 45
- Thank you received: 1
8 months 1 week ago #343304
by fsabbatini
Replied by fsabbatini on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
Hello Hello! Good morning to everyone!
Today I bring a thing from my treasure box. Reading this post i remember about 5 years i made my own robot (somewhere deep down, buried in this forum there are pictures and videos of it working..). So i said why not publishing the parser here!
Here it goes:
Basically i have been using tons of different robot brand:
FANUC, KUKA, YASKAWA (MOTOMAN), ABB, COMAU, CHINESE ONES (curiously lcnc based with jerk controlled tp), CHINESE ONES WITH KEBA CONTROLLER, etc.
The one i like the most is KUKA followed closely by ABB, both similar to pascal so i grab the manual and my experience in writing parsers and wrote (almost) the whole kuka KRL and made it compatible with linuxcnc interp plugin system.
it is named krlInterp
it consist in two parts:
ANTLR v4 parser, sources in c++ needs to be generated
krlInterpreter, just compile with linuxcnc source code (honestly i dont remember if some small modifications have to be made in linuxcnc src)
Links attached:
KRL ANTLR PARSER and
KRL INTERPRETER
Any doubts, here i am!
Best regrads
Franco
Today I bring a thing from my treasure box. Reading this post i remember about 5 years i made my own robot (somewhere deep down, buried in this forum there are pictures and videos of it working..). So i said why not publishing the parser here!
Here it goes:
Basically i have been using tons of different robot brand:
FANUC, KUKA, YASKAWA (MOTOMAN), ABB, COMAU, CHINESE ONES (curiously lcnc based with jerk controlled tp), CHINESE ONES WITH KEBA CONTROLLER, etc.
The one i like the most is KUKA followed closely by ABB, both similar to pascal so i grab the manual and my experience in writing parsers and wrote (almost) the whole kuka KRL and made it compatible with linuxcnc interp plugin system.
it is named krlInterp
it consist in two parts:
ANTLR v4 parser, sources in c++ needs to be generated
krlInterpreter, just compile with linuxcnc source code (honestly i dont remember if some small modifications have to be made in linuxcnc src)
Links attached:
KRL ANTLR PARSER and
KRL INTERPRETER
Any doubts, here i am!
Best regrads
Franco
Please Log in to join the conversation.
- tommylight
-
- Away
- Administrator
-
Less
More
- Posts: 22008
- Thank you received: 3
8 months 1 week ago #343322
by tommylight
Replied by tommylight on topic Request for Community Feedback on g-code++ (sterp) Integration with LinuxCNC
Thank you Franco,
Do you think it would be better to have this on a separate topic?
Either way, i have pinned this so it is easier to find, google has become utterly useless for searching anything if not very good at "google hacking".
Do you think it would be better to have this on a separate topic?
Either way, i have pinned this so it is easier to find, google has become utterly useless for searching anything if not very good at "google hacking".
Please Log in to join the conversation.
Time to create page: 0.236 seconds
