LinuxCNC Features - a kind of NGCGUI

More
05 Mar 2015 15:18 #56495 by turbospeedskater
Hi Fern,

yesterday I found something to check and improve (if you have not already done in your new version):

I found out, that a program (the saved xml-file) can not be used on another machine,
if the location of features.py and the subroutines folder is different on both machines.

Background:
I have my milling machines with LinuxCNC package installed from the CD/DVD.
There I have installed the features.py etc. to /home/<user>/bin/Features....
On my office machines (where it is nicer to sit and write software/GCode/etc),
I have installed LinuxCNC from source. There I have installed features.py to
/home/<user>/src/Features/...
When I write a "program.xml" on my office machine, and try to open it with features.py
on my machine shop computer, then it will not work. I think, there are absolute paths
inside the "program.xml" and that will not work on another machine with different
install locations....

BTW: I am waiting for you to finish everything, and then we can talk about the subroutines.
In the meantime I have written some "universal G-Code" that can be easy used to make
pockets, holes and discs with different geometry with minimum adjustments needed.
That may be used as a base for all subroutines to have the internal gcode structure
being the same except the geometry information itself.

Also I think I will do some german translation for the interface if somebody wants that.
I personally prefer english, but may be there are some user who prefer german.

So a question to the world: Is there anyone who wants german interface???
And maybe a german manual?

best regards,

Martin

Please Log in or Create an account to join the conversation.

More
05 Mar 2015 19:38 #56499 by Nick

I am waiting for you to finish everything, and then we can talk about the subroutines.
In the meantime I have written some "universal G-Code" that can be easy used to make
pockets, holes and discs with different geometry with minimum adjustments needed.


The very important thing for the machining is Penetration angle.
Some mills cannot penetrate material straight down and have to do it angled to the surface - so we will have a zig-zag, saw or spiral trajectory...
I do not know how is it called in English.

See the screenshots - there's a line which connects every layer and it's not vertical.
Attachments:

Please Log in or Create an account to join the conversation.

More
05 Mar 2015 20:20 #56501 by turbospeedskater
Hi Nick,

that is one thing you can adjust with a parameter in my "universal GCode" .

Either you can go down in one place before you do the nect circle, or you can go down while doing the next circle.
Same is for pockets: You can adjust with a flag if you want to step out (for clearing the inner space) on one position,
or if you go out during the next circle.

Also adjustable via flags is, if you want to make a hole, a pocket, or a disc. SO you have to write everything for
geometry handling only once.

My idea behind was, to separate the handling of where to go down and/ or out and if the inner space should be cleared or not
from doing the geometrycal things (e.g. if we do a circle or a rectangle or whatever).
That is not 100% possile in GCode, but at least I have only 3 parts in the GCode (two suberotines and one embedded part),
where the geometry is important. The rest of the GCode is allways identical, no matter what kind of geometry has to be milled.

I will use that as a base for all of my milling subroutines (or features if we talk about his project).

I have to do some more testing, but that is nearly done. Then I will post the code here with some kind of description.

best regards,

Martin.

Please Log in or Create an account to join the conversation.

More
10 Mar 2015 20:39 - 10 Mar 2015 20:43 #56617 by FernV
Hi Martin,
Hi Nick

I found out, that a program (the saved xml-file) can not be used on another machine,
if the location of features.py and the subroutines folder is different on both machines.

I think, there are absolute paths
inside the "program.xml" and that will not work on another machine with different
install locations....

You are right, absolute path is not a good idea. I think every file should be relative to Features root folder.
I suggest you first verify your ini files, the calls to "include" or "include_once".
Btw, I recommend "include_once" unless you want to disallow the program to execute by including twice the
same file/subroutine

...I have written some "universal G-Code" that can be easy used to make
pockets, holes and discs with different geometry with minimum adjustments needed.
That may be used as a base for all subroutines to have the internal gcode structure
being the same except the geometry information itself.

Excellent. All code/snippets should be re-usable.

Also I think I will do some german translation for the interface if somebody wants that.
I personally prefer english, but may be there are some user who prefer german.

So a question to the world: Is there anyone who wants german interface???
And maybe a german manual?

I would answer that it should be available. I already made a menu option to export strings for translation.
So anyone could easily translate the application with/without their ini file,
then submit their work to be included in the distribution

The application itself has about 200 strings to translate. You could start with 'gedit' to translate most lines
then finish with 'poedit'. Poedit will check that everything is right and when you save your work,
it will create the '.mo' language file used by the application

The very important thing for the machining is Penetration angle.
Some mills cannot penetrate material straight down and have to do it angled to the surface - so we will have a zig-zag, saw or spiral trajectory...
I do not know how is it called in English.

Thanks for clarifying this, I had no idea what this was about.
To make it intuitive, I think you should use a combo with options like : "Plunge while moving to X,Y" OR "Plunge first then move to X,Y"
I think the first option should be the default.

Next screenshot will show spinButtons and comboBoxes used IN the treeview.
I will also do checkButtons but at first sight I prefer the use of a comboBox, the options list make it more intuitive

... My idea behind was, to separate the handling of where to go down and/ or out and if the inner space should be cleared or not
from doing the geometrycal things (e.g. if we do a circle or a rectangle or whatever).
That is not 100% possile in GCode, but at least I have only 3 parts in the GCode (two suberotines and one embedded part),
where the geometry is important. The rest of the GCode is allways identical, no matter what kind of geometry has to be milled.

I will use that as a base for all of my milling subroutines (or features if we talk about his project).

Have you looked at ngcgui_lib/utilitysubs files ? Specialy entry.ngc, line.ngc, dir.ngc and move.ngc
We want to have re-usable code so a good idea is to start from there. Mentionned files do a perfect job


Best Regards
Fern
Last edit: 10 Mar 2015 20:43 by FernV.

Please Log in or Create an account to join the conversation.

More
12 Mar 2015 10:08 #56725 by FernV
Hi,

Here are my screen shots with the widgets in the treeview









Best Regards

Fern
Attachments:

Please Log in or Create an account to join the conversation.

More
12 Mar 2015 17:14 #56735 by andypugh
An off-topic question that relates to a project of my own....

Your widget icons are really pretty. How do you define them? Are they individual svg / png files, or are they somehow defined in the code?

Glade is XML. SVG is XML. It seems sensible that you would be able to embed SVG data in a Glade file, but if that is possible I haven't seen it.

Please Log in or Create an account to join the conversation.

More
12 Mar 2015 20:41 #56741 by Nick

Here are my screen shots with the widgets in the treeview

Nice!
Are those subsections --General-- --Add d flat--- are collapseable?
Aren't they to much for every subroutine?

An off-topic question that relates to a project of my own....
Your widget icons are really pretty. How do you define them? Are they individual svg / png files, or are they somehow defined in the code?

There's an svg file containing all icons and a script to make pngs any size you want.
Take a look at icons.svg and create_icons.py.
github.com/cnc-club/linuxcnc-features

Please Log in or Create an account to join the conversation.

More
12 Mar 2015 20:44 - 12 Mar 2015 21:10 #56742 by FernV
Hi Andy,

Icons were drawn in Inkscape and exported individually. This is the work of Nick, not mine.

Download Features form github.com/cnc-club/linuxcnc-features and you will find all the informations in create_icons.py and icons.svg

Also, visit github.com/cnc-club/linuxcnc-features

Sorry, this is faq.pygtk.org/index.py?req=show&file=faq08.010.htp

Regards
Fern
Last edit: 12 Mar 2015 21:10 by FernV.

Please Log in or Create an account to join the conversation.

More
12 Mar 2015 20:49 - 13 Mar 2015 19:30 #56743 by FernV
Hi Nick,

No, those headers are not collapsable.

Simply add :

[PARAM_H1]
type = header
value name = <b>--- General ---</b>

that is all.
IMHO it helps readability

Regards
Fern
Last edit: 13 Mar 2015 19:30 by FernV.

Please Log in or Create an account to join the conversation.

More
12 Mar 2015 20:54 #56744 by FernV
Hi Nick again

I am presently ironing out everything (beta testing) and hope it will be good enough to upload to github within 2 weeks

Regards
Fern

Please Log in or Create an account to join the conversation.

Time to create page: 0.661 seconds
Powered by Kunena Forum