LinuxCNC Features - a kind of NGCGUI

More
01 Jul 2015 07:15 - 01 Jul 2015 07:21 #60297 by FernV
Hi,

I see you went head on and did what you need to do to really take full advantage of this version.

You do not mention any error message while I can not use gmoccapy on my home
computer (Debian Wheezy) without lots of errors. It really is unusable.

Please tell me more about your OS.

How can i change from default inches to default metric?


I saw your setup is metric. Am I right that mill config is what you use most ?

There is example/Swap units.xml to temporarily switch from inches to metric or metric to inches but I am sure this is not what you want.
My setup is inches and that is why everything is setup for inches.

Here how to change to metric :

(you may disable Auto-Refresh while doing this)

First edit your tool table to have metric diameter if not. It is where it gets the tool diameter when the tool is loaded,
you never enter diameter any other way.
  1. Select Utilities->Edit Defaults (this will open defaults.ngc in your editor)
  2. Change "G20 (inches)" to "G21 (metric)"
  3. Change #<_z_clear>, #<_ffeed>, #<_final_feed>, #<_vertical_feed>,
    #<_probe_feed>, #<_probe_latch>, #<_probe_latch_feed>, #<_probe_tip_dia>, #<_probe_depth>,
    #<_drill_feed>, #<_drill_retract>, #<_drill_q> to metric values
    (if you are not sure what it should be, you can change it any time later)
  4. You may also change #<_surface>, #<_depth> and #<_depth_step>
  5. Do not change anything else especially #<_units_*>
  6. Save the file
  7. Select Utilities->Reload Defaults
If Auto-Refresh is checked and depending on what you have loaded like Circle, Rectangles, etc
it is almost sure you will have errors

In the same way, change all values in each feature you use
  1. Select one feature in the treeview
  2. Select Utilities->Edit Current Feature (it will open in your editor)
  3. The values you will change will become the defaults when you select Add->"that option"
    In the params list, change the property 'value' to a metric value when type is not bool or combo,
    do not change when type is string if the value is a variable like #<_z> or #<_cut_depth>
  4. Save the file
  5. Select Utilities->Reload Defaults (it will load after the one that was selected with the values you just entered)
  6. After you changed the values to what you had before, you can remove the old feature

When complete, click on the Build button (this will restore Auto-Refresh)

This should not take you too much time and you will then have a very good knowledge of how it works

Best regards
Fern
Last edit: 01 Jul 2015 07:21 by FernV.
The following user(s) said Thank You: Nick, ctbenergy

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

More
01 Jul 2015 08:05 - 01 Jul 2015 10:56 #60300 by FernV

Hi Fernand,

How can i change from default inches to default metric?


I have done a metric option available on github.

Simply use mill-mm.ini or lathe-mm.ini

Regards
Fern
Last edit: 01 Jul 2015 10:56 by FernV.
The following user(s) said Thank You: Nick, ctbenergy

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

More
21 Jul 2015 21:55 #60798 by Nick
Hi Fernand!

Finally I've found time to take detailed look on your changes. It's really amazing! Wow!
So I've updated my github repo to your version.

I've made some minor changes:
1. Draw some icons :)
2. move all png's to graphics/images to make easier access to svg file
3. done some bug fix on features.
3.a Fix for arrays - we should not use G92.1 - thus we reject any offsets made by G92, change it to G92.2 and add G92.3 at the end.
3.b remove G92.1 from defaults
3.c major fix in get_offsets
O<get-offsets-if> IF [#5210 EQ 1]
#<_get_offsets_x> = [#[5201 + #5220 * 20] + #5211]



How do you create the catalogs and ini files?
Is there big difference between -mm and -inch versions?

4. Is it possible to use text in float/numbers widgets. I do use parametric Gcode so some times its much much easier to use #<d> instead of filling in diameter in each every 100 circle features...

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

More
28 Jul 2015 12:06 #60976 by FernV
Hi Nick,

Glad you like it.

I've made some minor changes:
1. Draw some icons :)

Excellent, I am really not good at drawing

2. move all png's to graphics/images to make easier access to svg file

