When you say ‘maxscript compiler’, you really mean a process which translates maxscript commands to their equivalent C++ SDK code, and then compiles, …
Instead of improving maxscript, wouldn’t it be easier to improve the c# SDK and provide a runtime c# interpreter (e.g. LINQPad) inside max? What woul…
duke: and destroyed it on the shutdown callback I wouldn’t bother with that unless you have some persistence handling to do. Windows will tear do…
You can register for the system notification #NOTIFY_MXS_POST_STARTUP and run your code there.
Yes, it does.
I’m not sure I understand the design decisions that necessitate MCG being implemented via maxscript (even if not for heavy lifting). Wouldn’t it be mo…
You just need to check if a certain process, of which you the filename, is running?
You don’t have to listen for specific parameters. NotifyInputChanged sends you the partID mask which has changed.
At the beginning of ModifyObject, check if your cache exists and is valid. In response to things like InputChanged or NotifyRefChanged, invalidate you…
With your example, the handles always appear for me. Do you know how to recreate them not appearing?
register for the textbox’s gotFocus event and disable 3dsmax accelerators using enableAccelerators = false
Makes sense.
When do you choose to use the node event system vs. general event #selectionSetChanged callback? Is one more efficient than the other?
Right. You can’t directly reference a node in a custom attribute which is applied on that node. That results in a dependency loop. Workarounds: Use…
Here you go. I ended up doing it using the paramater setter, not the postload, which would also work but is unnecessary. myDef = attributes “WhenExam…