Napisano 12 Listopad 201014 l 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.
Napisano 12 Listopad 201014 l Autor 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.
Napisano 12 Listopad 201014 l 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.
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto