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:

Plunge mill tutorial


JWalthall
 Share

Recommended Posts

I agree I use Drill routine to program my plunge paths also. I draw circle with say a .100 overlap and I use drill entities, make sure you sort is correct or it could be a mess. I wish it would back off the part about .005 on the retract, the tool would last longer and it would make less noise.

Link to comment
Share on other sites

That would be easy to add to the post if you wanted it. I do this with a probing post. You would need to add a direction logic to the drilling routine. You would base this off of a Additional drill parameters. Now with 4 of these you can decide a direction or with 2 added you could get a angle direction. Then use another one for a value and done. You might ask how easy is this to do. Here is some logic to consider grated this is for probing but the same could apply here.

 

code:

pbld, n$, *strg659816, *xout, *yout, [if dwell$, *icorn], [if retr$, *jcorn],  [if corn_angtoler > 0, *corn_angtoler], [if offupdate > 0,*offupdate], [if feattol, *feattol],

[if trueposzone > 0, *trueposzone], [if drl_prm10$ > 0, *drl_prm10$], e$

In each of these statements I defined the variables like so:

 

code:

fmt     2  drl_prm1$    #Tolerance Vaule for Repeat Loop in Post

fmt X 2 drl_prm2$ #Size to Measure for P9812 Cycle X axis

fmt Y 2 drl_prm3$ #Size to Measure for P9812 Cycel Y axis

fmt W 4 drl_prm10$ #Print Variable for Increment or Reset

 

apcdang = drl_prm1$ #Used for Angle of 1st Hole on PCD P9819 Cycle

xdcorn = drl_prm2$ #Used for Distance of Safe Position in X for Corner Cycles

ydcorn = drl_prm3$ #Used for Distance of Safe Position in Y for Corner Cycles

Now if I pick them they are active if I do not pick them then they are not active and not used. If you put logic like this in the post then you can decide how you want to post to react to the selected variables.

 

code:

pdrlcst$         #Custom drill cycles 8 - 19 (user option)

#Use this postblock to customize drilling cycles 8 - 19

if drillcyc$ = 11, #Internal Corner Measure

