Discussion:
[Emc-developers] Moving "Simple G-Code Generators" to GitHub?
Nicholas Humfrey
2017-01-16 21:38:27 UTC
Permalink
Hello,

Do you think it would be a good idea to move the "Simple LinuxCNC G-Code
Generators Written in Python" to GitHub? I looked and couldn't find them
there already. Perhaps the python scripts and documentation could go in
their own repo?

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators

It would make it easier to download them all, track changes and accept
improvements via Pull Requests.

I would be happy to help perform the move, if it is a good idea.


nick.
Sebastian Kuzminsky
2017-01-16 23:32:28 UTC
Permalink
Post by Nicholas Humfrey
Do you think it would be a good idea to move the "Simple LinuxCNC G-Code
Generators Written in Python" to GitHub? I looked and couldn't find them
there already. Perhaps the python scripts and documentation could go in
their own repo?
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators
It would make it easier to download them all, track changes and accept
improvements via Pull Requests.
I would be happy to help perform the move, if it is a good idea.
nick.
I think that's a great idea, thanks for volunteering!
--
Sebastian Kuzminsky
Nicholas Humfrey
2017-01-17 10:32:08 UTC
Permalink
Post by Sebastian Kuzminsky
Post by Nicholas Humfrey
Do you think it would be a good idea to move the "Simple LinuxCNC G-Code
Generators Written in Python" to GitHub? I looked and couldn't find them
there already. Perhaps the python scripts and documentation could go in
their own repo?
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators
It would make it easier to download them all, track changes and accept
improvements via Pull Requests.
I would be happy to help perform the move, if it is a good idea.
nick.
I think that's a great idea, thanks for volunteering!
Great!

Shall I start off creating a repo in my own account and then move it to
the linuxcnc org later?


nick.
Sebastian Kuzminsky
2017-01-17 15:15:25 UTC
Permalink
Post by Nicholas Humfrey
Post by Sebastian Kuzminsky
Post by Nicholas Humfrey
Do you think it would be a good idea to move the "Simple LinuxCNC G-Code
Generators Written in Python" to GitHub? I looked and couldn't find them
there already. Perhaps the python scripts and documentation could go in
their own repo?
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators
It would make it easier to download them all, track changes and accept
improvements via Pull Requests.
I would be happy to help perform the move, if it is a good idea.
nick.
I think that's a great idea, thanks for volunteering!
Great!
Shall I start off creating a repo in my own account and then move it to
the linuxcnc org later?
That sounds good.

It looks to me like the code on that wiki page is mostly of the
"conversational programming" sort, where a GUI window asks the user to
poke & prod buttons and things to make some g-code. If so, it might fit
in the "wizards.git" repo we have at git.linuxcnc.org:

http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary

That repo has been sort of orphaned, perhaps eclipsed by things like
ngcgui and (maybe) NativeCAM.


I think there's room for a new open source project to unify all these
different implementations of the conversational programming concept that
people seem to like. Many of the LinuxCNC GUIs can make tabs from
external programs, so we have at least the beginning of a unified
interface from these conversational-programming GUIs to our regular
machine-control GUIs.

A developer who wanted to unify and merge the ideas from the different
conversational projects could do a lot of good for our ecosystem.
--
Sebastian Kuzminsky
Jon Elson
2017-01-17 16:41:06 UTC
Permalink
Post by Sebastian Kuzminsky
It looks to me like the code on that wiki page is mostly
of the "conversational programming" sort, where a GUI
window asks the user to poke & prod buttons and things to
make some g-code. If so, it might fit in the "wizards.git"
http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary
I have a bunch of these conversational programs, written in
c, for things like :
rectangular slot/pocket
trepan rectangular slot
trepan rectagular slot with ramp Z
trepan an oval (racetrack) cutout
hole/round pocket
trepan hole
trepan hole with ramp Z
thread mill
a circular pattern of holes
rectangular array of holes
random pattern of holes, taking coordinates from a file
cut circular groove, as for an O-ring

