Você está aqui: AutoLISP ::: Dicas & Truques ::: Input e Output (Entrada e Saída) |
Como ler um ponto geométrico indicado pelo usuário no AutoCAD usando a função getpoint() da AutoLISPQuantidade de visualizações: 509 vezes |
A função getpoint() da AutoLISP (a versão modificada da LISP para o AutoCAD) é usada quando queremos retornar um ponto geométrico informado pelo usuário, seja por meio de um clique na área de desenho ou pelas coordenadas digitadas na janela de comandos. O retorno da função getpoint() é uma list contendo três valores, a saber, as coordenadas x, y e z do ponto geométrico informado. Veja um código AutoLISP completo no qual pedimos para o usuário informar um ponto, clicando ou digitando as coordenadas. Em seguida nós usamos as funções de manipulação de listas car, cadr e caddr para informar os valores das coordenadas x, y e z. ; função que nos permite obter um ponto a partir ; do clique do usuário ou a digitação das coordenadas (defun c:obter-ponto() ; vamos pedir para o usuário informar as ; coordenadas do ponto, clicando ou digitando ; os valores (setq ponto (getpoint "Coordenadas do ponto: ")) (princ (strcat "As coordenadas informadas sao: x = " (rtos (car ponto)) "; y = " (rtos (cadr ponto)) "; z = " (rtos (caddr ponto)))) (princ) ) Ao executar este código AutoLISP nós teremos o seguinte resultado: Coordenadas do ponto: As coordenadas informadas sao: x = 50; y = 100; z = 0 É possível fornecer à função getpoint() um ponto de referência. Neste caso o AutoCAD desenhará uma linha auxiliar (rubber band line) a partir desta referência e na direção do cursor. Veja: ; função que nos permite obter um ponto a partir ; do clique do usuário ou a digitação das coordenadas (defun c:obter-ponto() ; vamos usar um ponto como referência (setq referencia (list 40 80 0)) ; agora vamos pedir para o usuário informar as ; coordenadas usando o ponto dado como referência, ; clicando ou digitando os valores (setq ponto (getpoint referencia "Coordenadas do ponto: ")) (princ (strcat "As coordenadas informadas sao: x = " (rtos (car ponto)) "; y = " (rtos (cadr ponto)) "; z = " (rtos (caddr ponto)))) (princ) ) Agora, experimente usar a função getpoint() para ler dois pontos informados pelo usuário e traçar uma reta saindo do primeiro ponto e indo até o segundo. |
![]() |
Veja mais Dicas e truques de AutoLISP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |