У меня возникла проблема при создании выражения Maya MEL с помощью скрипта python. Мне нужно иметь возможность форматировать выражение на основе значений, введенных в определенные компоненты GUI, но когда я пытаюсь форматировать выражение, содержащее оператор «if», существует некоторая противоречивость. Посмотрите:Как форматировать строку выражения MEL для команды выражения в Python?
revol_int = self.revol_int.value()
revolExpression = pm.expression(o=rigRevol, s='if (frame%8 == 0) {rz = (frame//{0}) * ((360/{1}.000)/2.000);}'.format(interv_int, revol_int))
выражение работает при вводе вручную, но когда сделано форматирование с помощью скрипта я получаю исключение KeyError из-за «{}», что дом, если заявления блока кода. Так что я попробовал другой метод форматирования:
revol_int = self.revol_int.value()
revolExpression = pm.expression(o=rigRevol, n='olr_revolutions_expression', s='if (frame%8 == 0) {rz = (frame//%s) * ((360/%s.000)/2.000);}' % (interv_int, revol_int))
Но в этом случае я получаю # ValueError: неподдерживаемый формат символа «» (0x20) с индексом 11. Я совершенно не знаю, куда идти отсюда. Любые предложения будут ценны.