Vous êtes sur la page 1sur 3

; DeseCAD Computao Grfica.

;
; Campinas - SP (19) 227-5557
;
; CAD Assistance Center.
;
; Esse programa foi desenvolvido para associado do CAD Assistance Center.
;
; Sua utilidade pblica.
;
;
;
; Aplicativo para insero de texto de comprimneto, ngulo e seta de direo em entidade
;
; selecionada. A entidade dever ser uma reta.
;
; Alterar a 7 e 8 linhas, contando de baixo para cima, o caminho do diretrio aonde
;
; ir ser gravado o desenho "seta_desenho.dwg".
;
; Este bloco inserido no desenho e tem que estar no caminho correto.
;
; Aplicativo desenvolvido no ambiente Visual Lisp, testado no AutoCAD Verso 14 e
2000
;
;
;
;Reviso 0
Data 08/OUT/1999
;
;Reviso 1
Data 13/OUT/1999 - Corrigir ngulo do texto acima da linha
;
(defun c:az2 ()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq NOME_DA_RETA (car (entsel "\nSelecione a reta: "))); primeiro seleciona
a reta.
(setq RETA (entget NOME_DA_RETA)); pega o nome da reta
(setq P10 (cdr (assoc 10 RETA))); ponto inicial
(setq P11 (cdr (assoc 11 RETA))); ponto final
(setq COMPRIMENTO (rtos (distance P10 P11) 2 2)); comprimento da reta selecion
ada.
(if (or (= OPCAO nil) (= OPCAO ""))
(progn
(setq OPCAO (getstring "\nngulo ser mostrado em Rumo ou Azimute <R>:" ))
(if (or (= OPCAO nil) (= OPCAO "")); vai fazer a escolha pela primeira vez
.
(setq OPCAO "R"); Teclou "Enter" e aceitou a opo Rumo.
(setq OPCAO "A"); Teclou "A" e escolheu Azimute
)
)
(progn;j tem alguma coisa dentro da varivel OPCAO
(setq FRASE (strcat "ngulo ser mostrado em Rumo ou Azimute <" OPCAO ">:" ))
(setq OPCAO_NOVA (getstring FRASE))
(if (or (= OPCAO_NOVA nil) (= OPCAO_NOVA ""));se foi digitado alguma coisa
(princ "\nAceitei a opo sugerida.")
(setq OPCAO OPCAO_NOVA);a nova escolha jogada dentro de OPCAO
)
)
)
(if (or (= OPCAO "R") (= OPCAO "r"))

(progn
(setq ANGULO_REAL (angle P10 P11)); ngulo real para RUMO em radianos
(setq ANGULO_TEXTO (angtos ANGULO_REAL 4 3));ngulo convertido para texto no
formato para ser usado na insero do texto de ngulo.
(setq ANGULO_RADIANO (angtof ANGULO_TEXTO 4))
)
(progn
(setq ANGULO_REAL (angle P10 P11)); ngulo em azimute
(setq ANGULO_TEXTO (angtos ANGULO_REAL 1 3))
(setq ANGULO_RADIANO (angtof ANGULO_TEXTO 1))
(setq ANGULO_TEXTO (strcat "AZ=" ANGULO_TEXTO))
)
)
(if (or (= ALTURA_LETRA nil) (= ALTURA_LETRA ""))
(progn
(setq ALTURA_LETRA (getstring "\nAltura da letra <0.2>: " ))
(if (or (= ALTURA_LETRA nil) (= ALTURA_LETRA ""));vai fazer a escolha pela
primeira vez.
(setq ALTURA_LETRA "0.2"); Teclou "Enter" e aceitou a opo 0.2.
(progn)
)
)
(progn;j tem alguma coisa dentro da varivel
(setq FRASE (strcat "Altura da letra <" ALTURA_LETRA ">: " ))
(setq ALTURA_LETRA_NOVA (getstring FRASE))
(if (or (= ALTURA_LETRA_NOVA nil) (= ALTURA_LETRA_NOVA ""));se foi digitad
o alguma coisa
(princ "\nAltura da letra mantida.")
(setq ALTURA_LETRA ALTURA_LETRA_NOVA)
)
)
)
(setq P10X (car P10))
(setq P11X (car P11))
(setq PONTO_TEXTO (polar P10 ANGULO_RADIANO (/ (atof COMPRIMENTO) 2)))
(if (> P10X P11X)
(progn
(setq INCREMENTO_PONTO_TEXTO (polar PONTO_TEXTO (- ANGULO_RADIANO (/ PI 2)
) (/ (atof ALTURA_LETRA) 2)))
(setq TEXTO2 (polar INCREMENTO_PONTO_TEXTO (- ANGULO_RADIANO (/ PI 2)) (*
(atof ALTURA_LETRA) 1.5)))
(setq ANGULO_REAL (- ANGULO_REAL PI))
(setq POSICAO_SETA (polar TEXTO2 (- ANGULO_RADIANO (/ PI 2)) (* (atof ALTU
RA_LETRA) 2.0)))
)
(progn
(setq INCREMENTO_PONTO_TEXTO (polar PONTO_TEXTO (+ ANGULO_RADIANO (/ PI 2)
) (/ (atof ALTURA_LETRA) 2)))
(setq TEXTO2 (polar INCREMENTO_PONTO_TEXTO (+ ANGULO_RADIANO (/ PI 2)) (*
(atof ALTURA_LETRA) 1.5)))
(setq POSICAO_SETA (polar TEXTO2 (+ ANGULO_RADIANO (/ PI 2)) (* (atof ALTU
RA_LETRA) 2.0)))
)
)
(command "text" "j" "center"
INCREMENTO_PONTO_TEXTO (atof ALTURA_LETRA) (/ (* (- (/ PI 2.0) ANGULO

_REAL) 180) PI) (strcat "R=" COMPRIMENTO))


(command "text" "j" "center"
TEXTO2 (atof ALTURA_LETRA) (/ (* (- (/ PI
ANGULO_TEXTO)
(if (> P10X P11X)
(progn (command "insert" "c:\\blocos\\seta2.dwg"
" (/ (* (- (- (/ PI 2.0) ANGULO_REAL) PI) 180) PI)))
(progn (command "insert" "c:\\blocos\\seta2.dwg"
" (/ (* (- (/ PI 2.0) ANGULO_REAL) 180) PI)))
;
^^ preciso mudar esse caminho
)
(setvar "cmdecho" 1)
(princ)
)
(prompt "Aplicativo carregado com sucesso. Digite AZ

2.0) ANGULO_REAL) 180) PI)


POSICAO_SETA ALTURA_LETRA "
POSICAO_SETA ALTURA_LETRA "
de diretrio. ^^

para utiliz-lo.")