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 @   trykle  阅读(49)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示