maxscript 文件存在问题

Posted

技术标签:

【中文标题】maxscript 文件存在问题【英文标题】:File exist issue with maxscript 【发布时间】:2020-10-22 22:27:14 【问题描述】:

我正在编写一个小脚本来等待文件存在,然后读取 .Just 它。 但我的问题是我有一个 while 循环,它只是等待一个文件存在并且我的脚本和 3dsmax 没有响应。 . . 我不知道要修复我的无响应错误,但我已经在 c# 中通过线程完成了很多次。 顺便说一句,目前还没有想法。 这是我的脚本

while true do
(
file_name = openfile “C:/Users/Kasra/Dekstop/t.txt”
if file_name != “undefined” then
(
exit
)
)

file_address = readLine file_name

谁能给我一个例子或代码/帮助/解决方案?

非常感谢!

【问题讨论】:

【参考方案1】:

如果您使用无限循环,您将永远不会留出时间来执行其他任何操作,从而使 3ds Max 无响应。一旦文件被正确打开,它应该在技术上再次响应。如果即使文件存在仍然没有响应,我怀疑 3ds Max 进程可能没有足够的权限来成功文件?

或者,如果您想避免阻塞 UI,您可以使用 .Net 计时器每隔 x ms 生成事件以检查文件是否存在。这将避免阻塞 3ds Max。 这是一个可能对您有所帮助的小 sn-p:

fileThatShouldExist = "C:/Users/Kasra/Dekstop/t.txt"
fn doWhatIsNext = (
    print "do what you want once the file exist"
)

fn executeEvertTick = (
    if doesFileExist fileThatShouldExist do (
        myTimer.stop()
        doWhatIsNext()
    )
)
myTimer = dotNetObject "System.Windows.Forms.Timer"

dotnet.addEventHandler myTimer "tick" executeEvertTick
myTimer.interval = 1000 -- every 1000 ms
myTimer.start()

【讨论】:

谢谢。但是计时器不会停止。 :/ 我测试了 c# timer 的所有相关方法。

以上是关于maxscript 文件存在问题的主要内容,如果未能解决你的问题,请参考以下文章

Maxscript netrender 文件名 - 尝试在不附加帧号的情况下保存

MaxScript重启3dsMax的重新思考

关于使用 maxscript 将法线从一个网格复制到另一个网格

如何在 maxscript 中使用海龟图形来对齐弯曲的盒子

从 Maya 发送并执行 maxscript 或 python 到 3ds Max

转MaxScript.Net接收本地端口的消息执行