Skocz do zawartości

Featured Replies

Napisano

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 		
	)

  • Odpowiedzi 5
  • Wyświetleń 2,1k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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.

Napisano
  • Autor

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

Napisano

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.

Napisano
  • Autor

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

Napisano

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?

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności