首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在maya中从MArgList中拉取列表?

如何在maya中从MArgList中拉取列表?
EN

Stack Overflow用户
提问于 2014-09-24 04:43:15
回答 1查看 904关注 0票数 0

编辑(解决方案?):我能够通过将数组转换为字符串并在另一端解析并重新创建它们来实现这一点。如果有人有更好的方法,我将不胜感激。

原件:

我创建了一个扩展MPxCommand的类来创建插件,并且一直在尝试了解如何解析doIt()函数中的MArgList,以便从args变量中提取两个列表。我正在尝试拉取一个字符串列表和一个长度不一致的int列表,因此当我调用该命令时,我将无法(我认为)多次填充该标志。

我已经用MArgParser成功地提取了单个变量,但还没有找到提取完整列表的方法。

对于函数asStringArray(index)asIntArray(index)MArgList似乎有我想要的东西,但是当我使用try using它们时,我得到了错误:

代码语言:javascript
运行
复制
# Error: TypeError: file Command.py line 163: in method 'MArgList_asIntArray', argument 2 of type 'unsigned int &' # 

编辑:

代码语言:javascript
运行
复制
class myCommand(omMPx.MPxCommand):
    def __init__(self):
        omMPx.MPxCommand.__init__(self)

    def newSyntax(self):
        syntax = om.MSyntax()

        syntax.addFlag("-s", "-string", om.MSyntax.kString)
        return syntax

    def doIt(self, args):

        stringFlag = "-s"
        parser = om.MArgParser(self.newSyntax(),args)

        if parser.isFlagSet(stringFlag):
            self.myStr = parser.flagArgumentString(stringFlag, 0)
            print self.myStr

如果我运行cmds.myCommand(s = "hello"),这段代码将把"hello“从args放入self.myStr,但我希望能够运行cmds.myCommand(s = ["hello", "world"]),能够从args变量获取数组并将其放入self.myStr

我希望这能澄清我想要做的事情。

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 21:11:58

我认为您的问题在于该函数的声明:

代码语言:javascript
运行
复制
'MArgList_asIntArray', argument 2 of type 'unsigned int &'

int &是一个对整数的引用,也就是你给函数的一个整数,函数会改变它,你的变量也会反映出这些变化。

所以你可能已经看到了:传递一个常量是不可能的。

我对python一点都不感兴趣,所以我不知道简单地声明一个int,初始化它,然后将它作为参数2传递给函数是否足够。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26004396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档