https://github.com/hrntsm/mef-for-rhinocoros-plugin
Load a Rhinoceros plugin through MEF
https://github.com/hrntsm/mef-for-rhinocoros-plugin
rhino3d
Last synced: 2 months ago
JSON representation
Load a Rhinoceros plugin through MEF
- Host: GitHub
- URL: https://github.com/hrntsm/mef-for-rhinocoros-plugin
- Owner: hrntsm
- License: mit
- Created: 2021-08-17T13:26:53.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-19T11:31:32.000Z (almost 4 years ago)
- Last Synced: 2025-01-26T07:26:01.472Z (4 months ago)
- Topics: rhino3d
- Language: C#
- Homepage:
- Size: 37.1 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.jp.md
- License: LICENSE
Awesome Lists containing this project
README
# MEF for Rhinoceros Plugin
## MEF とは
- [MEF (Managed Extensibility Framework) - Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/framework/mef/)
- [Managed Extensibility Framework入門 まとめ](https://blog.okazuki.jp/entry/20110507/1304772329)## このリポジトリの内容について
Rhinoceros Forums で [New way to load a C# .net plugin](https://discourse.mcneel.com/t/new-way-to-load-a-c-net-plugin/31284) をみて面白そうだったので試しています。
以下をなぞってやっています。ただし、ターゲットを Rhino4 向けで VisualStudio2010 で書かれたもののなので、現状の Rhino7.9, VisualStudio2019 に対応した形に書き直してます。
https://www.codeproject.com/Articles/1091178/Managed-Extensibility-Framework-MEF-Plugin-for-Rhi
元の記事は [The Code Project Open License (CPOL) 1.02](https://www.codeproject.com/info/cpol10.aspx) で公開されています。
## 使い方
詳細は上記記事を見てください。
1. ソリューションをビルドする
1. RhinoPluginLoader/bin/ の中にある RhinoPluginLoader.rhp を Rhino にドラッグアンドドロップして、コマンド "LoadPlugin" を使えるようにする。
1. LoadPlugin コマンドを実行すると dll のパスを求められるので、実際に実行したいコマンドが書かれた dll ファイルを参照する。
- 例として Line を作成する csproj が RhinoPluginMakeLine があるので、その bin にある dll ファイルを参照する
1. MakeLine.cs 内でかかれた Rhino コマンドが実行される。
1. 通常コマンドを書き換えた場合 Rhino の再起動が必要だが、ここでは MEF を使って LoadPlugin コマンド実行ごとに dll を読み込んでいるので再起動の必要がない
1. ٩(๑>◡<๑)۶