guru Napisano 12 Listopad 2010 Napisano 12 Listopad 2010 W Mel'u nie bawilem sie jeszcze wiec to moje poczatki. chcialem napisac skrypt pobierajacy z obiekty wartosci tranformacji (translacje,rotacje, scale) a nastepnie moc te wartosci zapisac w zmiennej i potem ustawic je w innym obiekcie ktory powiedzmy zaznacze jako nastepny. To co mam do tej pory. nie wiem jak wartosci przypisac do nastepnego obiektu. HELP string $objA[]=`ls -sl`; float $tr[2] = `xform -query -t $objA`; float $rt[2] = `xform -query -ro $objA`; float $sc[2] = `xform -query -s $objA`; //prints for ($laps = 0; $laps print $tr[$laps]; print "\n"; print $rt[$laps]; print "\n"; print $sc[$laps]; print "\n"; } string $objB[]=`ls -sl`; to co jest powyzej dziala. Ale teraz chcialbym do obiektu objB przypisac to co zapisalem w zmiennych. Cos kombinowalem z setAttr ale cos nie tak ze skladnia.
lechoo Napisano 12 Listopad 2010 Napisano 12 Listopad 2010 Mozna tak: setAttr "pCube1.translate" 1 2 3
guru Napisano 12 Listopad 2010 Autor Napisano 12 Listopad 2010 Dzieki ale juz jakos sie uporalem dokladnie o to chodzilo ale ze skladnia nie moglem sobie poradzic. Teraz chcialbym to wrzucic pod dwa przyciski: jedna ktora pobiera wartosci a druga ktora jej aplikuje. Zrobilem cos takiego w dwoch procedurach ale teraz zmienne sie nie widza;/ string $myWin = `window -title "Skrypt" -widthHeight 200 50`; columnLayout -adjustableColumn true; button -c "copyTrans" -label "Copy"; button -c "paseTrans" -label "Paste"; showWindow $myWin; proc copyTrans(){ string $objA[]=`ls -sl`; float $tr[2] = `xform -query -t $objA`; float $rt[2] = `xform -query -ro $objA`; float $sc[2] = `xform -query -s $objA`; print "kopuje"; } /* global proc paseTrans(){ string $objB[]=`ls -sl`; setAttr (($objB[0])+".t") $tr[0] $tr[1] $tr[2]; setAttr (($objB[0])+".ro") $rt[0] $rt[1] $rt[2]; setAttr (($objB[0])+".s") $sc[0] $sc[1] $sc[2]; print "wklejam"; }*/ Wsyzstko dziala gdy wykomentuje procedure wklejajaca.
lechoo Napisano 12 Listopad 2010 Napisano 12 Listopad 2010 string $myWin = `window -title "Skrypt" -widthHeight 200 50`; columnLayout -adjustableColumn true; button -c "copyTrans" -label "Copy"; button -c "paseTrans" -label "Paste"; showWindow $myWin; proc copyTrans(){ string $objA[]=`ls -sl`; global float $tr[2]; $tr = `xform -query -t $objA`; } global proc paseTrans(){ string $objB[]=`ls -sl`; global float $tr[2]; setAttr (($objB[0])+".t") $tr[0] $tr[1] $tr[2]; } Mozesz zadeklarowac zmienna jako globalne. W przeciwnym wypadku tr i reszta sa widoczne tylko w obrebie funkcji w ktorej zostaly zadeklarowane.
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się