Anemone 循环插件 使用教程

用于在 Grasshopper 中建立循环、递归和迭代流程。这里重点整理每个电池的使用方法、接线顺序、输入输出端口和容易卡住的位置,方便你边看边在 GH 里测试。

插件文件夹:CY楚豫 Anemone循环插件 电池总数:16 中文分类:4 补全时间:2026-05-13 23:51

推荐循环流程

先跑通,再放大

标准接线

先拖入“快速循环头部”和“快速循环尾部”,把头部输出 > 接到尾部 Port,初始数据接头部 D0,每轮更新后的数据接回尾部 D0

控制次数

头部 I 输入迭代次数,先用 3 到 10 次测试。计数器 C 可以控制移动步长、列表索引、递增参数或每轮判断。

提前结束

尾部 E 接 Boolean 条件,满足条件时提前停止。调试时先接 Panel 或 Param Viewer,确认数据结构没有每轮膨胀。

电池用法目录

16 个电池
Anemone 是循环插件,头部和尾部必须配对使用。新建文件优先用“快速”分类;打开旧文件时再看“经典”和 obsolete 旧版组件。

海葵 / 快速

2 个电池
快速循环头部 图标

快速循环头部

快速循环头部

13

用于快速循环头部相关操作,位于海葵/快速分类。输入:迭代次数、数据;输出:>、计数器、数据。

插件:anemone.gha 分类:海葵 子分类:快速 输入:2 输出:3

什么时候用

新定义优先使用的快速循环起点,适合重复迭代、逐步累加、递归生长、批量优化前处理。

怎么接

  1. 把“迭代次数 I”接入整数滑块,先用较小数值测试。
  2. 把初始数据接到“数据 D0”,例如 Point、Curve、Number、Tree 或任意 Generic 数据。
  3. 把输出端“>”连接到“快速循环尾部”的 Port 输入端,形成循环通道。
  4. 把需要重复计算的逻辑放在头尾之间,并把更新后的数据送入循环尾部的数据端。
  5. 使用“计数器 C”驱动序列、移动距离、偏移次数或条件判断。

注意事项

它是快速模式的头部,适合新文件;如果需要兼容老定义,再考虑经典或 obsolete 组件。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
迭代次数IInteger循环的迭代次数
数据D0Generic循环数据
输出端口
端口类型中文说明
>Data连接到循环尾部
计数器CInteger计数器
数据D0Generic循环数据
底层信息

底层类型:Anemone.LoopStart

英文/原始名:快速循环头部

快速循环尾部 图标

快速循环尾部

快速循环尾部

14

用于快速循环尾部相关操作,位于海葵/快速分类。输入:端口、结束、数据;输出:数据。

插件:anemone.gha 分类:海葵 子分类:快速 输入:3 输出:1

什么时候用

快速循环的结束端,用来接收本轮更新后的数据并返回给下一轮。

怎么接

  1. 把快速循环头部的“>”连接到这里的 Port 输入端。
  2. 把循环中计算完成的新数据接到“数据 D0”。
  3. 如果需要提前停止,把 Boolean 条件接到“结束 E”;True 时停止继续迭代。
  4. 输出“数据 D0”就是最终迭代结果,通常接 Panel、Param Viewer 或后续几何组件检查。

注意事项

结束条件不要写反;条件始终 False 时会按头部迭代次数跑满,数据量大时会明显拖慢 GH。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
PortData输入端口数据,类型为数据。
结束EBoolean输入结束数据,类型为布尔。
数据D0Generic循环数据
输出端口
端口类型中文说明
数据D0Generic循环数据
底层信息

底层类型:Anemone.LoopEnd

英文/原始名:快速循环尾部

海葵 / 经典

2 个电池
循环头部 图标

循环头部

循环头部

15

用于循环头部相关操作,位于海葵/经典分类。输入:重复、触发器、数据;输出:>、计数器、数据。

插件:anemone.gha 分类:海葵 子分类:经典 输入:3 输出:3

什么时候用

经典循环头部,适合打开旧文件或需要使用传统 Anemone 接线方式的定义。

怎么接

  1. 把“重复 N”接入整数,作为循环总次数。
  2. 把“触发器 T”接入按钮、布尔值或变化数据,用于重新触发循环。
  3. 把初始数据接到“数据 D0”。
  4. 把输出“>”连到经典循环尾部的 Port。
  5. 用“计数器 C”在循环内部控制第几轮计算。

注意事项

