Выбор ребер U на полиплоскостиPython

Программы на Python
Ответить
Anonymous
 Выбор ребер U на полиплоскости

Сообщение Anonymous »


Изображение
Я пытаюсь выбрать только U-образные ребра на полиплоскости и я не могу найти сексуальный способ сделать это. Я попробовал выбрать все ребра с нечетными числами.

Код: Выделить всё

poly_plane = cmds.polyPlane(name='ribbon_Geo', width=10, height=1,
subdivisionsWidth=10, subdivisionsHeight=1)[0]
# Get the shape node
shape = cmds.listRelatives (polyPlane, shapes = True, type = "mesh")[0]

# Get the total number of edges
edge_count = cmds.polyEvaluate (shape, edge = True)

# Get all odd edges on the ribbon geometry
oddEdges = ["{}.e[{}]".format (shape, i) for i in range (edge_count) if i % 2 != 0]

Это работает нормально. Он выбирает все нужные мне ребра, но также выбирает некоторые из ребер направления V, которые имеют нечетные номера. Так что еще есть некоторая корректировка, и мне нужно угадать, какое ребро является конечным, если оно имеет нечетный номер.
Я попробовал использовать команду polySelectConstraint, и она хорошо работает для U-образных ребер. Не выбирает конечные края. Я могу добавить первое ребро, но не знаю, что такое конечное ребро.

Код: Выделить всё

# Create the polyPlane
poly_plane = cmds.polyPlane(name='ribbon_Geo', width=10, height=1,
subdivisionsWidth=10, subdivisionsHeight=1)[0]

# Get the shape node of the plane
shape = cmds.listRelatives(poly_plane, shapes=True, type="mesh")[0]

# Get the total number of edges
edge_count = cmds.polyEvaluate(shape, edge=True)

# Define the first and last edge
first_edge = cmds.ls(f"{shape}.e[0]")  # First edge
last_edge = cmds.ls(f"{shape}.e[{edge_count - 1}]")  # Last edge

cmds.polySelectConstraint( mode = 3, type = 0x8000, angle = True, anglebound=(0, 89) )
polyConst = cmds.ls(selection = True)

allEdges = first_edge.append(polyConst)
cmds.select(allEdges)
Есть ли лучший способ выбрать U-образные ребра этой полиплоскости?
Это часть гораздо более крупного сценария, и мне нужно иметь возможность чтобы выбрать эти ребра на плоскости любого размера с разным количеством ребер. Плоскость не всегда может иметь 10 ребер U, их может быть 3, 5 или 35. Я имею в виду ребра в середине плоскости, а не граничные ребра.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -polyplane
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»