LoadFile(Filename file) does not work for layouts.
-
Hello,
I am trying to load a layout (.l4d file extension) using LoadFile() function but when I do this the Cinema4D will open with the loaded layout active, and then stop working. when I try to load other files like .c4d it loads them correctly.
Am I doing something wrong here or is there another way to do this?
Thank you. -
hello,
From where are you trying to switch the layout ?
I've tested on the script manager and in the command line and it's working just as expected.
If you want Cinema4D to launch with a particular layout you can also use the -layout argument.I'm waiting your feedback to have a chance to reproduce your issue.
I'm assuming you are using the version R20.059.Cheers
Manuel -
Hello @m_magalhaes
I am putting the code under C4DPL_BUILDMENU.case C4DPL_BUILDMENU: { Filename file = Filename("C:/Program Files/MAXON/Cinema 4D R20 Education/library/layout/myLayout.l4d"); LoadFile(file); break; }
I am using R20.028 but I don't think this changes anything. Maybe I am just putting the code on the wrong place.
Thank you -
Several things here,
your path on windows should use backslash (\) and not slash (/)
and you should have two."C:\\Program Files\\MAXON\\Cinema 4D R20 Education\\library\\layout\\myLayout.l4d"
A better way to do this is to use operator so your path will be compatible with all OS.
// Create a filename to point to "Application directory/library/layout/Animate.l4d" const Filename file = GeGetStartupPath() + Filename("library") + Filename("layout") + Filename("Animate.l4d"); // load the layout. Bool result = LoadFile(file); // check the result. if (!result) DiagnosticOutput("can't load the layout");
I've tested this code in PluginMessage() using C4DPL_COMMANDLINEARGS and C4DPL_PROGRAM_STARTED
Cheers
Manuel -
I tried the code that you have tested but I am still having the same problem. As I have mentioned in the beginning the layout does load but then Cinema4D stops working (Not Responding)
-
@m_magalhaes said in LoadFile(Filename file) does not work for layouts.:
C4DPL_COMMANDLINEARGS and C4DPL_PROGRAM_STARTED
That's why i mention those PluginMessage ids.Sorry, I forgot to say If you use that code in C4DPL_BUILDMENU Cinema4D will stop working (or throw an exception if you are in debug mode for an "Acces Violation Reading Location")
Are you still in C4DPL_BUILDMENU ?
Cheers
Manuel -
Yes I tried with the mentioned PluginMessage ids but I tried only on C4DPL_PROGRAM_STARTED and it stopped working so I thought the other will not work as well.
I tried C4DPL_COMMANDLINEARGS now and this one only seems to work for me.
Thank you -
Again sorry, I've tested with the Studio version.
Using C4DPL_PROGRAM_STARTED case I can confirm this "bug" with a Educational version and a Demo version.
Not with the Studio version.Maybe something with that extra "popup" windows on those both versions.
Cheers
Manuel.