Sketchup运行脚本在背景中

时间:2015-05-21 23:17:05

标签: ruby scripting sketchup

我正在尝试创建一个Sketchup脚本,通过尽可能保存来模拟OS X的本机自动保存功能。但是,我似乎无法运行脚本而不会导致Sketchup停止响应(出于显而易见的原因)。如何让它在后台运行,例如在另一个线程?

loop {
    sleep(1)
    model = Sketchup.active_model
    model.save()
}

1 个答案:

答案 0 :(得分:1)

sleep是一个阻塞函数 - 没有其他任何东西可以运行,因为Ruby解释器在主线程中运行。 SketchUp API只能从主线程中调用。

相反,您可以使用计时器:

interval = 60 * 5 # 5 minutes
timer_id = UI.start_timer(interval, true) {
  model = Sketchup.active_model
  model.save() if model # OSX might have no models open
}

如果你想停止计时器: UI.stop_timer(timer_id)