cancel
Showing results for 
Search instead for 
Did you mean: 

Turning - CYCLE95 avoiding the avoidance (ST and RT)

Genius
Genius

Using 840 Turning 2ax lathe PP, 10.0.3

 

I am unable to get cycle95 to respect the Motion to Start Point (ST) and return to Motion to Return Point (RT) that I set in Avoidance (Create Geometry > Avoidance).

 

As-in post and when p-processed, the cycle rapid move to stock clearance(+insert radius) position, dance a bit, run the cycle then return at the same clearance position. Basically, ignoring the Approach and Departure moves.

 

All of the other cycles that I've recently tested does respect the ST and RT points. Just wondering why CYCLE95 doesn't cooperate.

 

If anyone using CYCLE95 in turning, how do you program this CYCLE in NX Cam? Also if any PP customization required, please let me know where to start looking. That'd be cool

 

Charles

 

8 REPLIES

Re: Turning - CYCLE95 avoiding the avoidance (ST and RT)

Esteemed Contributor
Esteemed Contributor

Not sure about your approach/depart issue.  Hunt down the code doing this and work your way thru it.

(I think the code is in PB_CMD_turn_cycle_contour_start and PB_CMD_turn_cycle_contour_end)

Other issues:

 

I PRed the following, but I'm not sure if they are fixed yet (I haven't had a chance to look at 10.0.3 MP4 yet):

- If you turn off sequence numbers, the P & Q values aren't correct

- At least in 10.0.2 the first pass cut depth ends up being *twice* the desired value.
The issue here is NX positions at the first cut depth, THEN turns on the cycle.  But the cycle assumes you are at the STOCK diameter, so it cuts one depth lower than you are already at. 

Example: Stock is 2" dia, you want .05" depth of cut

NX positions to 1.9 dia, then calls the cycle.  The cycle assumes 1.9 is the dia of the stock, so it cuts its first pass at 1.8 dia (.1" DOC).

Could be in trying to fix this they hosed the approach motion.

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: Turning - CYCLE95 avoiding the avoidance (ST and RT)

Genius
Genius

Thx Ken

I’m switching to a more recent post due to similar issues you are describing. Not much related with cycle95 alone, which was missing in my previous post anyway, but few other cycles gave me grief to customize at the time. We’ve ran this post for 3 years nearly all in ISO mode for turning loll

 

I’d really like to get cycle95 going along the others I need from this post (I have little over 60 parts to re-post process using that newer post). I’m now using PB’s 840 2ax post out of ver 10 which actually works flawlessly on every other cycles. Quite exiting in fact. Just this Cycle95 that, for some reason, refuses to accept any approach and departure references.


Mind you I may be programing it completely wrong, don’t know. That’s why I was asking if anyone had any luck getting it to work (OOTB).

 

I’ve noticed the PB_cmd_contour(s) scripts but all seems to be happening nicely in there already. Cycle params, _contour_end, etc, are all set to use the mom_pos which to me sounds about right - in terms of cycle init anyway. However it just doesn’t want to map onto my approaches & departures – unless I have to hard code this manually?


Again, all other cycles works fine, I didn’t had to hard code anything. Approach and depart happens as defined in my avoidances, SP, AP and DPs.

 

This CYCLE95…. trouble maker. Weird.

Re: Turning - CYCLE95 avoiding the avoidance (ST and RT)

Genius
Genius

Well I gave it my best shot and I simply can’t get CYCLE95 to work. Especially the retract/departure part. Way too scary for my $95million dollar 2ax lathe to accept. So it will be the good’ol fanuc ISO style for roughing/finishing& facing for us here! (yes - we’ve spoke to our rep here and they kindly offered us $Post Configurator$. Interesting)

 

It’s unfortunate because it seem like an effective cycle. Did sounded good also “Sci-Kle-Nityfive”. How cool.

 

I did managed to get it to accept the approach with the ‘extra’ custom code below, which is a good thing, however the cycle will not retract nor depart to DP or Gohome points. Use with extra caution.

 

Unless any of you can share what you magically add to the PB_CMD_contour_end (that’d be kind btw), then I have to move on with my other life loll

 

For the Approach support, for those interested, just add this at the footer of the PB_CMD_init_cycle95_output proc:

 

     #---------------------------------------------------------------
     # Save current position of this event.
     # - It will be used as the return position after the cycle call.
     #---------------------------------------------------------------
     # global mom_pos mom_pos_saved_for_cycle95
     # VMOV 3 mom_pos mom_pos_saved_for_cycle95

     global mom_pos
     global mom_from_status
     global mom_prev_pos
     global mom_pos_saved_for_cycle95

     if { [info exists mom_from_status] } {
           # Custom
           set mom_pos(0) $mom_prev_pos(0)
           set mom_pos(1) $mom_prev_pos(1)
           set mom_pos(2) $mom_prev_pos(2)
           VMOV 3 mom_pos mom_pos_saved_for_cycle95
     } else {
           # OOTB
           global mom_pos mom_pos_saved_for_cycle95
           VMOV 3 mom_pos mom_pos_saved_for_cycle95
     }
     #------------------------------
     # Skip to the end of operation
     #------------------------------
      MOM_abort_operation
   }

