2017-12-13 5 views
0

Maya에서 MEL 스크립트를 호출하여 큐브를 작성하는 간단한 Python 스크립트를 작성하려고합니다. 예! 소스 파일에 대한 구문을 잘못 알았을 수도 있습니다. 여기 Python에서 MEL 스크립트 호출 - MEL 스크립트 실행 중 오류가 발생했습니다.

내가 가진 무엇 :

runMEL.py 파이썬 파일 : 멜

def runMEL(): 
    print ("Running MEL from Python!") 
    mel.eval('"source D:\Maya_Python\myMELScript.mel;"') # source of the file 
    mel.eval("myMELScript;") #name of the function 

runMEL() # call the function above 

그리고 MEL 스크립트 myMELScript.mel로 수입 maya.mel

global proc myMELScript() 
// call a MEL script with Python 
{ 
    polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1; 
    print("MEL just made a cube!"); 
} 

내가 얻을 콘솔에서 다음을 입력하십시오 :

Running MEL from Python! 
// Error: "source D:\Maya_Python\myMELScript.mel;"; // 
// Error: Line 1.40: Syntax error // 
# Error: RuntimeError: file <maya console> line 5: Error occurred during execution of MEL script 
Line 1.40: Syntax error # 
+0

당신이 어색한 멜을 통해 이것을 기각하고 싶다는 특별한 이유가 있습니까? – user1767754

답변

2

거의 맞았습니다. 경로를 문자열로 전달하고 이스케이프 처리해야합니다. 일반적으로 파이썬에서 당신은 당신의 경로를 작성할 수뿐만 아니라

D:\\Maya_Python\\myMELScript.mel 
등 :
mel.eval('source "D:/Maya_Python/myMELScript.mel"') 

을 : 또한 멜은 앞으로 / 뒤로 \ 슬래시와 까다 롭고, 그것은

/이해야 할 것으로 예상

멜은 영리하지 않아 이스케이프 기호를 벗어날 수 있습니다. D

+1

'mel.eval ('source "D : /Maya_Python/myMELScript.mel"')'덜 복잡 할 것입니다. – Netwave

+0

아, 그래요, 훨씬 좋아 보입니다! 그리고 기여에 대한 감사가 더 pythonic입니다. 다음 번에 편집 해주세요. 나는 그것을 받아 들였을 것입니다. :) – user1767754

+0

고마워요. 마지막으로 세미콜론은 두 번째 평가 라인에서만 필요합니까? –

관련 문제