biorhythm
05-28-2007, 03:28 AM
hi all,
i have a local procedure which declears heaps of vectors then loops through creating a locator at each location specified by the vector, problem is when i run the script its fine but if i put the code in a local procedure block the vectors all seem to be << 0 0 0 >> or at least thats where the locators are created
Can anyone shed some light on this?
thanks in advance:)
proc makeLocators()
{
// The vectors - for locator cords
vector $cord_0 = << 0, 74.734874, -3.342664 >> ;
vector $cord_1 = << 0, 83.171021, -3.961567 >> ;
vector $cord_2 = << 0, 92.630768, -6.181639 >> ;
vector $cord_3 = << 0, 101.195753, -8.178419 >> ;
vector $cord_4 = << 0, 109.844457, -9.991547 >> ;
vector $cord_5 = << 0, 118.161794, -10.402352 >> ;
vector $cord_6 = << 0, 125.885139, -9.441655 >> ;
vector $cord_7 = << 0, 131.20147, -7.62474 >> ;
vector $cord_8 = << 0, 137.202108, -6.298182 >> ;
vector $cord_9 = << 0, 144.859997, -4.372298 >> ;
vector $cord_10 = << 0, 173.079097, -5.033683 >> ;
vector $cord_11 = << 0, 140.340532, -2.277912 >> ;
vector $cord_12 = << 0, 135.04945, 15.359026 >> ;
vector $cord_13 = << 0, 157, 0.159908 >> ;
vector $cord_14 = << 7.973591, 156.875886, 3.448159 >> ;
vector $cord_15 = << 2.577232, 119.317561, -4.196853 >> ;
vector $cord_16 = << 13.333011, 123.506653, -6.7231 >> ;
vector $cord_17 = << 36.656067, 120.449748, -6.842157 >> ;
vector $cord_18 = << 54.544625, 121.015841, 0 >> ;
vector $cord_19 = << 55.615145, 121.270859, 0.480361 >> ;
vector $cord_20 = << 65.92934, 121.015841, 9.539275 >> ;
vector $cord_21 = << 70.483506, 120.291591, 12.937732 >> ;
vector $cord_22 = << 73.97268, 119.83991, 15.595288 >> ;
vector $cord_23 = << 77.631401, 119.302788, 18.450428 >> ;
vector $cord_24 = << 67.385499, 121.015841, 6.584129 >> ;
vector $cord_25 = << 72.958755, 120.291591, 9.385536 >> ;
vector $cord_26 = << 77.113232, 119.969562, 11.504951 >> ;
vector $cord_27 = << 82.648519, 119.445024, 14.301284 >> ;
vector $cord_28 = << 68.523036, 121.015841, 3.44102 >> ;
vector $cord_29 = << 73.70676, 120.291591, 5.296916 >> ;
vector $cord_30 = << 78.363794, 119.969562, 6.988502 >> ;
vector $cord_31 = << 82.609822, 119.445024, 8.522702 >> ;
vector $cord_32 = << 69.235767, 121.015841, 0.352518 >> ;
vector $cord_33 = << 73.907842, 120.457225, 1.008555 >> ;
vector $cord_34 = << 77.82165, 120.080065, 1.758798 >> ;
vector $cord_35 = << 81.525837, 119.76463, 2.503182 >> ;
vector $cord_36 = << 55.520234, 121.015841, 5.139353 >> ;
vector $cord_37 = << 55.846794, 119.040924, 8.836771 >> ;
vector $cord_38 = << 56.338091, 117.001962, 13.179378 >> ;
vector $cord_39 = << 56.961477, 114.832304, 17.338316 >> ;
vector $cord_40 = << 8.789346, 123.137594, -12.995807 >> ;
vector $cord_41 = << 7.785293, 110.712938, -14.342652 >> ;
vector $cord_42 = << 9.455215, 65.494614, 0 >> ;
vector $cord_43 = << 9.037271, 33.382862, 0 >> ;
vector $cord_44 = << 9.037271, 9.65095, -7.548991 >> ;
vector $cord_45 = << 9.037271, 0, 7 >> ;
vector $cord_46 = << 9.037271, 0, 22 >> ;
// The variables - for the loop
int $count = 47 ;
float $x ;
float $y ;
float $z ;
// The loop - loop through vectors and create locators
for( $i=0; $i < $count; $i++ )
{
string $lctName = ("locator_" + $i) ;
string $sphName = ("sphere_" + $i) ;
eval("float $x = $cord_"+$i+".x") ;
eval("float $y = $cord_"+$i+".y") ;
eval("float $z = $cord_"+$i+".z") ;
curve -d 1 -p 1 0 0 -p -1 0 0 -p 0 0 0
-p 0 0 1 -p 0 0 -1 -p 0 0 0
-p 0 -1 0 -p 0 1 0 ;
rename "curve1" $lctName ;
move -rpr $x $y $z $lctName ;
setAttr ($lctName + ".sx") 3 ;
setAttr ($lctName + ".sy") 3 ;
setAttr ($lctName + ".sz") 3 ;
makeIdentity -apply true -t 1 -r 1 -s 1 -n 0;
sphere -n $sphName -p $x $y $z ;
CenterPivot ;
pointConstraint $lctName $sphName ;
}
select "*locator_*" ;
group -n locator_GRP ;
select "*sphere_*" ;
group -n sphere_GRP ;
}
i have a local procedure which declears heaps of vectors then loops through creating a locator at each location specified by the vector, problem is when i run the script its fine but if i put the code in a local procedure block the vectors all seem to be << 0 0 0 >> or at least thats where the locators are created
Can anyone shed some light on this?
thanks in advance:)
proc makeLocators()
{
// The vectors - for locator cords
vector $cord_0 = << 0, 74.734874, -3.342664 >> ;
vector $cord_1 = << 0, 83.171021, -3.961567 >> ;
vector $cord_2 = << 0, 92.630768, -6.181639 >> ;
vector $cord_3 = << 0, 101.195753, -8.178419 >> ;
vector $cord_4 = << 0, 109.844457, -9.991547 >> ;
vector $cord_5 = << 0, 118.161794, -10.402352 >> ;
vector $cord_6 = << 0, 125.885139, -9.441655 >> ;
vector $cord_7 = << 0, 131.20147, -7.62474 >> ;
vector $cord_8 = << 0, 137.202108, -6.298182 >> ;
vector $cord_9 = << 0, 144.859997, -4.372298 >> ;
vector $cord_10 = << 0, 173.079097, -5.033683 >> ;
vector $cord_11 = << 0, 140.340532, -2.277912 >> ;
vector $cord_12 = << 0, 135.04945, 15.359026 >> ;
vector $cord_13 = << 0, 157, 0.159908 >> ;
vector $cord_14 = << 7.973591, 156.875886, 3.448159 >> ;
vector $cord_15 = << 2.577232, 119.317561, -4.196853 >> ;
vector $cord_16 = << 13.333011, 123.506653, -6.7231 >> ;
vector $cord_17 = << 36.656067, 120.449748, -6.842157 >> ;
vector $cord_18 = << 54.544625, 121.015841, 0 >> ;
vector $cord_19 = << 55.615145, 121.270859, 0.480361 >> ;
vector $cord_20 = << 65.92934, 121.015841, 9.539275 >> ;
vector $cord_21 = << 70.483506, 120.291591, 12.937732 >> ;
vector $cord_22 = << 73.97268, 119.83991, 15.595288 >> ;
vector $cord_23 = << 77.631401, 119.302788, 18.450428 >> ;
vector $cord_24 = << 67.385499, 121.015841, 6.584129 >> ;
vector $cord_25 = << 72.958755, 120.291591, 9.385536 >> ;
vector $cord_26 = << 77.113232, 119.969562, 11.504951 >> ;
vector $cord_27 = << 82.648519, 119.445024, 14.301284 >> ;
vector $cord_28 = << 68.523036, 121.015841, 3.44102 >> ;
vector $cord_29 = << 73.70676, 120.291591, 5.296916 >> ;
vector $cord_30 = << 78.363794, 119.969562, 6.988502 >> ;
vector $cord_31 = << 82.609822, 119.445024, 8.522702 >> ;
vector $cord_32 = << 69.235767, 121.015841, 0.352518 >> ;
vector $cord_33 = << 73.907842, 120.457225, 1.008555 >> ;
vector $cord_34 = << 77.82165, 120.080065, 1.758798 >> ;
vector $cord_35 = << 81.525837, 119.76463, 2.503182 >> ;
vector $cord_36 = << 55.520234, 121.015841, 5.139353 >> ;
vector $cord_37 = << 55.846794, 119.040924, 8.836771 >> ;
vector $cord_38 = << 56.338091, 117.001962, 13.179378 >> ;
vector $cord_39 = << 56.961477, 114.832304, 17.338316 >> ;
vector $cord_40 = << 8.789346, 123.137594, -12.995807 >> ;
vector $cord_41 = << 7.785293, 110.712938, -14.342652 >> ;
vector $cord_42 = << 9.455215, 65.494614, 0 >> ;
vector $cord_43 = << 9.037271, 33.382862, 0 >> ;
vector $cord_44 = << 9.037271, 9.65095, -7.548991 >> ;
vector $cord_45 = << 9.037271, 0, 7 >> ;
vector $cord_46 = << 9.037271, 0, 22 >> ;
// The variables - for the loop
int $count = 47 ;
float $x ;
float $y ;
float $z ;
// The loop - loop through vectors and create locators
for( $i=0; $i < $count; $i++ )
{
string $lctName = ("locator_" + $i) ;
string $sphName = ("sphere_" + $i) ;
eval("float $x = $cord_"+$i+".x") ;
eval("float $y = $cord_"+$i+".y") ;
eval("float $z = $cord_"+$i+".z") ;
curve -d 1 -p 1 0 0 -p -1 0 0 -p 0 0 0
-p 0 0 1 -p 0 0 -1 -p 0 0 0
-p 0 -1 0 -p 0 1 0 ;
rename "curve1" $lctName ;
move -rpr $x $y $z $lctName ;
setAttr ($lctName + ".sx") 3 ;
setAttr ($lctName + ".sy") 3 ;
setAttr ($lctName + ".sz") 3 ;
makeIdentity -apply true -t 1 -r 1 -s 1 -n 0;
sphere -n $sphName -p $x $y $z ;
CenterPivot ;
pointConstraint $lctName $sphName ;
}
select "*locator_*" ;
group -n locator_GRP ;
select "*sphere_*" ;
group -n sphere_GRP ;
}
