2015-11-09 1 views
1

Я работаю над проектом в течение недели, пытаясь по-разному решить эту проблему. Я чрезвычайно новичок в python и программировании в целом и не знаю основ.Непонятно, как импортировать и отображать файл .OBJ с Python (майя)

Задача состоит в том, чтобы создать окно с кнопкой, которая импортирует внешний файл .obj в сцену и переименовывает его. В какой-то момент я смог это сделать, поместив файлы в каталог «HOME», а также My Documents, но я потерял этот фрагмент кода.

Я пробовал множество способов, но я не понимаю правильного синтаксиса вообще. Я также попросил одноклассников помочь, и мы не могли понять, где хранить объект и как правильно его ссылать.

Я вижу эту тему, которая кажется полезной, но всегда возвращает «Файлы не найдены» 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) 

Вопросы:

  1. ли я хранить .obj в той же папке, что и файл .MB? Я хочу, чтобы можно было закрепить этот код.

  2. Нужно ли сначала загружать файл в майю, а затем использовать другой фрагмент кода для его отображения?

  3. Можете ли вы сослаться на некоторые ссылки? Я искал google снова и снова. возможно, я наткнулся на ответ, но не понял, на что я смотрю.

  4. Как сохранить это, кроме как в папке майя на моем ПК?

    logopath = mc.internalVar (обн = True) + «иконки/Icon.jpg»

  5. Когда я получаю окно, чтобы открыть и попробовать нажать на кнопку Я не получаю сообщение об ошибке о файле не (я уже делал это раньше).

"# Ошибка: Ошибка типа: файл C: \ Program Files \ Autodesk \ Maya2015 \ Bin \ python27.zip \ ntpath.py строка 96: объект типа 'NoneType' не имеет LEN()"

Спасибо вам за помощь.

ответ

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^