Showing results for 
Search instead for 
Do you mean 
Reply

Avoid posting un-approved operations - NX10 CAM

[ Edited ]

I am looking for a solution to avoid posting operations that have not been "approved".  The main reason for this is that I can not get around the behavior in NX that speeds and feeds can't be assigned to a tool.  So I end up constantly overlooking this and posting opeations with the default 0 rpm and 10 ipm parameters.

 

Could a error message be generated is a tool has 0 rpm upon posting or if a operation is not "approved" could a error message be displayed?

 

Would this desired error message be controlled by NX or by the POST ?

 

And last but not least can Siemens PLEASE allow for assigning of tool parameters (speed / feed) to tools?  This would make NX up to speed with every other CAM system I have used (masterCAM / PowerMill).  Whenever I point this out to operators or machine tool builders they find it hard to believe.  

 

 

Possibly a great enhancment that would allow siemens to promote the delayed release of NX11??? Smiley Happy

 

Mark

9 REPLIES

Re: Avoid posting un-approved opereations - NX10 CAM

[ Edited ]

artmark742 wrote:

The main reason for this is that I can not get around the behavior in NX that speeds and feeds can't be assigned to a tool.


I cannot agree. It should be possible this way:

http://nxcad.pl/posuwy-i-obroty-z-narzedzia/

it is in Polish, but there are pictures and movie on the end, showing how to achieve that

 

 

And according to your postprocessors questions, it can be done very easly using simple IF condition.

So for example you can use:

 

global mom_spindle_speed mom_operation_name

if {[EQ_is_zero $mom_spindle_speed]} {
MOM_display_message "Operation $mom_operation_name has RPM set to zero. Postprocessing aborted." "Post Runtime Message"
MOM_abort
}

 

 

Marek Pawlus, NCmatic

Production: NX 11.0.1
Development: C#, Tcl/Tk, CSE

Re: Avoid posting un-approved opereations - NX10 CAM

As outlined by Marek, you can build a post processor to check for the rpm.

Option 1:
Set data on a tool using MKE and use the set machining data on the tool to have the operations inherit the feeds, speeds, DOC, and, WOC

Option 2:
You can also set the feeds and speeds for multiple operations by selecting all of them, Right click, Object, "Feed Rates"
I use custom columns so that my feed rate and rpm display right next to my operation name
You can also navigate to "Machine tool View" and select all the operations under a tool and update them all at once.

Re: Avoid posting un-approved opereations - NX10 CAM

Marek,

 

This is a solution, however it is very combersome.  Too many clicks to make it viable for production.

 

Mark

Re: Avoid posting un-approved opereations - NX10 CAM

You can assign feeds and speeds to a library tool, and turn on the customer default to automatically set machining data. Will this work for you?

 

Mark Rief
Retired Siemens

Re: Avoid posting un-approved opereations - NX10 CAM

Mark,

 

That would work for some situations, however for the majority of the mold work we do where various "one-off" tools are being used this would still be very cumbersome. 

 

There are definately advantages to the way NX is currently designed for programmers in different workflow enviroments.  And there are also several different ways of specifying speeds and feeds, however the method adopted by most perogramming software is non existent. 

 

In my opinion all that needs to be done is add a dialog to the tool parameters to toggle the use of "tool based" speeds and feeds.  This would allow NX users a additional way to define tool parameters and would give a added benefit to new users transitioning from other software. (possible enhancement request, sounds simple enough)

 

Mark

Re: Avoid posting un-approved opereations - NX10 CAM

I built a custom procedure using the UG_WISH Tk interface to check for a 0 RPM, but then also expanded it to check for a valid RPM for the particular machine you're posting to and the option to ignore and continue posting or abort the post right there.

 

There were times we'd re-post a program for a different machine and have too high a spindle speed.  Also it checks to see if you're using a probe (which shouldn't have the spindle turned on) and skips the check.

 

I can dig up some example code if you'd like.

Re: Avoid posting un-approved opereations - NX10 CAM

Note if you set up the max/min values of the "S" word in the post, it can automatically trim the spindle speed.

Although (depending on settings) it may not warn you.

 

Ken Akerboom Sr CAx Systems Engr, Moog, Inc.
Production: NX10.0.3.5 MP5 + patch/TC11.2
I'd rather be e-steemed than e-diseaseled


Re: Avoid posting un-approved opereations - NX10 CAM

Jake,

 

Example code would be  great, alway helps to debug based on a proven method.

 

Thanks,

Mark

Re: Avoid posting un-approved opereations - NX10 CAM

Here is some code that I dug up:

 

These variables need to be set in the start of program event:

 

uplevel #0 {
	set kill_wshspnd 0
	set J_probe 0
	set J_rpm 0	

	}

 

 

This is at the start of path event. It checks for the tool being a probe, and skips if it is. Then lower it checks to see if if the kill_wshspnd variable is set to 1, this is to see if the user has clicked on the box that says don't show this error anymore.

 

I changed the mom_spindle_speed variable to J_rpm to make sure it was a formated number (sometimes Tcl will have decimals of 500.0000001 that will make the if statements not work).

 

