[Plugin] Save Copy As Previous Version
-
Update 2014-05-18 - Version 2.0
Saves a copy of a model at the selected SketchUp version (3 thru latest.) Also has basic template with date, time, model name, and version macros.
This version is compatible with SketchUp 2014 or later, Windows or Mac (untested on Mac.)
Plugin adds "[jf] Save Copy As ..." item to the File menu.
Formats
You can set a default format for the saved filename:
Format codes include (case sensitive):
Date; %Y - Year %m - Month %d - Day Time; %H - Hour %M - Minute %S - Second SketchUp; %model - current model name %version - Selected version to save as
Example Format:
A format of:
%model_v%version_%Y-%m-%d
Might yield a filename of:
MyHouse_v8_2014-05-18.skp
Download version 2.0
original post below
**This is a Windows-only plugin.
What: Save the model as the previous version.
How: Uses a VBScript to automate the process of selecting the File/Save As menu, and select the option to save the model using the previous version. The plugin writes a small script to the Windows TEMP folder, then executes it using UI.openURL().
The final confirmation dialog is left for the user to handle.
Where: Download and place the file in your Plugins folder.
Download jf_save_as_prev_version.rb**
-
Thanks!
-
Thanks Jim, this should be very useful, except:
- I Save As.. -> choose Sketchup 7
- modify file
- File -> Save Previous
- Try to close, SketchUp asks me if I want to save before closing. (clearly not saving with Save Previous)
What am I doing wrong?
-
Jim,
First off, thanks for the plugin!!
Is there a way to remove the "final confirmation dialogue"?
-
Hi Brandon,
Yes, just add a 'y' to the end of the string, like this:
"%fa%ts{Enter}y"
(The string represents the keys that are pressed.)
-
Great stuff! Thank you so much for the plugin!
-
in sketchup 2013, this plugin always save as same file - s.skp, why?
-
@arc said:
in sketchup 2013, this plugin always save as same file - s.skp, why?
It uses WshShell to mimic keypresses.
The version currently available from the link has this line
script += %[WshShell.SendKeys "%fa%ts{Enter}"]
Which will do that - the 's' is its name !BUT these lines can replace that line and it then works, keeping the name unchanged !
script += "WshShell.SendKeys(\"+(^s)\")\n" script += "WScript.Sleep(500)\n" script += "WshShell.SendKeys(\"{TAB}{DOWN}{DOWN}{ENTER}{ENTER}y\")"
[NOTE: you will need to haveCtrl+Shift+S
set as your shortcut to 'Save_As']So you need to compare the 'down' key presses needed to save as the desired 'earlier version' - this goes one step back - so v2013 becomes v8 - adjust the key codes as desired ...
-
@tig said:
@arc said:
in sketchup 2013, this plugin always save as same file - s.skp, why?
It uses WshShell to mimic keypresses.
The version currently available from the link has this line
script += %[WshShell.SendKeys "%fa%ts{Enter}"]
Which will do that - the 's' is its name !BUT these lines can replace that line and it then works, keeping the name unchanged !
script += "WshShell.SendKeys(\"+(^s)\")\n" script += "WScript.Sleep(500)\n" script += "WshShell.SendKeys(\"{TAB}{DOWN}{DOWN}{ENTER}{ENTER}y\")"
[NOTE: you will need to haveCtrl+Shift+S
set as your shortcut to 'Save_As']So you need to compare the 'down' key presses needed to save as the desired 'earlier version' - this goes one step back - so v2013 becomes v8 - adjust the key codes as desired ...
TIG
This works great for my boss as he still has V8. However, I was wondering if there is a way to add some text following the original file name, i.e. "orig_file_name+my_boss_name + V8". This way I can save as and would have a file named as "Habitat Jack V8.skp", and I could send this file to him and still have the original V13 file "Habitat.skp" for me to work on.
Thanks in advance.
Ken
-
Remove the whole block of code starting from [and up to and including the 'end']
unless File.exists?(script_file) .... end
Add in these lines instead
script = "Set WshShell = WScript.CreateObject(\"WScript.Shell\")\n" script += "WshShell.SendKeys(\"+(%s)\")\n" script += "WScript.Sleep(500)\n" script += "WshShell.SendKeys(\"{LEFT}{LEFT}{LEFT}{LEFT}{BACKSPACE}_v8{TAB}{DOWN}{DOWN}{ENTER}{ENTER}y\")\n" script += "WScript.Sleep(1000)\n" script += "WshShell.SendKeys(\" \")\n" script += "Set WshShell = Nothing\n"
To match the new key-strokes you must add a new shortcut key-combo
Shift+Alt+S
to activate the File menu's 'Save A Copy As' - so then it then saves a v8 COPY but leaves the original v2018 SKP still open. You can mess around with that combo in the second line, + = Shift, % = Alt and ^ = Ctrl, and 's' = S key, note how the second modifier key must to be with the 'letter' key inside the () e.g. +(%s) ...Now the v2013 'Habitat.skp' gets saved as 'Habitat**_v8**.skp' ...
Change '_v8
' to 'JACK_V8
' or whatever you like...
The BACKSPACE keystroke is there to remove the auto-added '1' on the end of the SKP name when SketchUp makes a Copy name.The ' ' space is to invoke the Select tool after the Copy is made, because the 'y' needed to overwrite an existing Copy [if any] could otherwise invoke whatever tool you have set to shortcut Y ?
The final 'Nothing' part is to ensure that the process stops. -
TIG
Thanks you for your help. I can't seem to get it to work. Here is what I copied into the plugin, with one line above and one line below what I copied into the file. Also changed short cut key to shift + alt + S. The save a copy file menu does show up.
"jf_save_as_prev_version.vbs") # this line above
script = "Set WshShell = WScript.CreateObject("WScript.Shell")\n"
script += "WshShell.SendKeys("+(%s)")\n"
script += "WScript.Sleep(500)\n"
script += "WshShell.SendKeys("{LEFT}{LEFT}{LEFT}{LEFT}{BACKSPACE}Jack_v8{TAB}{DOWN}{DOWN}{ENTER}{ENTER}y")\n"
script += "WScript.Sleep(1000)\n"
script += "WshShell.SendKeys(" ")\n"
script += "Set WshShell = Nothing\n"
UI.openURL("file:///"+script_file)
end # this line below.I added "Jack_v8". Right now it saves a copy, one number above the last copy, but does not add the "Jack_v8" or change the version #.
Again thank you for your help. I know you are busy. So I will just plug along.
Ken
-
Here's the FULL code - replaces everything below the top # lines
module JF def self.save_as_previous_version() title = Sketchup.active_model.title if title == "" UI.messagebox("Model must be saved before it can be saved as the previous version.", MB_OK, 1) return end Dir.chdir(File.dirname(Sketchup.active_model.path)) script_file = File.join(ENV["TEMP"], "jf_save_as_prev_version.vbs") script = "Set WshShell = WScript.CreateObject(\"WScript.Shell\")\n" script += "WshShell.SendKeys(\"+(%s)\")\n" script += "WScript.Sleep(500)\n" script += "WshShell.SendKeys(\"{LEFT}{LEFT}{LEFT}{LEFT}{BACKSPACE}_v8{TAB}{DOWN}{DOWN}{ENTER}{ENTER}y\")\n" script += "WScript.Sleep(1000)\n" script += "WshShell.SendKeys(\" \")\n" script += "Set WshShell = Nothing\n" begin;File.delete(script_file);rescue;end File.open(script_file, "w"){|f| f.puts(script) } UI.openURL("file;///"+script_file) end end UI.menu("File").add_item("Save_As Previous Version") { JF.save_as_previous_version() }
PC only, and change '_v8' to '_Jack_v8' as desired...
-
TIG
Works great. This plugin will save my boss from the "white screen of death" he gets when I send the models forgetting to save in V8.
Thank you for your time and knowledge.
Ken
-
Fantastic plugin! Since I begin using the 2013 version, I,m always annoyed with this same thing.
But I find that if I have mcafee in my system, the .vbs in the TEMP folder will be blocked, is there a safe folder can be used for the vbs, such as the sketchup folder? That will be better~ -
You'll have limited permissions to any folders within the Programs Files tree too !
So Macafee blocking is likely there too...
[ You should have reset the SketchUp Plugins folder to have FULL read/write, BUT even then Macafee might block ! ]
The user's TEMP folder should have FULL permissions by default.
If Macafee blocks it, then isn't it easier to teach it to allow it !
There are several tools doing things like this [like the SketchUcation Archive Installer for ZIP files or when using custom-plugins folders to AutoINstall...] so you'll have continuing problems unless you put your foot down.
Don't let your virus-app dictate to you - show it who's boss... -
Hi Jim,
I can't seem to find a download link to this plugin anywhere... Is it still available?
Sandy
-
could it always save as one version, such as 13 or 8 @2014?
like a switch, could be fixed -
@sstuchfield said:
Hi Jim,
I can't seem to find a download link to this plugin anywhere... Is it still available?
Sandy
I took it down to work on it, but looks like I never got it re-posted.
@unclex said:
could it always save as one version, such as 13 or 8 @2014?
like a switch, could be fixedMy current version uses a sub-menu to list all available back versions - so you could set a shortcut key to your preferred version. I may also add an option to set the default version.
I will update in the next few days.
-
Really useful!
-
I think the name "Save As Previous" does not accurately convey my original purpose of this plugin. Rather than "Save", I think "Export As Version" would be more accurate. Exporting implies the desire to keep the original file unchanged while creating a new file at the selected SU version. Perhaps the new file would have a version hint in in the file name.
So the workflow is:
- Editing a model named "Jones_Residence" in the most recent version of SketchUp.
- Ready to send changes to person or application that can only use SU version 8 files.
- Activate shortcut to "Export model as Version 8."
- A new model is exported as "Jones_Residence_su8" in the same folder as original. Original model is unmodified both in SketchUp and on disc.
- Send v8 file.
- Repeat.
Sound about right?
Advertisement