2016-05-15 40 views
0

在C#中編寫Grasshopper擴展時,我想訪問在我的Rhino插件中定義的符號。如何引用蚱蜢的犀牛rhop

一個常見的例子是,我的插件可能會將自定義的UserData類附加到對象上,我希望能夠稍後在Grasshopper中訪問該數據的成員。

在我的具體示例中,我有一個類MirrorData,它被添加到一組Breps中。我可以設置並從我的犀牛插件得到這個。

問題在於,對於我的Grasshopper擴展來了解MirrorData,我需要從蚱蜢擴展中引用rhino插件,但這是不允許的,因爲犀牛插件輸出的.rhp不能用作有效的參考。

我已經通過引用蚱蜢擴展插件的obj文件夾中的臨時MirrorPlugin.dll找到了解決方法。但這似乎不是'正確'的方法。

任何想法?

回答

2

推薦的方法是製作一個引用RhinoCommon的程序集,該程序集在您的Rhino插件和您的Grasshopper組件之間共享。在這個共享程序集中,添加您在其他項目中需要的所有功能。如果你需要演示此範例,請參閱以下內容:

https://github.com/dalefugier/Platonics

在未來,你可能想發佈在我們的話語論壇的犀牛發展問題:

http://discourse.mcneel.com/

我們傾向於比其他人更勤勉地監督這個論壇。 ;-)

- 戴爾

1

有一點要注意的是,你的犀牛插件沒有成爲一個RHP文件。一個DLL工作正常,但我想你失去了拖放安裝功能。我使用自定義安裝程序來將我的插件DLL和Grasshopper DLL安裝到同一個目錄中。蚱蜢插件然後能夠訪問犀牛插件沒有問題。我認爲我只會在內存中結束一個犀牛插件的實例,但我沒有明確驗證(在我的情況下,我不在乎多個實例)