Initialize XMeshSaver_Settings without opening the dialog


#1

We are writing some integrations, and discovered that XMeshSaver_Settings are not initialized when you open Max - you need to open the XMesh Saver dialog for that to happen.

I could not find any relevant functions in XMeshSaverUtils or anywhere else.
Is it possible to initialize the struct programmatically?


#2

Currently, the XMeshSaver script is self-contained. It defines both the XMesh Saver UI, and the XMeshSaver_Settings used by that UI, plus all the logic for saving different types of objects.

The XMesh Saver C++ plugin itself is completely exposed via the XMeshSaverUtils and can do only the things the relevant methods expose. The XMesh Saver scripted UI adds a bunch of features like proxy generation with optional reduction, various source modes, saving with and without data optimization, respecting visibility etc. which are not actual XMesh core features, but were added via MAXScript over a period of time.

Unfortunately, other than SMTD in Deadline, the MAXScript UI and the MAXScript bonus functionality were not implemented as separate scripts (front end and back end), so you cannot really do anything with the XMeshSaver_Settings or the functionality of the XMeshSaver UI without launching the whole beast.

It has been on my list of things I wish I could do if I had time. Splitting the script in two shouldn’t be too hard since the settings are already managed separately from the UI. I would just have to move all functions into their own struct. Oh, and make sure everything still works :slight_smile:

I don’t want to promise anything, but I will try to find time to do this, esp. since I am adding some exciting new features to the XMesh Saver anyway…

Sorry for the inconvenience!


#3

Alright, this makes sense! Thanks for the info.
I suppose there is a way to programmatically open/close the dialog, which might be an ok hack.

We’ll be rooting for all the new features coming up.