在Maya中创建文本生成工具时出现问题

时间:2018-08-31 21:03:55

标签: python maya autodesk

人们,感谢您抽出宝贵的时间阅读本文!太...我正在尝试使用文本曲线在Maya中创建文本生成工具,但似乎无法正常工作。这个想法是我在工具中输入文本,然后按“创建文本”按钮,该文本将变成一个文本曲线的几何图形,但是无论我做什么,我似乎都会出错。

有人有可能知道我可以采取什么措施来纠正这种情况吗?

感谢您抽出宝贵的时间阅读本文!干杯!

import sys
import os
import maya.cmds as mc
outputText = 'Hello World'
def UI ():
    if mc.window('textGenerator', exists = True):
        mc.deleteUI('textGenerator')
    mc.window('textGenerator')
    mc.columnLayout()
    mc.text('Enter text here: ')
    mc.textFieldGrp()
    mc.button(label = 'Create Text', command = 'buttonPress()')
    mc.showWindow('textGenerator')
def buttonPress():
    finalName = mc.textFieldGrp()
    mc.textCurves(finalName)
    sys.stdout.write (outputText)

    mc.textCurves(t=outputText)

UI()

1 个答案:

答案 0 :(得分:0)

您的代码中有几个问题,您必须将ui元素封装到一个变量中(或至少正确命名它们):

textInput = mc.textFieldGrp()

第二,永远不要使用逗号来输入命令,而使用局部或lambda来传递变量以起作用(请阅读我在该主题上发表的其他文章或从theodox中找到文章)

from functools import partial
mc.button(label = 'Create Text', command = partial(buttonPress, textInput))

代码的最后一部分:

def buttonPress(textFieldGrpName, *args):
    # *args is just here to skip a default argument pass as last by maya
    # query the input text in the text field grp
    finalName = mc.textFieldGrp(textFieldGrpName, q=1, text=1)
    mc.textCurves(t=finalName)
    sys.stdout.write (outputText)
    mc.textCurves(t=outputText)