HotLoader 通过允许您编写、调试、加载在运行时热加载的 C# 插件,扩展了 Grasshopper 草蜢插件的脚本工具。它是原型制作、创建和使用您的原生开发工具调试组件的高级工具。
是什么
HotComponent 通过创建一个 C# 项目来工作,类似于您编写自定义 Grasshopper 插件中的普通组件时创建的项目。当您编辑并编译代码时,组件就像在 C# 脚本编辑器上按下播放一样被热加载到您的 Grasshopper 定义中。
将 HotComponent 放入 Grasshopper 文档中。
.csproj 将在您的原生编辑器中打开。
编辑代码并重建项目。
切换回 Grasshopper 并使用您的新组件。根据需要进行编辑和重建。
可选地,将您的调试器附加到 Rhino 上以在代码中达到断点。
自定义组件和编译的二进制文件(包括引用)的完整源代码都嵌入在组件中,并因此与 Grasshopper 定义一起保存。
为什么
原生的 Grasshopper 脚本编辑器对于任何复杂任务来说使用起来不方便。Rhino 8 中的新编辑器是一个显著的改进,但仍有一些限制。
分发使用外部引用的脚本需要用户也拥有相同的引用,并且需要定位它们。这也包括 NuGet 包。
脚本组件中的生命周期方法有限,例如管理事件订阅和对象处置。
预编译的 C# 插件 可以 比脚本组件运行得更快(因为您可以使用真正的参数类型而无需转换)。
脚本组件的自定义受到限制(图标、自定义绘制、右键菜单等)。
编写 Grasshopper 插件在设置项目和分发插件方面有一些开销。
通过工具如 Script Parasite 或 Rhino 8 中的新脚本编辑器,甚至只是项目模板,解决了其中的一些挑战(有权衡)。
随着 Yak(包管理器)的引入,HotComponent 成为可能 - 到目前为止,分享 HotComponents 是不方便的,因为用户必须预先安装插件才能加载它们。现在,用户只需接受安装 HotLoader 的提示,定义就会像正常一样打开。
贡献
如果您想实现某些功能,请分叉并创建拉取请求,或创建问题进行讨论。