maxscript pathConfig.appendPath 的 bug(特性)

pathConfig.appendPath可以很方便的把2个路径Combine在一起
不管你后面带不带斜杠

pathConfig.appendPath @"C:\try" @"kle.jpg"
"C:\try\kle.jpg"

pathConfig.appendPath @"C:\try" @"kle.jpg" 
"C:\try\kle.jpg"

很酷,然后

 pathConfig.appendPath @"C:\try" @"$kle.jpg"
-- Runtime error: $directory not recognized: $kle.jpg
-- MAXScript callstack:
--	thread data: threadID:36248
--	------------------------------------------------------
--	[stack level: 0]
--	In top-level

在mxs内部定义了一堆以$开头的模板替换变量,$符号又在windows的允许命名规则内,这本身是一种设计冲突
下面是2种替代方案
(这里不考虑path2开头带斜杠)

fn pathConfig_appendPath path1 path2 =
(
	if path1[path1.count] != "\\" do path1 += "\\"
	return (path1 + path2)
)

或者去.net里取取经

(dotnetClass "System.IO.Path").Combine @"C:\try" @"$kle.jpg"
"C:\try\$kle.jpg"
posted @ 2023-07-02 14:49  trykle  阅读(71)  评论(0)    收藏  举报