You are on page 1of 4

diseo de robot paralelo

Pcx = 30;
Pcy = 15;
If[Pcx > 30, = 1, = -1]; ;
If[Pcx > 29.999999999, [ = 0, [ = 180]; [;
If[Pcx > 50, = -1, = 1]; ;
H = 60;
h = 10;
l1a = l1b = l1c = 25; (+longitud de la primera barra de cada brazo+)
l2a = l2b = l2c = 25; (+longitud de la segunda barra de cada brazo+)
l3a = l3b = l3c = x; (+longitud de la tercera barra barra de cada brazo+)
x =
h Sin[60 Degree]
1 + Sin[30 Degree]
// N;
(+Calculo para obtener la longitud de la segunda barra al punto central+)
y = h Sin[60 Degree] -
h Sin[60 Degree]
1 + Sin[30 Degree]
// N;
(+Calculo para obtener la longitud del punto a la base del triangulo+)
Ax = 0; (+Coordenadas del punto inicial de la primera cadena cinematica+)
Ay = 0; (+Coordenadas del punto inicial de la primera cadena cinematica+)
Bx = H; +Coordenadas del punto inicial de la segunda cadena cinematica+)
By = 0; +Coordenadas del punto inicial de la segunda cadena cinematica+)
Cx = (H / 2); (+Coordenadas del punto inicial de la tercera cadena cinematica+)
Cy = H + Sin[60 Degree];
(+Coordenadas del punto inicial de la tercera cadena cinematica+)
xa = Pcx -
h
2
// N; (+Coordenadas para el triangulo
pequeo con respecto a su cadena cinematica propia+)
ya = Pcy - y // N ; (+Coordenadas para el triangulo pequeo
con respecto a su cadena cinematica propia+)
xb = Pcx +
h
2
; (+Coordenadas para el triangulo pequeo
con respecto a su cadena cinematica propia+)
yb = Pcy - y; (+Coordenadas para el triangulo pequeo
con respecto a su cadena cinematica propia+)
xc = Pcx; (+Coordenadas para el triangulo pequeo
con respecto a su cadena cinematica propia+)
yc = Pcy + x; (+Coordenadas para el triangulo pequeo
con respecto a su cadena cinematica propia+)
Yep = Z + L3 + (Sin[30 Degree]) // N;
DIF = H + (Sin[60 Degree]) - Yep // N;
dif = Yep - h // N;
pxx1 = H / 2 // N;
pyy1 = Yep // N;
pxx2 = DIF + (Cos[30 Degree]) // N;
pyy2 = DIF + (Sin[30 Degree]) // N;
pxx3 = H - DIF + (Cos[30 Degree]) // N;
pyy3 = DIF + (Sin[30 Degree]) // N;
L3 =
h
Cos[30 Degree] + 2
// N; (+l3 del segundo triangulo+)
Z = (l1a + l2a)
2
-
H - h
2
2
// N;
ha = [xa
2
j + [ya
2
j // N;
oa = ArcTan[(ya / xa + 0.0000000001) ] / Degree // N;
pa = ArcCos][[l1a
2
- l2a
2
+ ha
2
j / (2 + l1a + ha)j / Degree // N;
ea = oa + pa
p1xa = l1a + Cos[ea Degree] // N;
p1ya = l1a + Sin[ea Degree] // N;
a = ArcSin[((ya - p1ya) / l2a) ] / Degree
p2xa = l1a + Cos[ea Degree] + l2a + Cos[a Degree] // N;
p2ya = l1a + Sin[ea Degree] + l2a + Sin[a Degree] // N;
hb = [(xb - H)
2
j + [yb
2
j // N;
ob = ArcTan[(yb / (xb - H + 0.0000000001)) ] / Degree // N;
pb = ArcCos][[l1a
2
- l2a
2
+ hb
2
j / (2 + l1a + hb)j / Degree // N;
eb = (ob + pb) + 180
p1xb = l1a + Cos[eb Degree] + H // N;
p1yb = l1a + Sin[eb Degree] // N;
b = ArcSin[((yb - p1yb) / l2a) ] / Degree
p2xb = l1a + Cos[eb Degree] + (( l2a + Cos[b Degree]) + ) + H // N;
p2yb = l1a + Sin[eb Degree] + l2a + Sin[b Degree] // N;
hc = [(xc - Cx)
2
j + [(yc - Cy)
2
j // N;
oc = ArcTan[((yc - Cy) / (xc - Cx + 0.0000000001)) ] / Degree // N;
pc = ArcCos][[l1a
2
- l2a
2
+ hc
2
j / (2 + l1a + hc)j / Degree // N;
ec = (oc + pc) + [
p1xc = l1a + Cos[ec Degree] + Cx // N;
p1yc = l1a + Sin[ec Degree] + Cy // N;
c = 180 + ArcSin[(((yc) - p1yc) / l2a) ] / Degree;
s = 360 - c
p2xc = l1a + Cos[ec Degree] + (( l2a + Cos[c Degree]) + ) + Cx // N;
p2yc = l1a + Sin[ec Degree] - l2a + Sin[c Degree] + Cy // N;
Show[
Graphics[{Thick, Black, Line[{{Ax, Ay}, {Bx, By}}]},
Axes - True, BaselinePosition - Axis],
Graphics[{Thick, Black, Line[{{Bx, By}, {Cx, Cy}}]},
Axes - True, BaselinePosition - Axis],
Graphics[{Thick, Black, Line[{{Cx, Cy}, {Ax, Ay}}]},
Axes - True, BaselinePosition - Axis],
Graphics[{Dashed, Red, Arrow[{{xa, ya}, {xb, yb}}]},
Axes - True, BaselinePosition - Axis],
Graphics[{Dashed, Red, Arrow[{{xb, yb}, {xa, ya}}]},
Axes - True, BaselinePosition - Axis],
Graphics[{Dashed, Red, Arrow[{{xb, yb}, {xc, yc}}]},
Axes - True, BaselinePosition - Axis],
Graphics[{Dashed, Red, Arrow[{{xc, yc}, {xb, yb}}]},
2
p y y
Axes - True, BaselinePosition - Axis],
Graphics[{Dashed, Red, Arrow[{{xa, ya}, {xc, yc}}]},
Axes - True, BaselinePosition - Axis],
Graphics[{Dashed, Red, Arrow[{{xc, yc}, {xa, ya}}]},
Axes - True, BaselinePosition - Axis],
Table[Graphics[{CapForm[cap], Thickness[.02], Yellow, Line[{{xa, ya}, {Pcx, Pcy}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Table[Graphics[{CapForm[cap], Thickness[.02], Yellow, Line[{{xb, yb}, {Pcx, Pcy}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Table[Graphics[{CapForm[cap], Thickness[.02], Yellow, Line[{{xc, yc}, {Pcx, Pcy}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Graphics[{PointSize[0.015], Point[{{Pcx, Pcy}}, VertexColors - {Black}]}],
(+Espacio de trabajo+)
Graphics[Line[{{pxx2, pyy2}, {pxx1, pyy1}} , VertexColors - {Red, Black}]],
Graphics[Line[{{pxx2, pyy2}, {pxx3, pyy3}} , VertexColors - {Red, Black}]],
Graphics[Line[{{pxx3, pyy3}, {pxx1, pyy1}} , VertexColors - {Red, Black}]],
(+Primera Cadena+)
Table[Graphics[{CapForm[cap], Thickness[.02], Green, Line[{{0, 0}, {p1xa, p1ya}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Table[Graphics[{CapForm[cap], Thickness[.02], Blue, Line[{{p1xa, p1ya}, {p2xa, p2ya}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Graphics[{PointSize[0.02], Point[{{p1xa, p1ya}}, VertexColors - {Black}]}],
(+Segunda Cadena+)
Table[Graphics[{CapForm[cap], Thickness[.02], Green, Line[{{Bx, By}, {p1xb, p1yb}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Table[Graphics[{CapForm[cap], Thickness[.02], Blue, Line[{{p1xb, p1yb}, {p2xb, p2yb}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Graphics[{PointSize[0.02], Point[{{p1xb, p1yb}}, VertexColors - {Black}]}],
(+Tercera Cadena+)
Table[Graphics[{CapForm[cap], Thickness[.02], Green, Line[{{Cx, Cy}, {p1xc, p1yc}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Table[Graphics[{CapForm[cap], Thickness[.02], Blue, Line[{{p1xc, p1yc}, {p2xc, p2yc}}]},
PlotRange - 1.5, PlotLabel - cap], {cap, {"Round"}}],
Graphics[{PointSize[0.02], Point[{{p1xc, p1yc}}, VertexColors - {Black}]}],
Graphics[{PointSize[0.02], Point[{{xa, ya}}, VertexColors - {Black}]}],
Graphics[{PointSize[0.02], Point[{{xb, yb}}, VertexColors - {Black}]}],
Graphics[{PointSize[0.02], Point[{{xc, yc}}, VertexColors - {Black}]}],
Graphics[{PointSize[0.02], Point[{{Ax, Ay}}, VertexColors - {Black}]}],
Graphics[{PointSize[0.02], Point[{{Bx, By}}, VertexColors - {Black}]}],
Graphics[{PointSize[0.02], Point[{{Cx, Cy}}, VertexColors - {Black}]}],
AspectRatio - Automatic]
Out[21]= 82.0995
Out[24]= 30.3963
Out[30]= 210.396
Out[33]= 82.0995
Out[39]= 38.5913
Out[43]= 218.591
3
Out[46]=
4

You might also like