2015-06-23 3 views
0

У меня есть сценарий, в котором пользователь выбирает вершину и должен хранить имя ячейки, к которой принадлежит вершина.Получить имя ячейки из выбранной вершины

Однако я не знаю способа элегантно получить эту информацию. Он распечатан красиво, например. pPipe1.vtx[242]. Но получение только имени узла преобразования pPipe1 не кажется супер простым. Скорее не прибегнет к отключению символов в строке. Это кажется плохой практикой.

ответ

3

Уродливый способ - это простой способ - если вы строкой разделяете записи вершин на период, вы получите родителей преобразования. Однако вы можете также передать вершину записи в cmds.ls(o=True) который отсекает атрибуты и компоненты имена и возвращает только объекты:

cmds.select("pCube1.vtx[*]") 
sel = cmds.ls(sl=True) 
print sel 
# [u'pCube1.vtx[0:7]'] 
obj = cmds.ls(*sel, o=True) 
print obj 
# [u'pCubeShape1'] 
1

для одного пункта:

sel = cmds.ls(sl=True)[0].split('.')[0] 

для списка элементов:

sel = [i.split('.')[0] for i in cmds.ls(sl=True)] 
sel = list(set(sel)) # Use this to remove multiple instance of an object 
Смежные вопросы