Pesquisar este blog

terça-feira, 23 de outubro de 2012

convertendo coordenadas de notação científica para texto


Convertendo Coordenadas de lista "entity list" (notação científica) para texto (string)


Boa noite

     Hoje vou atender a duas solicitações de um leitor de uma vez só: 1°) ao captar a(s) coordenadas de um objeto, como faço para processá-las?; 2° como convertê-las de notação científica, que é a notação corrente das entity lists do Cad, para um formato manipulável (exemplo: formato texto). Para isso, vou lhes passar uma função que criei, bem útil, que se chama "converte_utm_list-string".    


;converte um valor de utm bruto (em formato lista entity list, notação científica, para texto string
(defun converte_utm_list-string (utmbruta;utmbruta deve ser um parâmetro coordenada extraída através de entity list (assoc dxf 10 ou 11)

   (setq coordenada_X (car utmbruta)) ;decomposição em "x" de utmbruta 
   (setq coordenada_X (rtos coordenada_X 2 4))  ;conversão para texto  
   (if (/= (strlen coordenada_X) 11) ;validação último caracter da coordenada   
      (setq  coordenada_X (strcat coordenada_X "0")) ;tratamento técnico do arredondamento
   )  
   (setq coordenada_Y (car (cdr utmbruta))) ;decomposição em "y" de utmbruta 
   (setq coordenada_Y (rtos coordenada_Y 2 4)) ;vale tudo o visto para "x"
   (if (/= (strlen coordenada_Y) 12)
      (setq  coordenada_Y (strcat coordenada_Y "0"))
   )  
   (setq utmstring (strcat coordenada_X ", " coordenada_Y)) ;formação de string para coordenada (lay-out flexível)
   utmstring   ;retorno da coordenada em formato texto.
)


Exemplo de uso: Supondo que "utmbruta" já tenha seu valor extraído de um objeto, e no mesmo já feito o "car" para exclusão do campo chave do par associado, e a variável já carregada:

      utmbruta = (10 222344.0   7.56463e+006    0.0)  

      utmlapidada = (converte_utm_list-string (utmbruta))

      utmlapidada = 222344.0236 7564632.0356
      
Valeu, abraço.

Nenhum comentário:

Postar um comentário