Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 14/11/2016 at 06:27, xxxxxxxx wrote:
I have defined my own library (content browser) and added some scenes to it. Now I am trying to merge these scenes using following code:
import c4d, os from c4d import gui #Welcome to the world of Python def main() : userLib = c4d.storage.GeGetStartupWritePath() fn = os.path.join(userLib, "library", "browser", "own stuff.lib4d", "spheres test scenes.c4d") print "fn: ", fn print c4d.documents.MergeDocument(doc,fn, 0) c4d.EventAdd() print "Done." if __name__=='__main__': main()
The filename given for the merge seems correct: fn: C:\Users\Pim\AppData\Roaming\MAXON\CINEMA 4D R17_8DE13DAD\library\browser\own stuff.lib4d\spheres test scenes.c4d
The MergeDocument always return false, what am I doing wrong?
-Pim
On 14/11/2016 at 09:28, xxxxxxxx wrote:
The .lib4d is a file obviously, so the path you create is not valid for the filesystem. For library content, Cinema uses a URL with the preset:// scheme. I may be mistaken, the path you want to use is likely something similar to
preset://own stuff/spheres test scenes.c4d
Of course this can only be handled and be interpreted correctly by C4D SDK functions/classes.
Cheers, -Niklas
On 15/11/2016 at 00:46, xxxxxxxx wrote:
Sorry still not working. Here my code and console output:
import c4d, os from c4d import gui #Welcome to the world of Python def main() : userLib = c4d.storage.GeGetStartupWritePath() #fn = os.path.join(userLib, "library", "browser", "own stuff.lib4d", "spheres test scenes.c4d") fn = "preset://own stuff/spheres test scenes.c4d" print "fn: ", fn print c4d.documents.MergeDocument(doc,fn, 0) c4d.EventAdd() print "Done." if __name__=='__main__': main() #Console output: fn: preset://own stuff/spheres test scenes.c4d/ False Done.
I also copied the lib4d file to the main c4d library folder: C:\Program Files\MAXON\CINEMA 4D R17\library\browser, but that did not help.
What do you mean with "Of course this can only be handled and be interpreted correctly by C4D SDK functions/classes.". Can I not merge documents using c4d.documents.MergeDocument(doc,fn, 0)?
On 15/11/2016 at 03:08, xxxxxxxx wrote:
Hi Pim,
basically Niklas was already right. I think, the only thing you are missing is to correctly address the preset library correctly. For example it looks like so, if you want to load something from the Prime library:
fn = "preset://prime.lib4d/Example Scenes/Ambient Occlusion/Keys.c4d"
On 15/11/2016 at 04:48, xxxxxxxx wrote:
Ok, it is now working, after adding a sub folder in my own user defined content browser.
fn = "preset://own stuff.lib4d/water 01.c4d" NOT working fn = "preset://own stuff.lib4d/testFolder/water 01.c4d" + subfolder - Working!!!
On 15/11/2016 at 05:28, xxxxxxxx wrote:
I'm sorry, but I can't reproduce the need for a sub-folder. I created my own preset library named "test" and copied a scene "platonic.c4d" into it.
fn = "preset://test.lib4d/platonic.c4d" c4d.documents.LoadFile(fn)
This worked just fine for me.
On 15/11/2016 at 07:40, xxxxxxxx wrote:
Hi Andreas,
Yes, you are correct. I do not what changed (perhaps too focused), but your solution is working. No sub folder needed.
Thanks, Pim