Napisano 22 Październik 200321 l Dzięki kursowi ostatnio bawię się w maxscript i piszę własny plug-in. Jest już praktycznie na ukończeniu, ale bardziej robię go dla własnej satysfakcji, gdyż narzędzi przydatnych to w nim nie ma :) . Po drodze często trafiam na mniejsze lub większe problemy, ale udawało mi się je obejść. Niestety na poniższe już mi się objazdów nie udało znaleźć, więc chciałbym się zwrócić z prośbą o pomoc do bardziej zaawansowanych użytkowników w następujących kwestiach: 1. To musi być proste, ale chyba mam klapki na oczach bo nie mogę się do tego dogrzebać. Jeżeli chcę przesunąć obiekt w opisane zmiennymi miejsce, czy zmienić nazwę, stosuję: obiekt = selection obiekt.pos = [wspx,wspy,wspz] obiekt.name = \"nazwa\" No i wszystko jest ok. Tylko teraz jak uzyskać efekt odwrotny. Czyli chcę parametry wybranego elementu (współrzędne, nazwa) pobrać do zmiennych, by móc na nich potem operować. Tego samego potrzebuję w vertexach spline\'a. Udaje mi się te wartości wywołać w listenerze: getknotpoint $line01 1 1 --współrzędne pierwszego vertexa [23.8485,11.6306,0] Ale jak przypisać je zmiennym?? 2. Miałem do zrealizowania zadanie w którym użytkownik zaznacza dowolną ilość obiektów, a skrypt wykonuje po kolei na każdym z nich wymagane operacje (konieczne jest aby wykonywał na każdym osobno). Zrealizowałem to w ten sposób: group (selection) name:\"VGTsXVII_turb\" select ($VGTsXVII_turb) setgroupopen $VGTsXVII_turb true for x = $* do if isopengroupmember x then ( --wykonywane instrukcje na obiekcie x ) setgroupopen $VGTsXVII_turb false ungroup $VGTsXVII_turb Jak widać skrypt po kolei \"podchodzi\" do każdego obiektu w scenie i sprawdza, czy należy on do otwartej grupy (w ten sposób zrobiłem rozpoznawanie, na którym obiekcie ma wykonać zadanie). Problem pojawia się, gdy w scenie znajduje się jakakolwiek inna grupa, która jest otwarta. Niby skrypt działa, ale jeszcze z programowania mam takie nawyki, że staram się robić programy \"głupoodporne\", więc nie chciałbym, aby w wymaganiach skryptu było np.: żadna inna grupa nie może być otwarta, kolor obiektów musi być różowy, w winamp\'ie nie może lecieć discopolo, a za oknem musi być dobra pogoda [lol] Więc czy da się dodatkowo sprawdzać, czy obiekt x należy do otwartej grupy o konkretnej nazwie? 3. A ostatnia sprawa to już w zasadzie na pewno drobnostka. Jak zrobić pole tekstowe, w którym wyświetlana byłaby wartość zmiennej (aktualizowana przy każdej zmianie) ?? Jeżeli ktoś jest w stanie w jakikolwiek sposób naprowadzić mnie na rozwiązanie któregoś z tych problemów, będę wdzięczny za wypowiedź.
Napisano 22 Październik 200321 l zaznaczoneObiekty = getCurrentSelection() pierwszyObiekt = zaznaczoneObiekty[1] nazwa = pierwszyObiekt.name Tworzy sie tablica z zaznaczonymi elementami, do ktorej dobierasz sie przez index. W komorce przechowywana jest nazwa i .pos.
Napisano 22 Październik 200321 l Autor Po burzliwych dyskusjach udało się rozwiązać pierwszy problem :) Dzięki DruG!! No i jeszcze po bliższym zapoznaniu się z nową instrukcją getcurrentselection() okazała się ona także rozwiązaniem na mój drugi problem: grupa = getcurrentselection() for i = 1 to grupa.count do ( x = grupa(i) -- tu powinny być kwadratowe nawiasy, ale forum bierze to za formatowanie tekstu wiec jest tak -- wykonywane instrukcje na obiekcie x ) Więc pozostała już tylko trójeczka :]
Napisano 23 Październik 200321 l Gdzies czytalem o skrypcie ktory sledzi wartosc wybranej zmiennej, dam znac jak uda mi sie go znalesc.
Napisano 23 Październik 200321 l Znalazlem tego skrypta http://mapage.noos.fr/phlam/mx4/MVMon/index.htm moze to cos Ci pomoze, bo sam jeszcze nie wiem jak to dziala.
Napisano 23 Październik 200321 l Autor Dzięki za namiar. Będę kombinował... kto wie, może przypadkiem się uda ;)
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto