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

2 comentários:

  1. existe alguma forma de baixar esse lisp

    ResponderExcluir
    Respostas
    1. basta copiar e colar no bloco de notas.
      mas note: tem clicar e copiar também:
      http://tbn2.blogspot.com/2006/11/remover-pontos-duplicados-de-listas.html
      http://tbn2.blogspot.com/2006/11/get-points-polig.html
      http://tbn2.blogspot.com/2006/10/avaliao-de-erros.html

      Excluir