;| TBOX.lsp draws a box around selected text based on a user defined offset factor.
Written and Tested in R2000.
Version 1.2 - by Tippit CADD Services
Version 1.3 - by pd
------------------------------------------------------------------------
------------------------------------------------------------------------
Created by J. Tippit, SPAUG President
E-mail: jefft@wilkersonproperties.com
Web Site: http://www.spaug.org
------------------------------------------------------------------------
------------------------------------------------------------------------
Revisions:
1.0 Originally created ?
1.1 Added scale factor prompt & entity verification 10/21/99
1.2 Added MTEXT support, osmode handling, error trapping 11/26/99
1.3 Added MTEXT angle-support, replacement scale with offset 12/29/00
|;
;----------------------------------------------------------------------
; Error Handler
;----------------------------------------------------------------------
(defun tboxerr (s)
(if (not (member s '("console break" "Function cancelled")))
(princ (strcat "\nError: " s "\nResetting Variables."))
)
(setvar "osmode" OSM)
(command "._undo" "e")
(setvar "cmdecho" 1)
(setq *error* tboxolderr)
(princ)
)
;----------------------------------------------------------------------
; Main Program
;----------------------------------------------------------------------
(defun C:TBOX ( / E1 TB LL UR UL LR EL PT APT WDT HGT PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9)
(setq tboxolderr *error* *error* tboxerr)
(setvar "cmdecho" 0)
(command "._undo" "be")
(setq OSM (getvar "osmode"))
(setvar "osmode" 0)
(setq TE nil)
(while (not TE)
(progn
(setq TE (car (entsel "\nSelect Text or MText: ")))
(if TE
(progn
(setq E1 (entget TE))
(if (= (cdr (assoc 0 E1)) "TEXT")
(progn
(if (or (= SF nil)(= SF ""))(setq SF "1.5"))
(setq SF "0.12")
(setq SF2 SF)
(if (or (= SF nil)(= SF ""))(setq SF SF2))
(command "ucs" "Entity" TE)
(setq TB (textbox (list (cons -1 TE)))
LL (car TB)
UR (cadr TB)
UL (list (car LL) (cadr UR))
LR (list (car UR) (cadr LL))
)
(command "._pline" LL LR UR UL "c")
(setq EL (entlast))
(setq PT (list (+ (car UL) 1000) (+ (cadr UL) 1000)))
(command "._offset" SF EL PT "")
(entdel EL)
(command "ucs" "w")
)
(progn
(if (= (cdr (assoc 0 E1)) "MTEXT")
(progn
(if (or (= SF nil)(= SF ""))(setq SF "1.5"))
(setq SF "0.12")
(setq SF2 SF)
(if (or (= SF nil)(= SF ""))(setq SF SF2))
(setq APT (cdr (assoc 71 E1))) ; attachment point
(setq WDT (cdr (assoc 42 E1))) ; width
(setq HGT (cdr (assoc 43 E1))) ; height
(setq PT7 (cdr (assoc 10 E1))) ; insertion point
(setq PT9 (list (+ (car PT7) WDT) (cadr PT7) (caddr PT7)))
(setq PT3 (list (car PT9) (+ (cadr PT9) HGT) (caddr PT9)))
(setq PT1 (list (car PT7) (+ (cadr PT7) HGT) (caddr PT7)))
(command "._pline" PT7 PT9 PT3 PT1 "c")
(setq EL (entlast))
(command "._move" EL "" PT1 PT7)
(command "._rotate" "last" "" (list (car pt7)(cadr pt7))(/(*(cdr (assoc 50 E1))180)pi))
(command "._offset" SF EL PT7 "")
(entdel EL)
)
(progn
(setq TE nil)
(prompt "\nSelected object is not TEXT or MTEXT. Try again. ")
)
)
)
)
)
(prompt "\nMissed. Try again.")
)
)
)
(command "._erase" EL "")
(if (= (cdr (assoc 0 E1)) "TEXT")(command "ucs" "w"))
(redraw)
(setvar "osmode" OSM)
(command "_undo" "e")
(setvar "cmdecho" 1)
(setq *error* tboxolderr)
(princ)
)
(prompt (strcat "\nCopyright \251 TCS 1999 Version 1.3 - Text Box Routine loaded."))
(prompt "\nType TBOX to execute.")
(princ)
Written and Tested in R2000.
Version 1.2 - by Tippit CADD Services
Version 1.3 - by pd
------------------------------------------------------------------------
------------------------------------------------------------------------
Created by J. Tippit, SPAUG President
E-mail: jefft@wilkersonproperties.com
Web Site: http://www.spaug.org
------------------------------------------------------------------------
------------------------------------------------------------------------
Revisions:
1.0 Originally created ?
1.1 Added scale factor prompt & entity verification 10/21/99
1.2 Added MTEXT support, osmode handling, error trapping 11/26/99
1.3 Added MTEXT angle-support, replacement scale with offset 12/29/00
|;
;----------------------------------------------------------------------
; Error Handler
;----------------------------------------------------------------------
(defun tboxerr (s)
(if (not (member s '("console break" "Function cancelled")))
(princ (strcat "\nError: " s "\nResetting Variables."))
)
(setvar "osmode" OSM)
(command "._undo" "e")
(setvar "cmdecho" 1)
(setq *error* tboxolderr)
(princ)
)
;----------------------------------------------------------------------
; Main Program
;----------------------------------------------------------------------
(defun C:TBOX ( / E1 TB LL UR UL LR EL PT APT WDT HGT PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9)
(setq tboxolderr *error* *error* tboxerr)
(setvar "cmdecho" 0)
(command "._undo" "be")
(setq OSM (getvar "osmode"))
(setvar "osmode" 0)
(setq TE nil)
(while (not TE)
(progn
(setq TE (car (entsel "\nSelect Text or MText: ")))
(if TE
(progn
(setq E1 (entget TE))
(if (= (cdr (assoc 0 E1)) "TEXT")
(progn
(if (or (= SF nil)(= SF ""))(setq SF "1.5"))
(setq SF "0.12")
(setq SF2 SF)
(if (or (= SF nil)(= SF ""))(setq SF SF2))
(command "ucs" "Entity" TE)
(setq TB (textbox (list (cons -1 TE)))
LL (car TB)
UR (cadr TB)
UL (list (car LL) (cadr UR))
LR (list (car UR) (cadr LL))
)
(command "._pline" LL LR UR UL "c")
(setq EL (entlast))
(setq PT (list (+ (car UL) 1000) (+ (cadr UL) 1000)))
(command "._offset" SF EL PT "")
(entdel EL)
(command "ucs" "w")
)
(progn
(if (= (cdr (assoc 0 E1)) "MTEXT")
(progn
(if (or (= SF nil)(= SF ""))(setq SF "1.5"))
(setq SF "0.12")
(setq SF2 SF)
(if (or (= SF nil)(= SF ""))(setq SF SF2))
(setq APT (cdr (assoc 71 E1))) ; attachment point
(setq WDT (cdr (assoc 42 E1))) ; width
(setq HGT (cdr (assoc 43 E1))) ; height
(setq PT7 (cdr (assoc 10 E1))) ; insertion point
(setq PT9 (list (+ (car PT7) WDT) (cadr PT7) (caddr PT7)))
(setq PT3 (list (car PT9) (+ (cadr PT9) HGT) (caddr PT9)))
(setq PT1 (list (car PT7) (+ (cadr PT7) HGT) (caddr PT7)))
(command "._pline" PT7 PT9 PT3 PT1 "c")
(setq EL (entlast))
(command "._move" EL "" PT1 PT7)
(command "._rotate" "last" "" (list (car pt7)(cadr pt7))(/(*(cdr (assoc 50 E1))180)pi))
(command "._offset" SF EL PT7 "")
(entdel EL)
)
(progn
(setq TE nil)
(prompt "\nSelected object is not TEXT or MTEXT. Try again. ")
)
)
)
)
)
(prompt "\nMissed. Try again.")
)
)
)
(command "._erase" EL "")
(if (= (cdr (assoc 0 E1)) "TEXT")(command "ucs" "w"))
(redraw)
(setvar "osmode" OSM)
(command "_undo" "e")
(setvar "cmdecho" 1)
(setq *error* tboxolderr)
(princ)
)
(prompt (strcat "\nCopyright \251 TCS 1999 Version 1.3 - Text Box Routine loaded."))
(prompt "\nType TBOX to execute.")
(princ)
No comments:
Post a Comment