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/

Lisp plotar coordenadas no AutoCad.

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Responder
Lucelio
Novato
Novato
Mensagens: 2
Registrado em: Qui 26 Dez 2019 9:14:26 pm

Lisp plotar coordenadas no AutoCad.

Mensagem por Lucelio » Qui 26 Dez 2019 9:31:41 pm

Boa Noite pessoal, sou novo aqui no forum e preciso da opinião de vocês a respeito desta Lisp abaixo. Já faz um tempo que uso ela para plotar no AutoCAd as coordenadas dos pontos clicados. Recentemente instalei a versão 2020 do Auto Cad e a Lisp não funcionou nesta versão. Alguém poderia me ajudar a identificar qual seria o problema?

Código: Selecionar todos

(Defun c:xy (/ coratu osmatu pto pto1 ptx stx pty sty p2 p3 p4 tamx tamy tam tex tey)
(command "layer" "n" "Coordenadas" "")
(repeat 500
(setq casas 0) 
(Setq casasatu (Getvar "luprec"))
(setvar "luprec" casas)
(Setq coratu (Getvar "cecolor"))
(Setq osmatu (Getvar "osmode"))
(setq ANGBASEATU (getvar "ANGBASE"))
(SETVAR "ANGBASE" 0)
(setq ANGDIRATU (getvar "ANGDIR"))
(SETVAR "ANGDIR" 0)
(setvar "osmode" 16383)
(setq pto  (getpoint "\nSELECIONE O PONTO: "))
(setq pto1 (getpoint pto "\nSELECIONE O PONTO DE CHAMADA: "))
(Setq ptx (car pto))
(Setq stx (rtos ptx))
(Setq pty (cadr pto))
(Setq sty (rtos pty))
(setq tamtxt 5.0)
(If (<= (Car pto) (Car pto1))
(Progn
(Setq p2 (list (+ (car pto1) (* (- 28.0 (- 13 casas)) (/ tamtxt 2.03))) (cadr pto1) (caddr pto1)))
(Setq p3 (list (+ (car pto1) (/ tamtxt 2.03)) (+ (cadr pto1) (* 1.0 (/ tamtxt 2.03))) (caddr pto1)))
(Setq p4 (list (+ (car pto1) (/ tamtxt 2.03)) (- (cadr pto1) (* 3.0 (/ tamtxt 2.03))) (caddr pto1)))
)
(Progn
(Setq p2 (list (- (car pto1) (* (- 28.0 (- 13 casas)) (/ tamtxt 2.03))) (cadr pto1) (caddr pto1)))
(Setq p3 (list (+ (car p2) (* (/ tamtxt 2.03) 0.7)) (+ (cadr p2) (* 1.0 (/ tamtxt 2.03))) (caddr p2)))
(Setq p4 (list (+ (car p2) (* (/ tamtxt 2.03) 0.7)) (- (cadr p2) (* 3.0 (/ tamtxt 2.03))) (caddr p2)))
)
)
(Setq tamx (Strlen stx))
(Setq tamy (Strlen sty))
(If (< tamx tamy)
(Setq tam tamy)
(Setq tam tamx)
)
(Setq tex (Strcat "Y=" sty))
(Setq tey (Strcat "X=" stx))
(Command "COLOR" "7")
(Command "OSMODE" "0")
(Command "TEXT" p4 tamtxt "0" tex)
(command "chprop" "l" "" "la" "Coordenadas" "")
(Command "TEXT" p3 tamtxt "0" tey)
(command "chprop" "l" "" "la" "Coordenadas" "")
(Command "PLINE" pto pto1 p2 "")
(command "chprop" "l" "" "la" "Coordenadas" "")
(Command "COLOR" coratu)
(Command "OSMODE" osmatu)
(Command "luprec" casasatu)
(setvar "ANGBASE" ANGBASEATU)
(setvar "ANGDIR" ANGDIRATU)
(setvar "osmode" 16383)
(print "FIM")(print)
)
)

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

Re: Lisp plotar coordenadas no AutoCad.

Mensagem por Carlos Fernando » Sex 27 Dez 2019 10:22:42 am

Bom dia
Qual o idioma do cad 2020 vc instalou?Ingles ou portugues?
Vc pode especificar o q acontece quando vc tenta executar a lisp?
Por exemplo:
-aparece uma mensagem como "comando deconhecido"
-a execução para em um determinado comando e não prossegue ,etc...

