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:

One varaible with 3 possible Values????


crazy^millman
 Share

Recommended Posts

Okay more on the probing. You have the capability to probe a single surface. You can probe this single surface in X, Y, or Z. Now can you make a condition statement where you can make the Variable float so to speak and if you choose a vector direction then it output the correct axis for that cycle. So if I am doing a single surface check in Z then the post knows that is it Z and then output Z, the same for X or Y. Right now I am using a trigger in the post to manually do this, but was thinking something like this.

 

[if depth$ = Z, zsinsurf],[if depth$ = X, xsinsurf],[if depth$ = Y, ysinsurf]

 

My varaibles are defined as so incase that helps:

 

 

fmt X 2 xsinsurf	 #Single Surface for X
fmt Y 2 ysinsurf	 #Single Surface for Y
fmt Z 2 zsinsurf	 #Single Surface for Z

zsinsurf = depth$		#P9811 Z Axis Single Surface Use
ysinsurf = depth$		#P9811 Y Axis Single Surface Use
xsinsurf = depth$	 #P9811 X Axis Single Surface Use

But it did not work. I see a control Flags varaible will something like this work:

 


if cur_cflg$ = 1, xsinsurf
if cur_cflg$ = 2, ysinsurf
if cur_cflg$ = 3, zsinsurf

 

 

Not much explanation given about this variable in the Post PDF so not sure what it does anyone got suggestions or ideas.

 

Thank for looking and any help is listened to and appreciated.

Link to comment
Share on other sites
Guest CNC Apps Guy 1

You need to set xsin..., ysin.., zsin...,

 

See below,

 

code:

# --------------------------------------------------------------------------

# G32X Probing Variables

# --------------------------------------------------------------------------

rspd : 0 # D - Diameter

rspx : 0 # X - Approach Amt. in X

rspy : 0 # Y - Approach Amt in Y

rspi : 0 # I - X Coor. Meas. Loc.

rspj : 0 # J - Y Coor. Meas. Loc.

rspk : 0 # K - Stroke

rspz : 0 # Z - Depth of Probe Point

prb_wcs : 0 # W - WCS P address

rspu : 0 # U - X Slot To Measure (+ID/-OD)

rspv : 0 # V - Y Slot To Measure (+ID/-OD)

rspa : 0 # A - Dist & Dir. To X Origin.

rspb : 0 # B - Dist & Dir. To Y Origin.

rspq : 0 # Q - Center Offset Max. Dev.

rspc : 0 # C - Z Step

rspr : 0 # R - Number of Hits

rsps : 0 # S - Number of Points

# --------------------------------------------------------------------------

Mind you the example above is completely unrelated, you still need to "set" them for lack of a better term. You declared your variables, you formatted them, you just did not "set" them so that they can be used.

 

HTH

Link to comment
Share on other sites

James I have not set any of my variables to this point and my probing has been working fine. headscratch.gifheadscratch.gifheadscratch.gif Now you got me very worried.

 

On a side note here is something I just learned tonight:

 

 

pbld, n$, *strg659812, [if drl_prm2$ > 0, *drl_prm2$], [if drl_prm3$, *drl_prm3$], [if dwell$ = zero, *zbossdep],

[if dwell$ = 1,[if radclear, *radclear]], [if feattol, *feattol], [if offupdate, *offupdate], 

[if trueposzone, *trueposzone], [if toolupdate, *toolupdate], [if drl_prm10$, *drl_prm10$], e$  

The double bracket control. I have dwell controlling this as web/pocket probing routine. If I do not output Z then I can not use the R value. The R value control clearance moves around ribs inside a pocket. So if I by mistake have an R in there it will not post it out since I am using the Dwell to control the Cycle.

 

[ 09-18-2008, 11:18 PM: Message edited by: Crazy^Millman ]

Link to comment
Share on other sites
Guest CNC Apps Guy 1

