Saving the ACTIVE File
On 28/03/2013 at 02:12, xxxxxxxx wrote:
I'm trying to save the ACTIVE scene, not a copy of it with the following code:
_<_t_>_ doc = c4d.documents.GetActiveDocument() if doc.GetDocumentPath() == "": filePath = doc.GetDocumentPath() if c4d.documents.SaveDocument(doc, doc.GetDocumentName(), saveflags = c4d.SAVEDOCUMENTFLAGS_SAVEAS, format = c4d.FORMAT_C4DEXPORT) == False: print "File not saved" Message = c4d.BaseContainer() Message.SetString(0, "blabla") result = gui.ShowPopupDialog(cd = None, bc = Message, x=700, y=700) print result return True ... ... ... <_<_t_>_
It saves the document allright, but it saves a copy of it, not the actual file i'm working on. For example, If i save it in the "Save As..." Popup as PluginTest.c4d, it's being saved as that, but the file i'm working on is still called untitled 1.c4d, and if I execute the plugin again,
doc.GetDocumentPath() == ""
still returns true, hence it was not really saved.
Does anyone know what to do about it?
Thanks in advance
On 28/03/2013 at 07:23, xxxxxxxx wrote:
I'm not a big fan of using CallCommands because the built-in undos are such a hassle to deal with.
But in this case. I think it's something you can probably get away with using.
c4d.CallCommand(12098) #Saves the active document
On 28/03/2013 at 07:48, xxxxxxxx wrote:
BaseDocument.GetName() will always be an empty string for unsaved documents. most os
do not like empty strings as file names.
On 29/03/2013 at 03:25, xxxxxxxx wrote:
Will try that ;)