EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
EOB
GET
$
VELING_HM_100
$
VELLAV_HM_100
$
SORMONTO_HM_100
$
TIPOATTACCO_HM_100
$
ANGOLO_ROT_HM_100
$
PIANO_HM_100
$
DIAMUTIL_HM_100
$
PSTEP_HM_100
$
PROF_HM_100
$
RADIUS4_HM_100
$
RADIUS3_HM_100
$
RADIUS2_HM_100
$
RADIUS1_HM_100
$
ALT_HM_100
$
LARG_HM_100
EOB
EOB
EOB
EOB
IF
$
PSTEP_HM_100
>
$
PROF_HM_100
EOB
EOB
ERROR
1039
EOB
END_PROGRAM
EOB
END_IF
EOB
IF
$
PROF_HM_100
=
0
EOB
EOB
ERROR
1040
EOB
END_PROGRAM
EOB
END_IF
EOB
IF
$
PSTEP_HM_100
=
0
EOB
EOB
ERROR
1041
EOB
END_PROGRAM
EOB
END_IF
EOB
IF
$
PIANO_HM_100
<
0
||
$
PIANO_HM_100
>
2
EOB
EOB
ERROR
1029
EOB
END_PROGRAM
EOB
END_IF
EOB
EOB
IF
$
DIAMUTIL_HM_100
=
-
1
EOB
$
DIAMUTIL_HM_100
=
$
[U0]
EOB
END_IF
EOB
IF
$
DIAMUTIL_HM_100
<=
0
EOB
EOB
ERROR
1034
EOB
END_PROGRAM
EOB
END_IF
EOB
$
RAGGIO_UT_HM_100
=
$
DIAMUTIL_HM_100
/
2
EOB
EOB
EOB
EOB
IF
$
RADIUS1_HM_100
<
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS1_HM_100
<>
0
EOB
EOB
ERROR
1030
EOB
END_PROGRAM
EOB
END_IF
EOB
END_IF
EOB
IF
$
RADIUS2_HM_100
<
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS2_HM_100
<>
0
EOB
EOB
ERROR
1031
EOB
END_PROGRAM
EOB
END_IF
EOB
END_IF
EOB
IF
$
RADIUS3_HM_100
<
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS3_HM_100
<>
0
EOB
EOB
ERROR
1032
EOB
END_PROGRAM
EOB
END_IF
EOB
END_IF
EOB
IF
$
RADIUS4_HM_100
<
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS4_HM_100
<>
0
EOB
EOB
ERROR
1033
EOB
END_PROGRAM
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
IF
$
RADIUS1_HM_100
+
$
RADIUS2_HM_100
>
$
ALT_HM_100
EOB
EOB
ERROR
1035
EOB
END_PROGRAM
EOB
END_IF
EOB
EOB
IF
$
RADIUS2_HM_100
+
$
RADIUS3_HM_100
>
$
LARG_HM_100
EOB
EOB
ERROR
1036
EOB
END_PROGRAM
EOB
END_IF
EOB
IF
$
RADIUS3_HM_100
+
$
RADIUS4_HM_100
>
$
ALT_HM_100
EOB
EOB
ERROR
1037
EOB
END_PROGRAM
EOB
END_IF
EOB
EOB
IF
$
RADIUS4_HM_100
+
$
RADIUS1_HM_100
>
$
LARG_HM_100
EOB
EOB
ERROR
1038
EOB
END_PROGRAM
EOB
END_IF
EOB
IF
$
PSTEP_HM_100
<
0
EOB
$
PROF_HM_100
=
-
$
PROF_HM_100
EOB
END_IF
EOB
EOB
EOB
IF
$
[X3]
=
1
EOB
$
ZEROPEZZO_HM_100
=
1
EOB
EOB
$
ZERO_X_HM_100
=
$
[Y0]
EOB
$
ZERO_Y_HM_100
=
$
[Y1]
EOB
$
ZERO_Z_HM_100
=
$
[Y2]
EOB
ELSE
EOB
$
ZEROPEZZO_HM_100
=
0
EOB
END_IF
EOB
EOB
G
92
X
Y
Z
EOB
IF
$
PIANO_HM_100
=
0
EOB
G
17
EOB
END_IF
EOB
IF
$
PIANO_HM_100
=
1
EOB
G
18
EOB
EOB
G
26
YZ
EOB
END_IF
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
19
EOB
EOB
G
26
XZ
EOB
END_IF
EOB
IF
$
ANGOLO_ROT_HM_100
<>
0
EOB
G
50
X
0
Y
0
Z
[
$
ANGOLO_ROT_HM_100
]
EOB
END_IF
EOB
EOB
EOB
$
LARGMEZZI_HM_100
=
$
LARG_HM_100
/
2
EOB
$
ALTMEZZI_HM_100
=
$
ALT_HM_100
/
2
EOB
EOB
$
LEN_HM_100
=
$
ALTMEZZI_HM_100
-
$
DIAMUTIL_HM_100
EOB
IF
$
TIPOATTACCO_HM_100
=
0
EOB
$
PX_HM_100
=
0
EOB
$
PY_HM_100
=
$
LEN_HM_100
EOB
ELSE
EOB
$
PX_HM_100
=
0
-
$
DIAMUTIL_HM_100
EOB
$
PY_HM_100
=
$
LEN_HM_100
EOB
END_IF
EOB
EOB
$
SCASSO_HM_100
=
0
EOB
G
60
EOB
@
LBLINIT_HM_100
EOB
G
0
X
[
$
PX_HM_100
]
Y
[
$
PY_HM_100
]
EOB
EOB
F
[
$
VELING_HM_100
]
EOB
$
SCASSO_HM_100
=
$
SCASSO_HM_100
+
$
PSTEP_HM_100
EOB
IF
$
PSTEP_HM_100
>
0
EOB
IF
$
SCASSO_HM_100
>
$
PROF_HM_100
EOB
$
SCASSO_HM_100
=
$
PROF_HM_100
EOB
END_IF
EOB
ELSE
EOB
IF
$
SCASSO_HM_100
<
$
PROF_HM_100
EOB
$
SCASSO_HM_100
=
$
PROF_HM_100
EOB
END_IF
EOB
END_IF
EOB
G
1
Z
[
$
SCASSO_HM_100
]
EOB
EOB
F
[
$
VELLAV_HM_100
]
EOB
EOB
IF
$
TIPOATTACCO_HM_100
=
0
EOB
G
1
Y
[
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
]
EOB
ELSE
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
0
Y
[
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
]
R
[
$
DIAMUTIL_HM_100
]
EOB
ELSE
EOB
G
2
X
0
Y
[
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
]
R
[
$
DIAMUTIL_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
IF
$
RADIUS1_HM_100
>
0
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS1_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
G
1
X
[
$
PUNTO_HM_100
]
EOB
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS1_HM_100
EOB
$
RG_HM_100
=
$
RADIUS1_HM_100
-
$
RAGGIO_UT_HM_100
EOB
EOB
IF
$
RG_HM_100
>
0
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
$
PUNTO_HM_100
=
0
-
$
ALTMEZZI_HM_100
EOB
IF
$
RADIUS2_HM_100
>
0
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RADIUS2_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
G
1
Y
[
$
PUNTO_HM_100
]
EOB
EOB
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS2_HM_100
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
$
RG_HM_100
=
$
RADIUS2_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RG_HM_100
>
0
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
$
PUNTO_HM_100
=
0
-
$
LARGMEZZI_HM_100
EOB
IF
$
RADIUS3_HM_100
>
0
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RADIUS3_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
G
1
X
[
$
PUNTO_HM_100
]
EOB
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS3_HM_100
EOB
$
RG_HM_100
=
$
RADIUS3_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RG_HM_100
>
0
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
0
-
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
0
-
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
IF
$
RADIUS4_HM_100
>
0
EOB
$
PUNTO_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS4_HM_100
EOB
ELSE
EOB
IF
$
ESTERNO_HM_100
=
0
EOB
$
PUNTO_HM_100
=
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
ALTMEZZI_HM_100
+
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
END_IF
EOB
G
1
Y
[
$
PUNTO_HM_100
]
EOB
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS4_HM_100
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
$
RG_HM_100
=
$
RADIUS4_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RG_HM_100
>
0
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
0
-
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
0
-
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
EOB
G
1
X
0
EOB
EOB
EOB
EOB
EOB
EOB
EOB
$
SAVE_RUT_HM_100
=
$
RAGGIO_UT_HM_100
-
$
SORMONTO_HM_100
EOB
LOOP
1000
EOB
G
1
Y
[
$
PUNTO_Y_HM_100
-
$
SAVE_RUT_HM_100
]
EOB
$
RAGGIO_UT_HM_100
=
$
RAGGIO_UT_HM_100
+
$
SAVE_RUT_HM_100
EOB
EOB
$
RG_HM_100
=
$
RADIUS1_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS1_HM_100
>
0
&&
$
RG_HM_100
>=
0
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS1_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
G
1
X
[
$
PUNTO_HM_100
]
EOB
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RG_HM_100
<
0
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS1_HM_100
+
$
RG_HM_100
EOB
ELSE
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS1_HM_100
EOB
END_IF
EOB
EOB
IF
$
RADIUS1_HM_100
>
0
EOB
IF
$
RG_HM_100
<=
0
EOB
G
1
X
[
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
EOB
ELSE
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
$
PUNTO_HM_100
=
0
-
$
ALTMEZZI_HM_100
EOB
$
RG_HM_100
=
$
RADIUS2_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS2_HM_100
>
0
&&
$
RG_HM_100
>=
0
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RADIUS2_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
G
1
Y
[
$
PUNTO_HM_100
]
EOB
EOB
EOB
IF
$
RG_HM_100
<
0
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS2_HM_100
+
$
RG_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS2_HM_100
EOB
END_IF
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS2_HM_100
>
0
EOB
IF
$
RG_HM_100
<=
0
EOB
G
1
X
[
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
EOB
ELSE
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
$
RG_HM_100
=
$
RADIUS3_HM_100
-
$
RAGGIO_UT_HM_100
EOB
$
PUNTO_HM_100
=
0
-
$
LARGMEZZI_HM_100
EOB
IF
$
RADIUS3_HM_100
>
0
&&
$
RG_HM_100
>=
0
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RADIUS3_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
PUNTO_HM_100
+
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
G
1
X
[
$
PUNTO_HM_100
]
EOB
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RG_HM_100
<
0
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS3_HM_100
+
$
RG_HM_100
EOB
ELSE
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS3_HM_100
EOB
END_IF
EOB
EOB
IF
$
RADIUS3_HM_100
>
0
EOB
IF
$
RG_HM_100
<=
0
EOB
G
1
X
[
0
-
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
EOB
ELSE
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
0
-
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
0
-
$
PUNTO_HM_100
]
Y
[
0
-
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
$
RG_HM_100
=
$
RADIUS4_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS4_HM_100
>
0
&&
$
RG_HM_100
>=
0
EOB
$
PUNTO_HM_100
=
$
ALTMEZZI_HM_100
-
$
RADIUS4_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
END_IF
EOB
G
1
Y
[
$
PUNTO_HM_100
]
EOB
EOB
IF
$
RG_HM_100
<
0
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS4_HM_100
+
$
RG_HM_100
EOB
ELSE
EOB
$
PUNTO_HM_100
=
$
LARGMEZZI_HM_100
-
$
RADIUS4_HM_100
EOB
END_IF
EOB
$
PUNTO_Y_HM_100
=
$
ALTMEZZI_HM_100
-
$
RAGGIO_UT_HM_100
EOB
IF
$
RADIUS4_HM_100
>
0
EOB
IF
$
RG_HM_100
<=
0
EOB
G
1
X
[
0
-
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
EOB
ELSE
EOB
IF
$
PIANO_HM_100
=
2
EOB
G
3
X
[
0
-
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
ELSE
EOB
G
2
X
[
0
-
$
PUNTO_HM_100
]
Y
[
$
PUNTO_Y_HM_100
]
R
[
$
RG_HM_100
]
EOB
END_IF
EOB
END_IF
EOB
END_IF
EOB
G
1
X
0
EOB
EOB
IF
$
PUNTO_HM_100
<
$
SAVE_RUT_HM_100
||
$
PUNTO_Y_HM_100
<
$
SAVE_RUT_HM_100
EOB
EOB
G
1
Y
[
$
PUNTO_Y_HM_100
-
$
SAVE_RUT_HM_100
]
EOB
GOTO
FINECICLO_HM_100
EOB
END_IF
EOB
END_LOOP
EOB
@
FINECICLO_HM_100
EOB
IF
$
PSTEP_HM_100
>
0
EOB
IF
$
SCASSO_HM_100
<
$
PROF_HM_100
EOB
$
RAGGIO_UT_HM_100
=
$
DIAMUTIL_HM_100
/
2
EOB
GOTO
LBLINIT_HM_100
EOB
END_IF
EOB
ELSE
EOB
IF
$
SCASSO_HM_100
>
$
PROF_HM_100
EOB
$
RAGGIO_UT_HM_100
=
$
DIAMUTIL_HM_100
/
2
EOB
GOTO
LBLINIT_HM_100
EOB
END_IF
EOB
END_IF
EOB
EOB
EOB
EOB
EOB
EOB
EOB
G
0
Z
0
EOB
G
0
X
0
Y
0
EOB
G
17
EOB
IF
$
PIANO_HM_100
=
1
EOB
EOB
G
26
ZY
EOB
END_IF
EOB
IF
$
PIANO_HM_100
=
2
EOB
EOB
G
26
ZX
EOB
END_IF
EOB
EOB
IF
$
ZEROPEZZO_HM_100
=
1
EOB
EOB
G
94
X
[
$
ZERO_X_HM_100
]
Y
[
$
ZERO_Y_HM_100
]
Z
[
$
ZERO_Z_HM_100
]
EOB
ELSE
EOB
G
94
X
0
Y
0
Z
0
EOB
END_IF
EOB
EOB
