Trigger自动停止

有没有办法让grasshopper中的trigger在某种条件下开始、在某种条件下停止,而不用按播放键
尝试使用python中time库里的sleep,但是发现GH中不会实时更新值,会运行完再输出
image

可以控制的

import Grasshopper.Kernel as gk
doc = ghenv.Component.OnPingDocument()
gh_timers = [obj for obj in doc.Objects if isinstance(obj,gk.Special.GH_Timer) and obj.NickName == name]
if(gh_timers!=None):
    gh_timer = gh_timers[0]
    gh_timer.Locked = not start
    gh_timer.ExpireSolution(True);

3 个赞

能麻烦大佬稍微解释下代码吗,确实可以实现控制了 :rose:

稍微改了一下

import Grasshopper.Kernel as gk

def set_gh_timer(gh_timer):
    gh_timer.Locked = not start
    gh_timer.ExpireSolution(True)

# 获取当前组件所在的文档
doc = ghenv.Component.OnPingDocument()
# 查找与指定名称相匹配的计时器对象列表
gh_timers = [obj for obj in doc.Objects if isinstance(obj,gk.Special.GH_Timer) and obj.NickName == name]
if(gh_timers!=None):
    # 调用函数,设置列表内每个gh_timer对象的属性
    map(set_gh_timer,gh_timers)

感谢感谢 :rose: :rose: :rose: :rose:


大佬我通过图中的Toggle无法控制

这样也不行

只有在直接连接Toggle的时候可以控制
start端口的设置保持一致

改一下代码就行了。