Uploaded by Laurent Glowacki

TP programmation rosace parametrable

advertisement
TP Programmation robot : tracer une rosace paramétrable
Partie 1 :
y
P2
P1
r
θ
x
P0
P3
Soit la rosace ci-dessus, calculer les points P1 P2 et P3 en fonction des
coordonnées X, Y, Z de P0, de l’angle θ et du rayon du cercle r.
P1.X =
P1.Y =
P2.X =
P2.Y =
P3.X =
P3.Y =
1/5
TP Programmation robot : tracer une rosace paramétrable
Partie 2 :
En fonction des résultats précédents, donner les équations permettant de calculer les
coordonnées des points P1, P2, P3 pour la rosace ci-dessous.
P1.X =
P1.Y =
P2.X =
P2.Y =
P3.X =
P3.Y =
y
P2
P1
P0
x
P3
Ecrire le programme Rapid permettant de tracer la rosace ci-dessus conseil : utiliser une
boucle for avec un if then,else imbriqué.
2/5
TP Programmation robot : tracer une rosace paramétrable
Partie 3 :
On veut maintenant faire faire X rosace dans le cercle (1 rosace étant composé des 3
branches). La valeur X sera configurable.
L’espace entre chaque branche est de :120° divisé par le nombre de rosace.
On suppose 2 rosaces :
Calculer les points P1, P2, P3 pour la rosace 1 et la rosace 2
Rosace 1 :
P1.X =
P1.Y =
P2.X =
P2.Y =
P3.X =
P3.Y =
Rosace 2 :
P1.X =
P1.Y =
P2.X =
P2.Y =
P3.X =
P3.Y =
En fonction des résultats ci-dessus et du code rapid déjà écrit, proposez une solution de
programmation la plus optimale.
3/5
TP Programmation robot : tracer une rosace paramétrable
Correction partie 1 :
P1.X = r * cos θ + P0.X
P1.Y = r * sin θ + P0.Y
P2.X = r * cos (θ + 120°) + P0.X
P2.Y = r * sin (θ + 120°) + P0.Y
P3.X = r * cos (θ + 240°) + P0.X
P3.Y = r * sin (θ + 240°) + P0.Y
Correction partie 2 :
P1.X = r + P0.X
P1.Y = r + P0.Y
P2.X = r * cos (120°) + P0.X
P2.Y = r * sin (120°) + P0.Y
P3.X = r * cos (240°) + P0.X
P3.Y = r * sin (240°) + P0.Y
Programme rapid
:
MODULE MainModule
VAR num r:=0;
VAR num x:=0;
VAR num y:=0;
CONST robtarget p0:=…..
PROC main()
r := 100;
// rayon en mm
FOR j FROM 0 TO 3 DO
x := r * Cos(j * 120);
y := r * Sin(j * 120);
IF j = 0 THEN
MoveL Offs(p0,x,y,20), v100, z0, tool0; // approche 20mm en Z
MoveL Offs(p0,x,y,0), v100, z0, tool0; // point de départ P1
ELSE
MoveC p0, Offs(p0,x,y,0), v100, z0, tool0;
// vers P2 puis P3
ENDIF
ENDFOR
MoveL Offs(p0,x,y,20), v1000, z0, tool0;
//point de dégagement
ENDFOR
4/5
TP Programmation robot : tracer une rosace paramétrable
Correction partie 3 :
Algorithme pour faire X rosaces dans le cercle (1 rosace étant composé des 3 branches).
L’espace entre chaque branche est de :120° divisé par le nombre de rosace.
Rosace 1 :
P1.X = r + P0.X
P1.Y = r + P0.Y
P2.X = r * cos (120°) + P0.X
P2.Y = r * sin (120°) + P0.Y
P3.X = r * cos (240°) + P0.X
P3.Y = r * sin (240°) + P0.Y
Rosace 2 :
P1.X = r cos (120°/2) + P0.X
P1.Y = r sin(120°/2) + P0.Y
P2.X = r * cos (120°+(120°/2)) + P0.X
P2.Y = r * sin (120°+(120°/2)) + P0.Y
P3.X = r * cos (240°+(120°/2)) + P0.X
P3.Y = r * sin (240°+(120°/2)) + P0.Y
MODULE MainModule
VAR num r:=0;
VAR num nb:=0;
VAR num x:=0;
VAR num y:=0;
CONST robtarget p0:=…..
PROC main()
r := 100;
// rayon en mm
nb := 5;
// nombre de branches
FOR i FROM 0 TO nb - 1 DO
FOR j FROM 0 TO 3 DO
x := r * Cos((i * 120 / nb) + (j * 120));
y := r * Sin((i * 120 / nb) + (j * 120));
IF j = 0 THEN
MoveL Offs(p0,x,y,20), v100, z0, tool0; // approche 20mm en Z
MoveL Offs(p0,x,y,0), v100, z0, tool0; // point de départ P1
ELSE
MoveC p0, Offs(p0,x,y,0), v100, z0, tool0;
// vers P2 puis P3
ENDIF
ENDFOR
MoveL Offs(p0,x,y,20), v1000, z0, tool0;
//point de dégagement
ENDFOR
5/5
Download