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:
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()
result = gui.ShowPopupDialog(cd = None, bc = Message, x=700, y=700)
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