有没有办法让grasshopper中的trigger在某种条件下开始、在某种条件下停止,而不用按播放键
尝试使用python中time库里的sleep,但是发现GH中不会实时更新值,会运行完再输出
可以控制的
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 个赞
能麻烦大佬稍微解释下代码吗,确实可以实现控制了
稍微改了一下
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)
1 个赞
感谢感谢
改一下代码就行了。