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
;;; 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
