00001
00002 [CONSTANTS]
00003
00004 % INPUT PARAMETERS
00005
00006 theta1_min:= pi/3-0.2
00007 theta1_max:= theta1_min
00008
00009 theta2_min:= pi/3
00010 theta2_max:= theta2_min
00011
00012 theta3_min:= pi/3+0.2
00013 theta3_max:= theta3_min
00014
00015 % PARAMETERS OF THE PLATFORM
00016
00017 % radius of the circunference inscribing the base triangle
00018 r_b:=1
00019
00020 % angles from the center of the base to the legs anchor points
00021 beta1_b:=0
00022 beta2_b:=beta1_b+(2*pi/3)
00023 beta3_b:=beta2_b+(2*pi/3)
00024
00025 % radius of the circunference inscribing the platform triangle
00026 r_p:=1
00027
00028 % angles from the center of the platform to the legs anchor points
00029 beta1_p:=0
00030 beta2_p:=beta1_p+(2*pi/3)
00031 beta3_p:=beta2_p+(2*pi/3)
00032
00033 % Length of the bottom part of each leg
00034 lenght_A:=1
00035
00036 % Length of the upper part of each leg (i.e., the long bar of the 4 bar)
00037 length_B:=1
00038
00039 % Length of the short bar forming the 4 bars in the upper part of each leg
00040 length_B1:=0.1
00041
00042 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00043 % nothing to be modified behond this point
00044
00045 % Anchor points of the legs in the base
00046 x1_b:=r_b*cos(beta1_b)
00047 y1_b:=r_b*sin(beta1_b)
00048
00049 x2_b:=r_b*cos(beta2_b)
00050 y2_b:=r_b*sin(beta2_b)
00051
00052 x3_b:=r_b*cos(beta3_b)
00053 y3_b:=r_b*sin(beta3_b)
00054
00055 % Tangent vectors to the sphere inscribing the base triangle at the
00056 % leg anchor points
00057 alpha1_b:=beta1_b+pi/2
00058 alpha2_b:=beta2_b+pi/2
00059 alpha3_b:=beta3_b+pi/2
00060
00061 % Anchor points of the legs in the platform
00062 x1_p:=r_p*cos(beta1_p)
00063 y1_p:=r_p*sin(beta1_p)
00064
00065 x2_p:=r_p*cos(beta2_p)
00066 y2_p:=r_p*sin(beta2_p)
00067
00068 x3_p:=r_p*cos(beta3_p)
00069 y3_p:=r_p*sin(beta3_p)
00070
00071 % Tangent vectors to the sphere inscribing the plotform triangle at the
00072 % leg anchor points
00073 alpha1_p:=beta1_p+pi/2
00074 alpha2_p:=beta2_p+pi/2
00075 alpha3_p:=beta3_p+pi/2
00076
00077 % radius of the bars used in the representation. The bars for the
00078 % base/platform are 1.5 times this radius
00079 rb:=0.025
00080
00081
00082 [LINKS]
00083
00084 base : 0.5*red
00085 % One sphere at each vertex of the triangle
00086 sphere rb*1.5 (x1_b,y1_b,0)
00087 sphere rb*1.5 (x2_b,y2_b,0)
00088 sphere rb*1.5 (x3_b,y3_b,0)
00089
00090 % Three bars forming the triangle
00091 cylinder rb*1.5 (x1_b,y1_b,0)(x2_b,y2_b,0)
00092 cylinder rb*1.5 (x1_b,y1_b,0)(x3_b,y3_b,0)
00093 cylinder rb*1.5 (x2_b,y2_b,0)(x3_b,y3_b,0)
00094
00095 % Part of the revolute joint with the first leg fixed at the base
00096 cylinder rb (x1_b-length_B1*cos(alpha1_b),y1_b-length_B1*sin(alpha1_b),0)
00097 (x1_b-0.5*length_B1*cos(alpha1_b),y1_b-0.5*length_B1*sin(alpha1_b),0)
00098 sphere rb (x1_b-length_B1*cos(alpha1_b),y1_b-length_B1*sin(alpha1_b),0)
00099 cylinder rb (x1_b+0.5*length_B1*cos(alpha1_b),y1_b+0.5*length_B1*sin(alpha1_b),0)
00100 (x1_b+ length_B1*cos(alpha1_b),y1_b+ length_B1*sin(alpha1_b),0)
00101 sphere rb (x1_b+ length_B1*cos(alpha1_b),y1_b+ length_B1*sin(alpha1_b),0)
00102
00103 % Part of the revolute joint with the second leg fixed at the base
00104 cylinder rb (x2_b-length_B1*cos(alpha2_b),y2_b-length_B1*sin(alpha2_b),0)
00105 (x2_b-0.5*length_B1*cos(alpha2_b),y2_b-0.5*length_B1*sin(alpha2_b),0)
00106 sphere rb (x2_b-length_B1*cos(alpha2_b),y2_b-length_B1*sin(alpha2_b),0)
00107 cylinder rb (x2_b+0.5*length_B1*cos(alpha2_b),y2_b+0.5*length_B1*sin(alpha2_b),0)
00108 (x2_b+ length_B1*cos(alpha2_b),y2_b+ length_B1*sin(alpha2_b),0)
00109 sphere rb (x2_b+ length_B1*cos(alpha2_b),y2_b+ length_B1*sin(alpha2_b),0)
00110
00111 % Part of the revolute joint with the third leg fixed at the base
00112 cylinder rb (x3_b-length_B1*cos(alpha3_b),y3_b-length_B1*sin(alpha3_b),0)
00113 (x3_b-0.5*length_B1*cos(alpha3_b),y3_b-0.5*length_B1*sin(alpha3_b),0)
00114 sphere rb (x3_b-length_B1*cos(alpha3_b),y3_b-length_B1*sin(alpha3_b),0)
00115 cylinder rb (x3_b+0.5*length_B1*cos(alpha3_b),y3_b+0.5*length_B1*sin(alpha3_b),0)
00116 (x3_b+ length_B1*cos(alpha3_b),y3_b+ length_B1*sin(alpha3_b),0)
00117 sphere rb (x3_b+ length_B1*cos(alpha3_b),y3_b+ length_B1*sin(alpha3_b),0)
00118
00119
00120 platform: 0.5*green
00121 sphere rb*1.5 (x1_p,y1_p,0)
00122 sphere rb*1.5 (x2_p,y2_p,0)
00123 sphere rb*1.5 (x3_p,y3_p,0)
00124 cylinder rb*1.5 (x1_p,y1_p,0)(x2_p,y2_p,0)
00125 cylinder rb*1.5 (x1_p,y1_p,0)(x3_p,y3_p,0)
00126 cylinder rb*1.5 (x2_p,y2_p,0)(x3_p,y3_p,0)
00127
00128 cylinder rb (x1_p-length_B1*cos(alpha1_p),y1_p-length_B1*sin(alpha1_p),0)
00129 (x1_p+length_B1*cos(alpha1_p),y1_p+length_B1*sin(alpha1_p),0)
00130
00131 cylinder rb (x2_p-length_B1*cos(alpha2_p),y2_p-length_B1*sin(alpha2_p),0)
00132 (x2_p+length_B1*cos(alpha2_p),y2_p+length_B1*sin(alpha2_p),0)
00133
00134 cylinder rb (x3_p-length_B1*cos(alpha3_p),y3_p-length_B1*sin(alpha3_p),0)
00135 (x3_p+length_B1*cos(alpha3_p),y3_p+length_B1*sin(alpha3_p),0)
00136
00137 leg1_a: cylinder rb (0,0,0) (0,0,lenght_A)
00138 cylinder rb (-0.5*length_B1,0,0)
00139 (+0.5*length_B1,0,0)
00140 cylinder rb (-length_B1,0,lenght_A)
00141 (+length_B1,0,lenght_A)
00142
00143 leg2_a: cylinder rb (0,0,0) (0,0,lenght_A)
00144 cylinder rb (-0.5*length_B1,0,0)
00145 (+0.5*length_B1,0,0)
00146 cylinder rb (-length_B1,0,lenght_A)
00147 (+length_B1,0,lenght_A)
00148
00149 leg3_a: cylinder rb (0,0,0) (0,0,lenght_A)
00150 cylinder rb (-0.5*length_B1,0,0)
00151 (+0.5*length_B1,0,0)
00152 cylinder rb (-length_B1,0,lenght_A)
00153 (+length_B1,0,lenght_A)
00154
00155
00156 [JOINTS]
00157 %---------------------------------------------------------
00158
00159 revolute: base (x1_b,y1_b,0)+(cos(alpha1_b),sin(alpha1_b),0)
00160 leg1_a (0,0,0)+(1,0,0)
00161 range [theta1_min,theta1_max] +(cos(beta1_b),sin(beta1_b),0) +(0,-1,0)
00162
00163 sph_sph: leg1_a (-length_B1,0,lenght_A)
00164 platform (x1_p-length_B1*cos(alpha1_p),y1_p-length_B1*sin(alpha1_p),0)
00165 length length_B
00166 radius rb
00167 0.25*white
00168
00169 sph_sph: leg1_a (+length_B1,0,lenght_A)
00170 platform (x1_p+length_B1*cos(alpha1_p),y1_p+length_B1*sin(alpha1_p),0)
00171 length length_B
00172 radius rb
00173 0.25*white
00174
00175 %---------------------------------------------------------
00176
00177 revolute: base (x2_b,y2_b,0)+(cos(alpha2_b),sin(alpha2_b),0)
00178 leg2_a (0,0,0)+(1,0,0)
00179 range [theta2_min,theta2_max] +(cos(beta2_b),sin(beta2_b),0) +(0,-1,0)
00180
00181 sph_sph: leg2_a (-length_B1,0,lenght_A)
00182 platform (x2_p-length_B1*cos(alpha2_p),y2_p-length_B1*sin(alpha2_p),0)
00183 length length_B
00184 radius rb
00185 0.25*white
00186
00187 sph_sph: leg2_a (+length_B1,0,lenght_A)
00188 platform (x2_p+length_B1*cos(alpha2_p),y2_p+length_B1*sin(alpha2_p),0)
00189 length length_B
00190 radius rb
00191 0.25*white
00192
00193 %---------------------------------------------------------
00194
00195 revolute: base (x3_b,y3_b,0)+(cos(alpha3_b),sin(alpha3_b),0)
00196 leg3_a (0,0,0)+(1,0,0)
00197 range [theta3_min,theta3_max] +(cos(beta3_b),sin(beta3_b),0) +(0,-1,0)
00198
00199 sph_sph: leg3_a (-length_B1,0,lenght_A)
00200 platform (x3_p-length_B1*cos(alpha3_p),y3_p-length_B1*sin(alpha3_p),0)
00201 length length_B
00202 radius rb
00203 0.25*white
00204
00205 sph_sph: leg3_a (+length_B1,0,lenght_A)
00206 platform (x3_p+length_B1*cos(alpha3_p),y3_p+length_B1*sin(alpha3_p),0)
00207 length length_B
00208 radius rb
00209 0.25*white
00210
00211 %---------------------------------------------------------
00212 %fix: base platform Tz(1)
00213