szarLej Napisano 15 Kwiecień 2007 Napisano 15 Kwiecień 2007 Witam. Próbuję tworzyć coś w skrypcie i mam taki problem: nie mogę stworzyć otworów(okrągłych) w moim kształcie dokładnie w extrudowanym circle. Mam jakiś tam kod a tworzenie dziurek chciałem zrobić tak: … local kolo1 local temp1 = [10,10,0] local temp2 = [-10,10,0] local temp3 = [10,-10,0] local temp4 = [-10,-10,0] if (IsValidNode kolo1) then delete kolo1 kolo1= circle radius:3 wirecolor:[255,255,255] name:"Kolo1" pos:((pozycja_Kolo1 - temp1)) convertToSplineShape kolo1 updateShape kolo1 if (IsValidNode kolo1) then delete kolo1 kolo1= circle radius:3 wirecolor:[255,255,255] name:"Kolo1" pos:(pozycja_Kolo1 - temp2) convertToSplineShape kolo1 updateShape kolo1 if (IsValidNode kolo1) then delete kolo1 kolo1= circle radius:3 wirecolor:[255,255,255] name:"Kolo1" pos:(pozycja_Kolo1 - temp3) convertToSplineShape kolo1 updateShape kolo1 if (IsValidNode kolo1) then delete kolo1 kolo1= circle radius:3 wirecolor:[255,255,255] name:"Kolo1" pos:(pozycja_Kolo1 - temp4) convertToSplineShape kolo1 updateShape kolo1 …..potem mam takie coś local kolo1_splajn01 = addnewspline kolo1 …jakieś operacje i na końcu zamykam je close kolo1 kolo1_splajn01 W takim przypadku widoczna jest jedna dziura tzn pozostałe są stworzone ale są niewidoczne. Próbowałem wycinać linijki z if –em czy updatem i inne cuda ale nic mi nie wychodzi a dopiero poznaję maxScripta. Dziękuję za każdy pomysł ew rozwiązanie :) . Pozdrawiam cout
lechoo Napisano 16 Kwiecień 2007 Napisano 16 Kwiecień 2007 Wszystkie kola przypisujesz do tej samej zmiennej kolo1, wiec na koniec dodajesz do shapa tylko ostatnio stworzone kolo. Nazwij zmienne przechowujace kola roznie albo dodawaj kola do shapa kazdorazowo po ich stworzeniu.
szarLej Napisano 19 Kwiecień 2007 Autor Napisano 19 Kwiecień 2007 Dobra poddaję się :( addnewspline pokonało mnie. Wkleję kod żeby było widać co źle robię. Proszę bluzgać i pisać co i jak powinno być :) Mam też parę pytań: addnewspline zwraca jakiś index, który wykorzystujemy w addknot. Mi cały czas pokazuje się błąd "shape spline index out of range: 2" Czy te wszystkie splineshape'y dodajemy newsplinem do jakiegoś elementu zbiorczego, który potem "wyrzucamy" na ekran razem z nowymi knot'ami?? Ogólnie jak się posługiwać tymi funkcjami w przypadku kilku obiektów. Dziękuję z góry za każdą odp rollout glowne "Ustawienia" ( local dziura01 local dziura02 local dziura03 local dziura04 local kolo_splajn01 local pozycja_kolo01= [0,0,0] local r = 50 local kat local plusminus = 1 Group "Kolo" ( button nowe_kolo "Nowe kolo" ) fn stworz_kolo = ( --dziury local temp = [10,10,0] if (IsValidNode dziura01 ) then delete dziura01 dziura01 = circle radius:3 wirecolor:[255,255,255] name:"dziura01 " pos:(pozycja_kolo01 - temp) convertToSplineShape dziura01 updateShape dziura01 local temp2 = [-10,10,0] if (IsValidNode dziura02) then delete dziura02 dziura02= circle radius:3 wirecolor:[255,255,255] name: "dziura02" pos:(pozycja_kolo01 - temp2) convertToSplineShape dziura02 updateShape dziura02 local temp3 = [10,-10,0] if (IsValidNode dziura03) then delete dziura03 dziura03= circle radius:3 wirecolor:[255,255,255] name:"dziura03" pos:(pozycja_kolo01- temp3) convertToSplineShape dziura03 updateShape dziura03 local temp4 = [-10,-10,0] if (IsValidNode dziura04) then delete dziura04 dziura04= circle radius:3 wirecolor:[255,255,255] name: "dziura04" pos:(pozycja_kolo01- temp4) convertToSplineShape dziura04 updateShape dziura04 if (IsValidNode kolo_splajn01) then delete kolo_splajn01 kolo_splajn01 = splineshape wirecolor:[255,255,255] name:(uniqueName "Kolo") pos:pozycja_kolo01 convertToSplineShape kolo_splajn01 updateShape kolo_splajn01 local d1 = addnewspline dziura01 d1 = addnewspline dziura02 d1 = addnewspline dziura03 d1 = addnewspline dziura04 for i in 1 to (4) do ( kat = i * 360 / 4 if (plusminus == 1) then (plusminus = (-1)) else (plusminus = 1) addknot kolo_splajn01 d1 #corner #line [ (r*cos(kat)*plusminus), (r*sin(kat)*plusminus), 0] ) close kolo_splajn01 d1 select #($dziura02, $dziura03, $dziura04, $Kolo01, $'dziura01 ') modPanel.addModToSelection (Extrude ()) ui:on ) on nowe_kolo pressed do ( stworz_kolo() ) ) rollfloater = newRolloutFloater "Okienko" 220 300 addrollout glowne rollfloater
lechoo Napisano 23 Kwiecień 2007 Napisano 23 Kwiecień 2007 Miales zly argument w addnewspline, teraz w addknot podajesz caly czas ten sam index splajna: 1. Ponizej masz kawalek kodu w ktorym wprowadzilem zmiany. addnewspline nie dodaje istniejacego splajna do innego, dodaje raczej pusty obiekt bedacy pojemnikiem na splajny do ktorego dopiero nalezy cos wpisac, w addknot podajesz index tego pojemnika. local d1 = addnewspline kolo_splajn01 /*d1 = addnewspline dziura02 d1 = addnewspline dziura03 d1 = addnewspline dziura04*/ for i in 1 to (4) do ( kat = i * 360 / 4 if (plusminus == 1) then (plusminus = (-1)) else (plusminus = 1) addknot kolo_splajn01 1 #corner #line [ (r*cos(kat)*plusminus), (r*sin(kat)*plusminus), 0] )
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ę