我试图创建一个简单的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!");
}
答案 0 :(得分:2)
你几乎把它弄好了,你必须把路径作为一个字符串传递并逃脱它。此外,对于前向/
和向后\
斜杠,mel很挑剔,它期望/
mel.eval('source "D:/Maya_Python/myMELScript.mel"')
注意:通常在python中你可以编写你的Path以及
D:\\Maya_Python\\myMELScript.mel
但是mel不够聪明,所以它会逃脱逃脱符号:D