【问题标题】:Sketchup run script in backgroundSketchup 在后台运行脚本
【发布时间】:2015-05-21 23:17:04
【问题描述】:

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

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

【问题讨论】:

  • 但是 Sketchup 已经 supports autosave
  • 不是自动就地保存。结果是每次我在使用 Sketchup 后退出计算机时,它都会要求我保存文件。

标签: ruby scripting sketchup


【解决方案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)

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多