Jump to content

Wypisanie rozmiarów elementów sceny


Acid_19

Recommended Posts

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

Link to comment
Share on other sites

  • Replies 9
  • Created
  • Last Reply

Top Posters In This Topic

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

Link to comment
Share on other sites

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).

Link to comment
Share on other sites

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..."

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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... :)

Link to comment
Share on other sites

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
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy