Skocz do zawartości

Featured Replies

Napisano

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.

  • Odpowiedzi 4
  • Wyświetleń 2,1k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano
  • Autor

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.

Napisano
  • Autor

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.

Napisano
  • Autor

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.

Napisano
  • Autor

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.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności