Cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted

PostConfigurator Parametric Feed Output

Valued Contributor
Valued Contributor

Hi,

 

If previous operation has 1500 mm/min feed rate and the next operation has same feed rate, then PC omits output of parametric feed rate. (Uses old one)

 

What I need is to output feed parameters at every start of path.

Question one is can this be done, somehow grabbing output at previous operation and outputting it again in next one or is there a PC command to make this possible?

 

Other question is, when I output a 15000rpm program to a 12000rpm machine, I'm looking for ways to reduce feed rate in that case. Any methods to make it achievable?

 

NX 12.0.1 MP01 - PC 4.3.2

 

17 REPLIES

Re: PostConfigurator Parametric Feed Output

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

@dfdfgs wrote:

 

Other question is, when I output a 15000 rpm program to a 12000 rpm machine, I'm looking for ways to reduce feed rate in that case. Any methods to make it achievable?

 


If you set the maximum spindle speed, then the feed will automatically be reduced by the same factor of the speed reduction.

Do you use one PP for different machines? If so, you should create separate post-processors.

Stefan Pendl, Systemmanager CAx, HAIDLMAIR GmbH
Production: NX10.0.3, VERICUT 8.2, FBM, MRL 3.1.7 | TcUA 10.1 MP7 Patch 0 (10.1.7.0) | TcVis 11.4
Development: C (ITK), .NET, Tcl/Tk Testing: NX12.0 | AWC 3.4 Preparing: NX12.0

Employees of the customers, together we are strong Smiley Wink
How to Get the Most from Your Signature in the Community
NX Customization - Best Practice Guide

Re: PostConfigurator Parametric Feed Output

Siemens Legend Siemens Legend
Siemens Legend

Hi,

 

OOTB Post Configurator has no command for doing this. You have to implement some logic inside the post. I would prefer the way to store feed values for engage, retract, cutting at the end of path event. E.g. you can use following buffer to do this.

 

LIB_GE_command_buffer_edit_prepend MOM_end_of_path_LIB MOM_end_of_path_LIB_ENTRY_start SaveFeeds _SaveFeedTag
#------------------------------------------------------------
proc SaveFeeds {} {
#------------------------------------------------------------
set ::mom_prev_feed_engage_value $::mom_feed_engage_value
set ::mom_prev_feed_cut_value $::mom_feed_cut_value
set ::mom_prev_feed_retract_value $::mom_feed_retract_value
}

 

To output values for feeds again in next operation, especially when they are not changed, you can use the buffer "UPDATE_TOOL"...This one is called in every start_of_path event and OOTB implementation is to output nothing if feed values are not changed. 

 

So you have to extend this buffer to call your output logic.

 

I am sure not cover all cases with the procedure below but for a first version it works fine when using it.

And maybe it make sense to have a property for it to switch it on and off.

 

LIB_GE_command_buffer_edit_prepend LIB_update_tool_change_template UPDATE_TOOL RedundantQ _Tag

 

#------------------------------------------------------------
proc RedundantQ {} {
#------------------------------------------------------------
if {[info exists ::mom_prev_feed_engage_value] && [EQ_is_equal $::mom_prev_feed_engage_value $::mom_feed_engage_value]} {
LIB_GE_message "[CONF_CTRL_feed feed_engage]=[LIB_SPF_eliminate_zero $::mom_feed_engage_value 3] ;[LIB_GE_MSG "Engage Move"]" "output_0" "1"
}
if {[info exists ::mom_prev_feed_cut_value] && [EQ_is_equal $::mom_prev_feed_cut_value $::mom_feed_cut_value]} {
LIB_GE_message "[CONF_CTRL_feed feed_cut]=[LIB_SPF_eliminate_zero $::mom_feed_cut_value 3] ;[LIB_GE_MSG "Cutting"]" "output_0" "1"
}
if {[info exists ::mom_prev_feed_retract_value] && [EQ_is_equal $::mom_prev_feed_retract_value $::mom_feed_retract_value]} {
LIB_GE_message "[CONF_CTRL_feed feed_retract]=[LIB_SPF_eliminate_zero $::mom_feed_retract_value 3] ;[LIB_GE_MSG "Retract Move"]" "output_0" "1"
}

}

 

*Edit: 2nd Question: I agree with Stefan if you have different machines you should have different post processors. But if you want to change the feedvalues dependent on some conditions you can use the same procedure above. Just extend it with logic asking operation speed, maximum speed of machine (maybe a property Smiley Happy ) and then recalculate the feedrates dependent on that.

 

Best regards

Thomas

Re: PostConfigurator Parametric Feed Output

Valued Contributor
Valued Contributor

Hi @Stefan_Pendl,

 

I'm using different posts for each machine indeed. I didn't knew that pc was adjusting feeds automatically.
This is great. I feel joy with this product and the when I see way it handles things.

 

When I tried parametrized feeds, feeds was not adjusting automatically.
Steps I have taken: create a fresh post, set maximum speed, set feed output to parameter, make sure operation has a speed greater than maximum limit and post it. Siemens, Heidenhain, with or without standard layers.
What am I missing? Any other setting?

 

1.png

 

Also, did you experienced significant performance drop with feed parameter set on? (MOM_before_motion?)

 

Re: PostConfigurator Parametric Feed Output

Valued Contributor
Valued Contributor

Hi @ThomasJ,

 

Thank you for your time for routines, did work flawlessy. However automatic feed adjustment was not working as I stated above.


BTW, is it safe to use :: characters in all mom variables? I guess this lets skipping global declaration right?

Re: PostConfigurator Parametric Feed Output

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

@dfdfgs wrote:

When I tried parametrized feeds, feeds was not adjusting automatically.
Steps I have taken: create a fresh post, set maximum speed, set feed output to parameter, make sure operation has a speed greater than maximum limit and post it. Siemens, Heidenhain, with or without standard layers.
What am I missing? Any other setting?


So it could be that our external post-processor developer added it on his own. I thought this is now a regular feature Smiley Sad

 


@dfdfgs wrote:

Also, did you experienced significant performance drop with feed parameter set on? (MOM_before_motion?)


I don't use the parametric feeds, they are not subject to be altered by the machine operator. The feed override dial should be enough for the machine operator.

For a machining line the feed and speed dials are always set to 100% anyways, so the feeds and speeds library needs to be adjusted to handle this.

Stefan Pendl, Systemmanager CAx, HAIDLMAIR GmbH
Production: NX10.0.3, VERICUT 8.2, FBM, MRL 3.1.7 | TcUA 10.1 MP7 Patch 0 (10.1.7.0) | TcVis 11.4
Development: C (ITK), .NET, Tcl/Tk Testing: NX12.0 | AWC 3.4 Preparing: NX12.0

Employees of the customers, together we are strong Smiley Wink
How to Get the Most from Your Signature in the Community
NX Customization - Best Practice Guide

Re: PostConfigurator Parametric Feed Output

Valued Contributor
Valued Contributor

My main motivation for using parametric feeds is to adjust feed. I don't want to have code in like before_output event to get best performance, so PC outputs parameters including optimized paths, I adjust parameters on the fly and thats it. PC also has performance drop in parameter feeds. Thats not gonna happen way I want I guess.

 

It is also same in my point of view operator should have least amount of interference.

Re: PostConfigurator Parametric Feed Output

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

You should be able to add the feed and speed reduction on your own:

  • create a custom procedure that you call at the end of the start-of-path event
  • set your global factor to 1.0
  • check if mom_feed_cut_value is bigger than mom_kin_max_fpm
    • set the factor to mom_kin_max_fpm divided by mom_feed_cut_value if true
  • check if (mom_spindle_rpm * factor) is bigger than the maximum spindle value
    • set the factor to ( maximum spindle / ( mom_spindle_rpm * factor ))

Now multiply the spindle speed and feed rates with the factor when ever they are output.

For regular PPs this would be in the block definition, for the parameter output do this in the procedure Thomas offered.

BTW, why not use the percentage output for your Sinumerik control?

Stefan Pendl, Systemmanager CAx, HAIDLMAIR GmbH
Production: NX10.0.3, VERICUT 8.2, FBM, MRL 3.1.7 | TcUA 10.1 MP7 Patch 0 (10.1.7.0) | TcVis 11.4
Development: C (ITK), .NET, Tcl/Tk Testing: NX12.0 | AWC 3.4 Preparing: NX12.0

Employees of the customers, together we are strong Smiley Wink
How to Get the Most from Your Signature in the Community
NX Customization - Best Practice Guide

Re: PostConfigurator Parametric Feed Output

Valued Contributor
Valued Contributor

Thank you @Stefan_Pendl, did this way you say. 

 

Caveats are:

  • Turbo mode must be disabled
  • mom_before_output entry used
  • Above causes significant performance drop
    • Random example took before: 00:15, after 01:05
  • mom_spindle_rpm max limit automatically adjusted with Siemens and Fanuc controller but not with Heidenhain (mom_spindle_speed must be modified manually)

Re: PostConfigurator Parametric Feed Output

Valued Contributor
Valued Contributor

@ThomasJ, I want to inform you that Heidenhain controllers posts are not adjusting spindle speed, Despite Spindle Error - Spindle speed > UPPER_LIMIT, Maximum assumed warning output is seen. (mom_spindle_rpm vs mom_spindle_speed difference?)

 

Highlighted

PostConfigurator Parametric Feed Output

Valued Contributor
Valued Contributor

Hi,

 

If previous operation has 1500 mm/min feed rate and the next operation has same feed rate, then PC omits output of parametric feed rate. (Uses old one)

 

What I need is to output feed parameters at every start of path.

Question one is can this be done, somehow grabbing output at previous operation and outputting it again in next one or is there a PC command to make this possible?

 

Other question is, when I output a 15000rpm program to a 12000rpm machine, I'm looking for ways to reduce feed rate in that case. Any methods to make it achievable?

 

NX 12.0.1 MP01 - PC 4.3.2

 

NX CAM Postprocessor Group
NX CAM Postprocessor Group

Members (149)