And, I've converted one of these to Python, but it was slow
going, as I'm not really up to speed on Python, yet.

Would these be appropriate?

Something else I worked on at the code fest was a bunch of
G-code snippets to run a touch probe to set coordinates of
workpiece corners. The last piece of this is a code to
measure a gauge block to establish the effective diameter of
the probe tip. (My Blum probe has a significant deflection
to trigger the probe, but it is supposed to be repeatable to
a couple micrometers. So, you can't mike the tip, you have
to measure an object of known size and then adjust a
correction factor to get the right dimension.)

Jon
Sebastian Kuzminsky
2017-01-17 16:50:45 UTC
Permalink
Post by Jon Elson
Post by Sebastian Kuzminsky
It looks to me like the code on that wiki page is mostly
of the "conversational programming" sort, where a GUI
window asks the user to poke & prod buttons and things to
make some g-code. If so, it might fit in the "wizards.git"
http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary
I have a bunch of these conversational programs, written in
rectangular slot/pocket
trepan rectangular slot
trepan rectagular slot with ramp Z
trepan an oval (racetrack) cutout
hole/round pocket
trepan hole
trepan hole with ramp Z
thread mill
a circular pattern of holes
rectangular array of holes
random pattern of holes, taking coordinates from a file
cut circular groove, as for an O-ring
And, I've converted one of these to Python, but it was slow
going, as I'm not really up to speed on Python, yet.
Would these be appropriate?
The difficulty with the consolidation/management project that Nicholas
proposed isn't so much in writing the different conversational wizards,
it's in getting a consistent look-and-feel and consistent behavior from
code contributed by different authors, and in adding all the wizards
that are useful and understandable, while still being choosy enough that
the good stuff doesn't get buried under an avalanche of personal one-offs.

I think of this as more of a manager/editor type of task rather than a
hacker/coder type of task.
--
Sebastian Kuzminsky
EBo
2017-01-17 16:57:15 UTC
Permalink
Post by Sebastian Kuzminsky
Post by Jon Elson
Post by Sebastian Kuzminsky
It looks to me like the code on that wiki page is mostly
of the "conversational programming" sort, where a GUI
window asks the user to poke & prod buttons and things to
make some g-code. If so, it might fit in the "wizards.git"
http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary
I have a bunch of these conversational programs, written in
rectangular slot/pocket
trepan rectangular slot
trepan rectagular slot with ramp Z
trepan an oval (racetrack) cutout
hole/round pocket
trepan hole
trepan hole with ramp Z
thread mill
a circular pattern of holes
rectangular array of holes
random pattern of holes, taking coordinates from a file
cut circular groove, as for an O-ring
And, I've converted one of these to Python, but it was slow
going, as I'm not really up to speed on Python, yet.
Would these be appropriate?
The difficulty with the consolidation/management project that
Nicholas
proposed isn't so much in writing the different conversational
wizards,
it's in getting a consistent look-and-feel and consistent behavior from
code contributed by different authors, and in adding all the wizards
that are useful and understandable, while still being choosy enough that
the good stuff doesn't get buried under an avalanche of personal one-offs.
I think of this as more of a manager/editor type of task rather than a
hacker/coder type of task.
Another way of handling it would be to give a template for code
standards, and separate all of the interfaces and set them up as
plugins. They you can do a voting thing for the good, the bad, and the
ugly...

EBo -
sam sokolik
2017-01-17 17:01:41 UTC
Permalink
Post by EBo
Post by Sebastian Kuzminsky
Post by Jon Elson
Post by Sebastian Kuzminsky
It looks to me like the code on that wiki page is mostly
of the "conversational programming" sort, where a GUI
window asks the user to poke & prod buttons and things to
make some g-code. If so, it might fit in the "wizards.git"
http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary
I have a bunch of these conversational programs, written in
rectangular slot/pocket
trepan rectangular slot
trepan rectagular slot with ramp Z
trepan an oval (racetrack) cutout
hole/round pocket
trepan hole
trepan hole with ramp Z
thread mill
a circular pattern of holes
rectangular array of holes
random pattern of holes, taking coordinates from a file
cut circular groove, as for an O-ring
And, I've converted one of these to Python, but it was slow
going, as I'm not really up to speed on Python, yet.
Would these be appropriate?
The difficulty with the consolidation/management project that
Nicholas
proposed isn't so much in writing the different conversational wizards,
it's in getting a consistent look-and-feel and consistent behavior from
code contributed by different authors, and in adding all the wizards
that are useful and understandable, while still being choosy enough that
the good stuff doesn't get buried under an avalanche of personal one-offs.
I think of this as more of a manager/editor type of task rather than a
hacker/coder type of task.
Another way of handling it would be to give a template for code
standards, and separate all of the interfaces and set them up as
plugins. They you can do a voting thing for the good, the bad, and the
ugly...
EBo -
Or make them fit something like native cam or ngcgui?

https://forum.linuxcnc.org/40-subroutines-and-ngcgui/31659-nativecam-is-features-renamed?limitstart=0
John Thornton
2017-01-17 17:36:38 UTC
Permalink
That makes sense to me.

JT
Post by sam sokolik
Or make them fit something like native cam or ngcgui?
EBo
2017-01-17 23:32:00 UTC
Permalink
Post by John Thornton
That makes sense to me.
JT
Post by sam sokolik
Or make them fit something like native cam or ngcgui?
That quote was not mine, but I am not objecting to it...

EBo --
Nicholas Humfrey
2017-01-17 23:05:56 UTC
Permalink
Post by Sebastian Kuzminsky
Post by Jon Elson
Post by Sebastian Kuzminsky
It looks to me like the code on that wiki page is mostly
of the "conversational programming" sort, where a GUI
window asks the user to poke & prod buttons and things to
make some g-code. If so, it might fit in the "wizards.git"
http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary
I have a bunch of these conversational programs, written in
rectangular slot/pocket
trepan rectangular slot
trepan rectagular slot with ramp Z
trepan an oval (racetrack) cutout
hole/round pocket
trepan hole
trepan hole with ramp Z
thread mill
a circular pattern of holes
rectangular array of holes
random pattern of holes, taking coordinates from a file
cut circular groove, as for an O-ring
And, I've converted one of these to Python, but it was slow
going, as I'm not really up to speed on Python, yet.
Would these be appropriate?
The difficulty with the consolidation/management project that Nicholas
proposed isn't so much in writing the different conversational wizards,
it's in getting a consistent look-and-feel and consistent behaviour
from
code contributed by different authors, and in adding all the wizards
that are useful and understandable, while still being choosy enough that
the good stuff doesn't get buried under an avalanche of personal one-offs.
I think of this as more of a manager/editor type of task rather than a
hacker/coder type of task.
Wow, that was a lot more replies that I was anticipating.

I will start by doing something fairly straight forward and just
archiving the python files in GitHub and making sure they are easy to
navigate and download. Hopefully it won't be too much and and will be at
least as good/better than the current Wiki page.

I do like that I can just generate some G-code on any machine that has
Python on it, without having to install lots of other stuff.

Will report back and see what people think...


nick.
Nicholas Humfrey
2017-01-22 12:21:34 UTC
Permalink
Post by Nicholas Humfrey
Post by Sebastian Kuzminsky
Post by Jon Elson
Post by Sebastian Kuzminsky
It looks to me like the code on that wiki page is mostly
of the "conversational programming" sort, where a GUI
window asks the user to poke & prod buttons and things to
make some g-code. If so, it might fit in the "wizards.git"
http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary
I have a bunch of these conversational programs, written in
rectangular slot/pocket
trepan rectangular slot
trepan rectagular slot with ramp Z
trepan an oval (racetrack) cutout
hole/round pocket
trepan hole
trepan hole with ramp Z
thread mill
a circular pattern of holes
rectangular array of holes
random pattern of holes, taking coordinates from a file
cut circular groove, as for an O-ring
And, I've converted one of these to Python, but it was slow
going, as I'm not really up to speed on Python, yet.
Would these be appropriate?
The difficulty with the consolidation/management project that Nicholas
proposed isn't so much in writing the different conversational wizards,
it's in getting a consistent look-and-feel and consistent behaviour
from
code contributed by different authors, and in adding all the wizards
that are useful and understandable, while still being choosy enough that
the good stuff doesn't get buried under an avalanche of personal one-offs.
I think of this as more of a manager/editor type of task rather than a
hacker/coder type of task.
Wow, that was a lot more replies that I was anticipating.
I will start by doing something fairly straight forward and just
archiving the python files in GitHub and making sure they are easy to
navigate and download. Hopefully it won't be too much and and will be at
least as good/better than the current Wiki page.
I do like that I can just generate some G-code on any machine that has
Python on it, without having to install lots of other stuff.
Will report back and see what people think...
nick.
It took a lot more work than I was anticipating but I have gathered it
all together into a Git repository:

https://github.com/njh/simple-gcode-generators

I decided to create a separate directory for each of the scripts, to
keep the README, script, screenshot and other files together. Where
there were multiple versions, I have checked in each version, so that
its history is preserved.


Would somebody be able to help with moving it to the github.com/linuxcnc
organisation?


Thanks!

nick.
EBo
2017-01-22 13:14:24 UTC
Permalink
Post by Nicholas Humfrey
...
It took a lot more work than I was anticipating but I have gathered it
https://github.com/njh/simple-gcode-generators
I decided to create a separate directory for each of the scripts, to
keep the README, script, screenshot and other files together. Where
there were multiple versions, I have checked in each version, so that
its history is preserved.
Would somebody be able to help with moving it to the
github.com/linuxcnc
organisation?
Thanks for all the hard work Nick!

EBo --
Nicholas Humfrey
2017-02-12 18:18:27 UTC
Permalink
Post by EBo
Post by Nicholas Humfrey
...
It took a lot more work than I was anticipating but I have gathered it
https://github.com/njh/simple-gcode-generators
I decided to create a separate directory for each of the scripts, to
keep the README, script, screenshot and other files together. Where
there were multiple versions, I have checked in each version, so that
its history is preserved.
Would somebody be able to help with moving it to the
github.com/linuxcnc
organisation?
Thanks for all the hard work Nick!
Jeff Epler helped get this moved here:
https://github.com/linuxcnc/simple-gcode-generators

Thanks Jeff!

It is possible to download a Zip of all the files, linked to from the
README.


nick.
Sebastian Kuzminsky
2017-02-12 18:20:57 UTC
Permalink
Post by Nicholas Humfrey
https://github.com/linuxcnc/simple-gcode-generators
Thanks Jeff!
It is possible to download a Zip of all the files, linked to from the
README.
This is great Nicholas, thanks for making it happen. And thanks for
replacing the old wiki pages with pointers to the git repo. This is
perfect.
--
Sebastian Kuzminsky
Gene Heskett
2017-01-17 20:10:15 UTC
Permalink
Post by Sebastian Kuzminsky
Post by Nicholas Humfrey
Post by Sebastian Kuzminsky
Post by Nicholas Humfrey
Do you think it would be a good idea to move the "Simple LinuxCNC
G-Code Generators Written in Python" to GitHub? I looked and
couldn't find them there already. Perhaps the python scripts and
documentation could go in their own repo?
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Ge
nerators
It would make it easier to download them all, track changes and
accept improvements via Pull Requests.
I would be happy to help perform the move, if it is a good idea.
nick.
I think that's a great idea, thanks for volunteering!
Great!
Shall I start off creating a repo in my own account and then move it
to the linuxcnc org later?
That sounds good.
It looks to me like the code on that wiki page is mostly of the
"conversational programming" sort, where a GUI window asks the user to
poke & prod buttons and things to make some g-code. If so, it might
http://git.linuxcnc.org/gitweb?p=wizards.git;a=summary
That repo has been sort of orphaned, perhaps eclipsed by things like
ngcgui and (maybe) NativeCAM.
First I have heard of it, thanks for mentioning it. Sounds handy so I
looked it up. Looks usable on the mills, but I get about halfway down
the readme page and lathes aren't supported yet. :( Twould be handy.
Post by Sebastian Kuzminsky
I think there's room for a new open source project to unify all these
different implementations of the conversational programming concept
that people seem to like. Many of the LinuxCNC GUIs can make tabs
from external programs, so we have at least the beginning of a unified
interface from these conversational-programming GUIs to our regular
machine-control GUIs.
A developer who wanted to unify and merge the ideas from the different
conversational projects could do a lot of good for our ecosystem.
Does this Native CAM not now have an active developer?

