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/

Desenho Paramétrico

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Responder
Avatar do usuário
claudiosegura
Novato
Novato
Mensagens: 2
Registrado em: Ter 25 Jan 2005 11:00:00 pm

Desenho Paramétrico

Mensagem por claudiosegura » Qua 26 Jan 2005 6:55:51 pm

Olá,

Estou tentado fazer uma rotina que faça um desenho
apartir de parametros em um arquivo texto.
Dá quase certo, mas estou com problema para inserir os próximos pontos:

;;;Este programa lê um arquivo e desenha uma figura
;;;com os pontos lá especificados
;;;O arquivo está no formato:
;;;
;;;0,0
;;;@15<0
;;;@15<90
;;;@15<180
;;;@15<270
(DEFUN C:linha (/ L1 L2 )
(setq file (open "c:\\texto.txt" "r"))
(setq L1 (read-line file))
(command "_line" L1 "" )
(progn
(setq L2 (read-line file))
(while (/= L2 nil)
(princ L2 (princ))
(setq L2 (read-line file))
)
)

)

[email protected]

Avatar do usuário
Rogerio
Master
Master
Mensagens: 2034
Registrado em: Ter 23 Mar 2004 12:00:00 am

Mensagem por Rogerio » Qui 27 Jan 2005 2:41:26 pm

Cláudio, vc precisa primeiro criar uma lista com os pontos lidos.

(defun c:linha ()
(setq arq (open "c:\\texto.txt" "r"))
(if (= arq nil)
(alert "Open Inválido!")
(progn
(setq linha (read-line arq))
(while (/= linha nil)
(setq lista (append lista (list linha)))
(print linha)
(setq linha (read-line arq))

(command "_.line")
(foreach item lista
(command item)
)
(command "")
)
)
)
(setq lista nil)
(princ)
)
Abraço,

Rogério

Confia ao SENHOR as tuas obras, e teus pensamentos serão estabelecidos. Provérbios - 16 v. 3
Leia: http://www.espada.eti.br/n2093.asp

Avatar do usuário
Rogerio
Master
Master
Mensagens: 2034
Registrado em: Ter 23 Mar 2004 12:00:00 am

Mensagem por Rogerio » Qui 27 Jan 2005 2:46:36 pm

Mais uma adendo:

Seu arquivo de texto não pode ter espaços no final:
Assim:

0,0
@15<0
@15<90
@15<180
@15<270

e não:

0,0espaço
@15<0espaço
@15<90espaço
@15<180espaço
@15<270espaço
Abraço,

Rogério

Confia ao SENHOR as tuas obras, e teus pensamentos serão estabelecidos. Provérbios - 16 v. 3
Leia: http://www.espada.eti.br/n2093.asp

Avatar do usuário
ronaldoalmeida
Bronze 2/3
Bronze 2/3
Mensagens: 200
Registrado em: Qui 07 Out 2004 12:00:00 am
Localização: Florianópolis-SC

Mensagem por ronaldoalmeida » Sex 28 Jan 2005 7:24:46 am

[quote="Rogerio"]Mais uma adendo:

Seu arquivo de texto não pode ter espaços no final:
.....
Rogério,
Ñâo analisei a sua rotina, mas aí é que está o erro da rotina. A sua rotina não é robusta!
Se um outro usuário usar a rotina e não saber deste macete, como é que vai ficar?
Voce tem que fazer a rotina se prevenindo de um usuário desavisado.
É este ponto de vista é que um programador da autolisp tem que ter em mente: Fazer rotinas robustas!
ronaldo

Avatar do usuário
Rogerio
Master
Master
Mensagens: 2034
Registrado em: Ter 23 Mar 2004 12:00:00 am

Mensagem por Rogerio » Sex 28 Jan 2005 8:20:35 am

Ronaldo, obrigado pela dica.

O problema é que eu não sei contornar esse problema, he he he.

Eu acho q já foi dito neste fórum em algum lugar, mas eu não lembro.
Abraço,

Rogério

Confia ao SENHOR as tuas obras, e teus pensamentos serão estabelecidos. Provérbios - 16 v. 3
Leia: http://www.espada.eti.br/n2093.asp

Avatar do usuário
claudiosegura
Novato
Novato
Mensagens: 2
Registrado em: Ter 25 Jan 2005 11:00:00 pm

Mensagem por claudiosegura » Dom 30 Jan 2005 8:13:52 pm

Oi Rogério,

Muito obrigado, me ajudou muito.

Fiz um pequeno aplicativo em Delphi para receber os dados da caderneta de campo do topografo, que ao final, gera um arquivo no formato que "nossa" rotina entende.

Se quiser olhar, posso lhe enviar, funciona perfeitamente.

Um Abraço.


[email protected]

Responder