[

pdrlcommonb

if icorn <> 0 & jcorn = 0, #Internal Corner Probing Using I

[

if drl_prm1$ = 1,

[

xcorn = xout + xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 2,

[

xcorn = xout - xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 3,

[

xcorn = xout - xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 4,

[

xcorn = xout + xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 0, result = mprint(scornerror), exitpost$

if drl_prm1$ > 4, result = mprint(scornerror), exitpost$

pbld, n$, *strg659810, *xcorn, *ycorn, e$

pbld, n$, *strg659810, *prorefht, e$

pbld, n$, *strg659810, *zcorn, e$

pbld, n$, *strg659815, *xout, *yout, [if shftdrl$, *icorn], [if corn_angtoler > 0, *corn_angtoler], [if offupdate > 0,*offupdate], [if feattol, *feattol],

[if trueposzone > 0, *trueposzone], [if drl_prm10$ > 0, *drl_prm10$], e$

pbld, n$, *strg659810, *prorefht, e$

if drl_prm10$,

[

spaces$ = 0

"POPEN", e$

sdprint, "[", sopcomment, "]", e$

sdprint, "[iNTERNAL*CORNER*PROBING*USING*I]", e$

sdprint, "[ANGLE*OF*X*SURFACE*IS*#139[24]*]", e$

sdprint, "[","*X*#135[24]*ERROR*#140[24]*]", e$

sdprint, "[","*Y*#136[24]*ERROR*#141[24]*]", e$

sdprint, "[","Z*POSITION*IS*",*zcorn,"]", e$

sdprint, "[","*TRUE*POSITION*ERROR*#145[24]*]", e$

sdprint, "[","-------------------------------------------","]", e$

"PCLOS", e$

spaces$ = 1

]

]

if icorn = 0 & jcorn <> 0, #Internal Corner Probing Using J

[

if drl_prm1$ = 1,

[

xcorn = xout + xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 2,

[

xcorn = xout - xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 3,

[

xcorn = xout - xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 4,

[

xcorn = xout + xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 0, result = mprint(scornerror), exitpost$

if drl_prm1$ > 4, result = mprint(scornerror), exitpost$

pbld, n$, *strg659810, *xcorn, *ycorn, e$

pbld, n$, *strg659810, *prorefht, e$

pbld, n$, *strg659810, *zcorn, e$

pbld, n$, *strg659815, *xout, *yout, [if retr$, *jcorn], [if corn_angtoler > 0, *corn_angtoler], [if offupdate > 0,*offupdate], [if feattol, *feattol],

[if trueposzone > 0, *trueposzone], [if drl_prm10$ > 0, *drl_prm10$], e$

pbld, n$, *strg659810, *prorefht, e$

if drl_prm10$,

[

spaces$ = 0

"POPEN", e$

sdprint, "[", sopcomment, "]", e$

sdprint, "[iNTERNAL*CORNER*PROBING*USING*J]", e$

sdprint, "[","*X*#135[24]*ERROR*#140[24]*]", e$

sdprint, "[ANGLE*OF*Y*SURFACE*IIS*#142[24]*]", e$

sdprint, "[","*Y*#136[24]*ERROR*#141[24]*]", e$

sdprint, "[","Z*POSITION*IS*",*zcorn,"]", e$

sdprint, "[","*TRUE*POSITION*ERROR*#145[24]*]", e$

sdprint, "[","-------------------------------------------","]", e$

"PCLOS", e$

spaces$ = 1

]

]

if icorn <> 0 & jcorn <> 0, #Internal Corner Probing Using I and J

[

if drl_prm1$ = 1,

[

xcorn = xout + xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 2,

[

xcorn = xout - xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 3,

[

xcorn = xout - xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 4,

[

xcorn = xout + xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 0, result = mprint(scornerror), exitpost$

if drl_prm1$ > 4, result = mprint(scornerror), exitpost$

pbld, n$, *strg659810, *xcorn, *ycorn, e$

pbld, n$, *strg659810, *prorefht, e$

pbld, n$, *strg659810, *zcorn, e$

pbld, n$, *strg659815, *xout, *yout, [if dwell$, *icorn], [if retr$, *jcorn], [if corn_angtoler > 0, *corn_angtoler], [if offupdate > 0,*offupdate], [if feattol, *feattol],

[if trueposzone > 0, *trueposzone], [if drl_prm10$ > 0, *drl_prm10$], e$

pbld, n$, *strg659810, *prorefht, e$

if drl_prm10$,

[

spaces$ = 0

"POPEN", e$

sdprint, "[", sopcomment, "]", e$

sdprint, "[iNTERNAL*CORNER*PROBING*USING*I*AND*J]", e$

sdprint, "[ANGLE*OF*X*SURFACE*=*#139]", e$

sdprint, "[","*X*#135[24]*ERROR*#140[24]*]", e$

sdprint, "[ANGLE*OF*Y*SURFACE*IS*#142[24]*]", e$

sdprint, "[","*Y*#136[24]*ERROR*#141[24]*]", e$

sdprint, "[","Z*POSITION*IS*",*zcorn,"]", e$

sdprint, "[","*TRUE*POSITION*ERROR*#145[24]*]", e$

sdprint, "[","-------------------------------------------","]", e$

"PCLOS", e$

spaces$ = 1

]

]

if icorn = 0 & jcorn = 0, #Internal Corner Probing 90 deg Corner

[

if drl_prm1$ = 1,

[

xcorn = xout + xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 2,

[

xcorn = xout - xdcorn

ycorn = yout + ydcorn

]

if drl_prm1$ = 3,

[

xcorn = xout - xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 4,

[

xcorn = xout + xdcorn

ycorn = yout - ydcorn

]

if drl_prm1$ = 0, result = mprint(scornerror), exitpost$

if drl_prm1$ > 4, result = mprint(scornerror), exitpost$

pbld, n$, *strg659810, *xcorn, *ycorn, e$

pbld, n$, *sg00, *prorefht, e$

pbld, n$, *strg659810, *zcorn, e$

pbld, n$, *strg659815, *xout, *yout, [if offupdate > 0,*offupdate], [if feattol, *feattol],

[if trueposzone > 0, *trueposzone], [if drl_prm10$ > 0, *drl_prm10$], e$

pbld, n$, *strg659810, *prorefht, e$

if drl_prm10$,

[

spaces$ = 0

"POPEN", e$

sdprint, "[", sopcomment, "]", e$

sdprint, "[iNTERNAL*CORNER*90*DEG*CORNER*PROBING*]", e$

sdprint, "[","*X*#135[24]*ERROR*#140[24]*]", e$

sdprint, "[","*Y*#136[24]*ERROR*#141[24]*]", e$

sdprint, "[","Z*POSITION*IS*",*zcorn,"]", e$

sdprint, "[","*TRUE*POSITION*ERROR*#145[24]*]", e$

sdprint, "[","-------------------------------------------","]", e$

"PCLOS", e$

spaces$ = 1

]

]

pcom_movea

]

As you can see for drill cycle 11 I have given logic to the probing to decide which one was picked from the drill parameters and by doing so I made a way for the programmer to decide which was the probing routing would come to and away from the probing routine. You could add the same type of logic to the post for your plunge milling using a drilling cycle and get the clearance you want for a direction you are going with the plunging routine.

 

HTH

Link to comment
Share on other sites

I use a "ruled" tool path, using 3 contours when I am not channeling. Offset the top contour cutter radius + stock to leave, then translate the contour down to the floor, extend the bottom contour .05 at the start point then offset it .005 for a pull away. This really works best with open contours. Drill the corners channel from one to the other all the way around just pulling back the .05 then set-up to plunge out the center. This may be the long way around the barn, but the best way I have found with the control I want to have.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

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...