First excuse my bad english, i'm not a native speaker so probably it's not very impressive ;-)

I have a question for you guys concerning my brother B00 control. I know a lot of guys in the United States use brother Machines (unlike here in germany...) so i thought you might be able to help me on this one.

I'm trying to write a macro for finishing slots in round (ring-style) parts.

I want to enter this values:

Code:

```
(SUBPROGRAM FINISHING SLOTS)
G65 P8887 Z-10 R2 B20 A100 I70 U1 V1 F1500
(Z = END-DEPTH Z = #26)
(R = SAFETY-PLANE Z = #18)
(B = SLOT-WIDTH = #2 )
(A = OUTER DIAMETER = #1 )
(I = INNER DIAMETER = #4 )
(U = OUTER CORNER RADIUS / CHAMFER = #21)
(V = INNER CORNER RADIUS / CHAMFER = #22)
(F = FEED = #9 )
```

The machine should do a finishing pass with the correct chamfer / radius.

If U / V is positive it should machine a radius, otherwise a chamfer.

The subprogramm works just fine, as long as i don't try to do the radius / chamfer. Soon as i do that, the machine instantly brings up error "4027 - Unerlaubte Daten"

which means something like "forbidden data". I don't get it... When i'm typing thisfor example:

Code:

```
G100 X50 Y-10 Z50 T1 H1 D1 G43 S5000 M3
#1=-25
#2=0
#3=25
#4=5
G0 X50 Y-10
G0 Z-10
G1 Y0 G41 F1500
G1 X25 ,R5
G3 X#1 Y#2 R#3 ,R#4
G1 X-50
G0 Y-10 G40
G0 Z10
```

...everything just works fine. As soon as i try the same in the subprogramm, nothing works...

Anybody got a suggestion?

Code:

```
(SUBPROGRAM FINISHING SLOTS)
(G65 P8887 Z-10 R2 B20 A100 I70 U-2 V0.8 F1500)
(Z = END-DEPTH Z = #26)
(R = SAFETY-PLANE Z = #18)
(B = SLOT-WIDTH = #2 )
(A = OUTER DIAMETER = #1 )
(I = INNER DIAMETER = #4 )
(U = OUTER CORNER RADIUS / CHAMFER = #21)
(V = INNER CORNER RADIUS / CHAMFER = #22)
(F = FEED = #9 )
(READ DATA)
#100=#4120 (READ ACTIVE TOOL NUMBER)
#101=#[13000+#100] (READ TOOL RADIUS)
#1=#1/2 (CONVERT OD TO RADIUS)
#4=#4/2 (CONVERT ID TO RADIUS)
#2=#2/2 (BISECT WIDTH)
(CALCULATIONS1)
#102=SQRT[#1*#1-#2*#2] (P2 X)
#104=#1+#101+1 (POS X)
#109=#2+ABS[#21]+0.5 (STARTPOINT Y)
#110=SQRT[#1*#1-#109*#109] (STARTPOINT X)
(CALCULATIONS2)
#106=SQRT[#4*#4-#2*#2] (P3 X)
#111=#2+ABS[#22]+0.5 (ENDPOINT Y)
#112=SQRT[#4*#4-#111*#111] (ENDPOINT X)
#107=#112-#101-1 (POS X)
G0 X#104 Y#109
G0 Z#26
G1 X#110 Y#109 G41 F#9
IF [#21 LT 0] GOTO 100
G2 X#102 Y#2 R#1 ,R#21
GOTO 200
N100 (--------- JUMP MARK ------)
G2 X#102 Y#2 R#1 ,C[ABS[#21]]
N200 (--------- JUMP MARK ------)
IF [#22 LT 0] GOTO 300
G1 X#106 ,R#22
GOTO 400
N300 (--------- JUMP MARK ------)
G1 X#106 ,C[ABS[#22]]
N400 (--------- JUMP MARK ------)
G3 X#112 Y#111 R#4
G0 X#107 G40
G0 Y-#111
G1 X#112 Y-#111 G41
IF [#22 LT 0] GOTO 500
G3 X#106 Y-#2 R#4 ,R#22
GOTO 600
N500 (--------- JUMP MARK ------)
G3 X#106 Y-#2 R#4 ,C[ABS[#22]]
N600 (--------- JUMP MARK ------)
IF [#21 LT 0] GOTO 700
G1 X#102 ,R#21
GOTO 800
N700 (--------- JUMP MARK ------)
G1 X#102 ,C[ABS[#21]]
N800 (--------- JUMP MARK ------)
G2 X#110 Y-#109 R#1
G0 X#104 Y-#109 G40
G0 Z#18
M99
```

Thanks in advance!