t0m3k Napisano 2 Sierpień 2007 Napisano 2 Sierpień 2007 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 )
piotrek Napisano 2 Sierpień 2007 Napisano 2 Sierpień 2007 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.
t0m3k Napisano 2 Sierpień 2007 Autor Napisano 2 Sierpień 2007 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... :)
Juliusz Napisano 19 Sierpień 2007 Napisano 19 Sierpień 2007 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.
t0m3k Napisano 19 Sierpień 2007 Autor Napisano 19 Sierpień 2007 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 ;)
Juliusz Napisano 19 Sierpień 2007 Napisano 19 Sierpień 2007 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?
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ę