[Plugin] Recall last tool v1.2
-
The following seems to work, and you can add to the exceptions hash when you find 'em.
Hope this helps some...
# Supports Organizer.rb =begin Copyright 2009, Matt All Rights Reserved THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. License; Free Author; Matthieu NOBLET Organization; Matt Name; Recall_lst_tool Version; 1.0 SU Version; 6 and 7 Date; 17/02/2009 Description; Recall last tool used Usage; If you want to have a shortcut, please try with native Sketchup shortcuts... History; 1.000 17/02/2009 First version 1.100 17/02/2009 Global variables replaced by Class variables =end require 'sketchup.rb' class Matt_Observer < Sketchup;;ToolsObserver def initialize @ToolExceptionsHash = { # observerName send_actionName "FOVTool", "FieldOfViewTool", "SketchCSTool", "AxisTool", "SketchTool", "LineTool", "PolyTool", "PolygonTool" } end @@Matt_Model_Toolid = nil @@Matt_Model_Toolid2 = nil def onActiveToolChanged (tools_object, toolname, toolid) print tools_object, " ", toolname, " ", toolid, "\n" tname = toolname; @@Matt_Model_Toolid = @@Matt_Model_Toolid2 if @@Matt_Model_Toolid2 # remove "Camera" prefix reported by ToolObserver" @@Matt_Model_Toolid2 = (tname[0,6]="" if (tname[0,6] == "Camera")); tname = @ToolExceptionsHash.fetch(tname, tname); @@Matt_Model_Toolid2 = "select#{tname};"; puts "1; #{@@Matt_Model_Toolid} 2; #{@@Matt_Model_Toolid2}" end def self.recall_last puts "sending action #{@@Matt_Model_Toolid}" if @@Matt_Model_Toolid return Sketchup.send_action(@@Matt_Model_Toolid) if @@Matt_Model_Toolid return Sketchup.send_action("selectSelectionTool;") end end unless file_loaded?(__FILE__) file_loaded(__FILE__) Sketchup.active_model.tools.add_observer(Matt_Observer.new) $submenu ? (organizer = $submenu) ; (organizer = UI.menu("Plugins")) organizer.add_item("Recall last tool"){ Matt_Observer.recall_last } end
-
Hi pecan!
Sorry, I didn"t test your plugin, but I think it doesn't work with plugins. So Non native tools...
I will test it! Thank you for that Pecan! -
Hi Pecan! Your method does not work with ruby tools, as expected...
A new version has been posted in the first post. It fixes a bug found by Simon Le Bon. Thank you Simon! -
Hi Matt,
Hip Hip! I've just installed your plug v 1.2 and it seems working very well (all tools are seemingly supported)! So cool!!
It's too young to see if it remain operative on duration, but i believe this is now fixed.Many thanks for that tool dear Matt
I take it!
simon.
-
@matt666 said:
Sorry Edson, and all mac users. But I can't do anything with this bug. Function 'send_action' doesn't accept integers (so tool IDs) on Mac.
would the last update make it usable in macs?
-
@unknownuser said:
I take it!
@unknownuser said:
would the last update make it usable in macs?
... Dear Edson... I'm so sorry! You (and all Mac users!)have some problems with many of my scripts... Included this one...
I can't be usable in mac. Mac has a bug with main function used in this script:Sketchup.send_action(ToolID)
. And I can't do anything.
Sorry again Edson... -
matt,
no problem. several other plugins you created work without problems. let's hope this bug gets solved in the future.
-
great plugin, Matthieu.
just a thought: does it make sense to have a similar tool go through several previously used tools when pressing the shortcut key repeatedly?
-
Hi plot_paris!
That's a good idea... I will give a try! I think we may go through 10 previously used tools, and may undo history (retrun to the last tool used) by activating selection tool.
-
Hey, I was just thinking about a plugin that would cycle through tools on repeated pressing of a button.
So assign it to the spacebar. Hit the spacebar once and its select. Twice it move, 3 is rotate. But I quickly decided against the silly plugin when I started thinking about having to hit the spacebar 26 times to get to "place camera" or something
But in this context, I think it is quite a good idea,
Chris
-
another idea, although probably not managable with ruby, is a much more graphical approach:
when you hold down the space bar, a ring with tool buttons appears around your cursor in a circular fashion. you can now left click any button to get the tool. or you can simply turn the scroll wheel to file through them, either clockwise or counterclockwise. by default the selection tool is highlighted - so if you just press the space bar once, you get the select tool.
you can easily customise this tool-circle by holding down the space bar and then dragging unwanted tools out of the circle and vice versa.
well, maybe Google comes up with soemthing similar in the next release
-
Merci MATT ...
-
Thank you very much, Matt666.
That´s the Plugin i was lookin for.thx a lot
-
I will try to find a solution.
-
Sorry, I don't know how to create a personal observer for controlling mouse events...
-
Neat, I didn't know this yet. Great timesaver when switching to select tool to return to the previously used tool.
-
Merci Matt! Great plugin~
By the way, I come up with an idea, I think maybe it's useful!I use the shortcut“shift+Y” to recall the last tool. When I use this plugin, a situation like this will happen:
first I use the "Edge follow me" tool to build a face,
then I move it to another place, and use move and scale to modify the curves,
then I want to do "Edge follow me" againso the idea comes:------this tool have a function: ignore the move, scale, rotate, line, arc, rectangle, circle...(because they are so useful and they have shortcuts), but recall edge follow me, blend, extrapolate colors...(you must find it in a submenu).
On my bad English... hope you get my meaning... -
Hi mirale999!
So you want RLT ignores some native tools you would be able to choose? Do you agree with this "way of explanation" (I dont know how to tell it in english )?
I don't know if it's possible... But I can try. -
Just an FYI for any Mac users. Pecan's version above with the "exceptions" list works fine for me in SU 8.0. I use it with BetterTouchTool and a Magic Trackpad:
- Three Finger TipTap Left: Orbit (O)
- 3 Finger Tip Tap Right: Recall Last Tool (which I have as F2)
- Pinch Out: Zoom Extents (I have as Shift-Z)
This plugin, with Lion's native three finger dragging make using SU with the trackpad much more enjoyable. Here's how I use it:
- Two finger "scroll": zooms in and out
- 3 Finger move: same as click and drag for selection
- Tip Tap Left (drop two fingers and tap another to the left): switch to orbit tool
- Tip Tap Right: switch back to whichever tool I'm in the middle of using
- Get Lost? Pinch to Zoom Out
Thanks to the plugin's authors!
-
Hi Matt. Recall command of autocad is good too. Can you do other 'last tool recall' version like autocad with using only a space bar? Thanks Matt.
Advertisement