Creating a "large scale" plugIn to rhino


#1

Hi @dale (and everyone else),

I’m in process of creating a pretty large scale add on to rhino. I’ve started to code it using windows forms and now it has started to swell up like a bun dough. So before it becomes unbearable difficult to do a large scale changes to the program I wanted to ask some general questions:

-Would it better to change from windows forms to wpf?
-What are the benefits in registering the forms/user controls as rhino panels? To open this question a bit I’m a bit frustrated with some of the properties of the rhino forms which are:
- I cannot maximize the form to a different screen. (If i double click the form it will automatically dock into the rhino.
- When I take a focus out of the rhino (to some other program) the panel disappears, which is very frustrating when I want to some data from the panel.
So my main idea of how to use the add on is in full screen mode in a monitor next to the monitor where the rhino is running.

-Is it ok to store large amount of data with the archivable dictionary into the rhino file? I am planning of bringing FEM data to my plugin, which results a data a mouth which can be hundreds of megabytes.

With best regards
Matti


(Nathan 'jesterKing' Letwory) #2

If you even want to have your plug-in work on the Mac version you best move to Eto.Forms. This is what we are using as well, and probably will be the best supported mechanism.

I think you should be able to work around that with _TestHideOnDeactivate. There is a YT item to have this become a regular option.

I leave the other questions open for @dale or anybody else who may have an informed opinion those.

/Nathan


(Steve Baer) #3

I would also recommend Eto.Forms. When inside Windows Rhino, Eto.Forms is simply a layer on top of WPF.


(Dale Fugier) #4

Hi @Matti_Pirinen,

That only think I’ll add to what Nathan and Steve have said that WPF tends to scale better on high dpi displays than WinForms.

Well, the form is modeless and it docks with other UI. However, it is not the end-all for user interface.

Add the _TestHideOnDeactivate test command to Rhino’s list of command it runs at startup (Options > General).

Rather than making a docking panel, just create a Modeless form that can be maximized.

Sure.

– Dale


#5

Thanks everyone for the answers! I’ll try to continue from here :). Lets see where I end up.