Não consigo imaginar outro problema senão a mudança da linguagem,
nesse caso é só colocar o ._ antes dos comandos e _ antes das suas opçoes internas.
Veja se resolve

Código: Selecionar todos

(Defun c:xy (/ coratu osmatu pto pto1 ptx stx pty sty p2 p3 p4 tamx tamy tam tex tey)
(command "_.layer" "_n" "Coordenadas" "")
(repeat 500
(setq casas 0) 
(Setq casasatu (Getvar "luprec"))
(setvar "luprec" casas)
(Setq coratu (Getvar "cecolor"))
(Setq osmatu (Getvar "osmode"))
(setq ANGBASEATU (getvar "ANGBASE"))
(SETVAR "ANGBASE" 0)
(setq ANGDIRATU (getvar "ANGDIR"))
(SETVAR "ANGDIR" 0)
(setvar "osmode" 16383)
(setq pto  (getpoint "\nSELECIONE O PONTO: "))
(setq pto1 (getpoint pto "\nSELECIONE O PONTO DE CHAMADA: "))
(Setq ptx (car pto))
(Setq stx (rtos ptx))
(Setq pty (cadr pto))
(Setq sty (rtos pty))
(setq tamtxt 5.0)
(If (<= (Car pto) (Car pto1))
(Progn
(Setq p2 (list (+ (car pto1) (* (- 28.0 (- 13 casas)) (/ tamtxt 2.03))) (cadr pto1) (caddr pto1)))
(Setq p3 (list (+ (car pto1) (/ tamtxt 2.03)) (+ (cadr pto1) (* 1.0 (/ tamtxt 2.03))) (caddr pto1)))
(Setq p4 (list (+ (car pto1) (/ tamtxt 2.03)) (- (cadr pto1) (* 3.0 (/ tamtxt 2.03))) (caddr pto1)))
)
(Progn
(Setq p2 (list (- (car pto1) (* (- 28.0 (- 13 casas)) (/ tamtxt 2.03))) (cadr pto1) (caddr pto1)))
(Setq p3 (list (+ (car p2) (* (/ tamtxt 2.03) 0.7)) (+ (cadr p2) (* 1.0 (/ tamtxt 2.03))) (caddr p2)))
(Setq p4 (list (+ (car p2) (* (/ tamtxt 2.03) 0.7)) (- (cadr p2) (* 3.0 (/ tamtxt 2.03))) (caddr p2)))
)
)
(Setq tamx (Strlen stx))
(Setq tamy (Strlen sty))
(If (< tamx tamy)
(Setq tam tamy)
(Setq tam tamx)
)
(Setq tex (Strcat "Y=" sty))
(Setq tey (Strcat "X=" stx))
(Command "_.COLOR" "7")
(Command "_.OSMODE" "0")
(Command "_.TEXT" p4 tamtxt "0" tex)
(command "_.chprop" "_l" "" "_la" "Coordenadas" "")
(Command "_.TEXT" p3 tamtxt "0" tey)
(command "_.chprop" "_l" "" "_la" "Coordenadas" "")
(Command "_.PLINE" pto pto1 p2 "")
(command "_.chprop" "_l" "" "_la" "Coordenadas" "")
(Command "_.COLOR" coratu)
(Command "_.OSMODE" osmatu)
(Command "_.luprec" casasatu)
(setvar "ANGBASE" ANGBASEATU)
(setvar "ANGDIR" ANGDIRATU)
(setvar "osmode" 16383)
(print "FIM")(print)
)
)


Lucelio
Novato
Novato
Mensagens: 2
Registrado em: Qui 26 Dez 2019 9:14:26 pm

Re: Lisp plotar coordenadas no AutoCad.

Mensagem por Lucelio » Dom 05 Jan 2020 1:06:40 pm

Boa tarde Carlos,

primeiramente obrigado pela sua resposta. Desculpe por não responder antes, pois esses dias estava viajando e não entrei no forum.

Quando instalei o CAD no meu computador, havia instalado no idioma português. Posterior instalei a versão inglês do CAD. Não sei o que ocoreu aqui, mas a LISP não tava funcionando de jeito nenhum. Ajustei a LISP conforme sua orientação e funcionou corretamente. Acredito que mesmo instalado a versão inglês do CAD ainda tenho que fazer algum ajuste ou alteração para que a linguagem altere.

Muito obrigado amigo pelo suporte.

Responder