Can't save default printer settings in Rhino 8?

Hi, my issue is probably not typical for most, but I found that the way I used to configure Rhino 7 for printing defaults doesn’t work any more for Rhino 8. To explain what I’ve done in the past and what I’m trying to do:

I configure a bunch of computers that run laser cutters for students at a university, and Rhino is our primary program to do laser cutting. In past years, I had been making modified versions of the file settings-Scheme_Default.xml (in AppData\Roaming\…) with defaults that I think are useful (then I put this file in the “Default” users folder so it populates to new users who log in).

With this file, I can make Rhino open with the same template file for everyone by default, have End snaps on, Gumball on, etc. But even more useful, I can make the default printer set to the specific laser cutter the computer is attached to, and even have default print window sizing set, which is helpful for our users. I’d be happy to post details on what these exact changes are, but basically with enough poking around and testing I got this to work well.

Unfortunately, the same thing does not appear to work with Rhino 8 (8.9). I did not assume the files would be similar enough between releases (although they do appear to be very similar), so I rebuilt my customizations from scratch, but the print settings don’t seem to do anything, so my system is kind of broken.

What’s even more confusing: if I open Rhino fresh (disregarding any of these ideas about customizing the settings scheme files), change some printing preferences (which printer, set window size, etc.), print something, then close Rhino and reopen it, the program does not seem to remember any of these settings. This would be annoying on a single user machine, but again seems to break what I was attempting. Any ideas on what I can do to make these customizations? Are other people also experiencing that Rhino 8 doesn’t remember previous print settings?

Hi @TK123 ,

First lets get you onto Rhino 8 SR10 or SR11 as they remember more print settings for hardware printers than previous service releases such as SR9 did.

After that the good news is that you can still do what you want to do, however there’s more data now and its in a different location. The print dialog was converted to use ETO and as such is invoked through the Commands.rhp plugin now. Because of that the scheme settings that drive it are now in the commands plugin scheme as well instead of RhinoApp.

So if you navigate to your %appdata%\McNeel\Rhinoceros\8.0\Plug-ins\Commands (02bf604d-799c-4cc2-830e-8d72f21b14b7)\settings

You should see settings-Scheme_Default.xml along with any of the other scheme’s that you’ve created.

Open one of those and then hunt for TestPrintDialogCallback. You’ll then start to recognize familiar parameters and settings.

Hope that helps.

1 Like

Great, thanks for the guidance Travis! I will work with our IT folks, since they have the updating locked on these managed machines, and I’m not exactly sure how they accomplished that.

Dumb question, but where is SR11? When I go to the latest release page, it shows 8.10 from last week, but I’m not seeing 8.11 anywhere…

So I’m gathering my best path forward is to look around at what settings are buried in each respective XML file, then kind of figure it out through trial and error. Is there documentation that tells me more about what all these keys do, instead of me guessing? I tried wading through the Developer documentation and couldn’t really find a reference for this. Thanks.

SR10 is the current release, SR11 will be the next service release candidate.

As for the contents of the raw xml. Well, they aren’t really intended to be used as a form of SDK and can change as UI changes. They are just raw saved data of a user interfaces state. Typically anything suffixed with Index is going to be a selected list index from that section in the UI. If you get stuck on something feel free to message me and I can likely provide you with any guidance you might need.

1 Like

Great, so as best I’m gathering, something about SR9 was potentially not reading or writing the XML file(s) correctly, because the behavior where it wouldn’t remember a print destination (nothing to do with manually modifying those files) went away when I updated to SR10. So it’s almost doing what I want now just by updating.

However the one sticking point for me I haven’t figured out is getting it to remember to use a predefined print Window (from [0,0] to [32,18], the size of our laser cutter beds). Interestingly this is the same issue as I previously had above: the program doesn’t seem to remember this at all between two sessions. So perhaps an issue reading/writing what’s in the XML file(s)?

Any idea how I can get it to remember this window? In Plug-ins\Commands…\settings\settings-Scheme_Default.xml It has some things saved like <entry key="WindowPoint2">32,18,0</entry> under PrintSettings. I can manually select the radio button for Window on the UI, and when I do it seems to remember the correct window size/location, but between sessions it does not remember to use this print window, it will default to Viewport.

Screenshot 2024-08-21 151738

This one will be tricky and we may need to provide a more custom way to do this. The Viewport is set by default to correct some issues with trying to use a previous window in a view that may no longer exist. I assume you’re always printing to the exact same location?