Skocz do zawartości

Rekomendowane odpowiedzi

Napisano

Nigdy nie bawilem sie w skryptowanie w maxie i dlatego prosze kogos o pomoc. Chodzi o napisanie skryptu wypisujacego np do pliku txt nazw wszystkich elementow sceny wraz z jego rozmiarami. Chodzi mi o zapis w stylu:

 

NAZWA_ELEMENTU [tab][tab] LENGTH [tab] WIDTH [tab] HEIGHT

 

Ze swojej strony dodam, ze wszystkie elementy to BOXy. Wydaje mi sie, ze skrypt ten to nie jest jakis kosmicznie trudny problem programistyczny, jednak za duzo czasu zabralaby mi nauka składni w celu napisania jednego skryptu.

 

Prosiłbym równiez o ewentualne wskazowki co do sposobu "odpalenia" skryptu w scenie. Uzywam maxa 6.

 

Pozdrawiam i z góry dziekuje

  • Odpowiedzi 9
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Na forum http://www.3dbuzz.com uzytkownik Mobeen napisał mi taki kod, ktory dziala:

 

fName = (GetSaveFilename caption:"Select output filename... " types:"Text file only (*.txt)|*.txt|")
if(fName!=undefined) do
(
fp = openfile fName mode:"wt"
--This gets all scene boxes
allBoxes = (for g in geometry where classof g == Box collect g)

--Iterates over all boxes
for b in allBoxes do
(
  format "%\t\t\t%\t%\t%\n" b.name b.length b.width b.height to:fp
)
close fp
)
messagebox "Done..."

 

Mam nadzieje, ze moze komus sie przyda

Napisano

Witam.

 

Potrzebowalbym skrypt, ktory wypisze do pliku pozycje i rotacje wszystkich elementow na scenie. Nie znam jezyka skryptowego 3dsmax'a, a potrzebuje tylko to :) Czy ktos posiada taki skrypt, lub bylby w stanie zmodyfikowac powyzszy o interesujaca mnie funkcjonalnosc? Pisze w tym temacie, gdyz wydaje mi sie, iz przerobienie powyzszego skryptu rozwiazaloby problem (tak, aby wypisywal nie rozmiary, a pozycje i rotacje i nie tylko Box'ow, ale wszystkich elementow na scenie).

Napisano

fName = (GetSaveFilename caption:"Select output filename... " types:"Text file only (*.txt)|*.txt|")

if(fName!=undefined) do

(

fp = openfile fName mode:"wt"

allBoxes = (for g in objects collect g)

for b in allBoxes do

(

format "%\t\t\t%\t%\t%\n" b.name b.position b.rotation b.scale to:fp

)

close fp

)

messagebox "Done..."

Napisano

CgBartosz, bardzo dziekuje! Oszczedzi mi to sporo nudnej pracy :)

 

Przy okazji chcialbym zapytac, jak przeliczyc kwaterniony na stopnie(lub radiany :) ) obrotu wzgledem osi x, y, z? (np. z zachowaniem tej kolejnosci, choc to dla mnie nie ma znaczenia)

Napisano

Po pewnym czasie problem do mnie wrocil... :) Czy moglbym prosic, aby ktos rozbudowal powyzszy skrypt autorstwa CgBartosz w taki sposob, aby do pliku byly wypisywane pozycje i obroty kazdego elementu na scenie w kazdej klatce animacji? (W zasadzie w momencie wykonywania skryptu na scenie i tak bedzie tylko 1 obiekt).

 

Chcialbym, aby w pliku pojawily sie te dane w postaci:

[nr_klatki] [pozycja_x] [pozycja_y] [pozycja_z] [analogicznie jak pozycje tak i obroty]

 

Od czasu mojego poprzedniego pytania minelo sporo czasu, faktem jest ze przez taki okres moglem sie juz zaznajomic z jezykiem skryptowym, ale nie sadzilem ze jeszcze kiedys bede z niego korzystal... :)

Napisano

To bedzie tak:

fName = (GetSaveFilename caption:"Select output filename... " types:"Text file only (*.txt)|*.txt|")
if(fName!=undefined) do
(
fp = openfile fName mode:"wt"
allBoxes = (for g in objects collect g)
for t in animationRange.start to animationRange.end do
(
for b in allBoxes do at time t
 (
 local rot = b.rotation as eulerangles
 format "[%][%][%][%][%][%][%]\n" (t.frame as integer) b.pos.x b.pos.y b.pos.z rot.x rot.y rot.z to:fp
 )
)
close fp
)

  • Confused 1

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