Re: Turning - CYCLE95 avoiding the avoidance (ST and RT)

Esteemed Contributor
Esteemed Contributor

If you siad you were doing this on a Siemens 840D control earlier I missed it.

I'm guessing the "output condition" being applied in PB_CMD__check_block_skip_for_cycle95 is being a bit too aggressive.

 

If you don't mind experimenting a bit more (like any of us have time...)

I'd add some code in the linear/rapid/arc events, just before the G0/G1/G2 lines.

something like

global ;# as required
MOM_output_text "mom_motion_type = $mom_motion_type XZ = $mom_pos(0), $mom_pos(2)"

Post with the cycle output off, rename the MDF file, then with it on.

 

Compare the 2 files

See what gets suppressed, and (I think) you may be able to filter on motion type to alter PB_CMD__check_block_skip_for_cycle95 to "return 1" on the motions you need.

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: Turning - CYCLE95 avoiding the avoidance (ST and RT)

At the risk of being obvious, have you tried one of the OOTB posts, such as sim11_turn_2ax_sinumerik_mm, to see if that works?

Mark Rief
Retired Siemens

Re: Turning - CYCLE95 avoiding the avoidance (ST and RT)

Genius
Genius

MarkRief wrote:

At the risk of being obvious, have you tried one of the OOTB posts, such as sim11_turn_2ax_sinumerik_mm, to see if that works?


Thx Mark.

Yep tried PP from sim09, sim11, sim12, and getting all the same (omit) output thing. All refuse to account for the > Non Cutting Move > Departure values. Although those are properly set, the cutter wants to stay snug against the part and omit my departure moves.... for some reason.

 

Looks as if this cycle will only function if you modify the post intensively (if logic is require for every approach/depart possibilities anyway).

 

Don't get me wrong. The cycle95 itself populate itself beautifully from NX CAM and work just fine at the controller end (we tested it last Friday). Quite effective given we could keep the contour files separately and having the operators modifying the cycle values only. Quick, clean, nearly fail-proof.

 

On the NX Cam side however we just haven’t had any luck with making it work. Reliably anyway.

 

Re: Turning - CYCLE95 avoiding the avoidance (ST and RT)

Genius
Genius

Ken_A wrote:

If you siad you were doing this on a Siemens 840D control earlier I missed it.

I'm guessing the "output condition" being applied in PB_CMD__check_block_skip_for_cycle95 is being a bit too aggressive.

 

If you don't mind experimenting a bit more (like any of us have time...)

I'd add some code in the linear/rapid/arc events, just before the G0/G1/G2 lines.

something like

global ;# as required
MOM_output_text "mom_motion_type = $mom_motion_type XZ = $mom_pos(0), $mom_pos(2)"

Post with the cycle output off, rename the MDF file, then with it on.

 

Compare the 2 files

See what gets suppressed, and (I think) you may be able to filter on motion type to alter PB_CMD__check_block_skip_for_cycle95 to "return 1" on the motions you need.


Hey Ken, thanks for that. I'll have a go at your trick in the morning and see what I can rig in the rapid/linear with the _skip_for_95.

 

At the moment I am using below which actually sends back everything to a 'safe' tool change location (good enough for now as we are still testing the cycle and posibilities). At least the cutter doesn't die where it all stated anymore lol. Really hope to get this sorted this week. Fingers crossed!

 

Below is not even remotely good for production but a good 'temp' fix. Goes in PB_CMD_contour_end just below the cycle output statement.

 

  #++++++++++++++++++++++++++++++++++++++++++++++++
  # Output return move (X -> Z) after cycle95 call
  # ==> Detail moves may need to be adjusted
  #     according to the nature of the cut.
  #++++++++++++++++++++++++++++++++++++++++++++++++

   global mom_from_status
   global mom_from_pos
   
   # Temp solution 
   # Motion to saved pos i.e > Non cutting moves > Approach > Start Point
   VMOV 3 mom_pos_saved_for_cycle95 mom_pos
   MOM_reload_variable -a mom_pos
   MOM_force once G_motion G_mode X Z
   MOM_rapid_move

   if { [info exists mom_from_status] } {
         # Custom: motion to > Non cutting moves > Approach > From Point
         # Should be:        > Non cutting moves > Departure > Gohome point
         for {set i 0} {$i < 3} {incr i} {
           set mom_pos($i) $mom_from_pos($i)
         }
         VMOV 3 mom_pos mom_pos_saved_for_cycle95
         MOM_force once X Z
         MOM_rapid_move
   } else {
         # OOTB (notin :/)
   }

Re: Turning - CYCLE95 avoiding the avoidance (ST and RT)

Genius
Genius

Not sure how to edit posts and therefore re-posting with cleaner versions of the 2 (two) modifications I had to do to the OOTB Siemens 840 2ax lathe post processor. Ignore the previous posts/sniplets.

 

It mainly adds support for a safe retract after cycle95 but also cancel the strange swing at the start of the cycle. If anyone have 'anything' different to make this cycle safe and effective, please share!

 

For the moment, it works for us. I hope below mods help anyone.

 

Charles

 

In PB_CMD_init_cycle95_output proc:

 

     #---------------------------------------------------------------
     # Save current position of this event.
     # - It will be used as the return position after the cycle call.
     #---------------------------------------------------------------
     global mom_pos
     global mom_from_status
     global mom_prev_pos
     global mom_pos_saved_for_cycle95

     if { [info exists mom_from_status] } {
           # Custom
           for {set i 0} {$i < 3} {incr i} {
             set mom_pos($i) $mom_prev_pos($i)
           }
           VMOV 3 mom_pos mom_pos_saved_for_cycle95
     } else {
           # OOTB
           global mom_pos mom_pos_saved_for_cycle95
           VMOV 3 mom_pos mom_pos_saved_for_cycle95
     }

 

In PB_CMD_contour_end proc:

 

  #++++++++++++++++++++++++++++++++++++++++++++++++
  # Output return move (X -> Z) after cycle95 call
  # ==> Detail moves may need to be adjusted
  #     according to the nature of the cut.
  #++++++++++++++++++++++++++++++++++++++++++++++++
   global mom_pos
   global mom_pos_saved_for_cycle95
   global mom_from_status
   global mom_from_pos

   VMOV 3 mom_pos_saved_for_cycle95 mom_pos
   MOM_reload_variable -a mom_pos
   MOM_force once G_motion G_mode X Z
   MOM_rapid_move

     # Add support for departure after cycle95
     if { [info exists mom_from_status] } {
           for {set i 0} {$i < 3} {incr i} {
             set mom_pos($i) $mom_from_pos($i)
           }
           MOM_force once X Z
           MOM_rapid_move
     } else {
           # OOTB
     }

 

 

Learn online





Solution Information