Example:
example:
The other important factor for me at least, is that whatever UI that I eventually come up with has to be portable. Iāve got to be able to copy it into many more computers.
Yes, the whole toolbar system is completely messy. Not just in V8 but even before. Plugins create their toolbars that will just appear when starting Rhino. The amount of times I had to manually close all 10! of V-Rays toolbars because they decided to show up again. Other toolbars will disappear even though I have added them many times.
Why does this have to be so complicated, while being so static? If I spend all this time customizing Rhino I want to be able to at least use it on several machines easily or restore a previous setup that was working.
Hmpfā¦
I had a similar idea to you, Mitch, and created my own version of the default menu and swapped it in, replacing the McNeel one, added a button, created a dropdown toolbar to display sub buttons when the button is clicked and, while it was hard to work out how to do all that, and the random distribution of tools didnāt help, and there were numerous false starts, I felt I was getting somewhere, even if half an hour seemed like a long time to get to one new button (heaven knows how long if Iād got into the icon editor!).
But then I went to look at what McNeel put in a typical macro to display such a dropdown toolbar and⦠ā¦Rhino froze. At that point I shrugged philosophically (a.k.a. swore) and walked away. Itās a WIP and it just isnāt ready to explore this part.
I look forward to trying again after McNeel have created (or received) a collection of scenarios that illustrate real-world use cases and written a cohesive set of tools that facilitate those scenarios.
Incidentally, I would hope that, if any of the disparate maze of tools I wandered through were legacy items and not intended for use in R8, they can be disabled or removed to avoid confusing the landscape.
Regards
Jeremy
Thanks for taking the time to write this. It deserves an equally long response, so here goes.
But first, a bit about where we are with this project. Thereās a lot of new code here, and the UI for it is not yet done. As youāve discovered, itās gross.
First, our intentions
There are a few new features coming to Rhino 8 that are designed to fix a few very painful long-standing problems in Rhino.
1. Cross Platform: This new toolbar and window management system works on both Windows and Mac. On Mac, you didnāt have much if any customization available in Rhino 7 and older.
2. Toolbars Stay Put: This change makes it so that all the dockable stuff in Rhino can live in any of the containers. It also is stored in a way that when you close Rhino and re-open it, you get what you had. For some people, Rhino 5, 6, and 7, never really worked this way.
3. Delivering Updates, Not Trashing Customization: Another thing weāre trying to fix is the ability to add new tools to Rhino without trashing everyoneās custom RUI files. This is actually a big deal. Letās say we find a bug in the Circle button: we shipped with a macro -_Coircle
and it just didnāt work. And you built a new custom layout of your own based on our default RUI. In the past, if you wanted the fix, you had to know to look for it and update your RUI. Now, because your changes to the RUI are stored locally as a set of changes (rather than a whole RUI file), we can modify -_Coircle
to be -_Circle
and both the default and all your changes will be updated.
4. Combining Tools: It used to be that if you had the VRay plugin loaded and you wanted your own new toolbar that had some Rhino tools and some VRay tools, youād get a bunch of copies of those tools in your new toolbar. Now, Rhino will save links back to the original RUI files (for much the same reason as above) so that the original authors can update and change their RUIs.
And finally, if youāre one of the very rare people who design whole new layouts for Rhino (and, I know, you are) there are tools for un-linking everything and embedding it in the RUI.
Second, Our priorities
I got my hands on this set of new tools about six months ago. At that point, just opening Rhino felt foreign. All the styling was confused, things didnāt line up, there was a waste of pixel space, etc. Dark mode didnāt work (and still kinda doesnāt).
There were a bunch of things that didnāt work when you simply opened Rhino and tried to use it. We are very nearly done cleaning all of that up. And itās our top priority - because using Rhino is way more important than customizing it for most of our users. Iām not saying customization isnāt important - but I think itās not controversial to say that using Rhino is more important than customization.
I intentionally pulled peopleās focus away from toolbar button creation, workspace creation, and layout editing in favor of straight-up default user experience.
And now, weāre turning toward some of those more subtle things like what youāve described. And yes, itās far from being done.
I was just talking to John about this, and wondered what on earth āand linkā means? Why isnāt this just āNewā¦ā? Logged as RH-73818
Maybe there should be. Iām not sold on that idea yet⦠doing so means you have a modal options dialog with another Toolbars dialog on top, and then all the editing you do happens on top of those two windows, pretty well obscuring what youāre working on? Or am I missing something here?
That looks like a bug. Iām not sure those checkboxes actually are hooked to anything. Since toolbars can belong to multiple containers now, a checkbox is kinda nonsensical. It looks like you can cause toolbars to appear with those checkboxes, but they donāt seem to have a visibility correspondence: RH-73819
The intention here, which clearly didnāt work very well, was to help guide you through the process of creating a toolbar and adding buttons to it. If you were doing this in the context of the default RUI, I think itād make more sense. But since you started with nothing (an empty RUI) itās less sensible.
Logged as RH-73820
Yep, thatās by design. So that we can update that linked toolbar and you donāt have to care. Glad you love it
This is currently in the category of internal conflict. Some of us agree with you. Some of us donāt. Iām not sure where weāll land ultimately - but even if we keep the ābuttons reference macrosā concept, weāll streamline the UI so that itās not so many clicks to do things.
All the rest, I just agree with, and we have bugs logged for them.
Thanks: RH-73821
I refer you to Rhino 7. Everything is unlinked there. But seriously, weāre going to continue to fix bugs and make it better - it might be a few months yet, however.
Hey Brian, Thanks for explaining all this. I think the priorities you listed on your post are the right ones. I read about the issue that Mitch and Dan and others have been having with linked toolbars, and I was feeling really guilty, because I know Iāve lobbied for linked toolbars pretty hard. I still believe they are necessary.
I know is really hard work to get this right. Actually, I probably have no idea how insanely hard this must really be. But I really look forward to a future when I can maintain a set of custom tools that people in my team can use, linked to their source file, and that I can update them on my end and they see those updates (our .RUI files live in synched Dropbox folders). And none of that conflicts with you guys at McNeel also updating your own toolbars/defaults and we all also get to see those updates. And noting break anything.
Also having everything look the same on every machine that I use, every time I launch Rhino is really needed. Currently, every time I start Rhino 7 my first thing to do is rea-ranging toolbars. Every, single, time I launch Rhino. So thanks for fixing all that!
Thanks again, and keep it up!
G
I can understand your thinking for copy-by-ref between RUIs, but youāve got a whole mess of people thinking they are tweaking their copy of a button while overwriting the default version. Thatās not how itās ever been, and there is nothing to alert the user that they are editing the default macro in a custom RUI.
You have to make default macros read-only. If someone tries to edit it, you silently spawn a new instance of the macro in the RUI that owns the parent toolbar. No need for a duplicate button. You edit, and you get something new. That way Rhino updates the read-only defaults and never touches someoneās customization, no matter what RUI they live in.
This conflict does not exist amongst users whoāve tried to make their toolbars in v8.
Hi Brian,
Since weāre doing point-counterpoint hereā¦
Of course, agreed.
Yes, a very good improvement. But for me containers and how they are arranged/docked etc. are separate from the contents of those containers. The container system is fine. What it contains is what I am questioning.
Iāve never really been affected by this, but OK, not a problem.
Never really experienced this either but hey, maybe Iām the exception.
Please elaborate on how to unlink stuff⦠I would like to test.
Just the expectation that if one goes into Options looking for toolbar options, one should somehow have access to the editing systemā¦
Well, not exactly - you might find some of my and otherās previous posts concerning concerning copying buttons and having macros, tooltips etc. come with them - in V7.
Iām glad thatās not a serious response. Well, maybe it is finally time for me to quit mucking about with this stuff and really finally retire along with Rhino 7.
I simply want to state that if you end up tailoring the system to a collection of high-end users at the detriment of lots of the lower-end ones, I will be very sad.
If you have a way to export the default toolset so that it is completely unlinked from the totally interconnected dialog box jungle world it currently lives in, and in those unlinked tools I can simply open a button editor, type or paste in macros, scripts and the like, choose from a library of svg images and OK to finish, I will be fine with that. (hmm, sounds about like V4 doesnāt itā¦).
if I can shift-click a button I just copied, type a macro, and click ok, then I donāt care how the rest of it works
besides doing that, I have not sunk a second of time into customizing rhino toolbars since I did it in v2 or v3, only for the next version to come along and not support the workspace I had spent so much time making, and become dependent upon; that sucked, but it was also good, because it was what taught me to never customize software
sidenote on the point about needing to link so you can fix things without disturbing user customizations ā you know what string was wrong, and what string is right, so you donāt need to replace the toolbar, just fix the known bad button macro
Itās in the Tools > Options > Appearance > Toolbar Layout > Gear > Save Changes to Linked File.
(I have no idea why itās called this, makes no sense to me)
That will be a sad day, indeed.
I know, Iām with you. I donāt want you to need to be a database wizard to manage these things, either. I hope we can make it better in the coming months.
Sure, and also the bitmaps. Oh and add a new button. Oh, and delete one. If only it were easy! Maybe we could just overwrite everyoneās customizations
Do you do 3D design and 3D modeling for a living?
I do. And I can tell you that without custom tools, workflows, scripts and plugging Iād be a lot slower at what I do. And my days would be a lot more repetitive and boring AF.
Bad for me. Bad for my customers.
I see Rhino mostly as a 3D operating system that allows people like me grow businesses with a lot of custom tools and workflows. I really hope Rhino continues to nurture and support this type of work going forward, because no one else does. The world does not need yet another defaultware 3D package. Thatās a crowded market.
G
Thatās actually not how it works, either. Unfortunately this whole system is rather complicated, and may almost be impossible to get a sane mental model of.
When you edit a button, you are actually editing a small ādelta fileā that records the differences between our defaults and your changes. When you start Rhino, that ādelta fileā is read and applied to the defaults. So the core, unmodified macro is still there for you.
If only we could have all of you type on the code at the same time, all our disagreements would be solved.
no (but I have to use about a billion tools to do development), and Iām not saying what works for me has to work for anyone else, let alone someone like you, who is creating custom workflows for entire teams
It is how it works. After spending a day filling a delta file with stuff that should have gone into a custom toolbar, I finally understand it. And Iām ready to rage quit.
There is no way V8 can launch if editing a copy of a button in a custom RUI replaces the stock button in the default RUI.
Just remove the duplicate button. If someone edits the macro, silently duplicate that macro in the RUI hosting the toolbar. That way, you create a new command on that button without overwriting the existing macro on every other button.
If itās an edited macro, Rhino shouldnāt update it. And if itās unedited, it remains a by-ref you can update at will.
This is a really fundamental flaw in anything designed for users. Itās also a serious obstacle to practical intuitively usable design when itās true for developers.
BTW: I personally think that unless Mitch is already getting incredibly rich as a Rhino reseller you really need to send him a generous check for the billable hours he spent on this!
Yep. Let me give you another small case in point. Being an (ex)modelmaker as well as a Rhino reseller, I am in touch with virtually all the model shops in this country - there arenāt all that many, maybe 20 or so and the largest of them has maybe 7-8 people and the smallest is just one person. They pretty much all use Rhino now (Iām still trying to wean a few off of AutoCAD) and we use Rhino to teach CAD to our apprentices.
I have created quite a number of scripts over the years to streamline some of their workflows. I need to be able to hand out those scripts with some simple installation instructions. Right now thatās easy enough, itās the same instructions as we give out here on the forum when someone posts a script - make a new button, open the editor, paste the script in there, done. It needs to be simple. The audience is not computer programmers, they are just craftspeople who use computer aided design and manufacturing to allow them to do their work efficiently and stay competitive in todayās world.
Oh, and by the way - now that I mentioned āForumā⦠The same goes for the dozens of requests we get here weekly for macros, scripts etc. to solve specific problems. Oftentimes the requesters are students, relative beginners or simply not Rhino masters and thus again, the install procedure needs to be SIMPLE. I would hate to see that stuff get so complicated that most people wonāt even try.
Edit -
I guess one other thing I could add here is that when a group of very experienced users on this forum - JĆørgen, Gustavo, Eric, Bobi, Dan, JD, etc. (OK, Iāll include myself here as well) - all start voicing their doubts about something, there is definitely a problemā¦
Naah, not necessary⦠No, Iām not getting incredibly rich, but sales are good, I have great friends and clients, so I really canāt complain. I also do this simply because I love Rhino and the community around it, so when I think something major is wrong, I will put in the time to document it.
Not being one to start tearing down stuff without offering at least some suggestions as to how it could be made betterā¦
Iām trying to imagine how to reconcile the perceived need to to have a base set of tools that can be remotely restored, modified, updated etc. and at the same time accommodate user customizations in an easy and reliable way. Iām sure this has been the subject of extensive discussions @ McNeel already, so Iām probably covering old, old ground.
@brian mentioned this āDeltaā file. Thatās exactly how I see it working. Simply the implementation would be different and transparent to the user.
Letās imagine first off that the user is allowed to edit an existing toolbar button as they can now in V7 - edit the āmacroā, the image, the tooltip, etc. - i.e. the system is completely unlocked as it is now.
We have the following scenarios:
- The following are all without creating a ālinkedā file -
-
Editing an existing toolbar button:
The edits go in the Delta file, it just makes a whole new button using the edits. The edited button is no longer linked automatically to the original macro or image. The edited button contains a pointer to the original (untouched) base tool button it replaced. When Rhino is updated, the original button may be updated - and then the changes from the Delta file are applied over that, i.e. the original button is replaced by the edited one again. The edited button is not affected by an update, it can only be changed by the user. -
Making a new button from scratch:
The edits go in the Delta file, it just makes a whole new button. There is no link necessary to an original. There is a pointer to the toolbar in which the new button resides. The new button is not affected by an update, it can only be changed by the user. -
Making a new button by copying an original button:
If no edits to the button are made, it acts as a copy of the original - macros/images are still linked and updated. If an edit is made to the copy, it automatically becomes like scenario 1 - independent. -
The Delta file is automatically backed up in at least two places, plus it is accessible to the user so that it can be backed up elsewhere. Maybe the Delta file is like the other linked files.
-
New toolbars:
Two possible scenarios here, with or without a linked file.
Without a linked file, new toolbars go into the Delta file. They can contain buttons that are either edited (independent) or not (updatable/linked)
With a ālinkedā file, new toolbars can go into the linked file. They can contain buttons that are either edited (independent) or not (updatable/linked)
Thatās one way of doing it (maybe). Iām sure there are plenty of other things to consider that I havenāt thought of. The other way of doing it⦠well, it would take something from the Mac side.
- The default set of tools is not modifiable in any way.
- In order to modify or add to the toolset you need to make a copy of it.
- Making a copy is as simple as saving it under a name (as we do with .rui files now)
- Once copied, two possibilities:
A - everything becomes independent and editable, and is no longer affected by any updates. Therefore the user does this at their own risk.
B - The copy works like the first scenario above, edited stuff becomes independent, unedited stuff remains linked/updatable.
Well, anyway, thatās about as much logic as my brain can manage on this Saturday morningā¦
Just to make sure this is seen where it needs to be: @bobmcneel @brian
There must be something amiss in the development process that allowed this to get so far off the right track.