我已经在一个项目上工作了一个星期,现在尝试不同的方法来解决这个问题 . 我对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 回答
您没有转义文件路径中的反斜杠,因此可能会将它们视为特殊字符 . 尝试
要么