2014-09-07 3 views
1

Maya 파일 형식의 일부가 아닌 파일 형식으로로드/가져 오는 데 Maya API를 사용하는 대신 maya.cmds을 사용할 수 있습니까?maya api 명령을 사용하지 않고 새 파일 형식 가져 오기

나는 그렇지 않으면 것 (나는 완전히 그것으로 어떤 경험이없는 경우) 내가 시도

마야 API를 구현해야합니다 의미, 인터넷 검색을하지만 마야의 fileDialog 명령 이외의 아무 소용이 결과에 시도 다음

# Error: Unrecognized file. 
# Traceback (most recent call last): 
# File "<maya console>", line 3, in <module> 
# RuntimeError: Unrecognized file. # 

어떤 아이디어 :

multipleFilters = "chan (*.chan)" 
fileList = cmds.fileDialog2(fileMode=1, fileFilter=multipleFilters, dialogStyle=2) 
if not fileList: 
    # return or print something or bail out early 

filename = fileList[0] 
cmds.file(filename, i=True) 

대신 나는 다음과 같은 오류가 계속?

답변

2

cmds.file은 Python 또는 C++로 API를 통해 등록 된 변환기가있는 파일에만 작동합니다.

그러나 디스크에서 파일을 읽고 장면에서 물건을 만드는 파이썬 (또는 심지어 멜) 스크립트를 쉽게 작성할 수 있습니다. cmds.fileDiialog2을 사용하여 디스크에 파일을 선택하라는 파일 대화 상자를 사용자에게 표시 할 수 있지만 파일을 읽는 것은 사용자의 몫입니다.

multipleFilters = "chan (*.chan)" 
fileList = cmds.fileDialog2(fileMode=1, fileFilter=multipleFilters, dialogStyle=2) 

with open (fileList[0], 'rt') as filehandle: 
    for line in filehandle: 
     print line # or do something useful with the data 
+0

안녕하세요, 파일을 읽을 수 있지만 장면으로 가져올 수있는 방법이 있습니까? 지금까지, 나는 단지'cmds.file' 메소드를 가져 오기의 수단으로 만 알고 있었고, 플러그인 디렉토리 내에서'.chan'를위한 파일 변환기가 없다는 것을 언급하지 않았다. 등록 된 변환기가 있다면 – dissidia

+0

(그리고 당신은 그것을 가능하게했다) 당신은'cmds.file'로 그것을 열 수있다. 그렇지 않으면 텍스트 파일을 읽고 방금 읽은 내용을 기반으로 현재 열려있는 장면에서 스크립트 작업을 수행 할 수 있습니다. 그것은 '수입'자체가 아니지만 꽤 일반적인 접근 방식입니다. – theodox

+0

내가 잘못하면 나를 바로 잡으십시오. 등록 된 번역자 = 플러그인입니까? 그렇다면이 작업에는 API가 관련 될 수 있습니다. 죄송합니다. API 등을 사용하여 가져 오기를 수행하여 서클에서 돌이 켰기 때문에 다소 혼란스러워졌습니다. – dissidia

관련 문제