- Рейтинг
- 7
DRL ещё раз спасибо за помощь, всё получилось. Хочу также извиниться - исчерпывающий ответ ты дал ещё в сообщении N695, но почему то оно у меня отображалось вчера не полностью (я с планшета читал\писал, может из-за этого), пришёл сегодня на работу, перечитал, и стукнул себя пару раз по голове. А в прочем может и просто не заметил)))
Также добавил в скрипт возможность работы с рёбрами - если выделено ребро(рёбра), то он их флипает, если полигоны, то триангулирует и флипает полученные рёбра.
Если кому пригодится то вот! Написан на Python. Правда не стоит его применять на объекты с отрицательным скэйлом, каша получается. =)
К сожалению пропадают все отступы, а они в питоне очень важны. Всё что следует после строки def triangulate_funct(): и до if mc.filterExpand(sm = 34) > 0:
должно быть прописано в 4 пробела. Тоже самое с кодом после строк if mc.filterExpand(sm = 34) > 0: и elif mc.filterExpand(sm = 32) > 0:
Сами эти строки без отступов.
Также добавил в скрипт возможность работы с рёбрами - если выделено ребро(рёбра), то он их флипает, если полигоны, то триангулирует и флипает полученные рёбра.
Если кому пригодится то вот! Написан на Python. Правда не стоит его применять на объекты с отрицательным скэйлом, каша получается. =)
Код:
'''Скрипт изменяет триангуляцию выделенного полигона, так же, если выделенны рёбра
выполняет функцию Flip Triangle Edge.'''
import maya.cmds as mc
def triangulate_funct():
polyLs = mc.ls(sl = True)
mc.ConvertSelectionToEdges(polyLs)
edgesStart = mc.ls(sl = True)
tempSet = mc.sets(edgesStart, n = 'tempSet')
mc.polyTriangulate(polyLs, ch = True)
mc.ConvertSelectionToEdges(polyLs)
edgesFinish = mc.ls(sl = True)
tempSet2 = mc.sets(edgesFinish, n = 'tempSet2')
result = mc.sets(tempSet, sub = tempSet2)
mc.select(result)
mc.polyFlipEdge(edit = True)
mc.delete(tempSet, tempSet2)
if mc.filterExpand(sm = 34) > 0:
triangulate_funct()
elif mc.filterExpand(sm = 32) > 0:
mc.polyFlipEdge(edit = True)
К сожалению пропадают все отступы, а они в питоне очень важны. Всё что следует после строки def triangulate_funct(): и до if mc.filterExpand(sm = 34) > 0:
должно быть прописано в 4 пробела. Тоже самое с кодом после строк if mc.filterExpand(sm = 34) > 0: и elif mc.filterExpand(sm = 32) > 0:
Сами эти строки без отступов.