if {![info exists Onamac_prev_spindle_speed]}	{ set Onamac_prev_spindle_speed 0 }

set J_rpm [format %.0f $mom_spindle_speed]

if {[string match *Probe* $mom_tool_type]} {
	set J_probe 1
	} else {
	set rpm_change [format %.0f [expr $Onamac_prev_spindle_speed - $J_rpm]]
	set Onamac_rpm_change [expr $rpm_change ? 1 : 0]
	set J_probe 0
	if {!($kill_wshspnd)} {
		if { !$J_rpm && $mom_tool_number } { Onamac_spindle_warn }
		if {($J_rpm <35 && $J_rpm >0) || $J_rpm >12000} { Onamac_spindle_limit_warning }
		}
	}

 

here are the procedures:

 

#===============================================================================================#
proc Onamac_spindle_limit_warning { } {
#===============================================================================================#
	global cam_post_dir stars_mesg
	set tcl [file join ${cam_post_dir} Onamac_spindle_limit_wish_rev2.tcl]

	if {[file exists "$tcl"]} {
		set buff [UGWISH_win64 "$tcl"]
		#++++++++++++++++++++++++++++++++++++++++++++++
		# Read & process data returned from the dialog
		#++++++++++++++++++++++++++++++++++++++++++++++
		if {[string match *bomb* $buff]} {
			MOM_abort "ERRROR"
			}
		}
	}

#===============================================================================================#
proc Onamac_spindle_warn { } {
#===============================================================================================#
	#=======================================================================#
	#			Onamac_spindle_warn				#
	#									#
	#=======================================================================#
	# This procedure will call up the UG Wish application to run a TK	#
	# script to warn the programmer that they have posted tool path that	#
 	# is commanding the machine to turn on the spindle w/o a speed "M3 S0"	#
	# the programmer can then either suppress the message or abort the post	#
	#=======================================================================#
	global cam_post_dir Onamac_machine_post_name nc_name nc_dir nx_prt Onamac_post_rev stars_mesg
	set tcl [file join ${cam_post_dir} Onamac_spindle_wish.tcl]

 	if {[file exists "$tcl"] } {
		set buff [UGWISH_win64 "$tcl"]

		#++++++++++++++++++++++++++++++++++++++++++++++
 		# Read & process data returned from the dialog
		#++++++++++++++++++++++++++++++++++++++++++++++
 		if {[string match *no* $buff]} {
			MOM_abort "ERRROR"
			} elseif {[string match *enuf* $buff] } {
 			global kill_wshspnd ;set kill_wshspnd 1
			}
		 }
	}

 

here are the files that are being sourced in with the UGWISH_win64 command:

 

# =====================================	#
#  Onamac_spindle_limit_wish_rev2.tcl	#
# =====================================	#
 # ------------------------------------	#
 # Fetch scratch file given by caller	#
 # ------------------------------------	#
  set tmp_file [lindex $argv 0]


  wm withdraw .
  update


  # Open file channel to collect output messages
   set fid [open "$tmp_file" w]


  #+++++++++++++++++++++++++++++++++++
  # Body of work for your application
  #+++++++++++++++++++++++++++++++++++
   set title "Spindle Speed Too Fast/Too Slow!!"
   set msg   "Spindle speed defined in operation out of allowed range. Post will now abort."
   #set msg2   "Do you want to suppress further messages about the spindle not being turned on?"

   switch [tk_messageBox -title "$title" -message "$msg" -type ok -icon info] {
      ok {
         puts $fid bomb
      }
    }


  # --------------------------------------------
  # Close scratch file and set it to -readonly
  # --------------------------------------------
   #puts $fid end
   close $fid
   file attributes "$tmp_file" -readonly 1


  wm withdraw . ;destroy .
  
  
# =====================================	#
#	Onamac_spindle_wish.tcl		#
# =====================================	#
 # ------------------------------------ #
 # Fetch scratch file given by caller	#
 # ------------------------------------ #
  set tmp_file [lindex $argv 0]


  wm withdraw .
  update


  # Open file channel to collect output messages
   set fid [open "$tmp_file" w]


  #+++++++++++++++++++++++++++++++++++
  # Body of work for your application
  #+++++++++++++++++++++++++++++++++++
   set title "No Spindle Speed Warning!!"
   set msg   "Spindle speed of zero entered, keep posting?"
   set msg2  "Turn off zero spindle speed warning messages?"

   switch [tk_messageBox -title "$title" -message "$msg" -type yesno -icon info] {
      no {
         puts $fid no
      }
      yes {
        switch [tk_messageBox -title "$title" -message "$msg2" -type yesno -icon question] {
		  no {
		    puts $fid yes
		  }
		  yes {
		    puts $fid enuf 
		  }
		}
      }
   }


  #--------------------------------------------
  # Close scratch file and set it to -readonly
  #--------------------------------------------
   #puts $fid end
   close $fid
   file attributes "$tmp_file" -readonly 1


  wm withdraw .; destroy . 

 

Learn online





Solution Information