Skocz do zawartości

Kurs MAX Script - temat 3 - podsumowanie


Rekomendowane odpowiedzi

Napisano

No coz, tym razem frekwencja slabiutka :( Zobaczymy jak bedzie nastepnym razem. A ponizej moja wersja skryptu:

 

summary_file = createFile \"C:\\summary.txt\"

scene_file = maxFileName

if scene_file == \"\" then scene_file = \"Untitled\"

format \"File name: %\\n\" scene_file to:summary_file

format \"Time & Date: %\\n\\n\" localTime to:summary_file

format \"Lp.\\tName\\tPosition\\n\" to:summary_file

for i in 1 to selection.count do

(

format \"%.\\t%\\t%\\n\" i selection.name selection.pos to:summary_file

)

close summary_file

 

Mysle ze jesli chodzi o operacje na pliku czyli createFile i close to polecenia te nie wymagaja komentarza.

Nazwe pliku ze scena zwraca polecenie maxFileName, jesli scene nie byla jeszcze zapisywana zwrocony zostanie lancuch o zerowej dlugosci. Date i czas zwraca polecenie localTime.

  • Odpowiedzi 6
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Napisano

Autor: Bart

 

utility Statystyka \"Statystyka\"

(

label l1 \"\"

edittext Sciezka \"Sciezka\" text:\"c:\\dane.txt\"

label l2 \"\"

button create \"Zapisz statystyke do pliku\"

on create pressed do

(

out_name = Sciezka.text

out_file = createfile out_name

indeks = \"Lp. Nazwa Pozycja\"

spacja = \" \"

format \"Nazwa pliku: \" to:out_file

format \"%\\n\" maxFileName to:out_file

format \"Czas i data: \" to:out_file

format \"%\\n\\n\" localTime to:out_file

format \"%\\n\" indeks to:out_file

for i in 1 to selection.count do

(

format \"%.\" i to:out_file

format \"%\" spacja to:out_file

format \"%\" selection.name to:out_file

format \"%\" spacja to:out_file

format \"%\\n\" selection.pos to:out_file

)

close out_file

edit out_name

)

)

 

Wersja duzo bardziej przejrzysta niz w moim wykonaniu z prosty interfejsem umozliwiajacym podanie nazwy pliku. Na koncu bardzo fajna rzecz o ktorej nie pomyslalem czyli \"edit out_name\" ktore wyswietla w nowym oknie tresc nowoutworzonego pliku.

 

Napisano

Autor: Sypo

 

-- zapis do pliku

summary_file = createFile \"C:\\dane.txt\"

out_file = summary_file

 

-- tekst w pliku

format \"File Location: \" to:out_file

format \"%\" out_file to:out_file

format \"\\n\" to:out_file

format \"\\n\" to:out_file

format \"Lp. Name Position\" to:out_file

format \"\\n\" to:out_file

for i = 1 to selection.count do

(

format \"%. %,%\" i selection.name selection.pos to:out_file

format \"\\n\" to:out_file

)

close out_file

edit out_file

 

Brak czasu wygenerowania statystyki. Co do nazwy pliku, w temacie chodzilo o plik ze scena a nie ze statystyka, ale to drobnostka. To co najwarzniejsze czyli statystyka tworzy sie dobrze. Na koncu podales zmienna o zlym typie w poleceniu edit. Zmienna out_file jest typu filestream (reprezentuje plik i umozliwia wykonywanie na nim operacji np. zamkniecia jak linijke wyrzej), natomiast edit potrzebuje zmiennej typu string, czyli sciezki do pliku wiec prawidlowo byloby np. edit \"C:\\dane.txt\"

 

 

Napisano

Autor: VGTsXVII

 

utility UtilityExample \"Zad 03\"

(

--dane wstepne

group \"wybor danych do zapisu\"

(

checkbox nazwa \"Nazwa\" checked:true

checkbox pozycja \"wspolrzedne\" checked:true

checkbox kolor \"Kolor siatki\" checked:false

checkbox vert \"Vertex\'y - ilosc\" checked:false

checkbox face \"Face\'y - ilosc\" checked:false

)

button zapis \"zapisz do pliku\"

 

on zapis pressed do

(

--przygotowanie zmiennych

godz = 0

min = 0

sek = 0

--obliczenie aktualnego czasu

sek = timestamp() / 1000

while sek > 60 do

(

min = min+1

sek = sek-60

)

while min > 60 do

(

godz = godz + 1

min = min-60

)

 

--stworzenie pliku i wpisywanie danych

plik_nazwa = getsavefilename types:\"Spis obiektów|*.txt|\"

if plik_nazwa != undefined then

(

plik = createfile plik_nazwa

zaznaczone = getcurrentselection()

format \"Czas wygenerowania statystyki: %:%:%\\n\\n\" godz min sek to:plik

format \"Zapisane dane o zaznaczonych obiektach:\\n\" to:plik

format \"LICZBA PORZADKOWA\\n\" to:plik

if nazwa.checked==true then format \"%\\n\" \"NAZWA\" to:plik

if pozycja.checked==true then format \"%\\n\" \"WSPOLRZEDNE\" to:plik

if kolor.checked==true then format \"%\\n\" \"KOLOR\" to:plik

if vert.checked==true then format \"%\\n\" \"ILOSC VERTEX\'OW\" to:plik

if face.checked==true then format \"%\\n\" \"ILOSC FACE\'OW\" to:plik

format \"--------------------\\n\" \"kolor\" to:plik

for i = 1 to zaznaczone.count do

(

format \"%\\n\" i to:plik

if nazwa.checked == true then (format \"%\\n\" zaznaczone.name to:plik)

if pozycja.checked == true then (format \"%\\n\" zaznaczone.position to:plik)

if kolor.checked == true then (format \"%\\n\" zaznaczone.wirecolor to:plik)

if vert.checked == true or face.checked == true then kopia=snapshotasmesh zaznaczone

if vert.checked == true then (format \"%\\n\" kopia.numverts to:plik)

if face.checked == true then (format \"%\\n\" kopia.numfaces to:plik)

format \"--------------------\\n\" to:plik

)

close plik

edit plik_nazwa

)

)

)

 

W tym skrypcie jest zdecydowanie najwiecej ekstra dodatkow. Po pierwsze:

 

plik_nazwa = getsavefilename types:\"Spis obiektów|*.txt|\"

 

Polecenie to powoduje wyswietlenie zwyklego windowsowego dialogu umozliwiajacego wybor nazwy i katalogu dla pliku. Po drugie pierwsze polecenia umozliwiajace operacje na meshu numverts (ilosc vertexow) i numfaces (ilosc faceow). Tym zajmiemy sie jeszcze dokladnie w ktoryms z nastepnych tematow. Widze tu tylko jeden slaby punkt. Co bedzie jesli wsrod zaznaczonych obiektow bedzie np. swiatlo omni?

Zwroccie uwage na sposob obliczania czasu stworzenia statystyki przy pomocy timestamp(), ktore to polecenie zwraca ilosc milisekund od polnocy. Musiales sie z tym niezle namordowac :)

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