0

我正在尝试在 Maya 2015 中将一堆 MEL 代码转换为 Python,如下所示:

mel2py.mel2pyStr(melCmd,pymelNamespace='pm', verbosity=4, forceCompatibility=True)

哪里melCmd是多行代码。

但是在转换以下行时失败:

select -add pPipe1.e[2500:2549] ;

错误状态:是意外的:

p_expression - line 12
original token:
['None', '2500']
result:
2500
# Result : <Token @ 0x18faa7a2678> ('2500')
# 
# State  : 271
# Stack  : translation_unit ID command_statement_input_list ID LBRACKET expression . LexToken(COLON,u':',12,407)
# ERROR: Error  : translation_unit ID command_statement_input_list ID LBRACKET expression . LexToken(COLON,u':',12,407)
# 
# State  : 0
# Stack  : . $end
# ERROR: Error  : . $end
# Error: MelParseError: file C:\Program Files\Autodesk\Maya2015\Python\lib\site-packages\pymel\tools\mel2py\melparse.py line 2940: Errors:
line 12 (COLON): : # 

我正在尝试一次选择(然后修改)多个边缘。我应该如何在 Python 中做到这一点?为什么 mel2py 会失败?
欢迎任何建议。

这是完整的 MEL 代码:

CreatePolygonPipe;
setToolTo CreatePolyPipeCtx;
setAttr "polyPipe1.thickness" 0.6;
polyPipe -ch on -o on -r 4.343087 -h 4.057391 -t 0.6 ;
// Result: pPipe1 polyPipe1 // 
select -addFirst polyPipe1 ;
setAttr "polyPipe1.subdivisionsAxis" 50;
setAttr "polyPipe1.subdivisionsHeight" 37.4;
setAttr "polyPipe1.subdivisionsHeight" 50;
select -r pPipe1.e[2546] ;
select -r pPipe1.e[2546] ;
select -add pPipe1.e[2500:2549] ;
select -tgl pPipe1.e[10] ;
select -add pPipe1.e[0:49] ;
ScaleToolWithSnapMarkingMenu;
dR_ScaleToolMarkingMenuPopDown;
scale -r -p -4.723702cm 1.014348cm -1.380022cm 1.054283 1.054283 1.054283 ;
select -r pPipe1.e[2498] ;
select -add pPipe1.e[2450:2499] ;
select -tgl pPipe1.e[61] ;
select -add pPipe1.e[50:99] ;
scale -r -p -4.723702cm 1.014348cm -1.380022cm 1.025089 1.025089 1.025089 ;
select -r pPipe1.e[2556] ;
select -add pPipe1.e[2550:2599] ;
select -tgl pPipe1.e[5096] ;
select -add pPipe1.e[5050:5099] ;
scale -r -p -4.723702cm 1.014348cm -1.380022cm 0.960232 0.960232 0.960232 ;
select -r pPipe1.e[2644] ;
select -add pPipe1.e[2600:2649] ;
select -tgl pPipe1.e[5044] ;
select -add pPipe1.e[5000:5049] ;
scale -r -p -4.723702cm 1.014348cm -1.380022cm 0.981905 0.981905 0.981905 ;
select -r pPipe1.e[2546] ;
select -add pPipe1.e[2500:2549] ;
TranslateToolWithSnapMarkingMenu;
dR_TranslateToolMarkingMenuPopDown;
move -r 0 -0.07989 0 ;
select -r pPipe1.e[46] ;
select -add pPipe1.e[0:49] ;
move -r 0 0.07989 0 ;
select -d pPipe1.e[0:49] ;
select -r pPipe1 ;
select -cl  ;
4

1 回答 1

0

基本上它在字符串上崩溃,如果这是预期的行为,我不是,这就是你可以解决它的方法

melCmd = 'select -add "pPipe1.e[2500:2549]";'
于 2017-02-10T19:21:48.940 回答