Rodar_Texto.lsp

;;; INÍCIO RODAR_TEXTO.LSP
;;; VER 1.0


;;; J.A.
;;; www.cadtom.com
;;; 2004-01-06

;;; RODAR_TEXTO.LSP - Aplicação para rodar texto com o eixo no ponto intermédio da diagonal

(defun C:ROTXT (/ AERR ADECH AOSMD SSET
SSLEN ANGROT SSTEMP ENTTMP TXTDIA
PTDIAG01 PTDIAG02 PTPIVOT
)

 (command "_undo" "begin")
 (setq AERR *error*
ADECH (getvar "cmdecho")
AOSMD (getvar "OSMODE")
 )
 (setvar "cmdecho" 0)
 (setvar "OSMODE" 0)
 (princ "\n Seleccione textos a rodar \n")
 (setq SSET (ssget '((0 . "TEXT")))
SSLEN (sslength SSET)
 )
 (princ "\n Digite ângulo de rotação: ")
 (setq ANGROT (getreal))
 (terpri)
 (if (> SSLEN 100)
 (princ "\n A rodar...\n")
 )
 ;(command "_ucs" "s" "TempBase")
 (while (> SSLEN 0)
 (setq SSTEMP (ssname SSET (setq SSLEN (1- SSLEN)))
ENTTMP (entget SSTEMP)
TXTDIAG (textbox ENTTMP)
PTDIAG01 (car TXTDIAG)
PTDIAG02 (cadr TXTDIAG)
PTPIVOT (polar PTDIAG01
(angle PTDIAG01 PTDIAG02)
(/ (distance PTDIAG01 PTDIAG02) 2)
)
 )
 ;(command "_ucs" "object" SSTEMP)
 (command "_rotate" SSTEMP "" PTPIVOT ANGROT)
 ) ;while
 ;(command "_ucs" "r" "TempBase")
 ;(command "_ucs" "d" "TempBase")
 (setvar "cmdecho" ADECH)
 (setvar "OSMODE" AOSMD)
 (command "_undo" "end")

)

;;;
;;;
;;;

(defun *error* (msg)

 (setq *error* AERR)
 (setvar "cmdecho" ADECH)
 (setvar "OSMODE" AOSMD)
 (command "_undo" "end")
 (princ (strcat " Aplicação interrompida com erro: " msg))
)
(terpri)
(princ " Inicie aplicação digitando ROTXT ")
(terpri)


;;; FIM RODAR_TEXTO.LSP

Top