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?