新项目通常优先用快速循环;经典组件主要用于兼容和可读性稳定的老定义。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
重复NInteger重复次数
触发器TGeneric如果你要触发循环重启
数据D0Generic循环数据
输出端口
端口类型中文说明
>Data连接到循环尾部
计数器CInteger计数器
数据D0Generic循环数据
底层信息

底层类型:Anemone.ClassicLoopStart

英文/原始名:循环头部

循环尾部 图标

循环尾部

循环尾部

16

用于循环尾部相关操作,位于海葵/经典分类。输入:端口、结束、数据;输出:数据。

插件:anemone.gha 分类:海葵 子分类:经典 输入:3 输出:1

什么时候用

经典循环尾部,与经典循环头部成对使用。

怎么接

  1. Port 接经典循环头部输出的“>”。
  2. 数据 D0 接每一轮更新后的结果。
  3. 结束 E 接布尔停止条件,True 时提前结束。
  4. 最终输出数据 D0 送到后续组件。

注意事项

头尾必须成对使用,快速头部不要混接经典尾部,避免循环通道不匹配。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
PortData输入端口数据,类型为数据。
结束EBoolean输入结束数据,类型为布尔。
数据D0Generic循环数据
输出端口
端口类型中文说明
数据D0Generic循环输出数据
底层信息

底层类型:Anemone.ClassicLoopEnd

英文/原始名:循环尾部

海葵 / 工具

9 个电池
密码 图标

密码

密码

04

用于密码相关操作,位于海葵/工具分类。输入:密码。

插件:anemone.gha 分类:海葵 子分类:工具 输入:1 输出:0

什么时候用

用于给特定循环或定义设置密码保护相关数据,通常是插件内部或特殊文件保护流程的一部分。

怎么接

  1. 把 Text 文本接到密码 P。
  2. 只在确实需要保护或配合已有 Anemone 定义时使用。

注意事项

普通循环建模通常不需要这个组件;不要把重要密码写在公开教程或共享文件里。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
密码PText密码
输出端口

这个组件没有显式输出端口。

底层信息

底层类型:Anemone.SetPassword

英文/原始名:密码

循环头部 图标

循环头部

循环头部

05

用于循环头部相关操作,位于海葵/工具分类。输入:数据、计数、触发器、端口;输出:>>>、数据、计数器。

插件:anemone.gha 分类:海葵 子分类:工具 输入:4 输出:3

什么时候用

旧版循环头部,用于打开历史 Anemone 定义或兼容旧文件。

怎么接

  1. Port 输入保持空,不要手动接数据。
  2. 重复 N 或计数 S 控制循环次数。
  3. 触发器 T 用于重新触发循环。
  4. 数据 D0/Di 接初始数据,输出数据端接入循环内部计算。
  5. 把“>>>”连接到匹配旧版循环尾部的“<<<”。

注意事项

这是 obsolete 旧组件,新文件不建议优先使用;除非你是在修旧文件。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
数据DiGeneric循环数据
计数SInteger循环次数
触发器TGeneric如果你需要运行此循环, Di 端没有任何数据。
PortGeneric请留下此处,不要输入任何数据。
输出端口
端口类型中文说明
>>>Generic与循环尾部相连
数据DoGeneric循环数据
计数器CText计数器
底层信息

底层类型:Anemone.loopStart_OBSOLETE_01

英文/原始名:循环头部

循环头部 图标

循环头部

循环头部

06

用于循环头部相关操作,位于海葵/工具分类。输入:端口、重复、触发器、数据_0;输出:>>>、计数器、数据_0。

插件:anemone.gha 分类:海葵 子分类:工具 输入:4 输出:3

什么时候用

旧版循环头部,用于打开历史 Anemone 定义或兼容旧文件。

怎么接

  1. Port 输入保持空,不要手动接数据。
  2. 重复 N 或计数 S 控制循环次数。
  3. 触发器 T 用于重新触发循环。
  4. 数据 D0/Di 接初始数据,输出数据端接入循环内部计算。
  5. 把“>>>”连接到匹配旧版循环尾部的“<<<”。

注意事项

这是 obsolete 旧组件,新文件不建议优先使用;除非你是在修旧文件。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
PortGeneric请留下此处,不要输入任何数据。
重复NInteger重复次数
触发器TGeneric如果你要触发循环重启
数据_0D0Generic循环数据
输出端口
端口类型中文说明
>>>Generic与循环尾部相连
计数器CText计数器
数据_0D0Generic循环数据
底层信息

