Skocz do zawartości

[MEL] pobieranie i zwracanie transformacji obiektu


Rekomendowane odpowiedzi

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
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Napisano

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

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ę



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności