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:

Macro Gurus


Dan Schnars
 Share

Recommended Posts

I am holding a part with a flat top face on a trunion style rotary table on a vertical machining center... I want to hit the top face with a probe in 3 places to establish the orientation of the plane, and I need a macro that will sort out how much turn and how much tilt the rotary table needs to "level" the top face of that part...

 

There has got to be somebody out there doing this... It's on a Fanuc 21i-MB

 

confused.gif Anybody have any ideas of where I can look? confused.gif

 

Thanks.

 

-Dan

Link to comment
Share on other sites

Would be a useful probe macro, but would take some complex algorithms. Three points describe a 3D circle. The center of the circle (incident with the center of the rotary axis) would be derived, as well as the highest or lowest point on the circle. Then a vector from the center to that point would give the angle and direction. The machine could tip the trunnion that angle and rotate the table until the vector is perpendicular to the trunnion axis.

Link to comment
Share on other sites

Here is the O9818 macro...

 

code:

 :9818(REN 4TH AXIS Y MEASURE)

G65P9724

IF[#25EQ#0]GOTO9

IF[#26EQ#0]GOTO10

IF[#25EQ0]GOTO11

N1

#5=135

WHILE[#5LE149]DO1

#[#5]=#0

#5=#5+1

END1

#3=4(4TH AXIS NUMBER)

#4=1(1=CW -1=CCW CORRECTION)

IF[#17NE#0]GOTO2

#17=10*#129

N2

#10=#5042(Y)

#12=#5043-#116(Z)

G31Y[#10+[#25/2]]F#119

#149=1

IF[ABS[#5062-[#10+[#25/2]]]GE#123]GOTO12

G65P9726Z#26Q#17

IF[#149NE0]GOTO12

#30=#126(Z1)

G0Y#10

G31Y[#10-[#25/2]]F#119

#149=1

IF[ABS[#5062-[#10-[#25/2]]]GE#123]GOTO12

G65P9726Z#26Q#17

IF[#149NE0]GOTO12

#31=#126(Z2)

G0Y#10

#29=[#31-#30]*#4

G65P9731Y[#29]X[#25](ATAN)

#16=#118

N3

#139=#16+#[5040+#3]

#143=#29

#144=#16(ANG ERR)

IF[#23EQ#0]GOTO35

G65P9730A[#139-#16]Q#2W#23

N35

IF[#2EQ#0]GOTO5

IF[ABS[#144]LT#2]GOTO4

#148=4

N4

IF[#120AND4EQ4]GOTO5

IF[ABS[#144]LT#2]GOTO5

#[3006-[[#120AND8]/8*6]]=1(ANGLE OUT OF TOL)

N5

IF[#19EQ#0]GOTO100

IF[#19EQ0]GOTO7

#32=0

IF[#120AND8EQ8]GOTO6

IF[#19LT100]GOTO55

#19=#19-100

#32=1780

IF[#19LE48]GOTO55

#32=8780

N55

#[5200+#3+[#19*20]+#32]=#[5020+#3]-#[5040+#3]+#16-#[5200+#3]

GOTO100

N6

IF[#19GT100]GOTO66

IF[#3GT4]GOTO55

#[2400+[#3*100]+#19]=#[5020+#3]-#[5040+#3]+#16-#[2400+[#3*100]]

GOTO100

N66

#19=#19-100

#32=1780

IF[#19LE48]GOTO68

#32=8780

N68

IF[#3GT4]GOTO55

#[5200+#3+[#19*20]+#32]=#[5020+#3]-#[5040+#3]+#16-#[2400+[#3*100]]

GOTO100

N7

IF[#3GT4]GOTO75

IF[#120AND8EQ8]GOTO8

N75

#[5200+#3]=#[5200+#3]+#16

GOTO100

N8

#[2400+[#3*100]]=#[2400+[#3*100]]+#16

GOTO100

N9

#3000=91(Y INPUT MISSING)

N10

#3000=91(Z INPUT MISSING)

N11

#3000=91(Y0 INPUT NOT ALLOWED)

N12

G0Z#12

Y#10

IF[#149EQ2]GOTO13

#3000=92(PROBE OPEN)

N13

#3000=93(PROBE FAIL)

N100

#149=0

M99

and here is how you use it...

 

 

code:

Program Example: Set the 4th Axis to a Milled Flat in Y

 

O7011 (4TH AXIS Y MEASURE)

G91 G28 Z0 (Reference return.)

G0 G90 G80 G40 G49 (Preparatory codes for the machine.)

T1 M6 (Select the probe)

G43 H1 Z4. (Activate offset 1, 4 inches above Z0.)

G65 P9532 (Probe start only if required)

G0 G54 A45. (Position 4th axis to 45 degrees.)

G65 P9510 X0 Y0 Z1. F100. (Position 1 inch above the surface.)

G65 P9518 Y2. Z.5 S1 B5. (Measure at 2 inch centres, update G54

and set a tolerance of +/-5 degrees.)

G65 P9510 Z4. (Protected positioning move.)

G91 G28 Z0. (Reference return.)

M30 (End of program.)

Link to comment
Share on other sites

You guys are awesome... Let me digest some of this... I thought the Renishaw was capable of doing this... We are using Blum stuff here and I'm getting the feeling from the app guy that they can't do it, which seems weird to me... I'll have some time to look this over in the morning...

 

Thank You all... I'll be back...

Link to comment
Share on other sites

I could handle programming the macro to do the math once I know where the points are but I've never used a probe like that. With a couple pages from the manual I might be able to figure it out.

 

I did a macro not to long ago to project engraved incrementing serial numbers onto a cylinder after mapping them on an arc, I can't imagine this would be tougher than that.

Link to comment
Share on other sites

One thing you need to remember is to use a probe that is capable of vector probing. Otherwise, you will need to include the vector math to accommodate the compound angles in the initial hits.

Some of the (not so)older probes do not support Z axis vectoring. The strain-gauge sensing types will. Renishaw MP700 probe is one of these. I am not too sure of the Blume probes.

 

On non vector types, we need to add the correction factors for stylus sine error after the initial hits due to probing non-normal to the surface being probed.

Link to comment
Share on other sites

OK, I worked on this a little and came up with a way to do it with the 9818 macro. Put it in a sub and loop it, each time it loops, index the rotary axis a small amount like 10 degrees. The macro outputs a variable which is the difference between the high point and the low point. Compare the variable from the current loop with the variable from the previous loop. When they are almost equal, the tilt on the part is perpendicular to the trunnion axis. Branch out of the loop and the trunnion can be tilted to level the part. Tada!

Link to comment
Share on other sites

Taper need to relax a little. We are here to help people. If you do not want ot help people with an example that is what you can do. Here is some of what I did in our Integrex post. It does what you are talking about Taper.

 

code:

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

# Macro Variables as I need them

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

sequal "=" #Equal Sign

spound "#" #Pound Sign

sminus "-" #Minus Sign

sadd "+" #Addition Sign

sdivide "/" #Division Sign

smultiply "*" #Multiply Sign

seq EQ #Equal Call

sne NE #Not Equal To Call

sgt GT #Greater Than to Call

slt LT #Less Than Call

sge GE #Is Great than or Equal to Call

sle LE #Is Less than or Equal to Call

sin SIN #Sine Math

scos COS #Cosine Math

stan TAN #Tangent Math

satan ATAN #ArcTangent Math

scos ACOS #ArcCosine Math

sqrt SQRT #Sqaure Root Math

sabs ABS #Absoulte Value

sbin BIN #Bin

sbcd BCD #Bcd

sround ROUND #Round to the Nearest Whole Number

sfix FIX #Use for Cutting away any Decimal Numbers

sfup FUP #Counting Decimal Digits as one's

sln LN #Natural Logarithm

sexp EXP #Exponent

sbracketopen "[" #Open Bracket

sbracketclose "]" #Close Bracket

sif IF #If Call

sgoto GOTO #Goto Call

swhile WHILE #While Call

sdo DO #Do Call

sor OR #Or Call

sand AND #And Call

smod MOD #Surplus Math

sdprint DPRNT #Data Output in from Probing Cycles

sm100 100 #Macro Varaible 100 for Spindle Tranfer Operation

sm150 150 #Macro Variable 150 for Math Functions in C Axis Aling Macro

sm151 151 #Macro Variable 151 for Math Functions in C Axis Aling Macro

sm152 152 #Macro Variable 152 Math Functions in C Axis Aling Macro

sm5021 5021 #Machine Postion X Axis Variable

sm5022 5022 #Machine Postion Y Axis Variable

sm5023 5023 #Machine Postion Z Axis Variable

sm5024 5024 #Machine Postion B Axis Variable

sm5025 5025 #Machine Postion C Axis Varaible for Main Spindle

sm5026 5026 #Machine Postion W Axis Varaible for Sub Spindle

sm5027 5027 #Machine Postion U Axis Varaible for Sub Spindle

sm5221 5221 #Workoffset Machine Postion X Axis Variable

sm5222 5222 #Workoffset Machine Postion Y Axis Variable

sm5223 5223 #Workoffset Machine Postion Z Axis Variable

sm5224 5224 #Workoffset Machine Postion B Axis Variable

sm5225 5225 #Workoffset Machine Postion C Axis Varaible for Main Spindle

sm5226 5226 #Workoffset Machine Postion W Axis Varaible for Sub Spindle

sm5227 5227 #Workoffset Machine Postion U Axis Varaible for Sub Spindle

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

# Probing String Varaibles Put here to keep post cleaner

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

strg659530 "G65P9530" #Printing Macro Call for B90

strg659532 "G65P9532" #Offset Update Macro for B90

strg659610 "G65P9610" #Probe Protect Cycle for B90

strg659611 "G65P9611" #XYZ Single Surface Measure B90

strg659612 "G65P9612" #Web / Pocket Measure B90

strg659614 "G65P9614" #Bore / Boss B90

strg659618 "G65P9618" #C Axis Measure - Vertical B90

strg659619 "G65P9619" #Bore / Boss on PCD B90

strg659621 "G65P9621" #Angle Single Surface Measure B90

strg659622 "G65P9622" #Angle Web / Pocket Measure B90

strg659623 "G65P9623" #3-Point Bore / Boss Measure B90

strg659634 "G65P9634" #Feature to Feature Measure B90

strg659650 "G65P9650" #C-Axis Measure - Vertical B90

strg659730 "G65P9730" #Printing Macro Call for B0

strg659732 "G65P9732" #Offset Update Macro for B0

strg659810 "G65P9810" #Probe Protect Cycle for B0

strg659811 "G65P9811" #XYZ Single Surface Measure B0

strg659812 "G65P9812" #Web / Pocket Measure B0

strg659814 "G65P9814" #Bore / Boss B0

strg659818 "G65P9818" #C Axis Measure - Horizontal B0

strg659819 "G65P9819" #Bore / Boss on PCD B0

strg659821 "G65P9821" #Angle Single Surface Measure B0

strg659822 "G65P9822" #Angle Web / Pocket Measure B0

strg659823 "G65P9823" #3-Point Bore / Boss Measure B0

strg659834 "G65P9834" #Feature to Feature Measure B0

strg659850 "G65P9850" #C-Axis Measure - Horizontal B0

 

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

# Probe 90 deg Format Statements

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

fmt X 2 prorefht #B90 X clearence for Protect Cycle

fmt D 2 diadwell #B90 P9614 Bore/Boss Measurement Dia call out

fmt S 4 offupdate #Used to Fixture Offsets

fmt Y 2 cyspan #Used for Across Distance

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

# Probe 90 deg Varabiles

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

prorefht = refht$ #B90 X clearence for Protect Cycle

diadwell = dwell$ #B90 P9614 Bore/Boss Measurement Dia call out

cyspan = dwell$ #Used for Across Distance

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

# Probe 0 deg Format Statements

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

fmt Z 2 prnrefht #B0 X clearence for Protect Cycle

fmt D 2 diedwell #B0 P9814 Bore/Boss Measurement

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

# Probe 0 deg Varabiles

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

prnrefht = refht$ #B0 Z clearence for Protect Cycle

diedwell = dwell$ #B90 P9814 Bore/Boss Measurement Dia call out

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

# Probe Shared Index deg Format Statements

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

fmt S 4 offupdate #Workoffset Update When used

fmt H 2 feattoler #Tolerance of Feature being Measured

fmt M 2 trueposzone #True Position Tolerenance Zone

fmt B 2 cangtoler #C axis Tolerance for C-Axis Align Cycle

fmt Q 2 covertrav #C Axis Overtravel for Probe Amount

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

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

fmt 4 drl_prm6$ #GOTO statement Number to use

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

# Probe Shared Index deg Varabiles

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

offupdate = peckclr$

trueposzone = peck2$

cangtoler = peck1$

covertrav = peck2$

feattoler = peck1$

 

 

 

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

#Use this postblock to customize drilling cycles 8 - 19

if drillcyc$ = 8, #XYZ Single Surface Measure B0/B90/B180

[

pdrlcommonb

if babs = 180,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659611, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659611, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

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

pbld, n$, *strg659811, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

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

]

pcom_movea

]

if drillcyc$ = 9, #Web/Pocket Measure B0/B90/B180

[

pdrlcommonb

if babs = 180,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659612, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659612, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

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

pbld, n$, *strg659812, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

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

]

pcom_movea

]

if drillcyc$ = 10, #Bore/Boss B0/B90/B180

[

pdrlcommonb

if babs = 180,

[

pbld, n$, *strg659610, *prorefht, e$

pbld, n$, *strg659614, diedwell, pyout, pzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, *strg659610, *prorefht, e$

pbld, n$, *strg659614, diadwell, pyout, pzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

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

pbld, n$, *strg659814, diedwell, pyout, pzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

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

]

pcom_movea

]

if drillcyc$ = 11, #C Axis Measure - Vertical B0/B90/B180

[

pdrlcommonb

if babs = 180,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659618, cyspan, pfxout, pfzout, [if offupdate > 0,*offupdate],[if cangtoler > 0, *cangtoler], [if drl_prm2$ > 0, *drl_prm2$], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659618, cyspan, pfxout, pfzout, [if offupdate > 0,*offupdate], [if cangtoler > 0, *cangtoler], [if drl_prm2$ > 0, *drl_prm2$], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

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

pbld, n$, *strg659618, cyspan, pfxout, pfzout, [if offupdate > 0,*offupdate], [if cangtoler > 0, *cangtoler], [if drl_prm2$ > 0, *drl_prm2$], e$

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

]

*sg00 ,*sg91, sg30_3, "X0", e$

*sg00, *sg90, [if workofs$ > 53, *g_wcs], [if workofs$ < 49 , "G54.1", *p_wcs],[if spindle_no$ = 0, "C20."],[if spindle_no$ = 1, "U20."],e$

*sg00, *sg90, "U0.", e$

spaces$ = 0

sif,sbracketopen,spound,sm152,sgt,drl_prm1$,sbracketclose,sgoto,"1000", e$

spaces$ = 1

pcom_movea

]

if drillcyc$ = 12, #Bore/Boss on PCD B0/B90/B180

[

pdrlcommonb

if babs = 180,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659619, diedwell, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, *strg659619, diadwell, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

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

pbld, n$, *strg659819, diedwell, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

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

]

pcom_movea

]

if drillcyc$ = 13,

[

pdrlcommonb

if babs = 180,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, "G65P9618", diedwell, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, *strg659610, prorefht, e$

pbld, n$, "G65P9618", diadwell, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

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

pbld, n$, "G65P9818", diedwell, pfyout, pfzout, [if offupdate > 0,*offupdate], [if trueposzone > 0, *trueposzone], [if feattoler > 0, *feattoler], e$

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

]

pcom_movea

]

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

#Use this postblock to customize drilling cycles 8 - 19

if drillcyc$ = 8,

[

pdrlcommonb

if babs = 180,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, *strg659611, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, *strg659611, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

pbld, n$, `strg659810, `prnrefht, e$

pbld, n$, *strg659811, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

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

]

pcom_movea

]

if drillcyc$ = 9, #Web/Pocket Measure B0/B90

[

pdrlcommonb

if babs = 180,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, *strg659612, diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, *strg659612, diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

pbld, n$, `strg659810, `prnrefht, e$

pbld, n$, *strg659812, diedwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

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

]

pcom_movea

]

if drillcyc$ = 10, #Bore/Boss B0/B90

[

pdrlcommonb

if babs = 180,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, *strg659614, diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, *strg659614, diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

pbld, n$, `strg659810, `prnrefht, e$

pbld, n$, *strg659814, diedwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

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

]

pcom_movea

]

if drillcyc$ = 11,

[

pdrlcommonb

if babs = 180,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, "G65P9618", diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, "G65P9618", diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

pbld, n$, `strg659810, `prnrefht, e$

pbld, n$, "G65P9818", diedwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

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

]

pcom_movea

]

if drillcyc$ = 12,

[

pdrlcommonb

if babs = 180,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, "G65P9618", diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, "G65P9618", diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

pbld, n$, `strg659810, `prnrefht, e$

pbld, n$, "G65P9818", diedwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

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

]

pcom_movea

]

if drillcyc$ = 13,

[

pdrlcommonb

if babs = 180,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, "G65P9618", diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 90,

[

pbld, n$, `strg659610, `prorefht, e$

pbld, n$, "G65P9618", diadwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

pbld, n$, *strg659610, *prorefht, e$

]

if babs = 0,

[

pbld, n$, `strg659810, `prnrefht, e$

pbld, n$, "G65P9818", diedwell, pfyout, pfzout, [if trueposzone > 0, *trueposzone], e$

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

]

pcom_movea

]

 

pcanceldc$ #Cancel drill cycle

subout$ = sav_subout

ps_inc_calc

pe_inc_calc #Update to current location

gcode$ = zero

pcan

if drillcyc$ > 7,

else, if drillcyc$ <> 5, pcan1, pbld, n$, sgcode, "G80", strcantext, e$

pcan2


Have a good day. smile.gifsmile.gif

Link to comment
Share on other sites

Jeremy,

 

The In-House posts are "generally" all encrypted, you do not likely have access to the section of the post you would need to to actually add the code.

 

If you open the pst file you'll likely see all the declarations and string definitions and then a [start bin] command and noting much, if anything after it.

Link to comment
Share on other sites

Taper need to relax a little. We are here to help people. If you do not want ot help people with an example that is what you can do. Here is some of what I did in our Integrex post. It does what you are talking about Taper.

_____________________________________

 

Crazy Millman--I did _HELP_ the original poster...with the _IDEA_ (which no one else offered) and then someone else used my idea to write the code...yourself. :-) Have a great weekend!

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