底层类型:Anemone.loopStart_OBSOLETE_026

英文/原始名:循环头部

循环头部 图标

循环头部

循环头部

07

用于循环头部相关操作,位于海葵/工具分类。输入:端口、重复、触发器、数据_0;输出:>>>、0、数据_0。

插件:anemone.gha 分类:海葵 子分类:工具 输入:4 输出:3

什么时候用

旧版循环头部,用于打开历史 Anemone 定义或兼容旧文件。

怎么接

  1. Port 输入保持空,不要手动接数据。
  2. 重复 N 或计数 S 控制循环次数。
  3. 触发器 T 用于重新触发循环。
  4. 数据 D0/Di 接初始数据,输出数据端接入循环内部计算。
  5. 把“>>>”连接到匹配旧版循环尾部的“<<<”。

注意事项

这是 obsolete 旧组件,新文件不建议优先使用;除非你是在修旧文件。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
PortGeneric请留下此处,不要输入任何数据。
重复NInteger重复次数
触发器TGeneric如果你要触发循环重启
数据_0D0Generic循环数据
输出端口
端口类型中文说明
>>>Generic与循环尾部相连
0Text计数器
数据_0D0Generic循环数据
底层信息

底层类型:Anemone.loopStart_OBSOLETE_02

英文/原始名:循环头部

循环尾部 图标

循环尾部

循环尾部

08

用于循环尾部相关操作,位于海葵/工具分类。输入:<<<、数据;输出:数据。

插件:anemone.gha 分类:海葵 子分类:工具 输入:2 输出:1

什么时候用

旧版循环尾部,用于接收旧版循环头部返回的通道和数据。

怎么接

  1. “<<<”必须接旧版循环头部输出的“>>>”。
  2. 数据 D0/Di 接循环内部更新后的数据。
  3. 结束 E 可接布尔值,True 时提前停止。
  4. 输出数据端是循环完成后的结果。

注意事项

只和同一套旧版头部配对,不要和快速循环头尾混用。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
<<<Generic与循环头部相连
数据DiGeneric循环数据
输出端口
端口类型中文说明
数据DoGeneric循环输出数据
底层信息

底层类型:Anemone.loopEnd_OBSOLETE_01

英文/原始名:循环尾部

循环尾部 图标

循环尾部

循环尾部

09

用于循环尾部相关操作,位于海葵/工具分类。输入:<<<、结束、数据_0;输出:数据_0。

插件:anemone.gha 分类:海葵 子分类:工具 输入:3 输出:1

什么时候用

旧版循环尾部,用于接收旧版循环头部返回的通道和数据。

怎么接

  1. “<<<”必须接旧版循环头部输出的“>>>”。
  2. 数据 D0/Di 接循环内部更新后的数据。
  3. 结束 E 可接布尔值,True 时提前停止。
  4. 输出数据端是循环完成后的结果。

注意事项

只和同一套旧版头部配对,不要和快速循环头尾混用。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
<<<Generic与循环头部相连
结束EBoolean输入结束数据,类型为布尔。
数据_0D0Generic循环数据
输出端口
端口类型中文说明
数据_0D0Generic循环输出数据
底层信息

底层类型:Anemone.loopEnd_OBSOLETE_026

英文/原始名:循环尾部

循环尾部 图标

循环尾部

循环尾部

10

用于循环尾部相关操作,位于海葵/工具分类。输入:<<<、结束、数据_0;输出:数据_0。

插件:anemone.gha 分类:海葵 子分类:工具 输入:3 输出:1

什么时候用

旧版循环尾部,用于接收旧版循环头部返回的通道和数据。

怎么接

  1. “<<<”必须接旧版循环头部输出的“>>>”。
  2. 数据 D0/Di 接循环内部更新后的数据。
  3. 结束 E 可接布尔值,True 时提前停止。
  4. 输出数据端是循环完成后的结果。

注意事项

只和同一套旧版头部配对,不要和快速循环头尾混用。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
<<<Generic与循环头部相连
结束EBoolean输入结束数据,类型为布尔。
数据_0D0Generic循环数据
输出端口
端口类型中文说明
数据_0D0Generic循环输出数据
底层信息

底层类型:Anemone.loopEnd_OBSOLETE_02

英文/原始名:循环尾部

时间缓冲器 图标

时间缓冲器

时间缓冲器

11

用于时间缓冲器相关操作,位于海葵/工具分类。输入:数据、ms;输出:数据。

