Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations IFRs on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

NX POST BUILDER M09

Status
Not open for further replies.

blaineam

Aerospace
Jun 5, 2012
29
Hi,
I am new to post building and am trying to modify a simply HAAS 3 axis machine post before my company sends me to post building school in the near future. The original post was spitting out M08 codes about every other line and only putting an M09 right before the M30 at the end of the program. I have the M08 fixed now so that it puts an M08 right after every tool change but cant figure out or find a way to only post M09 after a tool change.

I can post a M09 after every operation but I dont want an M09 after an operation if it is still using the same tool. I can put an M08 in the Operation start sequence-Auto tool change part to only turn on when switching tools but there is no other place to add an M09.

Thanks for any help you can provide. Im thinking this shouldnt be as hard as its seeming to be.
 
Replies continue below

Recommended for you

Most machine controllers ignore the M09 if the same tool is called out for the next sequence. I am not familiar with the Haas controllers, so this is just an observation. I would check the controller documentation to see if there is a parameter for skipping tool chnage if the same tool is called next.

I would guess that you will need to create a separate End of Path sequence to call when you know the tool is going to be repeated in the next path. However, you need to be aware that if you reorder the paths, you may get the wrong tool for the second path because of that. Better to make each path self contained and use the controller to eliminate redunent cycle calls.


"Wildfires are dangerous, hard to control, and economically catastrophic."

Ben Loosli
 
If you could post some example code of where you want the M09 it would help.

If you ALWAYS what the M09 you could add it to the beginning of the Auto tool change event, before the M06.
For Example
M09
G00G91G28Z0.0M19
G90H00
M01
M06



John Joyce
N.C. Programming Supervisor
Barnes Aerospace, Windsor CT
NX6.0.5.3
 
Thanks for helping.

Here is a quick example.

(MILL_2)
(###########################)
T09 M06
M01
G54
M08
G00 X7.0997 Y-2.125 S10000 M03
G43 H09 Z3.
Z2.2667
M08 Also I am wanting to move the M08 to this location so it turns on right before the G01 move. but not every G01 move.
G01 Z2.1667 F100.
X6.5821
X-.3321
Y-.8497
Z2.1
M09
G00 Z3.

Also i had tried just putting the M09 in end of path so it was after every tool change but it was in the end sequence block so it put it after every operation even if it used the same tool. I am going to post building school but not until August and they are wanting me to learn and mess around with post builder until then. I have cleaned up this post alot so far but just cant move certain things where i want them.

I was hopeing that i could put an Auto Tool Change block into the end sequence tab so i could put the M09 in there and it would only add a M09 when doing a tool change It doesnt seem like you can move or make new MAIN blocks tho or even if that would work correctly. I just need to put M09 in every opeation and not add one if it doesnt change tools.

Thanks for all the help so far!

Also to Looslib. Thanks for the comments but we are really going to try 100% to make all the changes within the post and not have to mess with the controllers at all.
 
You should be able to add the M08 to the Initial Move - this is the first move after the tool change. I usually have my first X and Y and the the Z with the G43 and H offset in this block. Does the Coolant/off UDE work?

John Joyce
N.C. Programming Supervisor
Barnes Aerospace, Windsor CT
NX6.0.5.3
 
Ya i was kind of thinking the same thing so it put it right before the G01 but when I put the M08 in the initial move it puts it right under the G54

(MILL_2)
(###########################)
T09 M06
M01
G54
M08
G00 X7.0997 Y-2.125 S10000 M03
G43 H09 Z3.
Z2.2667

Are you talking about the UDE in NX? I can have the coolant turn off after any operation i want by using the end of path event but we have 9 programmers right now and some programs can have 25+ operations so they are wanting me to make everything simple and easy to program and run. Im not sure if there is a way to put a UDE in the post builder to have it as a custom command or something? Not really sure how that works or even how to use the custom commands. Figured i can try to get the 3 axis machines some what fixed now and work on the 4 and 5 axis horizonals after i have training. Its hard to teach yourself post building because i cant find much information on it.

Thanks again for the fast responces!
 
Also is the main area where you change the location of the codes under Programs and Tool Path-> Programs tab?

Thanks
 
"Also is the main area where you change the location of the codes under Programs and Tool Path-> Programs tab?" - YES

Only 25 operations! wait till you get a couple of hundred and try to manage that;-)


Good Luck



John Joyce
N.C. Programming Supervisor
Barnes Aerospace, Windsor CT
NX6.0.5.3
 
HAHA i know right. Im only working with the 3 axis for now which is mainly extrusion parts getting holes and contours and very few block jobs. I know the 43.4, 68 and 68.5 g codes get pretty tricky when post building 5 axis machines which will be the main concern along with right angle drill head.

I am working with siemens right now to make some custom commands to turn the coolant off so hopefully we can figure this out.

Thanks for the help.
 
Here is something I used in the past. Make a custom command similar to this and put it in the "End of path" event.

This is actually a command I use to get a operator message telling them to remove a specifc tool from the spindle IF it's a manual tool change.

You will be interested in this specifically...
if { $mom_next_oper_has_tool_change =="YES" } {MOM_output_literal "M09"}

You could just copy the whole thig if you like.

Good luck,

Jay

global mom_tool_change_type
global mom_next_oper_has_tool_change
global mom_tool_number
global mom_sys_control_in
global mom_sys_control_out

if { $mom_next_oper_has_tool_change =="YES" } {MOM_output_literal "G49 G28 Z0.0"}
if { $mom_next_oper_has_tool_change =="YES" } {MOM_output_literal "G90"}
if { $mom_tool_change_type == "MANUAL" && $mom_next_oper_has_tool_change =="YES" } {MOM_output_literal "M00 $mom_sys_control_out REMOVE TOOL $mom_tool_number FROM SPINDLE $mom_sys_control_in"}
if { $mom_tool_change_type == "MANUAL" && $mom_next_oper_has_tool_change =="YES" } {MOM_output_literal "M00 $mom_sys_control_out REMOVE TOOL $mom_tool_number FROM SPINDLE $mom_sys_control_in"}
if { $mom_next_oper_has_tool_change =="YES" } {MOM_output_literal "M09"}
if { $mom_next_oper_has_tool_change =="YES" } {MOM_output_literal "M01"}

NX 6.0.5.3
 

Actually that was exactly what i did yesterday. It works everywhere so far except when using an M00 to flip or rotate the part it puts the M09 after the M00 so you would still have to add an M09 in the UDE before the M00 to have it turn off before the program stop. Other than that it works great.


global mom_next_oper_has_tool_change

if { $mom_next_oper_has_tool_change } {
MOM_output_literal "M09"

}
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor