Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

Leaderboard

Popular Content

Showing content with the highest reputation on 03/12/2021 in all areas

  1. I would really depend on what your "base post" is that you are starting from. If this was a purchased Post, from a 3rd Party, then all bets are off. If your Post happened to be based on the Generic Fanuc 5X Mill Post, then swapping the output variables is a piece of cake (when you know how, of course). Here is a sample 'output line' of code from the Gen Fan 5X Mill Post: pcan1, pbld, n$, *sgcode, pwcs, *sgabsinc, *yout, *p_out, *s_out, *speed, *spindle, pgear, strcantext, e$ In this case, the variables are: p_out s_out Which stand for "primary" and "secondary" rotary axes. All you would have to do is reverse the order, like so: pcan1, pbld, n$, *sgcode, pwcs, *sgabsinc, *yout, *s_out, *p_out, *speed, *spindle, pgear, strcantext, e$ Keep in mind, you would need to do this in any place where the Post was outputting the codes. So I would search through the Post for [p_out] and [s_out], without the square brackets: no [ ]. Wherever you find "p_out" as part of an output line, I would reverse the 'p_out' and 's_out' variables. You can tell it is an output line, by the fact that each parameter is separated by a comma (,), and because the line ends with (e$). In Generic Fanuc 5X Mill, here are the locations you would have to change: p_goto_strt_tl #Make the tool start up at toolchange pfd_shft_inc psign_ang_out ##### Custom changes allowed below ##### #Unlock rotary axis if use_clamp, [ p_lock = zero s_lock = zero pbld, n$, s_slock, e$ pbld, n$, s_plock, e$ ] if stagetool <= one, pbld, n$, *t$, "M6", e$ if n_tpln_mch > m_one, #Toolplane mapping mode [ #Enter your mapping scheme here... pg68_map pbld, n$, "G43", *tlngno$, *zabs_s, e$ pbld, n$, *sg00, pwcs, "X0.", "Y0.", *zabs_s, e$ pcan1, pbld, n$, *sgcode, *xabs_s, *yabs_s, *p_out, *s_out, strcantext, e$ ] else, #5 axis and regular mode ( n_tpln_mch = -2) [ if cut_ra_head & use_g45, #Swap xout and yout based on offset axis [ tloffno2 = tlngno$ + g45_of_add pcan1, pbld, n$, *sgcode, pwcs, *sgabsinc, *yout, *p_out, *s_out, *speed, *spindle, pgear, strcantext, e$ pbld, n$, "G45", *tloffno2, *xout, e$ ] else, [ pcan1, pbld, n$, *sgcode, pwcs, *sgabsinc, *xout, *yout, *p_out, *s_out, *speed, *spindle, pgear, strcantext, e$ ] ] if stagetool = one, pbld, n$, *next_tool$, e$ #Lock rotary axis if use_clamp & (cuttype = zero | opcode$ = three | opcode$ = 16), [ p_lock = one s_lock = one pbld, n$, s_slock, e$ pbld, n$, s_plock, e$ ] if n_tpln_mch > m_one, #Toolplane mapping mode [ #Enter your mapping scheme here... pg68 pbld, n$, *xout, *yout, *zout, pscool, e$ ] else, pbld, n$, "G43", *tlngno$, *zout, pscool, e$ ##### Stop custom changes ##### if top_map, !n_tpln_mch psign_ang_res pcom_movea #locally set delta for feed calculation p_dlt_ang = zero s_dlt_ang = zero toolchng = zero p_goto_strt_ntl #Make the tool start up at null toolchange if workofs$ <> prv_workofs$ | (top_map & (prv_n_tpln_mch <> n_tpln_mch | prv_p_abs <> fmtrnd(p_abs) | prv_s_abs <> fmtrnd(s_abs))), [ pfd_shft_inc sav_absinc = absinc$ absinc$ = zero p_absinc_chng psign_ang_out ##### Custom changes allowed below ##### if n_tpln_mch > m_one, #Toolplane mapping mode [ #Enter your mapping scheme here... pg68_map pbld, n$, pwcs, sgabsinc, *xabs_s, *yabs_s, *zabs_s, *p_out, *s_out, e$ pg68 pbld, n$, *xout, *yout, *zout, e$ ] else, pbld, n$, pwcs, sgabsinc, *xout, *yout, *zout, *p_out, *s_out, e$ ##### Stop custom changes ##### psign_ang_res pe_inc_calc absinc$ = sav_absinc ps_inc_calc #calls p_absinc_chng pcom_movea ] else, p_goto_pos if top_map, !n_tpln_mch #locally set delta for feed calculation p_dlt_ang = zero s_dlt_ang = zero protretinc #Reset the C axis revolution counter if frc_cinit, [ p_abs = zero p_inc = zero s_abs = zero s_inc = zero pset_dlt_to_abs if use_clamp, #Unlock rotary axis [ p_lock = zero s_lock = zero pbld, n$, s_slock, e$ pbld, n$, s_plock, e$ ] pbld, n$, *sg28, p_out, s_out, e$ p_wnd_ang = zero s_wnd_ang = zero !p_wnd_ang, !s_wnd_ang ] prapidout #Output to NC of linear movement - rapid pcan1, pbld, n$, `sgcode, sgplane, sgabsinc, pccdia, xout, yout, zout, p_out, s_out, strcantext, pscool, e$ plinout #Output to NC of linear movement - feed punclamp pcan1, pbld, n$, `sgcode, sgplane, sgabsinc, `sgfeed, pccdia, xout, yout, zout, p_out, s_out, `feed, strcantext, pscool, e$ if nc_lout$ <> m_one & feed = zero, psfeederror pclamp pcirout #Output to NC of circular interpolation sav_gcode = gcode$ parc_setup pcan1, pbld, n$, `sgcode, sgplane, sgabsinc, `sgfeed, pccdia, xout, yout, zout, p_out, s_out, parcijk, `feed, strcantext, pscool, e$ gcode$ = sav_gcode if nc_lout$ <> m_one & feed = zero, psfeederror ppos_cax_lin #Position the rotary axis before move - rapid if p_inc | s_inc, [ sav_gcode = gcode$ gcode$ = zero punclamp pbld, n$, sgcode, p_out, s_out, e$ pclamp !p_abs, !s_abs ps_cinc_calc gcode$ = sav_gcode ] prdrlout #Output drill position psign_ang_out if plane_2 = zero, #XY [ if gcode$ = 81, [ result = force(drlz, drlz) result = force(refhtoutz, refhtoutz) ] xout, yout, drlz, p_out, s_out, refhtoutz ] else, [ if plane_2 = one, #YZ [ if gcode$ = 81, [ result = force(drlx, drlx) result = force(refhtoutx, refhtoutx) ] drlx, yout, zout, p_out, s_out, refhtoutx ] else, #XZ [ if gcode$ = 81, [ result = force(drly, drly) result = force(refhtouty, refhtouty) ] xout, drly, zout, p_out, s_out, refhtouty ] ] !refhtoutx, !refhtouty, !refhtoutz, !drlx, !drly, !drlz
    2 points
  2. Thanks, I spent the time to figure out how to get Active Reports to output what I wanted. ( I am still a "babe in the woods" with Active Reports ) I love being able to do a "one click" to get setup sheets. In some cases it was taking as long to build setup sheets from scratch as it was to generate a program. If you made a change to the program, then you had to go back and fix or re-do the setup sheets.
    2 points
  3. They should easily be able to match your "N" block numbers to the operation numbers. That should work on your setup sheet, depending on how it is setup.
    2 points
  4. It would be nice if you could lock it per operation rather than globally.
    2 points
  5. That setting has burned me so many times...... I will forever have that checked unless somehow I only do the same thing over and over and cease to care about optimizing my feeds and speeds per operation and cut width/depth. Which will likely be never...
    2 points
  6. I just wanted to publicly celebrate a milestone for me. I can now generate some basic 5 axis tool paths in Mastercam. Colon G. Is the man, he is the man responsible for helping me understand what I was doing wrong. I have so much to learn, but it feels amazing to actually set up a model with drive lines, set the axis I want the Spindle to follow and it actually work. I still need to gain better control of the spindle position. When using the Curve 5 axis. I need to learn how to switch from Axis control via Line to Around a point and blend the 2 operations into a single cut. I’ll be making some videos with screen cap soon to show exactly what I want am trying to accomplish soon. Trying to describe what I would like to learn with a very limited mastercam vocabulary is very challenging. for example let’s say I want to side mill a line that has a straight section and a curve. If I use lines for axis control for the straight section it works great, however if I use the lines around the curve section and try to make a tool path in one go straight and curve, the spindle end of the cutter does strange things, It’s hard to tell which of the axis control lines to adjust to correct the spindle position. I bet your lost with me trying to explain it, but if I show you exactly what I am seeing, instantly you will know what I am trying to convey Learning mastercam has not been easy, in fact it’s darn right hard.
    1 point
  7. Thanks agian colin that is very helpful as always-
    1 point
  8. If you had a block number at the beginning of an operation (as an example N10 for operation 10) and the post was still outputting block numbers for the rest of the program on every line, it would be hard to search for the line with the Block/Op number. If you turned off the sequence numbers through the Control definition, then you could force the post to output block/operation numbers only at the beginning of the Operation. I primarily deal with Aerospace HRSA materials and have my turning posts setup so that they ONLY output block/sequence numbers every time the machine stops for a insert index or at the beginning of a new operation. I also have all of the codes output to start the machine at that point even if the operator hits RESET. The operators love this and it makes it very easy for the operators to hand off between shifts. "I just finished N25, start at N26"
    1 point
  9. Finally I have determined that this problem exists in mastercam 2017, at least there is no such problem in 2019 and above. It has bothered me for 2 months.
    1 point
  10. It is possible, but you would have to modify your post to accomplish this. It would be confusing to the operator if you still had the sequence numbers turned on for the rest of the program. Another option might be to write the Op number to the posted output so that it shows up like this: ( OP5 ) at the beginning of the operation I believe that you can search a program for words that are in comments, but don't have any way of testing that right now.
    1 point

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...