插件:anemone.gha 分类:海葵 子分类:工具 输入:2 输出:1

什么时候用

需要按时间间隔缓冲或节流数据刷新时使用,例如动画、逐帧计算、避免数据变化太快导致画布频繁求解。

怎么接

  1. 把要缓冲的数据接到 D。
  2. 把毫秒间隔接到 ms,例如 100、250、500。
  3. 从输出 D 读取按时间间隔释放的数据。

注意事项

ms 太小会接近实时刷新,仍然可能卡;太大则会感觉响应迟钝。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
数据DGeneric要缓冲的数据
msInteger时间间隔(以毫秒为单位)
输出端口
端口类型中文说明
数据DGeneric数据
底层信息

底层类型:Anemone.TimeBuffer

英文/原始名:时间缓冲器

浏览历史 图标

浏览历史

浏览历史

12

用于浏览历史相关操作,位于海葵/工具分类。输入:迭代、数据_0;输出:数据_0。

插件:anemone.gha 分类:海葵 子分类:工具 输入:2 输出:1

什么时候用

用于浏览或取回循环过程中的某一次迭代结果,适合调试循环中间状态。

怎么接

  1. 把迭代编号接到“I”,例如用整数滑块选择第几轮。
  2. 把循环历史数据接到 D0。
  3. 从输出 D0 查看指定轮次的数据。

注意事项

它更像调试查看器;正式计算时不要保留过多历史数据,避免内存和求解时间增长。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
迭代IInteger迭代次数
数据_0D0Generic要浏览的数据
输出端口
端口类型中文说明
数据_0D0Generic当前的迭代
底层信息

底层类型:Anemone.LoopGen

英文/原始名:浏览历史

海葵 / 内部

3 个电池
循环输入 图标

循环输入

循环输入

01

用于循环输入相关操作,位于海葵/内部分类。输出:>、计数器、数据。

插件:anemone.gha 分类:海葵 子分类:内部 输入:0 输出:3

什么时候用

内部循环输入端,用来输出循环通道、计数器和数据流。

怎么接

  1. 通常由循环结构或高级定义配合使用。
  2. 输出“>”连接到对应的循环输出或尾部端口。
  3. 计数器 C 用来判断当前第几轮。
  4. 数据 D0 是本轮进入循环的数据。

注意事项

普通使用不要单独拖它当完整循环;优先使用 FastLoopStart / FastLoopEnd。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口

这个组件没有显式输入端口。

输出端口
端口类型中文说明
>Data连接到循环尾部
计数器CInteger计数器
数据D0Data数据流
底层信息

底层类型:Anemone.LoopInput

英文/原始名:循环输入

循环输出 图标

循环输出

循环输出

02

用于循环输出相关操作,位于海葵/内部分类。输入:端口、结束、数据。

插件:anemone.gha 分类:海葵 子分类:内部 输入:3 输出:0

什么时候用

内部循环输出端,用来接收循环通道、结束条件和数据。

怎么接

  1. Port 接循环输入端或头部的通道输出。
  2. 结束 E 接提前停止条件。
  3. 数据 D0 接本轮计算后的数据。

注意事项

它没有显式输出端,更多是内部循环结构的一部分。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
PortData输入端口数据,类型为数据。
结束EBoolean结束循环
数据D0Data数据流
输出端口

这个组件没有显式输出端口。

底层信息

底层类型:Anemone.LoopOutput

英文/原始名:循环输出

运行循环 图标

运行循环

运行循环

03

用于运行循环相关操作,位于海葵/内部分类。输入:迭代次数。

插件:anemone.gha 分类:海葵 子分类:内部 输入:1 输出:0

什么时候用

内部运行控制组件,用于指定运行循环的迭代次数,通常服务于 Anemone 的内部循环结构。

怎么接

  1. 给迭代次数 I 一个整数。
  2. 配合 LoopInput / LoopOutput 或旧版循环结构使用。
  3. 如果只是新建普通循环,优先使用快速循环头部和快速循环尾部。

注意事项

这是内部分类组件,普通用户不必从它开始搭循环。 循环类组件会反复触发求解,测试时先把迭代次数设小,例如 3 到 10 次;确认数据结构正确后再放大次数。

输入端口
端口类型中文说明
迭代次数IInteger循环次数
输出端口

这个组件没有显式输出端口。

底层信息

底层类型:Anemone.RunLoop

英文/原始名:运行循环