i.e. I still want it to have its normal behavior while in a command, but when not in a command it still enters the selection mode, which does not help me much, but if it would enter a zoom window command, it might be a more useful command.
Does anyone have any thoughts on how to do this?
Thank you and Happy New Year!!
Solved! Go to Solution.
Solved by Lee_Mac. Go to Solution.
hypersonic wrote:i.e. I still want it to have its normal behavior while in a command, but when not in a command it still enters the selection mode, which does not help me much, but if it would enter a zoom window command, it might be a more useful command.
This is the closest I believe you could get without resorting to a possible .NET solution:
(vl-load-com) (if (null *mouse-reactor*) (setq *mouse-reactor* (vlr-mouse-reactor nil '((:vlr-begindoubleclick . zoomwindow)))) ) (if (null *editor-reactor*) (setq *editor-reactor* (vlr-editor-reactor nil '((:vlr-beginclose . releaseobjects)))) ) (defun zoomwindow ( reactor params / p2 ) (if (and (zerop (getvar 'CMDACTIVE)) (setq p1 (car params)) (setq p2 (getcorner "\nSpecify Opposite Corner: " (trans p1 0 1))) ) (progn (setq *app* (cond (*app*) ((vlax-get-acad-object))) *wsh* (cond (*wsh*) ((vlax-create-object "WScript.Shell"))) ) (vlax-invoke *app* 'zoomwindow p1 (trans p2 1 0)) (vlax-invoke *wsh* 'sendkeys "{ESC}") ) ) (princ) ) (defun releaseobjects ( reactor params ) (if (and *wsh* (eq 'VLA-OBJECT (type *wsh*)) (not (vlax-object-released-p *wsh*))) (vl-catch-all-apply 'vlax-release-object (list *wsh*)) ) (if (and *mouse-reactor* (eq 'VLA-OBJECT (type *mouse-reactor*))) (vlr-remove *mouse-reactor*) ) (vlr-remove reactor) (princ) ) (princ)
The above uses a Mouse Reactor triggered when the user Double-Clicks, and will subsequently prompt for another point to use for a ZoomWindow operation.
That is awesome Lee, can the same thing be done for the right mouse button i.e.. make a double click do a zoom previous?
Thanks
hypersonic wrote:can the same thing be done for the right mouse button i.e.. make a double click do a zoom previous?
No since the Mouse Reactor offers only two Events: BeginDoubleClick and BeginRightClick, so callback functions can only be evaluated following these two actions.
You're welcome hypersonic
Can't find what you're looking for? Ask the community or share your knowledge.