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:
So I will basically have to do a lathe point op to trick the previous op into thinking that the next op is a toolchange
because if I don't create a fake TC then the previous op won't go into retract.
I guess I should of also said that this is from a MPLFAN post that I have modified to work for Doosan turning centers
with y-axis. I think this is a good start for pickoff cutoff ops but it needs a little work to be bulletproof. It also needs a few
more misc. int. to control things like spindle sync, dwell time, and feedrates. This also needs a misc. int. for indexing both
spindles in case of indexed geometry that needs to line up from one spindle to the next. This logic does not currently support
indexing of the spindles but could easily be added with a misc. int. Any help to iron this out would be much appreciated as I am
trying to avoid using a macro for transfer stuff when I can simply output it at the pc.
Ok so below is the logic I have created in pchuck$ postblock for POCO.
It all works well with the wcs pickup on the face of the part only based on this logic.
My current problem is that I am trying to use the pickoff cutoff to do a bar pull with
the sub chuck but I want to pull the bar and then do a partial cutoff to relieve springing
in the part. I am going from a rough face op to a rough OD turning op and then a sub chuck
bar pull proceeded by partial cutoff. Well the problem is when you go from a rough OD turn
to the sub chuck bar pull it treats the chuck op as a null toolchange and there is no retract
in my previous OD turning op. How do I force a toolchange in a chucking op when there is no
option to do that. I would rather keep the cutoff after the bar pull as the part has little
to no tolerance and I dont want to distort the part while grabbing it with the sub. I am
only leaving about .06" with the partial cutoff. What logic would I have to use in pchuck$
in order to apply a forced toolchange but only when I go from a turning op to a chucking op.
pchuck$ #NCI CODE = 903
#AVAILABLE VARIABLES: #DEFINITIONS
#clmp_spindle$, e$ #ACTIVE SPINDLE FOR CLAMP/UNCLAMP:
#(0=LEFT SPINDLE, 1=RIGHT SPINDLE)
#clmp_op$, e$ #SELECTED OPERATION MODE:
#(0=CLAMP, 1=UN-CLAMP, 2=RE-POSITION, 3=EJECT)
#stck_chuk_st_z$, e$ #INITIAL Z AXIS CHUCK POSITION
#stck_chuk_st_x$, e$ #INITIAL X AXIS CHUCK POSITION
#stck_chuk_end_z$, e$ #FINAL Z AXIS CHUCK POSITION
#stck_chuk_end_x$, e$ #FINAL X AXIS CHUCK POSITION
pheader$
if stck_chuk_st_z$ <> stck_chuk_end_z$, #IF CHUCK START POSITION "IS NOT" CHUCK END POSITION
[
if toolchng <> two,
#ptoolend$
toolend_flg = one #DO NOT EXECUTE ptoolend AGAIN AFTER TRANSFER
]
else,
toolend_flg = one #DO NOT EXECUTE ptoolend AGAIN AFTER TRANSFER
!spaces$
spaces$ = one
if stck_spindle$ = 0, #MAIN SPINDLE- PICKOFF/CUTOFF OP (SYNCED)
[
if clmp_spindle$ = 1 & clmp_op$ = 1 | clmp_op$ = 3, #SUB SPINDLE- UNCLAMP OR EJECT OP
[
pbld, n$, "M131", e$ #INTERLOCK BY-PASS FOR SUB CHUCK
pbld, n$, "M203", e$ #SPINDLE FORWARD SPEED SYNC ON
if clmp_op$ >= one, #SUB CHUCK- UNCLAMP
pchuck_unclamp
]
if clmp_spindle$ = 1 & clmp_op$ = 2, #SUB SPINDLE- REPOSITION (FEED) OPS
[
if stck_chuk_st_z$ > 0 & stck_chuk_end_z$ > 0, #SUB SPINDLE- APPROACH (B-AXIS)
[
gcode$ = 0
pbld, n$, *sgcode, *stck_chuk_end_z$, e$
]
if stck_chuk_st_z$ > 0 & stck_chuk_end_z$ < 0, #SUB SPINDLE- PICK-OFF/FEED ON (B-AXIS)
[
sav_gcode = gcode$
gcode$ = 1
ipr_actv$ = 0
pbld, n$, "M86", "(TORQUE SKIP ON)", e$ #TORQUE SKIP ON
pbld, n$, sgcode, sgfeed, *stck_chuk_end_z$, miscops_mr2$, e$ #FEED ON MOVE (MR2- FEED ADJUST)
pbld, n$, "M87", "(TORQUE SKIP OFF)", e$ #TORQUE SKIP OFF
gcode$ = sav_gcode
]
if stck_chuk_st_z$ < 0 & stck_chuk_end_z$ < 6, #SUB SPINDLE- PULL STOCK (B-AXIS)
[
gcode$ = 1
ipr_actv$ = 0
pbld, n$, sgcode, sgfeed, *stck_chuk_end_z$, miscops_mr2$, e$
]
]
if clmp_spindle$ = 1 & clmp_op$ = 0, #SUB SPINDLE- CLAMP
[
if clmp_op$ = zero | clmp_op$ = two,
pchuck_clamp
pbld, n$, "G4", "X.5", *scoolantx, e$ #DWELL, COOLANT ON
]
if clmp_spindle$ = 0 & clmp_op$ = 1, #MAIN CHUCK- UNCLAMP
[
pbld, n$, "M31", e$ #INTERLOCK BY-PASS FOR MAIN CHUCK
pchuck_unclamp
]
if clmp_spindle$ = 0 & clmp_op$ = 0, #MAIN CHUCK- CLAMP
pchuck_clamp
if stck_chuk_st_z$ < 0 & stck_chuk_end_z$ > 8, #RETRACT
[
gcode$ = 0
pbld, n$, sgcode, *stck_chuk_end_z$, sall_cool_off, e$
pbld, n$, "M206", e$ #SPINDLE FORWARD SPEED SYNC OFF
pbld, n$, "M5", "P11", e$
pbld, n$, "M5", "P13", e$
pbld, n$, *sg28ref, "U0.", "W0.", "B#5004", e$
]
]
spaces$ = prv_spaces$
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.