UI changes in Rhino 7


There are a number of improvements in Rhino WIP, which are really helpful. But I don’t see any improvement in the user interface. Will there be any?

Personally, I think the Rhino interface should be improved, mainly to limit the multiplication of functions and buttons.

I work for different fields, sometimes I only have to draw in 2D, sometimes only a plugin is useful, or I only prepare meshes.
A single Rhino configuration is not suitable for all my uses. Since version 5, I would like to be able to quickly configure and change workspaces like in most other software.

I understand that there is a road map and that certain elements are lower priority than others. Since the release of version 6 I try to meet my needs via the programming APIs.

I do not master C ++ and python, which is not a problem because you have a DotNet SDK.
I could see that this API is extremely limited to manage the interface, which seems to be less the case in the C ++ API.

Rhino’s performance and new features in version 7 are excellent, but in my experience, the worst of Rhino is the ergonomics of its interface.
If there is no redesign of the user interface, at a minimum, allow us to manipulate the interface via all APIs. And there, I am on my knee :slight_smile:

See the two essential points which limit my possibilities of adaptation of Rhino:

  • Obviously the complete manipulation of the toolbars, access their buttons, display, hide, define their commands or icons. An API dedicated to the RUI file and allowing to change the configurations when running Rhino.

  • Complete capture of keyboard events. More concretely, the possibility of temporarily deactivating the Rhino command line.
    Most of the personal commands that I write have the sole advantage of being more practical by using specific keyboard shortcuts when executing the command.
    However, Rhino captures events from the keyboard and reports them to the command line. In this case, it does not send it to the API.
    Currently, I use native and OS specific solutions and have to listen to all system events. This sometimes creates incompatibilities with other applications, but it is the only way to have complete control over events in Rhino.

In addition, but less annoying, using an IL decompiler, we may find it unfortunate that some functions are not at the public level of the API. I am thinking, for example, of access to resources such as icons. I admit that my artistic skills do not exist and that my commands do not need custom icons.
Currently, I have need to reflect the types to get the “curve” icon on a button.

Thank you, jmv


So, I can assume that there is nothing planned ?

Me too, I want to be able to configure and save viewport states. Right now it is a pain in the ass to work with multiple viewports at once. Your Idea it is a little bit more radical.


I think you know that, but … what about using separate rui files for different configurations ?
You can swap the workspace clicking a regular toolbar button.

I remember I did it on Rhino 5,years ago. I had a customized workspace with all my toolbars and buttons,
But clicking a button I could quickly close it and open the standard Rhino workspace to let my boss use my PC when he needed to.

… But any workspace with its toolbars has to be built by hand, yeah, I know, not fun. :unamused:
So I definitely second your wish for a way to programmatically handle the UI.

@emilio Yes, that’s right, with a little practice, you can do it in a few hours. I remember the first time it lasted several days.

@mcneel You must understand that Rhino is not always attached to a person.

In my activity, this is even quite rare, with the exception of 3D modeling stations. I make objects in prototyping workshops.

Rhino is the software of choice for the entire industry. But licenses are assigned to a machine and not to a person.

There is a Rhino for the laser, a Rhino for the second laser, a Rhino for the CNC, a Rhino for the second CNC and another for the third. There is even a Rhino for the photocopier.

All of these machines are used by everyone. Often for file preparation, toolpaths, cleaning, export, see display of attachments …

If a company has 17 employees, it will obviously not buy 17 licenses for each machine.

The organization of the buttons has been disorganized for years. You have to improve this. And being able to easily change workspaces would be a small detail with a big advantage for the whole activity.

Note that the first thing that discourages newcomers is not the complexity of the machine tools, it is Rhino. I see them, they get lost in a multitude of buttons.

I’m just putting this post on the stack in hopes of getting an answer :slight_smile:
thank, jmv.

No, but I’d be surprised if they couldn’t afford 3-5 floating licenses, and then have everyone install their own copy at their own computers/the computer attached to the cnc/laser as you mention, and then configure their own custom toolbars for that installation? (And even if the employees share computers, the toolbar.rui can be pointed to their local user account/network.)

However, there are still issues with this, as some scripts and other settings have to be manually setup up for each user, but I guess that’s the price (in time) you have to pay because the software itself is so cheap.

(We recently acquired licenses in a software which literally cost 100x the price of Rhino per year and that software does have what you are asking for, in the form of “Roles”. You can set up multiple “Roles” on each computer, and then switch between them, and all toolbars will adopt a layout suitable for that role.)

you can open and close groups of toolbars with -toolbar

probably doesn’t help overall though

Okay, so I won’t explain why disconnecting and then reconnecting the zoo will never be done. I think everyone can understand, the chair is free, so the machine too, we sit and work.

I work with SolidWorks, and yes the difference between the interface is noticeable.
In Rhino. Any action (move, close, create a toolbar, place the script to the left / right of a button, …) is possible.
All this action, McNeel has the functions inside the source code.
emillo, look, I’m in the “Developer” section, I’m not asking if there will be additional features.
I’m asking if these features will be linked to rhino APIs …