If it's worked thus far... headscratch.gif May as wel not change now. This is how I've always done my cycles, of course the last time I did a Probing Post was in V9 after X had just been released. So it's been a while. Perhaps now it's not necessary.

 

Paging Dr. Paul Decelles... biggrin.gif

Link to comment
Share on other sites

quote:

Now can you make a condition statement where you can make the Varaible float so to speak and if you
choose
a vector direction then it output thet correct axis for that cycle

quote:

Right now I am using a trigger in the post to manunally do this,

Either way it appears you're manually "setting the trigger" whether it's setting the vector or setting your trigger variable. I would think that since you're already in the drilling parameters page setting your trigger is going to be more efficient.

 

If your vector is already set maybe you could set your "retract" or "Top of stock" to an entity and have the post do a comparison between the the two points but with that process you're back to creating a "choice" except now you're adding a couple of mouse clicks for the choice rather than just typing it.

 

The single surface probing has five directions to go and it doesn't care about what plane/vector you're in.

 

Of cource I could be all wrong biggrin.gif

Link to comment
Share on other sites

Ron I don't know if this will help but this is how I handle the single surface probing.

 

code:

prob_dia    : 0     # ( D )Nominals Size of feature to probe

work_off : 0 # ( S )Work offset to update

tool_off : 0 # ( T )Tool offset to update

xloc_size : 0 # ( X )X Feature location or size

yloc_size : 0 # ( Y )Y Feature location or size

z_depth : 0 # ( Z )Z Depth to probe

xlocate : 0 # ( X )X Axis Position

ylocate : 0 # ( Y )Y Axis Position

zlocate : 0 # ( Z )Z Axis Position

rad_clear : 0 # ( R )Radial clearance for external features

over_trvl : 0 # ( Q )Overtravel amount to allow

iinc_next : 0 # ( I )Next incremental location to probe in the X axis

jinc_next : 0 # ( J )Next incremental location to probe in the Y axis

feat_tol : 0 # ( H )Tolerance of feature to probe

true_pos : 0 # ( M )True position of feature to probe, first variable

prnt_data : 0 # ( W )Print Data to Fanuc Macro Variables #135 to #149

angle_tol : 0 # ( B )Angle tolerance

upper_tol : 0 # ( U )Upper tolerance limit

exper_val : 0 # ( E )Experience Value. Spare tool offset value to be applied to measured size.

null_band : 0 # ( V )Null Band. Tolerance zone where no tool offset ocurs

perc_fdbk : 0 # ( F )Percent feedback when updating tool offset, 0 or 1, 1=100%

zprot_move : 0 # ( Z )refht = Clearance for protected positioning move

zretr_move : 0 # ( Z )initht = Height to retract to between moves

top_boss : 0 # ( Z )retr = Top of the boss being probed

top_feat : 0 # ( Z )retr = Top of the feature being probed

true_pos2 : 0 # ( M )True position of feature to probe, second variable

axis_selct : 0 # ( 1,2,3 )Used to select axis for single surface measure 1=X, 2=Y, 3=Z

xloc_size2 : 0 # ( X )X Feature location or size for Square & Rectangular Centering

yloc_size2 : 0 # ( Y )Y Feature location or size for Square & Rectangular Centering

code:

 zprot_move = refht$

zretr_move = initht$

ztopofstk = toz$

zdepth = depth$

prob_dia = peck1$

work_off = peck2$

tool_off = peckclr$

xloc_size = peck1$

yloc_size = peck1$

feat_tol = retr$

rad_clear = shftdrl$

over_trvl = dwell$

top_boss = drl_prm1$

true_pos = drl_prm2$

true_pos2 = shftdrl$

top_feat = drl_prm1$

xlocate = drl_prm3$

ylocate = drl_prm4$

zlocate = drl_prm5$

axis_selct = peck1$

xloc_size2 = drl_prm3$

yloc_size2 = drl_prm4$

slowdrill_speed = peck1$

slowdrill_feed = peck2$

start_height = refht$

first_depth = peckclr$

fastdrill_speed = retr$

retract_feed = shftdrl$

drill_speed = dwell$

start_hgt = peck1$

drill_feed = peck2$

code:

  #DLB-----------------------SINGLE SURFACE PROBE CYCLE ADDED 05/01/08

 

if drillcyc$ = 13,

[

pdrlcommonb

if axis_selct = 1,

[

#"( X SURFACE MEASURE )", e$

pbld, n$, "G65 P9810", *zprot_move, *feed, e$

pbld, n$, "G65 P9811", *xlocate, *zdepth, [if work_off > 0, *work_off], [if tool_off > 0, *tool_off], [if feat_tol > 0, *feat_tol], [if over_trvl > 0, *over_trvl], [if true_pos2 > 0, *true_pos2], e$

pbld, n$, "G65 P9810", *zretr_move, *feed, e$

]

else,

 

if axis_selct = 2,

[

#"( Y SURFACE MEASURE )", e$

pbld, n$, "G65 P9810", *zprot_move, *feed, e$

pbld, n$, "G65 P9811", *ylocate, *zdepth, [if work_off > 0, *work_off], [if tool_off > 0, *tool_off], [if feat_tol > 0, *feat_tol], [if over_trvl > 0, *over_trvl], [if true_pos2 > 0, *true_pos2], e$

pbld, n$, "G65 P9810", *zretr_move, *feed, e$

]

else,

 

if axis_selct = 3,

[

#"( Z SURFACE MEASURE )", e$

pbld, n$, "G65 P9810", *zprot_move, *feed, e$

pbld, n$, "G65 P9811", *zdepth, [if work_off > 0, *work_off], [if tool_off > 0, *tool_off], [if feat_tol > 0, *feat_tol], [if over_trvl > 0, *over_trvl], [if true_pos2 > 0, *true_pos2], e$

pbld, n$, "G65 P9810", *zretr_move, *feed, e$

]

else,

 

#DLB-------Added this check for valid axis in single surface probe operation

 

if axis_selct < 1 | axis_selct > 3, #result = mprint(sselect_axis,2)

[

result = mprint(sselect_axis,1)

spaces$ = 0

*e$

scomm_str, sselect_axis, scomm_end, e$

spaces$ = sav_spc

exitpost$

]

]

its not as smooth as what your describing but it does work well for my current needs.

Link to comment
Share on other sites

Thanks guys, I think for now. Z axis method is going to be supported. The other ones do require some thinking and Tim you touched on it. A drilling cycle is only one vector. It always goes in a Z direction relative to the C-plane so I am wrong on that front thinking I could control it that way. I will have to work with triggers and that will be a whole different approach to my current method. I stripped the post down to do just Z for now and when I got time down the road will work out the logic to support X and Y since I want it to do my approach and retract based off a positive or negative approach to that type of probing.

 

Sheffer, thank for putting that up I might use some of that.

 

Thanks guys when you are the lone boat in the ocean it nice to have a voice coming back at you. cheers.gifcheers.gifcheers.gif

Link to comment
Share on other sites

Well on an Integrex the Head moves. So when the head is at B90 and you do a single surface in line with the head you are moving along the X axis. When the Head is a B0 or B180 then the head is moving in the Z direction. So with this ability you can get to a lot of features. On a horizontal machine the head is stationary. So if you want to do X moves then you need to make a move outside of the part then come to the surface. With Drill cycles you have one point then the retract and clearance are along that approach and retract Z axis plane. So to approach a X axis surface you would then pick that point using the drilling cycle. The safety move off of the part would then be the same as the surface point and crash the probe. So the way I see it working on this type of machine is you need the safety move that is your approach to the surface to be away. How do you do that in a drilling cycle where you need to be away from the surface in X or Y? Now you have to also take into account which side of the surface relative to a positive or negative position and then have your post output the correct code. So here I see switches and using the addition parameters as a way to achieve that. I would make one parameter the positive or negative amount for an X output. Then do the same for a Y axis output. Then I will put logic in the post that if you pick the X method the X parameter will only output and if you do not put a value I will have it default to .25. Then I will apply this same logic to the Y axis. Condition statements and keeping things posting correctly are pretty straight forward in MP, just requires a little thought upfront is all.

 

The main objective with my probing is that I post it and forget it. I most times do not have to luxury of being at the machine and it is worth the effort to get the post dialed in so that I can just post it and forget it.

 

With all of that said if you got a better way I am all ears. Thanks for taking the time to ask me good questions that make me think about what I am doing. wink.gifwink.gifcheers.gifcheers.gif

Link to comment
Share on other sites

Ok, now I understand. The way you described the horizontal process is the way I do it.

 

code:

1.                         FIXTURE EDGE FINDING

 

FIXTURE CALC POSITION No.0 -- MOVES FIXTURE LOCATION FROM G59 TO G54P?

EDGE FINDING POSITION No.1 -- SEE CHART -- STORES LOCATION IN "G59"

EDGE FINDING POSITION No.2 -- SEE CHART -- STORES LOCATION IN "G59"

EDGE FINDING POSITION No.3 -- SEE CHART -- STORES LOCATION IN "G59"

EDGE FINDING POSITION No.4 -- SEE CHART -- STORES LOCATION IN "G59"

EDGE FINDING POSITION No.5 -- SEE CHART -- STORES LOCATION IN "G59"

1

/

-------------------------

| |

| |

4> | 5(Z) | <2

| |

| |

-------------------------

/

3


Mail coming your way...

Link to comment
Share on other sites

Ok here is what I came up with. Pretty Straight forward. Does require a little thinking when using it. Can do many in the same direction with no problem. You control your approach in X positive or negative with one varaible the same for the Y approach again positive or negative for one varaible. The Z depth is controlled at the point you pick and the safe move is the Clearance Move. If you have nothing in the X bow or Y box then the post assume you want Z axis single surface and will do it that way. Really not all that bad again requires a little thinking.

 

Here is what I did to the post:

 

 

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

  #Use this postblock to customize drilling cycles 8 - 19

  if drillcyc$ = 8, #XYZ Single Surface Measure 

	   [

	   pdrlcommonb

	   if drl_prm2$ <> 0 & drl_prm3$ = 0, #X Axis Single Surface Probing

			[

			xsinsurf = (xout + drl_prm2$)

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

			pbld, n$, *strg659810, *zsinsurf, e$

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

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

			pbld, n$, *strg659810, *zsinsurf, e$

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

			if drl_prm10$,				

				 [

				 spaces$ = 0

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

				 sdprint, "[X*AXIS*SINGLE*SURFACE*PROBING*]", e$					 

				 sdprint, "[","X*POSITION*=*#135--X*ERROR*=*#140]", e$

				 sdprint, "[","Y*POSITION*=*#136--Y*ERROR*=*#141]", e$

				 sdprint, "[","Z*POSITION*=*#137--Z*ERROR*=*#142]", e$

				 sdprint, "[","SIZE*OF*FEATURE*=*#138--ERROR*=*#143]", e$ 

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

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

				 spaces$ = 1

				 ] 

			]

	   if drl_prm3$ <> 0 & drl_prm2$ = 0, #Y Axis Single Surface Probing

			[

			ysinsurf = (yout + drl_prm3$)

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

			pbld, n$, *strg659810, *zsinsurf, e$

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

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

			pbld, n$, *strg659810, *zsinsurf, e$

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

			if drl_prm10$,				

				 [

				 spaces$ = 0

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

				 sdprint, "[Y*AXIS*SINGLE*SURFACE*PROBING*]", e$					 

				 sdprint, "[","X*POSITION*=*#135--X*ERROR*=*#140]", e$

				 sdprint, "[","Y*POSITION*=*#136--Y*ERROR*=*#141]", e$

				 sdprint, "[","Z*POSITION*=*#137--Z*ERROR*=*#142]", e$

				 sdprint, "[","SIZE*OF*FEATURE*=*#138--ERROR*=*#143]", e$ 

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

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

				 spaces$ = 1

				 ] 

			]

	   if drl_prm2$ = 0 & drl_prm3$ = 0, #Z Axis Single Surface Probing 

			[

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

			pbld, n$, *strg659810, *prnrefht, e$

			pbld, n$, *strg659811, *zsinsurf, [if offupdate > 0,*offupdate], [if feattol, *feattol],

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

			pbld, n$, *strg659810, *prnrefht, e$

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

	   if drl_prm10$,				

				 [

				 spaces$ = 0

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

				 sdprint, "[Z*AXIS*SINGLE*SURFACE*PROBING*]", e$					 

				 sdprint, "[","X*POSITION*=*#135--X*ERROR*=*#140]", e$

				 sdprint, "[","Y*POSITION*=*#136--Y*ERROR*=*#141]", e$

				 sdprint, "[","Z*POSITION*=*#137--Z*ERROR*=*#142]", e$

				 sdprint, "[","SIZE*OF*FEATURE*=*#138--ERROR*=*#143]", e$ 

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

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

				 spaces$ = 1

				 ] 

			]	

	   pcom_movea

	   ]   

