(defun LoadReactor ( / ReactorName found) (vl-load-com) (setq ReactorName "Mouse") (foreach ReactorGroup (vlr-Reactors) (if (eq (car ReactorGroup) ':VLR-Mouse-Reactor) (progn (foreach Reactor (cdr ReactorGroup) (if (eq (VLR-data Reactor) ReactorName) (setq found (cons 'T Found)) (setq found (cons 'nil Found)) ) ) ) ) ) (if (not (apply 'or found ) ) (progn (VLR-Mouse-Reactor ReactorName '((:vlr-beginDoubleClick . RE:DBL-Click)) ) (princ "Reactor loaded") ) (princ "Reactor allready loaded") ) (princ) ) (LoadReactor) ;############################################################################################### (defun RE:DBL-Click (ReactorObj DBL_ClickPoint / 3Dpoint Ent escape-Dialogs UserIN) ;SUB - Load Reactor and CallBack ;////////////////////////////////////////////////////////////////////////////// (defun escape-Dialogs (escape / escape ReactorCallBack) (if escape (progn ;--------------------------------------------- (setq ReactorCallBack (read "temporaryCMD-Reactor")) ;--------------------------------------------- ;Set Command-Reactor ;--------------------------------------------- (vlr-command-reactor nil (list (cons ':vlr-commandwillstart ReactorCallBack ) ) ) ;--------------------------------------------- ;Set CallBack-Function from Template ;--------------------------------------------- (eval (cons 'defun (append (cons ReactorCallBack '((Reactor Data / Reactor Data DT:SENDKEYS Store)) ) (list (list 'setq 'Store (eval ReactorCallBack) ) '(progn ;Fängt Bedit-Diaolg ab ;--------------------------------------------------------------------- (defun DT:SENDKEYS (KEYS / WSCRIPT) (if (setq WSCRIPT (vlax-create-object "WScript.Shell")) (progn (vlax-invoke-method WSCRIPT 'sendkeys KEYS) (vlax-release-object WSCRIPT) ) ) (princ) ) ;--------------------------------------------------------------------- (cond ((wcmatch (vl-princ-to-string (strcase (car Data))) "*BEDIT,*EATTEDIT") (progn (repeat 2 (DT:SENDKEYS "{ESC}")) ) ) ('T 'nil) ;<<-------------- ADD new here ) (vlr-remove reactor) ) (list 'setq ReactorCallBack 'Store ) ) ) ) ) ) ) ;--------------------------------------------- ) ;////////////////////////////////////////////////////////////////////////////// ;MAIN ;************************************************************************************************** (setq 3Dpoint (car DBL_ClickPoint)) (if (cond ( (eq (type (setq Ent (caar (reverse (nentselp 3Dpoint))))) 'ename) 'T ) ( (eq (type (setq Ent (car (nentselp 3Dpoint)))) 'ename) 'T ) ; !!! Maybe there are more contidions wich results in a ename ('T 'nil) ) (progn ;to DO ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% (if (= (vla-get-objectname (setq ent (vlax-Ename->VLA-Object ent))) "AcDbBlockReference") (progn (escape-Dialogs 'T) (alert "a Block") ) ) ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ) ) ) ;############################################################################################### (princ "\n*** V01 ***") (princ)