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/

Rotina com ângulos

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Responder
Avatar do usuário
PauloHasker
Novato
Novato
Mensagens: 1
Registrado em: Seg 25 Fev 2019 9:33:06 pm

Rotina com ângulos

Mensagem por PauloHasker » Seg 25 Fev 2019 10:20:06 pm

Preciso de ajuda para criar uma rotina onde deve-se conhecer os ângulos de linhas e utilizá-los para inserir blocos. No momento eu consigo calcular os ângulos e armazená-los em variáveis, entretanto, não consigo saber em qual variável cada ângulo está. Portanto, preciso de alguma funções que ordene as variáveis em ordem crescente, de modo que seja possível saber em qual variável está o menor, maior... ângulo. Desde já agradeço! (ângulos estão em radiano).

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

Re: Rotina com ângulos

Mensagem por Carlos Fernando » Dom 03 Mar 2019 8:13:24 pm

Vamos supor que vc tem 5 angulos aramzenados em variaveis

(setq ang1 1)
(setq ang2 1.75)
(setq ang3 0.5)
(setq ang4 1.1)
(setq ang5 0.95)

Então uma solução seria:

(vl-load-com)
(setq l1 (list 'ang1 'ang2 'ang3 'ang4 'ang5))
(setq l2(mapcar '(lambda (x) (list x (eval x)))l1))
(setq lista-ordenada (vl-sort l2 '(lambda (e1 e2) (< (cadr e1) (cadr e2)))))

A lista-ordenada será uma lista com o conteudo ((ANG3 0.5) (ANG5 0.95) (ANG1 1) (ANG4 1.1) (ANG2 1.75))

Abraços

Responder