Olá pessoal, chegou a hora que todos vocês esperavam, vamos criar comandos em Autolisp, mas antes precisamos definir o que será necessário para que vocês consigam criar comandos que realmente ajudem vocês no dia a dia.
1) É necessário ter fortes conhecimentos em Autocad e seus comandos, se você aprendeu com Autocad em português ou usando ícones ou menu estará em grande desvantagem, o ideal é utilizar o Autocad usando a linha de comando e conhecer os comandos pelo seu nome inteiro e não pelo atalho.
2) Imaginação, sim para criar comandos da forma que eu vou ensinar precisa de muita imaginação.
3) Treino
4) Treino de novo.
O que vou ensinar aqui é apenas uma pequena parte do que é possível fazer em Autolisp, na verdade muito pequena mesmo, porem quando eu estava iniciando meu aprendizado em Autolisp não existia muita literatura, youtube ou blogs e isso que vou ensinar agora foi a primeira coisa que eu aprendi em Autolisp e apos muito tempo percebi que não podia ser somente isso e ai corri para aprender tudo o que precisava. O que posso dizer é que a matéria de hoje facilitou muito meu aprendizado acredito que treina-la com exaustão me tornou o ótimo programador que sou hoje e principalmente um usuário avançado do Autocad.
O que vou pedir para vocês agora é apenas decorar o que eu vou escrever, mais a frente no curso vamos conversar mais sobre esse assunto.
Criando o primeiro comando
Para criar um comando precisamos definir o nome do comando para fazer isso usamos o comando DEFUN, abaixo segue a sintaxe desse comando:
(defun c: <nome do comando> ()
Vamos falar um pouco dessa sintaxe:
DEFUN = Definir função
c: = Quer dizer que o a função será um comando usado no Autocad
() = Lista de argumentos
No momento basta decorar isso, no futuro quando começarmos a criar funções precisaremos falar um pouco mais detalhadamente sobre essa linha de programação.
Ótimo, já sabemos como começar o nosso programa, agora precisamos saber como criar o comando em si, para isso vamos sempre fazer o uso de um papel e uma caneta, principalmente se você não tem um domínio tão grande dos comandos do Autocad.
Com papel e caneta nas mãos vamos começar.
Nosso primeiro programa vai ser um programa bem simples, vamos clicar em um ponto qualquer na tela, fazer um circulo com raio de 10 e pinta-lo com a cor vermelha.
A) Precisamos saber como o comando circulo funciona passo a passo, por isso precisamos de papel e caneta para anotar todos os passos, se você abrir o Autocad e for fazer um circulo com raio de 10 certamente seguira os seguintes passos:
1) Digitar o comando circle.
2) Clicar em um ponto qualquer da tela.
3) Digitar o raio.
B) Precisamos agora saber os passos necessários para pintar o circulo de vermelho, muitos podem pensar que é só clicar nele e depois mudar a cor na barra de propriedade do Autocad, porem não é assim, precisamos de um comando em linha de comando que faça essa tarefa, temos varias formas de fazer isso, mas no momento faremos uso do comando CHPROP, se você não conhece esse comando tente aprender mais sobre ele (seu uso já foi ensinado na aula 9), pois usaremos muito durante o curso. Os passos baixo são necessários para mudar a cor de um objeto:
1) Digitar o comando chprop
2) Selecionar o objeto.
3) Pressionar ENTER para informar ao Autocad que não vamos mais selecionar nenhum objeto.
4) Digitamos a opção C (de color)
5) Digitamos o numero da cor, no Autocad a cor vermelha é o numero 1 (no final do blog colocarei uma tabela com as 9 primeiras cores do Autocad).
6) Pressionamos ENTER para informar ao comando chprop que não vamos mais mudar nenhuma propriedade do objeto e que o mesmo pode ser encerrado.
Agora que anotamos como os comandos funcionam precisamos entender mais uma coisa, quando digitamos o nome do comando no Autocad precisamos em seguida pressionar o ENTER para confirmar o comando, porem, em Autolisp esse ENTER será dado de forma Automática. O mesmo ocorre quando digitamos um dado como o raio do circulo ou clicarmos na tela.
Porem quando um comando permite que selecionemos vários objetos precisamos em um determinado momento informar ao comando que não queremos mais selecionar nenhum objeto e para fazer isso pressionamos o ENTER, nesse caso precisamos anotar, pois será necessário também informar em Autolisp esse ENTER.
A mesma coisa acontece quando o comando somente é encerrado quando você pressiona ENTER para informa-lo que você não fará mais nenhuma modificação no objeto, isso acontece, por exemplo, com o comando chprop que continuara no comando ate que você pressione ENTER ou pressione o ESC (cancelando o comando), no caso do comando circle isso não é necessário porque depois de digitar o raio o comando é encerrado automaticamente não sendo necessário dar um novo ENTER para encerra-lo.
Parece difícil, mas não é quando se entende o procedimento tudo fica mais fácil.
Função COMMAND
Agora com todos os dados em mãos precisamos aprender a utilizar a função command, abaixo segue a sintaxe desse comando:
Sintaxe:
(command <nome do comando em strings> <argumentos do comando em strings>)
Temos ainda alguns argumentos que podemos usar, veja eles abaixo:
pause = pausa o comando esperando uma ação do usuário
“” (duas aspas duplas) = equivale a um ENTER do teclado
Vamos agora dar continuidade no nosso exemplo que é criar um circulo com raio de 10 e altera-lo para a cor vermelha, vamos fazer esse exemplo duas vezes, na segunda vez vamos aprimora-lo fazendo com que o mesmo fique mais funcional e aumente a velocidade do nosso novo comando.
Agora faremos uso de tudo aqui que anotamos e aquilo que aprendermos nessa aula.
Primeiro vamos criar a primeira linha de programação, aquela que eu pedi para vocês decorarem.
(defun c:cv()
Essa linha quer dizer que criaremos um comando que se chamara CV, ou seja bastara digitarmos CV na linha de comando para utiliza-lo.
O próximo passo é fazer uso das nossas anotações primeiro do comando circle
1) Digitar o comando circle.
2) Clicar em um ponto qualquer da tela.
3) Digitar o raio.
(command “circle” pause “10”)
Nessa linha utilizamos a função command e digitamos o comando que queremos usar no caso o “circle” cercado por aspas duplas pois como visto na sintaxe o ocomando precisa ser fornecido como strings, depois utilizamos o pause (sem aspas, o pause é sempre sem aspas), o pause quer dizer que a função command aguardará que o usuário clique em um ponto na tela e por ultimo entramos com o raio “10” também como strings, com essa função criaremos um circulo com raio de 10 em qualquer ponto fornecido pelo usuário.
Agora só falta pintar ele de vermelho, para fazer isso vamos fazer uso também das anotações e implementa-las usando a função command.
1) Digitar o comando chprop.
2) Selecionar o objeto.
3) Pressionar ENTER para informar ao Autocad que não vamos mais selecionar nenhum objeto.
4) Digitamos a opção C (de color)
5) Digitamos o numero da cor, no Autocad a cor vermelha e a cor 1 (no final do blog colocarei uma tabela com as 9 primeiras cores do Autocad)
6) Pressionamos ENTER para informar ao comando chprop que não vamos mais mudar nenhuma propriedade do objeto.
(command “chprop” pause “” “c” “1” “”)
Vamos entender essa linha, primeiro digitamos o comando “chprop” como string, depois o pause vai aguardar que o usuário selecione um objeto no nosso caso o circulo, para informar que não vamos mais selecionar nenhum objeto usamos as duas aspas duplas “” que é a mesma coisa que um ENTER, depois entramos com a letra “c” que informara ao comando chprop que queremos mudar a cor do objeto, com o numero “1” vamos fazer com que o objeto selecionado fique com a cor vermelha (no final do blog vou colocar a tabela de cores), para terminar daremos um ENTER usando duas aspas duplas para informar ao comando chprop que não vamos mais alterar o objeto e que queremos que o mesmo seja finalizado.
Agora podemos juntar tudo e montar o nosso comando
(defun c:cv()
(command “circle” pause “10”)
(command “chprop” pause “” “c” “1” “”)
)
Para finalizar as instruções usaremos sempre um parêntese fechando a nossa função CV, apenas decorem isso, mas a frente no curso vamos falar mais sobre isso.
Pronto criamos o nosso primeiro comando, porem vem uma perguntar, será que ele não pode fica melhor, vamos pensar um pouco:
A primeira coisa que foi feita foi criar o circulo, portanto o circulo foi o ultimo objeto criado pelo Autocad, podemos então ao invés de selecionar o circulo (que é ruim pois o danado o usuário pode selecionar um objeto diferente e fazer mal uso do programa) podemos simplesmente usar a função de seleção last para selecionar o ultimo objeto criado tornando o programa mais rápido.
Fazendo essa modificação nosso programa vai ficar assim:
(defun c:cv()
(command “circle” pause “10”)
(command “chprop” “L” “” “c” “1” “”)
)
Note que tiramos o pause do comando chprop pois agora não necessitaremos que o usuário selecione mais o circulo ao invés disso colocamos o “L” (de last) para selecionar o ultimo objeto e depois as duas aspas duplas para dizer que não vamos selecionar mais nada.
Duas dicas que podem ajudar vocês quando forem se aventurar criando seus comandos:
1) Para não se confundirem se precisam ou não usar as aspas duplas pensem da seguinte forma:
Quando uso um comando preciso pressionar enter para ativa-lo como ele esta cercado por aspas duplas (strings) as duas aspas duplas corresponderam ao enter automático o enter só precisara ser usado quando em suas anotações você deu enter sem ter anotado nada ai será necessário usar aspas duplas.
2) Anote tudo e faça os seus comando em linha de comando, mesmo que você saiba usar o visual lisp ou que tenha digitado em um bloco de notas e carregado com o comando appload, fazer os comando nessa etapa do curso em linha de comando vai fazer com que vocês errem e refaçam varias vezes mesmo um simples comando forçando que vocês se acostumem com as mensagens de erro e ao mesmo tempo forçando vocês a repetirem tudo de novo varias e varias vezes, tipo karate kid.
Na próxima aula continuaremos falando desse assunto e vamos criar novos comandos explorando cada vez mais esse recurso, a ideia é fazer com que vocês treinem muito antes de passarmos para o próximo assunto.
Abaixo segue o link para assistirem essa vídeo aula em nosso canal do Manual de Cad no youtube:
https://www.youtube.com/watch?v=fxJh_v_Lu1k&feature=youtu.be
Abaixo segue a tabela contendo as oito primeiras cores do Autocad.
Tabela de Cores |
Vermelho | 1 |
Amarelo | 2 |
Verde | 3 |
Cian | 4 |
Azul | 5 |
Magenta | 6 |
Branco | 7 |
Cinza | 8 |
Espero que tenham gostado
Sergio Fernandes
Manual de Cad.