Here is what I got for X:

 

 

( SURFACE*MEASURE*+.01*STOCK )

G20

G0 G17 G40 G80 G90 G94 G98

G0 G91 G28 Z0.

M43

M11

G91 G28 B0. A0.

M42

M10

G0 G91 G28 X0. Y0.

G0 G90

T66

M6

M43

M11

G0 G54 G90 X-3.1434 Y27.7984 B0. A-1. M5

M42

M10

G43 H66 Z18.

Z-.6744

G0 X-2.6434 Z-.6744

G65P9810 Z-1.6744

G65P9811 X-3.1434 H.005 M.003 W2

G65P9810 Z-1.6744

G0 X-2.6434 Z-.6744

DPRNT[sURFACE*MEASURE*+.01*STOCK]

DPRNT[X*AXIS*SINGLE*SURFACE*PROBING*]

DPRNT[X*POSITION*=*#135--X*ERROR*=*#140]

DPRNT[Y*POSITION*=*#136--Y*ERROR*=*#141]

DPRNT[Z*POSITION*=*#137--Z*ERROR*=*#142]

DPRNT[size*OF*FEATURE*=*#138--ERROR*=*#143]

DPRNT[TRUE*POSITION*ERROR*=*#145]

DPRNT[-------------------------------------------]

G0 X3.7268 Z-.6744

G65P9810 Z-1.6744

G65P9811 X3.2268 H.005 M.003 W2

G65P9810 Z-1.6744

G0 X3.7268 Z-.6744

DPRNT[sURFACE*MEASURE*+.01*STOCK]

DPRNT[X*AXIS*SINGLE*SURFACE*PROBING*]

DPRNT[X*POSITION*=*#135--X*ERROR*=*#140]

DPRNT[Y*POSITION*=*#136--Y*ERROR*=*#141]

DPRNT[Z*POSITION*=*#137--Z*ERROR*=*#142]

DPRNT[size*OF*FEATURE*=*#138--ERROR*=*#143]

DPRNT[TRUE*POSITION*ERROR*=*#145]

DPRNT[-------------------------------------------]

Y27.7883 Z18.

G0 G91 G28 Z0  

Here is what I got for Y:

 

( SURFACE*MEASURE*+.01*STOCK )

G20

G0 G17 G40 G80 G90 G94 G98

G0 G91 G28 Z0.

M43

M11

G91 G28 B0. A0.

M42

M10

G0 G91 G28 X0. Y0.

G0 G90

T66

M6

M43

M11

G0 G54 G90 X-3.1434 Y27.7984 B0. A-1. M5

M42

M10

G43 H66 Z18.

Z-.6744

G0 Y28.2984 Z-.6744

G65P9810 Z-1.6744

G65P9811 Y27.7984 H.005 M.003 W2

G65P9810 Z-1.6744

G0 Y28.2984 Z-.6744

DPRNT[sURFACE*MEASURE*+.01*STOCK]

DPRNT[Y*AXIS*SINGLE*SURFACE*PROBING*]

DPRNT[X*POSITION*=*#135--X*ERROR*=*#140]

DPRNT[Y*POSITION*=*#136--Y*ERROR*=*#141]

DPRNT[Z*POSITION*=*#137--Z*ERROR*=*#142]

DPRNT[size*OF*FEATURE*=*#138--ERROR*=*#143]

DPRNT[TRUE*POSITION*ERROR*=*#145]

DPRNT[-------------------------------------------]

G0 Y28.2883 Z-.6744

G65P9810 Z-1.6744

G65P9811 Y27.7883 H.005 M.003 W2

G65P9810 Z-1.6744

G0 Y28.2883 Z-.6744

DPRNT[sURFACE*MEASURE*+.01*STOCK]

DPRNT[Y*AXIS*SINGLE*SURFACE*PROBING*]

DPRNT[X*POSITION*=*#135--X*ERROR*=*#140]

DPRNT[Y*POSITION*=*#136--Y*ERROR*=*#141]

DPRNT[Z*POSITION*=*#137--Z*ERROR*=*#142]

DPRNT[size*OF*FEATURE*=*#138--ERROR*=*#143]

DPRNT[TRUE*POSITION*ERROR*=*#145]

DPRNT[-------------------------------------------]

X3.2268 Z18.

G0 G91 G28 Z0  

Anyone is welcome to it and thanks to Tim for some ideas as well as James and Sheffer I appreciate it guys.

cheers.gifcheers.gifcheers.gifcheers.gif

 

Don't worry I got 6 more to get straight for this machine. biggrin.gifbiggrin.gifbiggrin.gif

Link to comment
Share on other sites

Tim funny you say that. Here is Internal Corner. I have error checking so that you have to use something in the additional parameter to set direction and you can only use it one time point. The post will error to the screen and exit if you do not do what it needs. What is cool with a little change I had everything I need for external so 2 are done with one. The rest are almost the same as the Integrex so I almost have this put to rest and cool thing is it will work for a Mazak, or any Fanuc Control with Macro B and probing capabilities.

 

 

Here are the error commands:

 

 

sperror	 "ONLY USE THIS CYCLE ON ONE FEATURE AT A TIME"

scornerror  "ADDITIONAL PROBING PARAMETER 1 MUST BE 1 TO 4"  

  if drillcyc$ = 11, #Internal Corner Measure 

	   [

	   pdrlcommonb

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

			[

			if drl_prm1$ = 1, 

				 [

				 xcorn = xout + .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 2, 

				 [

				 xcorn = xout - .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 3, 

				 [

				 xcorn = xout - .5

				 ycorn = yout - .5

				 ]

			if drl_prm1$ = 4, 

				 [

				 xcorn = xout + .5

				 ycorn = yout - .5

				 ]

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

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

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

			pbld, n$, *sg00, *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

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

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

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

				 sdprint, "[","X*POSITION*=*#135--X*ERROR*=*#140]", e$

				 sdprint, "[","Y*POSITION*=*#136--Y*ERROR*=*#141]", e$

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

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

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

				 spaces$ = 1

				 ] 

			]

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

			[

			if drl_prm1$ = 1, 

				 [

				 xcorn = xout + .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 2, 

				 [

				 xcorn = xout - .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 3, 

				 [

				 xcorn = xout - .5

				 ycorn = yout - .5

				 ]

			if drl_prm1$ = 4, 

				 [

				 xcorn = xout + .5

				 ycorn = yout - .5

				 ]

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

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

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

			pbld, n$, *sg00, *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

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

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

				 sdprint, "[","X*POSITION*=*#135--X*ERROR*=*#140]", e$

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

				 sdprint, "[","Y*POSITION*=*#136--Y*ERROR*=*#141]", e$

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

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

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

				 spaces$ = 1

				 ] 

			]

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

			[

			if drl_prm1$ = 1, 

				 [

				 xcorn = xout + .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 2, 

				 [

				 xcorn = xout - .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 3, 

				 [

				 xcorn = xout - .5

				 ycorn = yout - .5

				 ]

			if drl_prm1$ = 4, 

				 [

				 xcorn = xout + .5

				 ycorn = yout - .5

				 ]

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

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

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

			pbld, n$, *sg00, *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

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

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

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

				 sdprint, "[","X*POSITION*=*#135--X*ERROR*=*#140]", e$

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

				 sdprint, "[","Y*POSITION*=*#136--Y*ERROR*=*#141]", e$

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

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

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

				 spaces$ = 1

				 ] 

			]				

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

			[

			if drl_prm1$ = 1, 

				 [

				 xcorn = xout + .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 2, 

				 [

				 xcorn = xout - .5

				 ycorn = yout + .5

				 ]

			if drl_prm1$ = 3, 

				 [

				 xcorn = xout - .5

				 ycorn = yout - .5

				 ]

			if drl_prm1$ = 4, 

				 [

				 xcorn = xout + .5

				 ycorn = yout - .5

				 ]

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

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

			pbld, n$, *sg00, *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

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

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

				 sdprint, "[","X*POSITION*=*#135--X*ERROR*=*#140]", e$

				 sdprint, "[","Y*POSITION*=*#136--Y*ERROR*=*#141]", e$

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

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

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

				 spaces$ = 1

				 ] 

			]	

	   pcom_movea

	   ]  

pdrlcst_2$

  ****

  ******

  **********

  Removed for space

  **********

  *******

  *****

  if drillcyc$ = 9, 

	   [

	   pdrlcommonb

	   result = mprint(sperror), exitpost$

	   pcom_movea

	   ]				

  if drillcyc$ = 10,

	   [

	   pdrlcommonb

	   result = mprint(sperror), exitpost$

	   pcom_movea 

	   ]			   

  if drillcyc$ = 11,

	   [

	   pdrlcommonb

	   result = mprint(sperror), exitpost$

	   pcom_movea

	   ]				

  if drillcyc$ = 12,

	   [

	   pdrlcommonb

	   result = mprint(sperror), exitpost$

	   pcom_movea 

			]	  

Link to comment
Share on other sites
Guest CNC Apps Guy 1

quote:

...but sometimes I get the feeling I'm getting answers that weren't researched...

Generally speaking think of FANUC Support as being the same as your ISP. You generally have to get about 3-4 support people deep to talk to THE guy for that kind of stuff. In all honesty though the front-line people can answer about 90% of the questions they get accurately the first time. But DPRINT, Custom MACRO B, and other high-end functions you really need to talk to THE man. I've got my contact - he deals specifically with OEM's but I can't give out his info. Sorry.

 

I have successfully done DPRINT to a flash card with a Kitamura HX450 with a FANUC 16i Control but not with any machine with a FANUC 30i/31i... headscratch.gif

 

I'm going to keep trying though.

Link to comment
Share on other sites

We dprnt to a flashcard on a 31I. Thing is that once you PCLOS you can not open it again otherwise you get an error. How we get around it is to POPEN the port and not close it in the program. Before you take the card out you Will PLCOS in MDI to get the file written. If you dont close the port and take the card out you will get a file with 0kp(nothing in it) and the next cycle you get the error again.

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