代码在脚本编辑器中有效,但在命令行 运行 时无效
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
运行一次,但是依赖 运行 导入的代码是不好的做法。
我正在尝试将表达式结果通过管道传输到 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
运行一次,但是依赖 运行 导入的代码是不好的做法。