Skocz do zawartości

Featured Replies

Napisano

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.

  • Odpowiedzi 3
  • Wyświetleń 1,6k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano
  • 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
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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności