仔细观察。文字告诉你是什么地方出了问题。
1:-- Error occurred in a loop
-- Frame:
-- a: $Box101
-- Argument count error: Color wanted 4, got 1
这个提示应该还是比较好理解的,他告诉你BOX101没有办法按照代码被赋予正确的线筐颜色。而且也告诉了你是在“Color”这一指令后出的问题,很明显这个就说明Color的表达有问题。
仔细观察,发现错误语句中的Color表达是:Color(0 255 255)。而实际上3DMAX Scrip中的——()小夸号,里面只能存一个固定的数值,0 255 255虽然是“RGB”色彩代码的表示方法,但是不符合语法,小夸号内必须存一个固定的数值,在MAX Scrip中“Color”指令后确实是要跟三个数字来表达R、G、B的,此时我们使用3个小夸号:()就比较合理了。
2:-- Syntax error: at keyword parameter, expected name
-- In line: for a in selection do a.wirecolor:color
出错了没有关系,MAX Scrip中的错误是最好排除的,仔细观察红色的提示代码,要认认真真的找下在什么地方出错。他告诉你咯,这个“for a in selection do a.wirecolor:后出现了错误,”意思是这个“等于”号不能这么打,而输入“=”就比较合理了。(我上是用“冒号”代替“等于号”的)
3:我胡乱打的虾米…...看看他告诉我什么:undefined。意思是有定义。
解决办法比较传统,入下:“没有定义的变量或者名称”=*即可(*可以是任何数值或者表达式,总之必须是一个已经被定义过的语句。)
4:这是在MAX Script中一个比较典型的错误,如何判断一个有效的表达式。MAX Script中运行代码的时候,是从上向下依次逐行运算,仔细观察,发现错误代码为:
a+b/c
+d
MAX Script在进行运算的时候,在第一行,会把他当成a+b/c进行运算然后直接输出结果,执行第二行的时候,就会提示“+号”使用错误,这是一段断开的代码,没有从头到尾的连续性。VC 和JAVA在这方面都使用了——{}大夸号来表示一段完整的程序代码。然后一段代码中还能继续使用{}大夸号继续定义子程序树。在MAX Script,加上反斜杠\就显得比较合理了
a+b/c\
+d
这样效果就等同于a+b/c+d.。如果想要把几条表达式合并成一行,也可以使用分号隔离.