如何为Python中的expression命令设置MEL表达式字符串的格式?

2024-10-01 09:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python脚本创建Maya MEL表达式时遇到问题。我需要能够根据输入到某些GUI组件中的值来格式化表达式,但是当我尝试格式化包含“if语句”的表达式时,存在一些冲突。看看:

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))

当手动输入表达式时,表达式可以工作,但是通过脚本格式化后,我得到一个键错误,这是由于包含if语句代码块的“{}”。所以我尝试了另一种格式化方法:

^{pr2}$

但在本例中,我得到一个ValueError:索引11处不支持的格式字符“”(0x20)。我很不确定从这里到哪里去。如有任何建议,将不胜感激。在


Tags: self脚本ifvalue表达式组件gui语句
1条回答
网友
1楼 · 发布于 2024-10-01 09:28:18

您需要包含另一个%作为第一个百分比的转义字符。否则,Python会对如何计算字符串感到困惑。在

'if ( (frame%%8) == 0) {rz = (frame/%s) * ((360/%s.000)/2.000);}' % (interv_int, revol_int)

相关问题 更多 >