Lzja Napisano 2 Lipiec 2016 Napisano 2 Lipiec 2016 (edytowane) hej, zaczynam naukę pisania skryptów w pythonie i mam takie proste pytanie. Mam niecałe 1k obiektów, i chciałbym żeby cześć z nich została zaznaczona. Napisałem taką prostą pętle ale nie działa. Proszę o jakieś rady.obiekty nazywaja się file1_# czyli file1_1,file1,_2 itd import maya.cmds as cmds import random Idu = random.uniform(0, 967) nameD=["geo1|file1_",+Idu] for i in range(0,100): # cmds.ls(nameD) cmds.select(nameD,replace=True) Edytowane 2 Lipiec 2016 przez Lzja
ca mel Napisano 2 Lipiec 2016 Napisano 2 Lipiec 2016 napisałem sobie coś podobnego w melu: select -r "*file1_*"; string $selekcja[] = `ls -os -fl`; string $selekcjaNowa[]; clear $selekcjaNowa; for ($licznik = 0; $licznik if ( rand(0,1)> 0.5 ) $selekcjaNowa[size($selekcjaNowa)] = $selekcja[$licznik]; select -r $selekcjaNowa; Co prawda skrypt w założeniu zostawiał losową selekcję z zaznaczenia, lecz nie szkodzi mu to zaznaczenie wymusić w pierwszej linii. Budowana jest tablica z nową selekcją - tak by setki tysięcy obiektów/vertexów nie zaznaczały się po kolei blokując viewport. Powinieneś z łatwością przepisać to pod pythona.
KrzyM Napisano 19 Lipiec 2016 Napisano 19 Lipiec 2016 Możesz użyć random.sample https://docs.python.org/2/library/random.html import maya.cmds as cmds import random # clear the active list cmds.select( clear=True ) # select all dag objects and all dependency nodes cmds.select( all=True ) obj =cmds.ls( selection=True ) num_to_select = 5 # set the number to select here. list_of_random_items = random.sample(obj, num_to_select) # clear the active list cmds.select( clear=True ) for item in list_of_random_items: cmds.select(item, add=True )
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ę