conversational input
30 Jun 2011 13:19 - 30 Jun 2011 13:35 #11003
by ArcEye
Replied by ArcEye on topic Re:conversational input
Hi John
I think what he is talking about is that if you use a sub twice, with 'Create Next Feature' it runs them one after another.
However the answer to this is to get rid of the NGCGUI_OPTIONS = nonew noremove line in your .ini file
You can then create a new instance of the subroutine, in which case ngcgui runs the subs in the order that you initialise them,
as intended
regards
I think what he is talking about is that if you use a sub twice, with 'Create Next Feature' it runs them one after another.
However the answer to this is to get rid of the NGCGUI_OPTIONS = nonew noremove line in your .ini file
You can then create a new instance of the subroutine, in which case ngcgui runs the subs in the order that you initialise them,
as intended
regards
Last edit: 30 Jun 2011 13:35 by ArcEye.
Please Log in or Create an account to join the conversation.
30 Jun 2011 15:48 #11008
by BigJohnT
Replied by BigJohnT on topic Re:conversational input
Ok, now I understand. Thanks for the info on that, I'll add that to the manual.
John
John
Please Log in or Create an account to join the conversation.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 183
- Thank you received: 5
30 Jun 2011 19:59 - 30 Jun 2011 20:13 #11032
by M4MazakUser
Replied by M4MazakUser on topic Re:conversational input
sounds excellent! i'll give it a try today.
thanks
just tried it, it throws a few pickles into the mix, but i'll work on it and see what happens....
it said it couldnt find some values etc...
thanks
just tried it, it throws a few pickles into the mix, but i'll work on it and see what happens....
it said it couldnt find some values etc...
Last edit: 30 Jun 2011 20:13 by M4MazakUser.
Please Log in or Create an account to join the conversation.
01 Jul 2011 07:06 #11037
by ArcEye
Yes there are some potential problems, something the second instance of the sub relies upon, could be changed by the first instance when that runs.
Replied by ArcEye on topic Re:conversational input
just tried it, it throws a few pickles into the mix
Yes there are some potential problems, something the second instance of the sub relies upon, could be changed by the first instance when that runs.
Please Log in or Create an account to join the conversation.
01 Jul 2011 15:02 - 01 Jul 2011 15:09 #11041
by dgarrett
Replied by dgarrett on topic Re:conversational input
It may help to know that you can also start with multiple
tabs for the same subroutine, for example:
...
NGCGUI_SUBFILE = /tmp/tmpngc/one.ngc
NGCGUI_SUBFILE = /tmp/tmpngc/two.ngc
NGCGUI_SUBFILE = /tmp/tmpngc/one.ngc
...
These tab pages will be named: "one", "two", and "one-1"
With this configuration, you could create multiple features for each tab
and then arrange the order of the tabs. If you order them
one-1, two, one
then all the features for "one-1" will be executed, then the features
for "two", then the features for "one"
Avoid the use of _globals within subroutines or use them with
much caution.
tabs for the same subroutine, for example:
...
NGCGUI_SUBFILE = /tmp/tmpngc/one.ngc
NGCGUI_SUBFILE = /tmp/tmpngc/two.ngc
NGCGUI_SUBFILE = /tmp/tmpngc/one.ngc
...
These tab pages will be named: "one", "two", and "one-1"
With this configuration, you could create multiple features for each tab
and then arrange the order of the tabs. If you order them
one-1, two, one
then all the features for "one-1" will be executed, then the features
for "two", then the features for "one"
Avoid the use of _globals within subroutines or use them with
much caution.
Last edit: 01 Jul 2011 15:09 by dgarrett.
Please Log in or Create an account to join the conversation.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 183
- Thank you received: 5
01 Jul 2011 19:07 #11045
by M4MazakUser
Replied by M4MazakUser on topic Re:conversational input
-which is why i will eventually have to come up with another gui, i have 16 tabs on my screen -Right now!
....and that is just for od cycles.....
....and that is just for od cycles.....
Please Log in or Create an account to join the conversation.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 183
- Thank you received: 5
18 Oct 2011 03:59 #14004
by M4MazakUser
Replied by M4MazakUser on topic Re:conversational input
following is a acme threading cycle for external/external threading, usung a squre sided grooving tool.
if not used with the "conversational cycles" i use, you will have to add a tool number input and drop the tool change code.
HAVE FUN!
(info: ACME threading with sq tool)
o<acme> sub
; some random notes
#<ToolNumber> = #1 (= 25 Tool Num)
#<Speed> = #2 (= 300 Rpm)
#<Thd_Dia> = #3 (= 25.0 Final Dia)
#<Drv_Dia> = #4 (= 30.0 Start Dia)
#<Pitch> = #5 (= 6.35 Pitch)
#<Thd_Angle> = #6 (= 29.0 Inc Angle)
#<Cut_Depth> = #7 (= 0.1 Cut Depth)
#<Tool_Width> = #8 (= 1.6 Tool Width)
#<z_start> = #9 (= 5.0 Z Start)
#<z_end> = #10 (= -15.0 Z End)
#<Coolant> = #11 (= 8 9 is off)
(LOGOPEN,AcmeLog)
; internal/external calc
O120 if [#<Thd_Dia> LT #<Drv_Dia>] ; External thread
#<Thd_Type> = 1
#<Thd_Height> = #<Drv_Dia> / 2] - [#<Thd_Dia> / 2 ; height of thd
#<Cut_Dia> = [#<Drv_Dia> - [#<Cut_Depth> * 2]]
#<Drv_Dia> = [#<Drv_Dia> + 0.2]
O120 else ; Internal Thread
#<Thd_Height> = #<Thd_Dia> / 2] - [#<Drv_Dia> / 2 ; height of thd
#<Thd_Type> = 0
#<Cut_Dia> = [#<Drv_Dia> + [#<Cut_Depth> * 2]]
#<Drv_Dia> = [#<Drv_Dia> - 0.2]
O120 endif
; do tool width error calc and depth ratio
#<Ratio_calc_1> = [#<Thd_Angle> / 2] ; half of thread included angle
#<Ratio> = tan[#<Ratio_calc_1>] ; tan value
(log,TanRatio = #<Ratio>)
#<Ratio_calc_2> = [#<Ratio> * #<Thd_Height>] ; width of 1 side relative to total depth.
#<Bottom_width> = [#<Pitch> - [#<Ratio_calc_2> * 2]/2]
O121 if [#<Tool_Width> GT #<Bottom_width>] ; tool is too wide
(MSG,Tool is too #<Tool_Width>Wide!)
(log,ToolWidth = #<Tool_Width>)
(log,BottomWidth = #<Bottom_width>)
M30
O121 else ; All is well!
O121 endif
; Tool change
O122 if [#<_Tool:Number> NE #<ToolNumber>]
; Change Tool
M09 ; coolant off
O123 if [#<_Tool:Number> LT 20] ; front turret
G00 Z#<_Frontchange:Z>
G00 X#<_Frontchange:X>
O123 else ; Rear turret
G00 Z#<_Rearchange:Z>
G00 X#<_Rearchange:X>
O123 endif
G49 ; cancel toolength offset
T#<ToolNumber> M06
G43 G7 G97 S#<Speed>
M03
M#<Coolant>
#<_Tool:Number> = #<ToolNumber>
O122 else ; No tool change -continue.
G43 G7 G97 S#<Speed>
M03
M#<Coolant>
O122 endif
; Toolpath stuff below here
O127 if [#<Thd_Type> EQ 1] ; Thread is external
o101 while [#<Cut_Dia> GT #<Thd_Dia>]
#<mod_Z_start> = [[#<Cut_Dia> - #<Thd_Dia>]/2]
#<mod_Z_start> = [#<mod_Z_start> - #<Thd_Height>]
#<mod_Z_start> = [#<mod_Z_start> * #<Ratio>]
G00 X#<Cut_Dia>
#<Mod_Z_point> = [#<z_start> + #<mod_Z_start>] ;modZstart is negative
Z#<Mod_Z_point>
(log,Zpoint #<mod_Z_point>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
(log,Zstart #<mod_Z_start>)
#<Current_Width> = #<Pitch> + [#<mod_Z_start> * 2/2]
(log,CurrentWidth = #<Current_Width>)
G00 X#<Cut_Dia>
#<Z_fin> = [[#<z_start> - #<Current_Width>] + #<Tool_Width>]
G01 Z#<Z_fin> F0.3
(log,Zfin #<Z_fin>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
#<Cut_Dia> = [#<Cut_Dia> - [#<Cut_Depth> * 2]]
O125 if [#<Cut_Dia> LT #<Thd_Dia>] ; maximum cut
#<Cut_Dia> = #<Thd_Dia>
O125 else
O125 endif
o101 endwhile
O127 else ; Thread is internal
o102 while [#<Cut_Dia> lt #<Thd_Dia>]
#<mod_Z_start> = [[#<Cut_Dia> - #<Thd_Dia>]/2]
#<mod_Z_start> = [#<mod_Z_start> - #<Thd_Height>]
#<mod_Z_start> = [#<mod_Z_start> * #<Ratio>]
G00 X#<Cut_Dia>
#<Mod_Z_point> = [#<z_start> + #<mod_Z_start>] ;modZstart is negative
Z#<Mod_Z_point>
(log,Zpoint #<mod_Z_point>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
(log,Zstart #<mod_Z_start>)
#<Current_Width> = #<Pitch> + [#<mod_Z_start> * 2/2]
(log,CurrentWidth = #<Current_Width>)
G00 X#<Cut_Dia>
#<Z_fin> = [[#<z_start> - #<Current_Width>] + #<Tool_Width>]
G01 Z#<Z_fin> F0.3
(log,Zfin #<Z_fin>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
#<Cut_Dia> = [#<Cut_Dia> - [#<Cut_Depth> * 2]]
O125 if [#<Cut_Dia> LT #<Thd_Dia>] ; maximum cut
#<Cut_Dia> = #<Thd_Dia>
O125 else
O125 endif
(log,CutDia = #<Cut_Dia>)
o102 endwhile
O127 endif
M09
(LOGCLOSE)
o<acme> endsub
if not used with the "conversational cycles" i use, you will have to add a tool number input and drop the tool change code.
HAVE FUN!
(info: ACME threading with sq tool)
o<acme> sub
; some random notes
#<ToolNumber> = #1 (= 25 Tool Num)
#<Speed> = #2 (= 300 Rpm)
#<Thd_Dia> = #3 (= 25.0 Final Dia)
#<Drv_Dia> = #4 (= 30.0 Start Dia)
#<Pitch> = #5 (= 6.35 Pitch)
#<Thd_Angle> = #6 (= 29.0 Inc Angle)
#<Cut_Depth> = #7 (= 0.1 Cut Depth)
#<Tool_Width> = #8 (= 1.6 Tool Width)
#<z_start> = #9 (= 5.0 Z Start)
#<z_end> = #10 (= -15.0 Z End)
#<Coolant> = #11 (= 8 9 is off)
(LOGOPEN,AcmeLog)
; internal/external calc
O120 if [#<Thd_Dia> LT #<Drv_Dia>] ; External thread
#<Thd_Type> = 1
#<Thd_Height> = #<Drv_Dia> / 2] - [#<Thd_Dia> / 2 ; height of thd
#<Cut_Dia> = [#<Drv_Dia> - [#<Cut_Depth> * 2]]
#<Drv_Dia> = [#<Drv_Dia> + 0.2]
O120 else ; Internal Thread
#<Thd_Height> = #<Thd_Dia> / 2] - [#<Drv_Dia> / 2 ; height of thd
#<Thd_Type> = 0
#<Cut_Dia> = [#<Drv_Dia> + [#<Cut_Depth> * 2]]
#<Drv_Dia> = [#<Drv_Dia> - 0.2]
O120 endif
; do tool width error calc and depth ratio
#<Ratio_calc_1> = [#<Thd_Angle> / 2] ; half of thread included angle
#<Ratio> = tan[#<Ratio_calc_1>] ; tan value
(log,TanRatio = #<Ratio>)
#<Ratio_calc_2> = [#<Ratio> * #<Thd_Height>] ; width of 1 side relative to total depth.
#<Bottom_width> = [#<Pitch> - [#<Ratio_calc_2> * 2]/2]
O121 if [#<Tool_Width> GT #<Bottom_width>] ; tool is too wide
(MSG,Tool is too #<Tool_Width>Wide!)
(log,ToolWidth = #<Tool_Width>)
(log,BottomWidth = #<Bottom_width>)
M30
O121 else ; All is well!
O121 endif
; Tool change
O122 if [#<_Tool:Number> NE #<ToolNumber>]
; Change Tool
M09 ; coolant off
O123 if [#<_Tool:Number> LT 20] ; front turret
G00 Z#<_Frontchange:Z>
G00 X#<_Frontchange:X>
O123 else ; Rear turret
G00 Z#<_Rearchange:Z>
G00 X#<_Rearchange:X>
O123 endif
G49 ; cancel toolength offset
T#<ToolNumber> M06
G43 G7 G97 S#<Speed>
M03
M#<Coolant>
#<_Tool:Number> = #<ToolNumber>
O122 else ; No tool change -continue.
G43 G7 G97 S#<Speed>
M03
M#<Coolant>
O122 endif
; Toolpath stuff below here
O127 if [#<Thd_Type> EQ 1] ; Thread is external
o101 while [#<Cut_Dia> GT #<Thd_Dia>]
#<mod_Z_start> = [[#<Cut_Dia> - #<Thd_Dia>]/2]
#<mod_Z_start> = [#<mod_Z_start> - #<Thd_Height>]
#<mod_Z_start> = [#<mod_Z_start> * #<Ratio>]
G00 X#<Cut_Dia>
#<Mod_Z_point> = [#<z_start> + #<mod_Z_start>] ;modZstart is negative
Z#<Mod_Z_point>
(log,Zpoint #<mod_Z_point>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
(log,Zstart #<mod_Z_start>)
#<Current_Width> = #<Pitch> + [#<mod_Z_start> * 2/2]
(log,CurrentWidth = #<Current_Width>)
G00 X#<Cut_Dia>
#<Z_fin> = [[#<z_start> - #<Current_Width>] + #<Tool_Width>]
G01 Z#<Z_fin> F0.3
(log,Zfin #<Z_fin>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
#<Cut_Dia> = [#<Cut_Dia> - [#<Cut_Depth> * 2]]
O125 if [#<Cut_Dia> LT #<Thd_Dia>] ; maximum cut
#<Cut_Dia> = #<Thd_Dia>
O125 else
O125 endif
o101 endwhile
O127 else ; Thread is internal
o102 while [#<Cut_Dia> lt #<Thd_Dia>]
#<mod_Z_start> = [[#<Cut_Dia> - #<Thd_Dia>]/2]
#<mod_Z_start> = [#<mod_Z_start> - #<Thd_Height>]
#<mod_Z_start> = [#<mod_Z_start> * #<Ratio>]
G00 X#<Cut_Dia>
#<Mod_Z_point> = [#<z_start> + #<mod_Z_start>] ;modZstart is negative
Z#<Mod_Z_point>
(log,Zpoint #<mod_Z_point>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
(log,Zstart #<mod_Z_start>)
#<Current_Width> = #<Pitch> + [#<mod_Z_start> * 2/2]
(log,CurrentWidth = #<Current_Width>)
G00 X#<Cut_Dia>
#<Z_fin> = [[#<z_start> - #<Current_Width>] + #<Tool_Width>]
G01 Z#<Z_fin> F0.3
(log,Zfin #<Z_fin>)
G33 Z#<z_end> K#<Pitch>
G00 X#<Drv_Dia>
G00 Z#<z_start>
#<Cut_Dia> = [#<Cut_Dia> - [#<Cut_Depth> * 2]]
O125 if [#<Cut_Dia> LT #<Thd_Dia>] ; maximum cut
#<Cut_Dia> = #<Thd_Dia>
O125 else
O125 endif
(log,CutDia = #<Cut_Dia>)
o102 endwhile
O127 endif
M09
(LOGCLOSE)
o<acme> endsub
Please Log in or Create an account to join the conversation.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 183
- Thank you received: 5
06 Nov 2011 21:41 - 06 Nov 2011 23:21 #14618
by M4MazakUser
Replied by M4MazakUser on topic Re:conversational input
An updated set of lathe cycles, with many bugfixes.
Feel free to remove the auto toolchange calc, and use as a standalone cycle.
only works with 2.5 -due to tool nose radius calcs, and auto calc of toolchange point. (variables)
- i use these cycles daily, but! always check toolpath, -Trust nothing!
Feel free to remove the auto toolchange calc, and use as a standalone cycle.
only works with 2.5 -due to tool nose radius calcs, and auto calc of toolchange point. (variables)
- i use these cycles daily, but! always check toolpath, -Trust nothing!
Last edit: 06 Nov 2011 23:21 by M4MazakUser. Reason: error in sub
Please Log in or Create an account to join the conversation.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 183
- Thank you received: 5
06 Nov 2011 23:22 #14620
by M4MazakUser
Replied by M4MazakUser on topic Re:conversational input
-had an error in the taper rough/finishing sub, here is the fixed version.
Please Log in or Create an account to join the conversation.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 183
- Thank you received: 5
11 Nov 2011 02:20 #14753
by M4MazakUser
Replied by M4MazakUser on topic Re:conversational input
a new update, now rough/finish cycles do both boring/turn od, the material diamater vs the diameter for final size determines boring/od.
Please Log in or Create an account to join the conversation.
Time to create page: 0.081 seconds