2014-07-07 63 views
2

脚本运行后,是否可以自动运行一小段代码?可能运行延迟的代码执行吗?

我这样问是因为某些原因,如果我将这组代码添加到主脚本中,虽然它可以工作,但它会显示一个标签错误列表(它已经存在,但它表明它无法找到它有点)。

我意识到,在运行我的脚本之后,Maya似乎'加载'自己的刷新设置以及我公司完成的一些插件。因此,如果我在执行主脚本和Maya /插件的“刷新”之后运行一小段代码,它可以毫无问题地工作。我希望尽可能使过程尽可能自动化,如果可能的话,所有这些都在脚本中...

因此有可能这样做吗?像一种延迟的编码方法?仅供参考,主脚本执行时间取决于场景中元素的数量。越多,这将需要更长的时间...

+0

您可以创建刷新脚本的子进程并忙 - 等待它完成吗? –

+3

将两个脚本包含在批处理或shell中? –

+0

只需编写一个Maya插件,在刷新后启动代码? – Dschoni

回答

2

玛雅有一个命令Maya.cmds.evalDeferred是专为此目的。它将等待,直到没有更多的Maya处理正在等待,然后进行自我评估。

您也可以使用Maya.cmds.scriptJob来达到同样的目的。

注意:尽管eval在玛雅语中被认为是危险和不安全的,但它确实很正常。主要是因为Maya中的所有东西本质上都是不安全的,因为几乎所有的GUI项目都是用户可能修改的eval命令。所以第二个让任何人使用你的Maya shell你的安全性被破坏。

+1

感谢您对问题的深入了解,我确实同意我一直在问一些相当荒谬的问题(某些不可能的问题)一段时间,部分原因是有些情况下,如你所说,玛雅反对我而不是相反。诚实地说,直到目前为止,我还很缺乏如何正确编写脚本,这同样适用于di Maya安装了不同类型的模块/插件。 – dissidia

+0

没有什么是不可能的。 IT对我来说听起来像是你的搭售东西,maya GUI采用单层方法,而maya希望你使用2层方法。 YOu应该有一个独立的计算层,然后让GUI独立于这个工作。这就是所有玛雅人试图以不同方式工作的原因,因为玛雅人可能没有GUI而活下去。无论如何,你应该问一个关于你的设计的问题,而不是每一步。到现在为止,您要挖掘自己的每一步,需要进一步形成一个真正有效的解决方案。 – joojaa

+0

另请注意,听起来我的所有工作都可以用getAttr – joojaa