Skocz do zawartości

Przekazywanie zmiennej


t0m3k

Rekomendowane odpowiedzi

To znowu ja :)

 

Meczylem sie caly dzien nad zrobieniem funkcji ktora bedzie dzialac jak selekcja "By Angle" bo nie moglem nigdzie takiej funkcji znalezc :/ i kiedy juz prawie mialem skonczone pojawil sie problem bo po sprawdzeniu kata pomiedzy faceami max nie przekazuje wartosci dalej, kiedy proboje sie pozniej do niej odwolac w "if" dostaje "-- No ""

 

fragment kodu:

...
		if isThere != 0 do
			(
			f2 = polyOp.getFaceNormal obj secFaceSel
			angle = acos (dot f1 f2)
			-- tutaj wszystko jest ok
			)

		)

	if angle 		
	)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 5
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Nie wiem, jak tam w tym MaxScripcie macie, ale spróbuj zadeklarować zmienną angle poza ciałem tego pierwszego if'a.

coś takiego:

float angle; //jeśli można w MaxScripcie. Ewentulanie zmienną globalną jakoś zadeklaruj :)
if isThere != 0 do {
  ...
  angle = acos(...);
  ...
}
//tutaj już zmienna angle nie istnieje, [u]jeśli była utworzona w bloku if[/u]
if ... {
 ...
}

 

Nie zman MaxScript. To co tutaj piszę odnosi się do języka C, gdzie zmienna utworzona wewnątrz danego bliku { } jest zmienną lokalną istniejącą tylko wewnątrz tego bloku.

Czyli już nie istnieje po wyjściu z tego bloku. Możliwe, że w MS jest podobnie.

Odnośnik do komentarza
Udostępnij na innych stronach

dzieki piotrek, poczytalem, pokombinowalem i doszedlem to tego ze musze zdefiniowac ta zmienna na "poziomie" na ktorym bede sie do niej odwolywal, probowalem definiowac jako globalna ale nie dzialalo

 

...
(
local angle
       ...
       (
if isThere != 0 do
     (
     f2 = polyOp.getFaceNormal obj secFaceSel
     angle = acos (dot f1 f2)
     )

)

if angle 
)

 

moja funkcja jeszcze nie dziala jak powinna ale juz niedlugo... :)

Odnośnik do komentarza
Udostępnij na innych stronach

T0m3k - czyżbyś robił funkcję o jakiej braku zawsze marudziłem pod nosem? czyli zaznaczanie krawędzi, w zależności czy łączące ją face'y leżą pod wskazanym kątem?

Masz jakieś plany, żeby swój twór później opublikować może?... Byłbym ze wszech miar wdzięczny.

Odnośnik do komentarza
Udostępnij na innych stronach

funkcja nad ktora pracowalem jest odpowiednikiem Select by angle z menu EditPoly i dziala na Polygon'ach, musialem cos takiego napisac bo nie mozna sie do Select by angle odwolywac z MAXScript'u :/

narysuj mnie to o co Ci chodzi z ta selekcja krawedzi w zaleznosci od kata to moze po malych przerobkach moja funkcja spelni Twoje wymagania ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi mi dokładnie o funkcję Select by Angle, ale działającą na Edge'ach. (normalnie jest nieaktywna).

Jakby tak się chwilę zastanowić, to może być ona niejednoznaczna, ponieważ jeden polygon może się składać z wielu trójkątów, każdy leżący pod nieco innym kątem, bo wiadomo - polygony nie muszą być wcale płaskie. Ale jakby wprowadzić uśrednienie, albo ograniczenie do płaskich polygonów, zawsze by to było lepsze niż nic.

 

A idea jest mniej więcej taka, że czasem chcemy zaznaczyć ostre krawędzie, żeby je zchamferować i w sytuacjach, kiedy nie da się ich zaznaczyć w sposób szybki (ramką albo Edge Loopem), trzeba klikać krawędzie pojedynczo.

 

Jest to możliwe?

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