从Python调用MEL脚本 - 执行MEL脚本时出错

时间:2017-12-13 09:57:39

标签: python file maya mel

我试图创建一个简单的Python脚本,它将从Maya中调用MEL脚本来创建一个多维数据集。好极了!应该是相当直接的,但我可能有源文件的语法错误。

以下是我所拥有的:

runMEL.py Python文件:     导入maya.mel as mel

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { return nil }
    guard !(annotation is MKUserLocation) else {


    let annotationIdentifier = "Identifier"
    if let myAnnotation = annotation as? myCustomMKAnnotation {
        let annotation = myCustomAnnotationView(annotation: siteAnnotation, reuseIdentifier: annotationIdentifier)
        return annotation
    }
    return nil
}

MEL脚本myMELScript.mel

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

我从控制台获得以下内容:

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!");
}

1 个答案:

答案 0 :(得分:2)

你几乎把它弄好了,你必须把路径作为一个字符串传递并逃脱它。此外,对于前向/和向后\斜杠,mel很挑剔,它期望/

应该这样做:

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

注意:通常在python中你可以编写你的Path以及

D:\\Maya_Python\\myMELScript.mel

但是mel不够聪明,所以它会逃脱逃脱符号:D