Skip to content

Instantly share code, notes, and snippets.

@pgolay
Last active June 16, 2018 17:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pgolay/eaad1ee2b3d6f7ba26635ba6420b4d40 to your computer and use it in GitHub Desktop.
Save pgolay/eaad1ee2b3d6f7ba26635ba6420b4d40 to your computer and use it in GitHub Desktop.
Saves a copy of the current file with date and time in the name.
import Rhino
import rhinoscriptsyntax as rs
import datetime
import scriptcontext as sc
def validate(date_text):
try:
datetime.datetime.strptime(date_text,"%Y_%m_%d_%H_%M" )
except ValueError:
return False
return True
def SaveCopyWithTimeStamp():
crntName = sc.doc.Name
pass
saved = False
if crntName is None:
crntName = "Untitled"
else:
saved=True
crntPath = sc.doc.Path
rs.Command("_-Save _Enter")
pass
now = datetime.datetime.now()
strNow = now.strftime("__%Y_%m_%d_%H_%M")
idx = crntName.find("__")
if idx != -1:
xtra = crntName[idx+2:-4]
if validate(xtra):
name = crntName.replace("__"+xtra, strNow)
else:
name = crntName + strNow
else:
name = crntName + strNow
savePath = rs.SaveFileName("SaveSpecial","3dm files|*.3dm||", folder= rs.WorkingFolder(), filename= name, extension="*.3dm")
if not savePath: return
cmdStr = ("_-SaveAs " + chr(34)+ savePath +chr(34) + " _Enter")
rs.EnableRedraw(False)
rs.Command(cmdStr)
if rs.LastCommandResult() == 0:
print "File saved as " + chr(34)+ savePath +chr(34) +"."
if saved:
rs.Command("_-Open " + chr(34) + crntPath + chr(34) + " _Enter")
rs.EnableRedraw(True)
if __name__=="__main__": SaveCopyWithTimeStamp()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment