Exportar pontos de polilinhas

Bom, pra mostrar a utilidade das últimas subrotinas que eu postei, vou colocar uma rotina que usa elas... esta rotina exporta para um arquivo de texto a distância em relação ao inicio da linha e a coordenada de cada ponto da mesma, vai ser útil pra que trabalha com topografia, quando precisa gerar aqueles arquivos de coordenadas para a estação total
(defun c:ptsc  (/ ss file tmp ent n qstr str)
  (
tbn:error-init nil)
  (
if (setq ss (ssget ":S" '((0 . "LWPOLYLINE,POLYLINE"))))
    (
if (setq file (getfiled "Salvar coordenaas" "c:/" "txt" 1))
      (
progn
        (setq tmp  (open file "w")
              ent  (ssname ss 0)
              pts  (rmpdup (get-points-polig ent))
              n    0
              qstr (strlen (itoa (length pts))))
        (
foreach x  pts
          (setq str (itoa n))
          (
repeat (- qstr (strlen str))
            (
setq str (strcat "0" str)))
          (
write-line
            (strcat str "\t"
                    (rtos (vlax-curve-getdistatpoint ent x) 2 2)"\t"
                    (rtos (car x) 2 3) "\t"
                    (rtos (cadr x) 2 3) "\t"
                    (rtos (if (caddr x) (caddr x) 0) 2 3))
            tmp)
          (
setq n (1+ n)))
        (
close tmp))))
  (
tbn:error-restore))

basta digitar PTSC na linha de comando... claro que a rotina pode ser adaptada para outras entidades, outros tipos de saída, mas isso fica a cargo de vocês

Nenhum comentário:

Postar um comentário