Manipulando eventos no AutoCAD - Parte 1

Bom dia pessoal!!!

Vamos sair um pouco desses programas que estou criando e vamos voltar um pouco nas origens do blog.

Vamos de "tutô"!!!

Neste, vamos tentar entender EVENTOS.

O que são eventos?

Eventos são ações disparadas em certas situações, por exemplo, quando desenhamos uma simples linha no cad, um evento ObjectAppended é disparado no database do desenho atual.

Este evento informará o "sender", no caso qual database (pro caso de você ter vários desenhos abertos) e mais algumas informações em uma classe "ObjectEventArgs". Nela, terá uma propriedade que informa qual objeto foi adicionado.

Bem, esta postagem não é a ajuda da API do AutoCAD, então se você quer ver mais explicações sobre este evento, deve olhar lá na ajuda da API, ok?

Usamos eventos sempre que queremos que o nosso programa reaja a uma ação do usuário (ah, o usuário.... este ser incompreendido, heheheh)

Não seria legal que quando o usuário carrega seu programa, este já "configura" os menus, adiciona o programa no "autoload" para que não precise mais fazer NETLOAD depois da primeira vez alem de "ligar" outros eventos no programa?

Seria, né? Então vamos ver o primeiro evento que vamos precisar: INITIALIZE/TERMINATE



Para usar os eventos de inicialização e encerramento, precisaremos de uma classe publica que implemente "IExtensionApplication" que está no NameSpace "Autodesk.AutoCAD.Runtime"

Note, esta classe é criada e executada UMA UNICA VEZ após o NETLOAD. Em princípio, você não deve criar outras instâncias desta classe durante a execução do AutoCAD.

Após o usuário ter feito o NETLOAD, o AutoCAD procura por uma classe que implemente este "IExtensionApplication" e se encontra, a instancia e executa o método INITIALIZE.

Quando o usuário FECHAR o AutoCAD, antes de encerrar, o AutoCAD executa o método TERMINATE desta classe.

Quer dizer que é aí que eu colocaria "PROGRAMA CARREGADO" pra aparecer após o netload??
Isso mesmo, Veja:


E pra carregar o menu, adicionar o programa no autoload? Bem, isso tudo você irá implementar dentro da sub Initialize, conforme descrevo no "Curso de Programação para Civil 3D e AutoCAD".

Para que o seu programa funcione bem, é preciso "escutar" uma série de eventos em diversos objetos. Os principais são:

Para o documento ( o dwg em si ):
DocumentCreateStarted
DocumentCreated
DocumentActivated
BeginDocumentClose
BeginSave
SaveComplete

Para o database ( a base de dados do documento ):
ObjectAppended
ObjectErased
ObjectModified

E para os comandos que o usuário for usando:
CommandWillStart
CommandCanceled
CommandEnded
CommandFailed

Estes são os que eu mais uso. Não significa que você irá usar todos e também não significa que só tem esses, ok?

Bom, esta postagem será a primeira parte sobre eventos. 

Em breve, a segunda parte. Nela, vamos ver as "assinaturas" (sintaxe de como usar) destes eventos e como adicionar um mecanismo de "liga/desliga" ok?





Nenhum comentário:

Postar um comentário