Skocz do zawartości

Kurs MAX Script - temat 4 - podsumowanie


lechoo

Rekomendowane odpowiedzi

Na poczatek moja wersja skryptu

 

macroScript kurs04 category:\"Kurs max script\" buttonText:\"Summary\"

(

summary_file_name = getSaveFileName caption:\"Summary file\" types:\"Text(*.txt)|*.txt|\"

if (summary_file_name != undefined) then

(

summary_file = createFile summary_file_name

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\\tObject type\\n\" to:summary_file

for i in 1 to selection.count do

(

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

format \"\\t%\" (classOf selection) to:summary_file

format \"\\n\" to:summary_file

)

close summary_file

)

)

 

Pierwsza nowa rzecz to macroscript. Dzieki temu mozemy podpiac nasz skrypt do guziczka w menu. Mysle ze opcje category i buttonText nie wymagaja wyjasnien. Dodatkowo, czego tu nie wykorzystalem, mozna przypisac guziczkowi ikone. W tym celu tworzymy 4 bitmapy np. takie:

 

summary_16a

summary_16i

summary_24a

summary_24i

 

i umieszczamy je w katalogu \\\\ui\\\\icons. w 16i i 24i znajduja sie same ikony w rozmiarach 16 i 24 pikseli a w 16a i 24a ich kanaly alfa. Odwolanie do nich jest bardzo proste

 

macroScript kurs04 category:\"Kurs max script\" buttonText:\"Summary\" icon:#(\"summary\", 1)

 

Liczba oznacza numer ikony jesli w bitmapach jest ich kilka.

Do sprawdzania klasy obiektu sluzy polecenie classOf obiekt. Jedno polecenie zalatwia cala sprawe. Rownie prosto jest w przypadku dialogu do zapisywania pliku. Najprostsza wersja moze wygladac tak:

 

nazwa_pliku = getSaveFileName

 

W skrypcie dodalem tytul okienka (caption) i zdefiniowalem jeden typ pliku.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 4
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Autor: Bart

 

macroScript Statystyka category:\"Statystyka\" tooltip:\"Statysyka\"

(

out_name = getSaveFileName types:\"Text files (*.txt)|*.txt|\"

out_file = createfile out_name

nazwaPliku = maxFileName

if nazwaPliku == \"\" then nazwaPliku = \"Untitled\"

indeks = \"Lp. Typ Nazwa Pozycja\"

spacja = \" \"

format \"Nazwa pliku: \" to:out_file

format \"%n\" NazwaPliku to:out_file

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

format \"%nn\" localTime to:out_file

format \"%nn\" indeks to:out_file

for i in 1 to selection.count do

(

format \"%.\" i to:out_file

format \"%\" spacja to:out_file

format \"%\" selection.baseobject 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

)

 

Troche inaczej zostalo tu rozwiazane sprawdzanie rodzaju obiektu. Najlepiej wytlumacze to na przykladzie. Jesli zrobicie boxa i przypiszecie mu modyfikator Edit Mesh to classOf zwroci Editable_mesh a baseObject - Box (czyli obiekt podstawowy). Jak widac w pewnych sytuacjach roznica jest znaczaca jednak w przypadku naszego podsumowania to w zupelnosci wystarczy.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: Sypo

 

fn funkcja =

(

-- zapis do pliku

clearlistener()

summary_file = getSaveFileName types:\"|*.txt|\"

scene_file = maxFileName

 

-- tekst w pliku

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

if summary_file != undefined then

(

out_file = createFile summary_file

format \"File Name: \" to:out_file

format \"%\" scene_file to:out_file

format \"n\" to:out_file

format \"Time & Date: %\" localTime to:out_file

format \"n\" to:out_file

format \"n\" to:out_file

format \"Lp.tNametPositiontClassn\" to:out_file

format \"n\" to:out_file

for i = 1 to selection.count do

(

format \"%.t%t%t%\" i selection.name selection.pos (classOf selection) to:out_file

format \"n\" to:out_file

)

close out_file

edit summary_file

)

)

 

utility par \"Parametry\"

(

label l1 \"\"

button go \"Zapisz dane do pliku\"

on go pressed do

(

funkcja()

)

)

 

macroScript Parametry category:\"Temat4\" tooltip:\"Parametry\"

buttonText:\"Parametry\"

(

on execute do

(

funkcja()

)

)

 

Ten skrypt to takie 2in1. Utility i macroscript, oba odwoluja sie do jednej funkcji realizujacej wlasciwe zadanie.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: VGTsXVII

 

--VGTsXVII - zadanie #4

macroscript lista_obiektow category:\"kurs max script\" tooltip:\"Export listy zaznaczonych obiektow do pliku\" icon:#(\"compound\",1)

 

(

--wpisanie nazwy pliku i czasu pod zmienne

nazwa = maxFileName

if nazwa == \"\" then nazwa = \"untitled\"

czas = localtime

--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 \"Nazwa pliku max\'a: %nCzas wygenerowania statystyki: %nn\" nazwa czas to:plik

for i = 1 to zaznaczone.count do

(

format \"%. %, %, %n\" i zaznaczone.name zaznaczone.pos ( classof zaznaczone ) to:plik

)

close plik

edit plik_nazwa

)

)

 

O wlasnie, tutaj mozecie podejrzec sobie jak zrobic guziczek z ikonka. W tym wypadku jedna ze standardowych ikon maxowych.

Odnośnik do komentarza
Udostępnij na innych stronach

Kolejny temat za nami, frekwencja sie nie zniejszyla, wiec chyba nie jest zle :D

Nastepne tematy postaram sie wymyslac tak aby nie byly zbyt teoretyczne ale zeby stanowily jakas namiastke porzytecznych narzedzi.

 

I jeszcze link do skryptow: tematy04.zip

Nie kopiujcie tresci z forum bo czesc znakow sie nie wyswietla, chyba glownie slashe.

Odnośnik do komentarza
Udostępnij na innych stronach

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