quinta-feira, 12 de março de 2015

Aula 14 – Funções de Entrada de Dados – Parte 2

 

Olá pessoal vamos continuar falando sobre as funções de entrada de dados, agora que aprendemos a usar a função Getpoint tudo fica mais fácil pois quase todas as funções get se comportam da mesma maneira.

GETCORNER

A função Getcorner retorna assim como o Getpoint uma lista contendo as coordenadas X Y e Z do ponto selecionado, porem diferente do Getpoint que não necessita do ponto de laço que fornecerá uma linha auxiliar o Getcorner precisa desse ponto de laço pois a partir dele será mostrada uma janela de box auxiliar.

.

Sintaxe:

(Getcorner <ponto de laço> [mensagem para o usuário])

Exemplo1:

(defun c:zw()
  (setq pt1 (Getpoint "\nClique sobre o local desejado: "))
  (setq pt2 (Getcorner pt1 "\nAbra uma janela: "))
  (command "zoom" pt1 pt2)
  )

1) Definimos o nome do nosso comando ZW.

2) Usando o Getpoint armazenamos na variável PT1 uma lista contendo as coordenadas.

3) Agora armazenamos uma lista contendo X Y Z na variável PT2 usando o Getcorner, o Getcorner terá como ponto de laço a variável PT1.

4) Usamos o comando zoom para aproximar a visualização na janela indicada.

clip_image001

GETDIST

Getdist diferentemente do Getpoint e Getcorner que retornam uma lista o Getdist retorna uma distancia (valor numérico decimal) entre dois pontos, essa função também requer o ponto de laço que é o ponto de partida para medir a distancia porem ele também é opcional, caso você não defina o ponto de laço o programa vai pedir que primeiro clique sobre o ponto de laço para depois pedir o segundo ponto e retornar a distancia.

Sintaxe:

(Getdist [ponto de laço] [mensagem para o usuário])

Exemplo:

(defun c:med()
(setq pt1 (Getpoint "\nClique sobre o ponto inicial: "))
(setq distancia (Getpoint  pt1 "\nClique sobre o ponto final: "))
)

1) Criamos a função MED.

2) Armazenamos na variável PT1 os pontos para serem usado como ponto de laço.

3) Indicamos o ponto final, o valor armazenado na variável distancia será a distancia entre o ponto de laço e o ponto indicado pelo usuário.

Mais a frente no curso veremos que essa função mesmo parecendo ser útil não tem tanta utilidade assim, aprenderemos a pegar a distancia sem usa-la e veremos teremos mais recursos na mão se não a utilizarmos.

GETANGLE E GETORIENT

Retornam o angulo em radianos, essas duas funções são bem parecidas porem podem nos fornecer resultados diferentes.

Getangle retorna o angulo a partir do angulo 0 graus definido pelo usuário e que pode ser configurado pela variável de sistema ANGBASE.

Getorient retorna o angulo levando em conta que o angulo 0 graus que se encontra sempre ao leste (lado direito).

Quando for usar essas duas funções precisa escolher da maneira correta, precisa verificar se usara o angulo maquina ou o angulo definido pelo usuário, isso é muito importante e pode fazer você ficar doido tentando encontrar onde esta dando errado.

Sintaxes:

(Getangle [ponto de laço] [mensagem para o usuário])

(Getorient [ponto de laço] [mensagem para o usuário])

Exemplo (Getorient)

(defun c:ang()
  (setq pt1 (Getpoint "\nClique sobre o ponto desejado: "))
  (setq angulo (Getorient pt1 "\nIndique o angulo desejado: "))
  )

1) Definimos o nome do nosso comando ANG.

2) Usando o Getpoint armazenamos na variável PT1 que será nosso ponto de laço.

3) Usando o ponto PT1 como ponto de laço devemos indicar com o mouse o angulo desejado o seu resultado será armazenada na variável angulo em radianos.

No exemplo abaixo indicamos o angulo de 90º graus e recebemos como retorno o valor 1.5708 que é o radiano de 90º.

clip_image002

Não importa qual angulo foi configurado como sendo o angulo 0 na variável de sistema ANGBASE o Getorient sempre usara o zero grau oficial  (Leste, lado direito).

Exemplo (Getangle)

(defun c:ang()
  (setq pt1 (Getpoint "\nClique sobre o ponto desejado: "))
  (setq angulo (Getangle pt1 "\nIndique o angulo desejado: "))
  )

1) Definimos o nome do nosso comando ANG.

2)) Usando o Getpoint armazenamos na variável PT1 que será nosso ponto de laço.

3) Usando o ponto PT1 como ponto de laço devemos indicar com o mouse o angulo desejado o seu resultado será armazenada na variável angulo em radianos.

No exemplo definiremos a variável ANGBASE para 90º, isso que dizer que o Getangle entendera que toda vez que entrarmos com o angulo de 90º ele deverá entender como angulo 0º

clip_image003

Nesse caso tivemos como retorno 0 radianos que equivale ao angulo 0º mesmo tendo fornecido o angulo de 90º, isso porque ele levou em conta o angulo base que é controlado pela variável de sistema ANGBASE.

Se a variável de sistema ANGBASE estiver configurada como 0º Getangle e Getorient forneceram o mesmo resultados.

Abaixo segue o link dessa aula no meu canal manual de Cad no youtube.

https://www.youtube.com/watch?v=zw6nZyaPNhI&feature=youtu.be

Espero que tenham gostado.

Sergio Fernandes

Manual de Cad

Nenhum comentário:

Postar um comentário