Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

LINHA AUTOMÁTICA EM PONTOS

Dúvidas sobre o AutoCAD...

Moderador: Moderadores

Responder
Kelly Camilo
Novato
Novato
Mensagens: 1
Registrado em: Seg 25 Mar 2019 2:30:37 pm

LINHA AUTOMÁTICA EM PONTOS

Mensagem por Kelly Camilo » Seg 25 Mar 2019 3:09:17 pm

Boa Tarde.

Alguém conhece alguma LISP que ao digitar o numero do ponto inicial e o próximo ponto, em seguida uma linha é desenhada automaticamente?
Tipo o comando PLINHA do TopoGRAPH?

Espero que alguém deste grupo conheça
Obrigado.

Avatar do usuário
Carlos Fernando
Papel
Papel
Mensagens: 10
Registrado em: Sex 29 Dez 2017 4:17:25 pm

Re: LINHA AUTOMÁTICA EM PONTOS

Mensagem por Carlos Fernando » Sáb 30 Mar 2019 8:56:53 pm

Oi

Não compreendi exatamente o que vc deseja, os pontos seriam criados no autocad manualmente ou
importados via TopoGRAPH? Nunca trabalhei no TopoGRAPH e não conheço seus comandos, porem assistindo a um
video no youtube sobre esse assunto tentei emular esse comando ou "algo parecido" para o autocad. Ve se isso é o que vc procurava.

Mas tem certeza que não bastava ir criando suas linhas usando a polilinha do autocad?!

Link do video: https://www.youtube.com/watch?v=fFQtpqZ_Lv4

Abraço.

Código: Selecionar todos

;Função para criar pontos numerados
;Notas: - somente são aceitos números inteiros como numeração
(defun c:dpt (/ el nome pt val x y z)
    (setq x(getreal "\nDigite o valor de x:")
          y(getreal "\nDigite o valor de y:"))
    (setq z(getreal "\nDigite o valor de z:"))
          (if (not z) (setq z 0))
          (setq pt (list x y z))
    (command "_point" pt)
    (setq nome (getint "\nDigite o número do ponto:"))
    (regapp "ponto")
    (setq el (entget(entlast)))
    (setq val(cons "ponto" (list (cons 1000 (itoa nome)))))
    (setq el (append el(list(cons -3(list val)))))
    (entmod el)
(command "_text" pt (getvar "textsize") 0 nome "")
    (princ)
)


;Função para ligar os pontos iniciais e finais criados pela função dpt
(defun c:lpt (/ i l osmode ptf pti sel v vmax vmin)
    (setq pti (getint"\nDigite o número do ponto inicial:")
          ptf (getint "\nDigite o número do ponto final:")
          vmin (min pti ptf)
          vmax (max pti ptf)
          sel (ssget "_x" '((-3 ("ponto"))))
          l (list)
          i 0)    
    (repeat (sslength sel)
       (setq v (cdr(car(cdr(car(cdr(assoc -3 (entget(ssname sel i)(list "ponto")))))))))
        (if (and (>= (atoi v) vmin)(<= (atoi v) vmax))
            (setq l (append l (list(cdr(assoc 10(entget(ssname sel i)))))))
            )
        (setq i (1+ i))
        )
    (setq osmode (getvar "osmode"))
    (setvar "osmode" 0)
    (command "_pline")
    (foreach x l
        (command x)
        )
    (command "")
    (setvar "osmode" osmode)
    (princ)
    )

Responder