lechoo Napisano 24 Listopad 2003 Napisano 24 Listopad 2003 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.
lechoo Napisano 24 Listopad 2003 Autor Napisano 24 Listopad 2003 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.
lechoo Napisano 24 Listopad 2003 Autor Napisano 24 Listopad 2003 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.
lechoo Napisano 24 Listopad 2003 Autor Napisano 24 Listopad 2003 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.
lechoo Napisano 24 Listopad 2003 Autor Napisano 24 Listopad 2003 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.
Rekomendowane odpowiedzi
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ę