sexta-feira, 12 de junho de 2015

Ferramenta Balão de Chamada - AutoCAD (AutoLISP)



Atualmente não temos uma ferramenta no AutoCAD que cria Balão de Chamada, portanto, utilizando- se do conhecimento em AutoLISP podemos criar essa ferramenta.
Segue abaixo o código da ferramenta Balão:


(defun c:balao ()
 (setq status_usuario  (getvar "cmdecho"))                             ; Guarda o Status do Usuário
   (setvar "cmdecho" 0)                                    ; Configura o Eco do Comando para 0 (não exibir)
   (setq EscalaGeral   (getvar "dimscale"))                            ; Guarda a Escala de Cotas que o Usuário está Usando
 (setq raio      (* 3.5 EscalaGeral)                             ; Calcula o Raio que o Balão irá ter
       tamanho_texto   (* 2.8 EscalaGeral)                             ; Calcula o Tamanho do Texto
       pti_balao    (getpoint "\nEspecifique o Ponto Central do Balão de Chamada...: ")             ; Solicita ao Usuário o Centro do Circulo do Balão
       origem_chamada  (getpoint "\nEspecifique a Origem do Balão de Chamada...: ")               ; Solicita ao Usuário a Origem do Balão de Chamada
       angulo     (angle pti_balao origem_chamada)                        ; Calcula o Angulo em Radianos
   condicao_angulo (if (<= angulo pi)
           (/ pi 2)
           (* pi 1.5)
         )                                   ; Faz análise do Angulo
       linha_invisivel  (polar pti_balao condicao_angulo raio)                      ; Faz a projeção do sentido da linha
       linha_reta    (polar linha_invisivel condicao_angulo (* 5 EscalaGeral))                ; Inicia a linha de chamada com base na análise do Angulo
       numero_legenda  (getstring "\nNúmero da Legenda...:")                       ; Solicita ao Usuário o número a ser inserido no Balão de Chamada
 )
 (setvar "clayer" "COTAS")                                   ; Aciona a Layer "COTAS"
     (command "_circle" "_non" pti_balao raio "_pline" "_non" linha_invisivel "_non" linha_reta "_non" origem_chamada "")  ; Comando para desenhos do Circulo e Polylines
 (setvar "clayer" "TEXTO-N")                                 ; Aciona a Layer "TEXTO-N"
   (command "_text" "j" "mc" pti_balao tamanho_texto 0 numero_legenda)                  ; Comando para inserção do número
   (setvar "cmdecho" status_usuario)                                ; Retorna o Status do Usuário
(princ)
)                                           ; Fim do Aplicativo

1 comentários :

Postar um comentário