lordmaya Napisano 5 Lipiec 2012 Napisano 5 Lipiec 2012 Czesc Mam problem ze skryptem (3ds max 2012). Robie wlasnie tutorial i koles uzywa skryptu, ktory musialem przepisac z filmu. Problem polega na tym, ze przepisalem go toczka w toczke i nie dziala zastanawiam sie co zrobilem zle. Sprawdzalem wszystkie litery, znaki i troche utknolem. Skrypt generalnie ma przyspieszyc ciecie objektow do animacji pekania. Polega to mniej wiecej na tym, ze klikam na pierwszy obiekt ten ktorym tne i potem kazdy nastepny jest traktowany jako objekt ktory ma byc przeicety przez objekt z pierwszej selekcji. Skrypt dodatkowo zaznacza wrzystkie opcje potrzebne w tym wypadku, zmienia nazwe objektu i jego kolor, robi kopie zapasowa i kasuje niepotrzebne elementy. Generalnie bez tego nie jestem w stanie isc dalej, skrypt jest napisany przez tego kolesia jest dosc prosty ale dla mnie to czarna magia, dodatkowo nie ma tego skryptu nigdzie gotowego do sciagniecia. Moze jest ktos z was kto wie oco chodzi i gdzie popelnilem blad. Mam 0 doswiadczenie w pisaniu skrytpow. Ten poprostu przepisalem i widze ze nie dziala. Zalaczam przepisany przezemnie plik i zdjecie z ekranu. Dodatkowo wklejam tresc skryptu tutaj chociaz nie wiem jak zachowac wlasciwa tabulacje tutaj na forum. Dzieki i pozdrawiam ! macroScript HVCutter category: "HVTools" ( holdMaxFile() input = selection as array cutter = copy input[1] deleteitem input 1 cutter.name = "Cutter" ProCutter.CreateCutter =(cutter) 4 on on off on on ProCutter.AddStocks cutter input 4 1 ProCutter.setPlanarEdgeRemoval cutter 2 for i in geometry where (findstring i.name "Cutter") != undefined do ( CenterPivot i i.wirecolor = random black white ) delete cutter ) HVCutter.zip
beny Napisano 6 Lipiec 2012 Napisano 6 Lipiec 2012 Problem leży chyba w tej linijce: ProCutter.CreateCutter =(cutter) 4 on on off on on zamiast "#" wstawiłeś "=" czyli tak powinno być: ProCutter.CreateCutter #(cutter) 4 on on off on on Daj znać czy to naprawia Ci twój błąd. Jak nie postaram się luknąć dogłębniej ale to trochę później.
lordmaya Napisano 6 Lipiec 2012 Autor Napisano 6 Lipiec 2012 No mimo to nie dziala. Jutro przepisze calosc jeszcze raz moze to cos pomoze. Dzieki ze wychwyciles ten blad. Pod kompresja tutoriala tylko po kolorze mozna poznac ze to nie byl znak rownania. Dziwi mnie jednak to ze u kolesia skrypt dziala a tutaj nie. Znalezlismy podobny watek na forum area. http://area.autodesk.com/forum/autodesk-3ds-max/maxscript/getting-problem-with-max-script/page-last/ Dziwne ale z tego co pisze ten kolo to po przepisaniu costam zaczelo dzialac.
CgBartosz Napisano 6 Lipiec 2012 Napisano 6 Lipiec 2012 macroScript HVCutter category: "HVTools" ( fn centerPivotsByPattern nodes = ( for i in nodes do ( if (matchpattern i.name pattern:"*cutter") == True do ( CenterPivot i ) ) ) /* method argument: 1 - instance, operand is an instance of the original 2 - reference, operand is a reference to original node 3 - copy, operand is a copy of original node 4 - move, original node should be deleted */ fn createIntersectionMesh method &nodesCollection = ( cutter = copy nodesCollection[1] deleteitem nodesCollection 1 cutter.name = "cutter" proCutter.CreateCutter #(cutter) method on on off on on proCutter.AddStocks cutter nodesCollection method 1 proCutter.setPlanarEdgeRemoval cutter 2 delete cutter ) input = selection as array createIntersectionMesh 4 input centerPivotsByPattern (objects as array) )
lordmaya Napisano 7 Lipiec 2012 Autor Napisano 7 Lipiec 2012 Beny - skrypt zaczol dzialac ale w dziwny sposob tzn, juz nie wywala bledu ale kasuje ciety objekt. Zostaje tylko plane ktorym tne. CGBartosz - dzieki ale tak jak wyzej po uzyciu kasuje sie objekt ktory powinien byc podzielony. Sorki ze tak lamie ale moze ja cos zle robie. Skrypt odpalam z poziomu "run script", potem w cust. user interface tworze okno i z toolbarsow znajduje ten skrypt upuszczam go w nowym oknie. Dodatkowo jeszcze sprawdzam czy jest ok klikajac "edit macro script". Potem klikam w objekt ktorym tne, dalej na objekt do ciecia i klikam w przycisk przypisany do skryptu.
CgBartosz Napisano 7 Lipiec 2012 Napisano 7 Lipiec 2012 To co wkleilem nie zmienilo zachowania a jedynie forme.
lordmaya Napisano 7 Lipiec 2012 Autor Napisano 7 Lipiec 2012 Z tego co widze to jak wykasuje linijke "delete cutter" objekty zostaja prawidlowo pociete. Problem polega na tym, ze trzeba wtedy pociety objekt dodatkowo przekonwertowac na mesha a potem recznie wszystkie w srodku zdetachowac. W tutku dzieli mu odrazu na 2 osobne objekty i zmienia kolor. Wyglada to tak jakby fragment for i in geometry where (findstring i.name "cutter") != undefined do ( CenterPivot i i.wirecolor = random black white ) tyczyl sie calego objektu zmienia jego kolor ustala pivot poczym kasuje caly objekt. Chociaz tak na dobra sprawie to tylko moje domysly.
lordmaya Napisano 10 Sierpień 2012 Autor Napisano 10 Sierpień 2012 Cg Bartosz Dzieki, za pomoc. Właśnie przeinstalowałem się na maxa 2013 i poprawiony przez Ciebie skrypt działa jak trzeba. Musiałem mieć jakiś problem wewnątrz maxa 2012, bo tam robi to co napisałem wcześniej. Jeszcze raz dziekuję wszystkim za wsparcie.
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ę