【发布时间】:2016-02-09 16:47:44
【问题描述】:
我已经在一个项目上工作了一周,现在正在尝试不同的方法来解决这个问题。我对 python 和一般编程非常陌生,并且不了解基础知识。
任务是创建一个带有按钮的窗口,该按钮将外部 .obj 文件导入场景并重命名。有一次,我可以通过将文件放在“HOME”目录(即我的文档)中来做到这一点,但我丢失了那段代码。
我尝试了很多方法,但我根本不理解正确的语法。我也向同学寻求帮助,我们无法弄清楚 obj 的存储位置以及如何正确引用它。
我看到这个帖子看起来很有用,但总是返回“未找到文件”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"
- 当我打开窗口并尝试按下按钮时,我不再收到有关找不到文件的错误消息(我以前做过)。
“#错误:TypeError:文件 C:\Program Files\Autodesk\Maya2015\bin\python27.zip\ntpath.py 第 96 行:'NoneType' 类型的对象没有 len()”
非常感谢您的帮助。
【问题讨论】:
标签: python import external maya