[Plugin] Save Copy As Previous Version
-
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?
-
Jim
Is there anyway to add the date, or a version #, such as, ??????_SU8_03_12_14 or ??????SU8_V_01?
That would prevent writing over the file.
Ken
-
@unknownuser said:
s there anyway to add the date, or a version #,
Yes, I will make the format customizable.
-
Hi Jim,
Do you have an estimate of when you will be able to repost it?
Cheers,
Sandy -
Thanks for the reminder. With SU being a hobby for me and not something i do for a living, I tend to spend time on things that interest me at the moment. I will get this plugin updated this weekend.
Advertisement