Napisano 24 Listopad 200321 l 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.
Napisano 24 Listopad 200321 l 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 24 Listopad 200321 l 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 24 Listopad 200321 l 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 24 Listopad 200321 l 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