;;;C:EDT - s.weidemann revision 88.10.18 - Original version Courtesy of Cadence, August 1988 ;;; EDT.LSP ;;; s.weidemann ;;; revision 88.10.18 - Original version ;;; Courtesy of Cadence, August 1988 ;;; ;;; AutoCAD text editor ;;; ;;; Key Definitions ;;; F2 - Rotate Ctrl -> ;;; F3 - Move Ctrl <- ;;; F4 - Copy Delete ;;; F5 - New Ht. Insert (press twice to toggle) ;;; Backspace ;;; ;;; ---------------------------------------------------------------- (defun C:EDT ( / Pointer Pb Ins Back Del Text Ht NewHt OldHt Pick Epick Put Col Oldtext En Ip) (setvar "cmdecho" 0) (while (not En) (terpri) (setq En (entget (car (setq Ip (entsel)))) Ip (cadr Ip))) (cond ((= (cdr (assoc 0 En)) "INSERT") (command "ddatte" Ip) ) ((= (cdr (assoc 0 En)) "TEXT") (setq Back '(setq Text (strcat (substr Text (if (= Col 1) 2 1) (if (= Col 1)(1- (strlen Text))(- Col 2) )) (if (= Col 1) "" (substr Text Col)))) Del '(setq Text (strcat (substr Text (if (= Col 1) 2 1) (if (= Col 1)(1- (strlen Text))(1- Col) )) (if (= Col 1) "" (substr Text (1+ Col))))) Put '(setq Text (if (= Col 1) (strcat (chr Pick)(substr Text (if (= Ins 1) 1 2))) (strcat (substr Text 1 (1- Col))(chr Pick) (substr Text (if (= Ins 1) Col (1+ Col)))))) Ht '(progn (setq En (subst (cons 40 (if (= nil (setq NewHt (getdist (cdr (assoc 10 En)) (strcat "\nNew Height <" (rtos (setq OldHt (cdr (assoc 40 En))) 2 2) "> : \n")))) OldHt NewHt))(assoc 40 En) En))(entmod en)) Col 1 pick 0 Ins 0 tpick '(1) OldText (setq Text (cdr (assoc 1 En))) OldEn En) (while (and (/= 13 Pick)(/= 27 Pick)) (redraw (cdr (assoc -1 En)) 3) (princ (strcat "\n" (if (= 1 Ins) "Insert" "Replace") " Mode\n")) (princ Text)(terpri) (princ (strcat (if (= Col 1) "" (repeat (1- Col) (setq Pointer (strcat (if Pointer Pointer "") " ")))) "^")) (while (not (member (car Tpick) '(2 3 4 6))) (setq Pick (if (= 4 (car (setq Tpick (grread)))) 300 (cadr Tpick))) (if (or (= Pick 188)(= Pick 189)(= Pick 190))(progn (setq Pb (getvar "pickbox")) (command (cond ((= Pick 188) "rotate") ; determine command ((= Pick 189) "move") ((= Pick 190) "copy")) (cdr (assoc -1 En)) "" ; select objects (cdr (assoc (if (= 0 (cdr (assoc 72 En))) 10 11) En));basept pause ); command (setvar "pickbox" 10) (setq En (entget (ssname (ssget (if (= Pick 188) Ip (setq Ip (getvar "lastpoint")))) 0))) (setvar "pickbox" Pb) )); if progn ); while (setq Pointer nil Tpick nil) (setq Col (cond ((= Pick 243) (max 1 (1- Col))) ; <- key ((= Pick 8) (eval Back)(max 1 (1- Col))) ; backspace ((= Pick 244) (min (1+ Col)(1+ (strlen Text)))) ; -> key ((= Pick 211) (eval Del) Col) ; delete ((= Pick 191) (eval Ht) Col) ; new height ((and (< Pick 127)(> Pick 31)) ; ASCII keystroke (eval Put)(min (1+ Col)(1+ (strlen Text)))) ((= Pick 27) (setq Text OldText En OldEn) Col) ; escape ((and (= (type Pick) 'LIST)(not (null (ssget Pick)))) ;txpk (setq Epick (entget (ssname (ssget Pick) 0)) Text (cdr (assoc 1 Epick)) Pick 13) Col) ((= Pick 300) (setq Ins (abs (1- Ins))) Col) ; Insert toggle ((= Pick 0) (setq Pick 13) Col) ; buttons return (t Col) ) ); cond setq ); while (setq En (subst (cons 1 Text)(assoc 1 En) En)) (entmod En) (princ) ) );cond text (t (prompt "\nInvalid Entity Selection... ")(terpri)) ); opening cond (C:EDT)