首页 文章

不清楚如何使用Python导入和显示.OBJ文件(在Maya中)

提问于
浏览
1

我已经在一个项目上工作了一个星期,现在尝试不同的方法来解决这个问题 . 我对python和编程非常陌生,并且不了解基础知识 .

任务是创建一个带有按钮的窗口,该按钮将外部.obj文件导入场景并重命名 . 有一次我能够通过将文件放在“我的文档”的“HOME”目录中来做到这一点,但我丢失了那段代码 .

我已经尝试了很多方法,但我根本不理解正确的语法 . 我也向同学们寻求帮助,我们无法确定obj的存储位置以及如何正确引用它 .

我看到这个线程似乎很有用,但总是返回"No files found" Importing OBJ file to maya scene (MEL/Python) .

import maya.cmds as mc
import os

ram = mc.window("RenamerWin", t = "Renamer v 1.0", w = 300, h = 300)
if mc.window(ram, exists = True): 
    mc.deleteUI("RenamerWin")

#icon
logopath = mc.internalVar(upd = True) + "icons/icon.jpg"

mc.columnLayout(adj = True)
mc.image (w = 300, h = 100, image = logopath)
mc.separator (h = 25, style = 'double')

mc.text("Welcome to your Custom Forest Builder!")

rockW = mc.intSliderGrp(l = "width", min = 0, max = 10, field = True)
rockH = mc.intSliderGrp(l = "height", min = 0, max = 10, field = True)
rockD = mc.intSliderGrp(l = "depth", min = 0, max = 10, field = True)
mc.button(l = "Create a Rock", c = "myRock()")

#Name the Rock
rockName = mc.textFieldGrp (l="renamer", editable = True)
mc.button (l = "Name the Rock", c = "myRockRenamer()")
mc.showWindow(ram)
def myRockRenamer():
    finalName = mc.textFieldGrp(rockName,q = True, text = True) 
    mc.rename(finalName)

mc.showWindow(ram)

def myRock():
    myRockWidth = mc.intSliderGrp(rockW, q = True, value = True)
    myRockHeight = mc.intSliderGrp(rockH, q = True, value = True)
    myRockDepth = mc.intSliderGrp(rockD, q = True, value = True)
    finalRock = mc.file(os.path.join(os.getenv('E:\2015\2. Tech Art Programming\Forest Builder'), 'rock.obj'), open = True, force = True)
    finalRock.scale( myRockWidth, myRockHeight, myRockDepth)

问题:

  • 我是否将.obj存储在与.mb文件相同的文件夹中?我希望能够压缩此代码 .

  • 我是否必须首先将文件加载到maya然后使用另一段代码来显示它?

  • 你能把我链接到一些参考资料吗?我一遍又一遍地搜索谷歌 . 也许我偶然发现了答案但却不明白我在看什么 .

  • 如何在PC上的maya文件夹中存储此文件?

logopath = mc.internalVar(upd = True)“icons / icon.jpg”

  • 当我打开窗口并尝试按下按钮时,我不会收到有关该文件不再被发现的错误(我之前做过) .

“#Error:TypeError:file C:\ Program Files \ Autodesk \ Maya2015 \ bin \ python27.zip \ ntpath.py第96行:'NoneType'类型的对象没有len()”

非常感谢您的帮助 .

1 回答

  • 0

    您没有转义文件路径中的反斜杠,因此可能会将它们视为特殊字符 . 尝试

    finalRock = mc.file(os.path.join(os.getenv('E:\\2015\\2. Tech Art Programming\\Forest Builder'), 'rock.obj'), open = True, force = True)
    

    要么

    finalRock = mc.file(os.path.join(os.getenv('E:/2015/2. Tech Art Programming/Forest Builder'), 'rock.obj'), open = True, force = True)
    

相关问题