Skocz do zawartości

[MAXScript] Błąd podczas tworzenia linii


Gość Garsija

Rekomendowane odpowiedzi

Gość Garsija

Witam, mam mały problem ze skryptem rysującym tor. Skrypt jest jeszcze w fazie początkowej, ale już napotkałem pewien problem, którego nie potrafię rozwiązać. Polega on na tym, że po kliknięciu w przycisk rozpoczynający rysowanie, zostaje narysowana linia zgodnie z wybranym kierunkiem, lecz w momencie, gdy zmienię linie powiedzmy z poziomej na pionową i znowu kliknę na przycisk uruchamiający rysowanie odcinka, wyskakuje błąd:

 

>> MAXScript Rollout Handler Exception:

-- Type error: Call needs function or class, got: $Line:Line002 @ [-63.355549,-26.858475,0.000000]

 

Nie wiem co jest grane i jak to naprawić.

 

Kod skryptu

fn TOR startPKT typ kierunek dlugosc=(
   if(typ == 1) then
   (
       if(kierunek == 1) then
       (
           endPKT = [startPKT.x + dlugosc, startPKT.y, startPKT.z]--linia poziomo
           koniec = endPKT
       )
       else
       (
           endPKT = [startPKT.x, startPKT.y + dlugosc, startPKT.z]--linia pionowo
           koniec = endPKT
       )

       linia = line pos:startPKT
       addNewSpline linia
       addKnot linia 1 #smooth #line startPKT
       addKnot linia 1 #smooth #line endPKT
       updateShape linia
       tor = linia
       print tor
       print koniec
   )
   --return linia
)


Utility TworzTor "Rysuj tor"
(
   radioButtons typTor "Typ toru" labels:#(#Linia, #Luk) align:#left
   radioButtons kierTor "Kierunek toru" labels:#(#Poziomo, #Pionowo) align:#left
   spinner dlugosc "Dlugosc" range:[0,1000,200] align:#left
   spinner promien "Promien" range:[5,500,50] align:#left
   spinner kat "Kat" range:[0,90,45] align:#left
   button rysuj "Rysuj"

   local nazwa
   global koniec = 0

   on rysuj pressed do
   (    
       if (koniec == 0) then
           (
               PKTstart = pickPoint()
               TOR PKTstart typTor.state kierTor.state dlugosc.value --jezeli zaczynamy to wybieramy pkt rozpoczecia
           )
       else
           (
               TOR koniec typTor.state kierTor.state dlugosc.value --jezeli juz cos narysowane to start od konca narysowanego elementu
           )
   )
)



 

Wiem, że jest to zleksza niechlujne, ale narazie można powiedzieć, że jestem w fazie uczenia się maxscriptu. Chciałbym was również prosić o jakieś pomysły jak połączyć stworzoną linię z łukiem, który można również będzie wykonać w tym skrypcie(w późniejszym etapie). Ewentualnie jeżeli znacie jakiś prosty sposób na wykonanie toru, który będzie posiadał "gładkie" zakręty, to byłbym bardzo wdzięczny za jakieś podpowiedzi.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 0
  • Created
  • Ostatniej odpowiedzi

Popular Days

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