Napisano 2 Lipiec 20168 l 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 20168 l przez Lzja
Napisano 2 Lipiec 20168 l 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.
Napisano 19 Lipiec 20168 l 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 )
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto