Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Napisano

Witam,

gdzie w Maya się włącza statystyki liczby wybranych punktów/ wszystkich punktów, lecz nie dla polygonów, a dla krzywych/nurbsów? Jak dotychczas stosowalem statystyki okna Component Editor jako obejście.

Pozdrawiam

Artur

 

PS. Mam sporo doświadczenia z Rhino, i po migracji na Maya'e wydaje mi się, że NURBSy sąw niej mocno kulawe, że komendy do łączenia/dzielenia krzywych, tworzenia powierzchnii etc co prawda działają, ale są nieintuicyjne (antyintuicyjne nawet). Czy inni też tego doświadczyli tego? Czy jest jakiś plugin/ obejście, by moc efektywnie pracować z nurbsami w mayi?

  • Odpowiedzi 5
  • Wyświetleń 765
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Czesc, ja to sobie napisalem wlasny skrypt wyswietlajacy na ekranie kilka Hud'ow,

jeden pokazuje ilosc zaznaczonych elementow (nie wazne czy to cv, obiekty swiatla czy cokolwiek) a drugi detaliczne informacje o swiatlach, cieniach, polygonach, nurbsach.

 

Tu jest jego odchudzona wersja, pokazuje selekcje i info o nurbsach,

wyswietla w miare inteligentnie, wykrywa rodzaj krzywej, jesli stopien jest inny niz 3 albo precyzja wyswietlania jest inna niz dla renderu to wyswietla dodatkowe informacje itp.

Ma jednak wade - jak zaznaczy sie duzo wierzcholkow (tak wiecej niz 5-10tys) to bardzo zwalnia wyswietlanie w viewporcie. Dlatego da sie wylaczac glowna informacje (rozmiar zaznaczenia) za pomoca menu (tam gdzie reszta HUD'ow) i wtedy jest normalnie.

 

Pozdrawiam!

 

/////////////////////

 

headsUpDisplay

-section 5

-block 1

-blockSize "small"

-labelFontSize "small"

-label ""

-command "checkSelectionInfo"

-attachToRefresh

as_HUDMenuSelectionDetails;

 

 

headsUpDisplay

-section 3

-block 0

-blockSize "small"

-label "Sel:"

-labelFontSize "small"

-dataFontSize "small"

-command "checkSelection"

-attachToRefresh

as_HUDSelection;

 

 

if (!`optionVar -ex as_HUDC`) { optionVar -intValue as_HUDC 1; }

if (!`optionVar -ex as_HUDD`) { optionVar -intValue as_HUDD 1; }

 

menuItem

-parent $gHeadsUpDisplayMenu

-checkBox (`optionVar -q as_HUDD`)

-label "- Selection details"

-command "optionVar -intValue as_HUDD `menuItem -q -cb as_HUDMenuSelectionDetails`; headsUpDisplay -e -vis `optionVar -q as_HUDD` as_HUDMenuSelectionDetails;"

-annotation "Selection info: Toggle the display of selection informations"

as_HUDMenuSelectionDetails;

headsUpDisplay -e -vis `optionVar -q as_HUDD` as_HUDMenuSelectionDetails;

 

menuItem

-parent $gHeadsUpDisplayMenu

-checkBox (`optionVar -q as_HUDC`)

-label "- Selection"

-command "optionVar -intValue as_HUDC `menuItem -q -cb as_HUDSelection`; headsUpDisplay -e -vis `optionVar -q as_HUDC` as_HUDSelection;"

-annotation "Number of Selected objects"

as_HUDSelection;

headsUpDisplay -e -vis `optionVar -q as_HUDC` as_HUDSelection;

 

 

/////////////////////////////////////

proc string checkSelection()

{

//

string $selection[] = `ls -sl -fl`;

if (`size $selection`) return (`size $selection`);

else return "?";

}

 

 

proc string checkSelectionInfo()

{

string $outTextRet = "";

string $lista_szejpow[];

string $lista_z_grupa;

string $my_tokens_buffer[];

string $atrybutDoSprawdzenia;

string $typ_nodu;

string $dlugoscKrzywej;

string $forma_krzywej = "", $forma_krzywejU = "", $forma_krzywejV = "";

int $myCurveForm, $myCurveFormU, $myCurveFormV;

int $myTokensNum = 0;

int $myLightDecay;

int $ilosc_kropkowatych = 0;

int $ilosc_szejpow = 0;

 

///

string $selekcja_informacyjna[] = `ls -sl`;

 

//if ( size($selekcja_informacyjna)

for ($kolejny_informacyjny in $selekcja_informacyjna)

{

if (`gmatch $kolejny_informacyjny "*.*"`)

{

$ilosc_kropkowatych++;

$myTokensNum = `tokenize $kolejny_informacyjny "." $my_tokens_buffer`;

$kolejny_informacyjny = $my_tokens_buffer[0];

}

 

$typ_nodu = `nodeType $kolejny_informacyjny`;

 

if ($typ_nodu == "transform")

{

 

$lista_szejpow = `listRelatives -shapes $kolejny_informacyjny`;

if ( size($lista_szejpow) )

{

$lista_z_grupa = $kolejny_informacyjny + "|" + $lista_szejpow[0];

$typ_nodu = `nodeType $lista_z_grupa`;

}

else $typ_nodu = "grupkaToJest";

}

 

//print $lista_szejpow

 

switch ($typ_nodu)

{

case "nurbsCurve":

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".spans";

$myCurveSpans = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".degree";

$myCurveDegree = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".form";

$myCurveForm = `getAttr $atrybutDoSprawdzenia`;

switch ($myCurveForm)

{

case 0: $forma_krzywej = "Open"; $myCvNumber = $myCurveSpans + $myCurveDegree; break;

case 1: $forma_krzywej = "Closed"; $myCvNumber = $myCurveSpans; break;

case 2: $forma_krzywej = "Periodic"; $myCvNumber = $myCurveSpans; break;

default: $forma_krzywej = "Unknow"; break;

}

 

 

if ($myCurveDegree != 3)

$outTextRet = $forma_krzywej + " (" + $myCurveDegree + "): CV " + $myCvNumber + " Span " + $myCurveSpans;

else $outTextRet = $forma_krzywej + ": CV " + $myCvNumber + " Span " + $myCurveSpans;

 

// $myCurveLenght = `arclen $kolejny_informacyjny`;

// $dlugoscKrzywej = $myCurveLenght;

// $dlugoscKrzywej = `substring $dlugoscKrzywej 1 7`;

// $outTextRet += " L " + $dlugoscKrzywej;

// if ($myTokensNum) $outTextRet += " " + $my_tokens_buffer[1];

 

if ($ilosc_kropkowatych == 1)

{

$outTextRet += " " + $my_tokens_buffer[1];

if ($myTokensNum == 3) $outTextRet += "." + $my_tokens_buffer[2];

}

 

break;

 

case "nurbsSurface":

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".spansU";

$myCurveSpansU = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".degreeU";

$myCurveDegreeU = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".formU";

$myCurveFormU = `getAttr $atrybutDoSprawdzenia`;

 

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".spansV";

$myCurveSpansV = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".degreeV";

$myCurveDegreeV = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".formV";

$myCurveFormV = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".curvePrecision";

$myCurvePrecision = `getAttr $atrybutDoSprawdzenia`;

$atrybutDoSprawdzenia = $kolejny_informacyjny + ".curvePrecisionShaded";

$mycurvePrecisionShaded = `getAttr $atrybutDoSprawdzenia`;

 

switch ($myCurveFormU)

{

case 0: $forma_krzywejU = "Open"; $myCvNumberU = $myCurveSpansU + $myCurveDegreeU; break;

case 1: $forma_krzywejU = "Closed"; $myCvNumberU = $myCurveSpansU; break;

case 2: $forma_krzywejU = "Periodic"; $myCvNumberU = $myCurveSpansU; break;

default: $forma_krzywejU = "Unknow"; break;

}

 

switch ($myCurveFormV)

{

case 0: $forma_krzywejV = "Open"; $myCvNumberV = $myCurveSpansV + $myCurveDegreeV; break;

case 1: $forma_krzywejV = "Closed"; $myCvNumberV = $myCurveSpansV; break;

case 2: $forma_krzywejV = "Periodic"; $myCvNumberV = $myCurveSpansV; break;

default: $forma_krzywejV = "Unknow"; break;

}

 

 

string $myCurvePrecisionsInfo = "P " + $myCurvePrecision;

if ($myCurvePrecision != $mycurvePrecisionShaded)

$myCurvePrecisionsInfo += "(s" + $mycurvePrecisionShaded + ")";

 

if (($myCurveDegreeU != 3) || ($myCurveDegreeV != 3))

$outTextRet = $forma_krzywejU + "(" + $myCurveDegreeU + ")" + "/" + $forma_krzywejV + "(" + $myCurveDegreeV + "):" + $myCurvePrecisionsInfo + " CV " + $myCvNumberU + "/" + $myCvNumberV + " Sp " + $myCurveSpansU + "/" + $myCurveSpansV;

else $outTextRet = $forma_krzywejU + "/" + $forma_krzywejV + ": " + $myCurvePrecisionsInfo + " CV " + $myCvNumberU + "/" + $myCvNumberV + " Sp " + $myCurveSpansU + "/" + $myCurveSpansV;

 

if ($ilosc_kropkowatych == 1)

{

$outTextRet += " " + $my_tokens_buffer[1];

if ($myTokensNum >= 3) $outTextRet += "." + $my_tokens_buffer[2];

if ($myTokensNum == 4) $outTextRet += "." + $my_tokens_buffer[3];

}

 

break;

 

 

case "grupkaToJest":

$outTextRet = "Group: " + $kolejny_informacyjny;

break;

 

default: break;

}

if (( size($selekcja_informacyjna) > 1) && ($ilosc_kropkowatych > 1) ) break;

}

 

return $outTextRet;

}

Napisano
  • Autor

Ok wielkie dzięki,

skrypt pokazuję liczbę spanów dla krzywych, więc to prawie jak liczba punktów, tylko -1 ;)

Dzięki dzięki dzięki!

Pozdro

Napisano

Ale ilosc CV tez pozkazuje a to chyba najwazniejsza informacja, oblicza sobie sam na podstawie spanow i stopnia krzywej. No i tego czy jest otwarta czy zamknieta ;]

Jesli potrzebujesz tez ilosci edit pointow to daj znac, zaden problem to dopisac.

Zrobilem go tak zeby pokazywal najistotniejsze rzeczy i zajmowal jak najmniej miejsca w bo troche zasmieca widok na ekranie.

Pozdr.

Napisano
  • Autor

Skrypt jest w zupełności wystarczający. Dzięki dzięki dzięki!

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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.