Skocz do zawartości

problem ze skryptem


lordmaya

Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 7
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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)
)

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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.

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