Как вы выбираете вершины в команде maya python ls? - PullRequest
0 голосов
/ 22 ноября 2018

При использовании команды Maya ls, когда я выбираю вершины и мне нужен список выбранных вершин, как я могу использовать опцию типа, чтобы я мог получить только вершины сетки?

Что-то вроде:

import pymel.core as pm
verts = pm.ls(sl=True, fl=True, type=[vertex? polymeshVtx?])

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Немного поздно, но у вас есть фильтр Expand для этого

sel = cmds.ls(sl=True)
onlyVertices = cmds.filterExpand(sel, sm=31)
0 голосов
/ 22 ноября 2018

Я даю вам метод с помощью maya.cmds Второй может быть решением в pymel, но может быть и другой более простой метод.

import maya.cmds as cmds
sel = cmds.ls(sl=True, o=True)[0]
sel_vtx = cmds.ls('{}.vtx[:]'.format(sel), fl=True)

import pymel.core as pm
obj_sh = pm.ls(sl=True, dag=True, type='mesh')[0]
vtx_nb = obj_sh._numVertices()
vtx_flatten = ['{}.vtx[{}]'.format(obj_sh,i) for i in vtx_nb]

--- EDIT ---

import pymel.core as pm

obj_sh = pm.ls(sl=True, dag=True, type='mesh')[0]
for v in obj_sh.vtx:
    print(v)
...