代码在脚本编辑器中有效,但在命令行 运行 时无效

code works in script editor, but not when run from command line

我正在尝试将表达式结果通过管道传输到 Maya 文本对象中以用作抬头显示。我的脚本在脚本编辑器中运行,但在从命令行或我的显示表达式调用时不起作用。我如何更改它以使其从命令行运行?

import maya.cmds as cmds

# convert a string to hex values, separated by a space

typeNode = cmds.ls( selection=True )
type3d = cmds.listConnections(t='type')
typeValue = cmds.getAttr( 'tower_CON.Spin' )

valueList=list(str('{:3.2f}'.format(typeValue)))

hexVersion=""

for x in valueList:
    hexValue=x.encode("hex")
    hexVersion=hexVersion + hexValue + " " 

cmds.setAttr(str(type3d[0]) + ".textInput", hexVersion.rstrip(), type="string")

从您评论中的错误来看,您似乎正试图 运行 模块作为一个函数。

您可能需要将其保存在文件中:

import maya.cmds as cmds

def text_to_hud():
    # convert a string to hex values, separated by a space

    typeNode = cmds.ls( selection=True )
    type3d = cmds.listConnections(t='type')
    typeValue = cmds.getAttr( 'tower_CON.Spin' )

    valueList=list(str('{:3.2f}'.format(typeValue)))

    hexVersion=""

    for x in valueList:
        hexValue=x.encode("hex")
        hexVersion=hexVersion + hexValue + " " 

    cmds.setAttr(str(type3d[0]) + ".textInput", hexVersion.rstrip(), type="string")

然后在你想要的命令行中

import textToolHUD as th; th.text_to_hud()

您也可以保持文件原样,只需要

import textToolHUD

运行一次,但是依赖 运行 导入的代码是不好的做法。