Good idea

3. done some bug fix on features.
3.a Fix for arrays - we should not use G92.1 - thus we reject any offsets made by G92, change it to G92.2 and add G92.3 at the end.
3.b remove G92.1 from defaults
3.c major fix in get_offsets
O<get-offsets-if> IF [#5210 EQ 1]
#<_get_offsets_x> = [#[5201 + #5220 * 20] + #5211]

Thanks

How do you create the catalogs and ini files?

I do not understand what you want to know. Would you ask again please ?

Is there big difference between -mm and -inch versions?

Very little. Defaults.ngc uses "G21 (metric)" or "G20 (inches)". Also ALL values like #<_depth>, #<_depth_step>, etc are either metric or inches. Some values like #<_spindle_rpm> are the same and some others are boolean, either 0 or 1

In the ini files, values like diameter, length and width are set to make sense when displaying in the simulator. *.ngc files do for metric or inches

4. Is it possible to use text in float/numbers widgets. I do use parametric Gcode so some times its much much easier to use #<d> instead of filling in diameter in each every 100 circle features...

Not only is it possible but very easy to do by changing the data type. It can only be done in the treeview, either single view or the params treeview when using dual views. If you use widget box, switch to treeview by uncheching "Use Widet Box" in the "View" menu. Right click on the Param you want to change (only 'string', 'int' and 'float' can be changed, it makes no sense to change combos, bool or header types) and select 'String'. The value will be converted to string if possible and now you can use variables like #<d>. You can now revert to Widget Box if you want.

I do not have much time now but here is what I am working on : better shortcuts, add 'cut/copy/paste', some changes to Undo/Redo and created ini for Socket Head Capscrew recess and slots. Then I will have a better look at Drag and Drop even if it is not really necessary with the shortcuts that I allready created.

By the way, Nick, where are all your ini files ? I still am unable to make milldraw work on my computers but are other people using it with success ?

Best regards
Fern

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

More
28 Jul 2015 15:06 #60980 by Nick

How do you create the catalogs and ini files?

There are a lot of ini's. Some of them are pretty similar.
Have you written them manually or you might have used some "hack" to automate this procedure?

Not only is it possible but very easy to do by changing the data type. It can only be done in the treeview, either single view or the params treeview when using dual views. If you use widget box, switch to treeview by uncheching "Use Widet Box" in the "View" menu. Right click on the Param you want to change (only 'string', 'int' and 'float' can be changed, it makes no sense to change combos, bool or header types) and select 'String'. The value will be converted to string if possible and now you can use variables like #<d>. You can now revert to Widget Box if you want.

Now that if the Feature! Super cool :)!

By the way, Nick, where are all your ini files ?

In the previous version. I have totally replaced it by yours :). v1 link: github.com/cnc-club/linuxcnc-features/tree/v1

Milldraw is extremely experimental... I'm not sure that it's a good way to make the subroutines. To my mind it can be done by generating flat Gcode not my way with importing it line by line. Probably, it should be done in G91 (incremental mode) so we will be able to combine it with other features such are arrays.

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

More
29 Jul 2015 04:41 #61006 by FernV
Hi Nick,

I wrote ALL ini trying to be as consistent as possible, many times by copying one and changing required params for the purpose. I modified most many times to achieve this goal so people can use them easily and be productive very quickly. I wanted an interface that is simple and added tool_tips as clear as I could. I do not mean that it is perfect, this product can still be improved.

The case of ngc files is different since people do not have to know and understand how they work. Code is complex on many of them and almost impossible to understand for a beginner. I tested intensively to remove all bugs in them (hopefully).

People should just use ini and not worry how it works, as long as it does what it is suppose to do.

I have a polyline-arcs ini and ngc package on the way. It still needs work and when I am satisfied with the result, I will post it.

Regards
Fern

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

More
29 Jul 2015 13:25 #61009 by Nick
I've found that if I make subroutine for сircle it wont turn on the spindle, how do you think, where should we put M3/M5 (and probably M4 for CCW spindle rotation depending on the mill bit)?


