在Maya中将命名空间分隔符从冒号(:)更改为下划线(_)

时间:2013-12-08 12:22:49

标签: python maya

我导入了名为“hello”的文件“test_v001.mb”。有没有办法可以删除冒号并用大纲中的下划线替换它?

import maya.cmds as cmds

test_file = "D:/test/test_v001.mb"

cmds.file(test_file, i=True, typ='mayaBinary', ra=True, mnc=False, op="v=0;", ns="hello", pr=True, lrd="all")

在下面的屏幕截图中,我手动完成了第三个。我必须为一个大文件这样做,所以试图自动化它。 Screenshot

当我没有在文件命令中给出任何命名空间时,该列将被大纲中的下划线替换,这正是我在下面所需要的。但是,不是文件名作为默认前缀,我想在大纲中“hello”。这更容易实现吗?

enter image description here

此外,如果我将命名空间命名为“:”,那么我甚至不会获得任何命名空间和列。因此添加前缀是另一种选择,但仅在MEl中可用。

1 个答案:

答案 0 :(得分:3)

Maya使用:作为命名空间,并且seem不灵活。

  

冒号(':')字符是用于分隔名称的分隔符   命名空间和节点而不是斜杠('/')或反斜杠('\')   字符。

以下代码可能有助于将hello:替换为hello_

import pymel.core as pc
pc.namespace(set = ":")         # just in case if there is any preset namespace

for obj in pc.ls(rn=False):     # Referenced objects cannot be renamed
    if "hello:" in obj:
        pc.rename(obj, obj.replace(":", "_"))

命名空间肯定可以是removed

导入文件时可以使用renamingPrefix来解析带前缀而不是命名空间的节点。在您的情况下,可以使用cmd.file(,,rpr = "hello",,,)