0

在用 C# 编写 Grasshopper 扩展时,我想访问在我的 Rhino 插件中定义的符号。

一个常见的例子是我的插件可能将自定义 UserData 类附加到对象,我希望稍后能够在 Grasshopper 中访问该数据的成员。

在我的具体示例中,我有一个 MirrorData 类,它被添加到一组 Breps 中。我可以从我的 rhino 插件中设置和获取它。

问题是,为了让我的 Grasshopper 扩展了解 MirrorData,我需要从 Grasshopper 扩展中引用 rhino 插件,但这是不允许的,因为 rhino 插件输出不能用作有效参考的 .rhp。

我通过从 Grasshopper 扩展引用插件的 obj 文件夹中的临时 MirrorPlugin.dll 找到了一种解决方法。但这似乎不是“正确”的方法。

有任何想法吗?

4

2 回答 2

2

推荐的方法是制作一个引用 RhinoCommon 的程序集,在您的 Rhino 插件和 Grasshopper 组件之间共享。在此共享程序集中,添加您在其他项目中需要的所有功能。如果您需要演示这一点的示例,请参阅以下内容:

https://github.com/dalefugier/Platonics

将来,您可能想在我们的 Discourse 论坛上发布您的 Rhino 开发问题:

http://discourse.mcneel.com/

我们倾向于比其他人更努力地监控这个论坛。;-)

——戴尔

于 2016-05-15T16:58:21.507 回答
1

需要注意的一点是,您的 rhino 插件不必是 rhp 文件。一个 dll 工作正常,但我猜你失去了拖放安装功能。我使用自定义安装程序将插件 dll 和蚱蜢 dll 安装到同一目录中。然后,蚂蚱插件就可以毫无问题地访问犀牛插件了。我认为我最终只在内存中使用了一个 rhino 插件实例,但我没有明确验证这一点(在我的情况下,我不关心多个实例)

于 2016-05-15T17:15:13.507 回答