Alinear Texto
Rutina para alinear texto dependiendo de la inclinacion de una linea...solo seleccionas la linea a la que tu texto quieres que este alineado y listo..
;japmz: ta.lsp Text Align Improved by jaime mendoza
(defun c:TA (/ CE BM OM LT LD ID LS LE AN AD AX AA BB CC)
(setq CE (getvar "CMDECHO"))
(setq BM (getvar "BLIPMODE"))
(setq OM (getvar "OSMODE"))
(defun NE (NE)
(setvar "CMDECHO" CE)
(setvar "BLIPMODE" BM)
(setvar "OSMODE" OM)
(princ "Function cancelled ")
(princ)
)
(setq OE *error* *error* NE)
(setvar "CMDECHO" 0)
(setvar "BLIPMODE" 0)
(setvar "OSMODE" 0)
(while (= LT nil)
(setq LT (entsel "\nSelect line for text alignment: "))
)
(setq LD (entget (car LT))
ID (cdr (assoc 0 LD))
LS (cdr (assoc 10 LD))
LE (cdr (assoc 11 LD))
)
(if (= ID "LINE")
(prompt "\nAngle of selected line is ")
(prompt "\nEntity selected is not a line, try again. ")
)
(if (/= ID "LINE") (quit))
(setq AN (angle LS LE))
(setq AD (* AN 57.2958))
(princ AD) (prompt " degrees.")
(if (and (>= AN (/ pi 2)) (<= AN (* pi 1.5))) (setq AN (- AN pi)))
(setq AX (entsel "\nSelect text for alignment with line: "))
(setq AA (entget (car AX)))
(setq BB (assoc 50 AA))
(setq CC (cons 50 AN))
(entmod (subst CC BB AA))
;;;(command "move" AX "" );;to adjust location of text after rotation
(setvar "BLIPMODE" BM)
(setvar "CMDECHO" CE)
(setvar "OSMODE" OM)
(setq *error* OE OE nil)
(princ)
)
|