By the way, I've added difining spindle speed and feed into tool change. There was parameters but they were not used in the ini.

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

More
30 Jul 2015 07:09 #61028 by FernV
Hi Nick,

I've found that if I make subroutine for сircle it wont turn on the spindle, how do you think, where should we put M3/M5 (and probably M4 for CCW spindle rotation depending on the mill bit)?

You need to do a tool change first and set parameters.

"Post action" is what happens after you change the tool and click OK : 'Pause' will pause linuxcnc until you click play again (this is usefull for spindle that is not controlled by linuxcnc, you do a manual start of the spindle then click play to continue) 'Pause then restart' is also used with manual spindle restart but you do not have to click play button, the pause will last 'Pause for' seconds. 'Auto restart' will start the spindle and continue automatically

'Use cooling' will do what it is supposed to do

M9 is used before tool change (do you really need M5 ?)

For M3 and M4, I would add this :

[PARAM_SPINDLE_DIR]
name = Spindle direction
type = combo
options = Clockwise=3:Counterclockwise=4
icon = cw-ccw.png
tool_tip = Select tool rotation
value = 3

and put in the order after speed
then change M3 in [CALL] to M#param_spindle_dir

Also delete these 2 lines that are not used anymore :
#<_tool_dia> = #5410
#<_tool_d> = #5410


By the way, I've added difining spindle speed and feed into tool change. There was parameters but they were not used in the ini.

You are right, they are not used in the ini but in the ngc files. Let's look at fv_circle.ngc

at line 120 and 121, it sets F#<_ffeed> and S#<_spindle_rpm>

starting at line 134, if you need to plunge down directly in the material without X or Y move, it will use F#<_vertical_feed>, then when cut step is reached, it will revert to F#<_ffeed>. When the cut depth is reached, it will use F#<_final_feed> and S#<_final_spindle_rpm> for a final loop.

The same steps are used in the other ngc's

Does this answer your question ?

Regards,
Fern

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

More
30 Jul 2015 14:03 #61033 by Nick
So 'Auto restart' will cause M3 after the tool change?
Is there any M05 in the end of the Gcode?
Probably we should put M03 M05 in the subroutines (i.e. at hte begining of the fv_circle M03/m04 and at the end m05 )... But I'm not sure about that...

Inside tool_change we do not define #<_spindle_rpm> just set S#param_speed and thats all, and in the circle we do S#<_spindle_rpm> which cause setting default speed.
I have not pulled my patch on that yet, it's on my machines computer.

S#param_speed
F#param_feed
 
 #<_final_feed> = #param_f_feed
 #<_final_spindle_rpm> = #param_f_speed
 #<_ffeed> = #param_feed
 #<_vertical_feed> = #param_v_feed
 #<_plunge_down> = #param_pen
 #<_depth_step> = #param_stp
 #<_plunge_ratio> = #param_pr
 #<_pocket_ratio> = #param_pkr

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

More
31 Jul 2015 05:47 #61058 by FernV
Hi Nick,

I woke up this morning wondering why I let that code (I added it when I replaced the DC motor for AC with DFV and was trying to configure it, the manual was a very bad translation from Chinese to English)

So, the following are not needed and should be removed :

[PARAM_ACT] ('Post action')
[PARAM_TP] ('Pause for')

these lines
o<#self_id-act> if [#param_act EQ 0]
M0
o<#self_id-act> elseif [#param_act EQ 1]
G4 P#param_tp
M#param_spindle_dir
o<#self_id-act> else (will auto-restart)
M#param_spindle_dir
o<#self_id-act> endif

should be replaced by
M#param_spindle_dir


About M5 and M9 at the end, I am not sure where it would be best to place it. Maybe in Task-Post Processing where we set where we want the spindle to stop at the end ? This could be a True/False option. Or like others do, use a post amble file that is included at the end of to_gcode() ? This file could be editable just like defaults.ngc. Or at the end of to_gcode() before M2, like "\nM5 M9 M2" ? People would not have a choice then ? What do you think would be best ?

Regards
Fern

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

Time to create page: 0.200 seconds
Powered by Kunena Forum