In any event, I have now spent about 4 hours chaseing CAM links.
Enjoyable, even comical reading.


Cheers, Gene Heskett
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
John Thornton
2017-01-17 20:23:38 UTC
Permalink
All of my lathe conversational subroutines are for use with ngcgui which
is a few lines in your ini file to add. The beauty of ngcgui is you can
concatenate each subroutine to make a complete part, for example I can
face off the material set Z0, drill, ream, tap, turn the od, chamfer the
leading edge, thread the od then part it off.

http://gnipsel.com/files/chnc/subroutines

drill, face, g76, id, ntp, od, part, profile radius, radius, tap, taper
id, taper od what more could you need?

JT
Post by Gene Heskett
First I have heard of it, thanks for mentioning it. Sounds handy so I
looked it up. Looks usable on the mills, but I get about halfway down
the readme page and lathes aren't supported yet.:( Twould be handy.
Nicklas Karlsson
2017-01-17 17:05:12 UTC
Permalink
Sounds likea a good idea, then they are collected somewhere. To include them in ordinary distribution is something different.

On Mon, 16 Jan 2017 21:38:27 +0000
Post by Nicholas Humfrey
Hello,
Do you think it would be a good idea to move the "Simple LinuxCNC G-Code
Generators Written in Python" to GitHub? I looked and couldn't find them
there already. Perhaps the python scripts and documentation could go in
their own repo?
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators
It would make it easier to download them all, track changes and accept
improvements via Pull Requests.
I would be happy to help perform the move, if it is a good idea.
nick.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Emc-developers mailing list
https://lists.sourceforge.net/lists/listinfo/emc-developers
John Thornton
2017-01-17 17:46:18 UTC
Permalink
IMHO a very few users know what a github is much less how to get
something from there. It seems to me that a much larger user base could
find these on the Forum or another menu choice at the linuxcnc.org main
page. The question at the moment is where is the best place? I could see
another catagory in GCode and Part Programs called something like Simple
G code Generators...

just my 2 cents

JT
Post by Nicholas Humfrey
Hello,
Do you think it would be a good idea to move the "Simple LinuxCNC G-Code
Generators Written in Python" to GitHub? I looked and couldn't find them
there already. Perhaps the python scripts and documentation could go in
their own repo?
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators
It would make it easier to download them all, track changes and accept
improvements via Pull Requests.
I would be happy to help perform the move, if it is a good idea.
nick.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Emc-developers mailing list
https://lists.sourceforge.net/lists/listinfo/emc-developers
Nicklas Karlsson
2017-01-17 18:19:00 UTC
Permalink
Post by John Thornton
IMHO a very few users know what a github is much less how to get
something from there.
It could be solved by a row showing which command to run with which parameters including the URL.
Post by John Thornton
It seems to me that a much larger user base could
find these on the Forum or another menu choice at the linuxcnc.org main
page.
I have seen git could provide web access and a link to the correct directory would make it simple to find the files.


I see a problem they never get collected or uploaded somewhere. For geda there is gedsymbols, they are collected per user which make it simple for the uploaders but a little bit harder for the user. I guess the solution is to upload them per user and automatically make the accessible per category at least as good as the uploaders succeed to agree on categorization. They will probably all be marked as expected to contain bugs or similar.


Nicklas Karlsson
Loading...