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