Jump to content
Sign in to follow this  
Garsija

[MAXScript] Błąd podczas tworzenia linii

Recommended Posts

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy