CAD, progeCAD e il primo .NET

La prima applicazione C#

Scritto da Roberto Rossi il 16-05-2018

Ecco finalmente. Il primo articolo del nuovo corso, del nuovo BLOG, l'R Dveloper Corner!

Ho pensato a lungo a cosa scrivere in questo primo articolo. Avrei potuto raccontare i miei progetti per il futuro, avrei potuto parlare degli aspetti tecnici di questo nuovo blog, avrei potuto ringraziare tutti i visitatori che mi hanno supportato finora.

Invece no.

Parliamo di programmazione, parliamo di Hello World.

Il programma di oggi metterà insieme queste componenti:

  • Windows.
  • Disegno tecnici.
  • CAD e in particolare progeCAD.
  • Il linguaggio C# e il Microsoft .NET Framework.

Quindi andiamo a vedere come si inizia a sviluppare un software in C#, da usare poi dentro progeCAD.

Buona lettura...

Introduzione

Iniziamo parlando di cosa farà il nostro programma.

Il nostro programma si chiamerà "HelloWorld" e verrà caricato dentro progeCAD. Una volta caricato sarà disponibile, nel CAD, il nuovo comando "HELLOWORLD" richiamabile a linea di comando.

Essendo un esempio di come iniziare, il software non farà nulla di particolare, si limeterà a mostrare un messaggio all'utente.

Per questa realizzazione ecco cosa ci serve:

  1. Windows. Windows 7 o Windows 10.
  2. progeCAD 2018 o successiva.
  3. Visual Studio 2017. Si può tranquillamente utilizzare la versione Community che é gratuita.
  4. Inoltre onsiglio di scaricare anche l'SDK di progeCAD. SDK che contiene la documentazione e alcuni esempi interessanti. Anche se non é indispensabile sarà sicuramente utile.

Abbiamo installato tutto? Bene. Procediamo.

Perché progeCAD? Posso usare altro?

Alcuni si potranno chiedere il perché la mia scelta é caduta su progeCAD e non su un'altro CAD. Oppure ci si potrebbe chiedere perché non ho usato AutoCAD®.

Ci sono diversi motivi:

  • progeCAD è quello che acquisterei se dovessi scegliere un CAD alternativo.
  • parte dell'"anima" del programma è italiana.
  • è un fork di IntelliCAD. Questo permette di scrivere software per progeCAD e riutilizzarle con molti altri CAD senza modifiche sostanziali.
  • Il suo core è basato sulle librerie Teigha prodotte da Open Design Alliance, cosa che aumenta ancora di più la compatibilità dei software prodotto per progeCAD.
  • progeCAD ha un costo ragionevole.
  • Ultima motivazione di questo elenco, ma non ultima come importanza, progeCAD permette l'uso di licenze senza scadenza/perpetue. L'idea che il software diventi in servizio, come sta succedendo per AutoCAD e per altri, la ritengo una pessima idea.

E ora, basta chiacchiere, arriviamo al dunque.

Dopo aver installato tutto il necessario aspettiamo il nostro Visual Studio.

Il progetto

Visto che quello che andremo a realizzare è una applicazione da caricare dentro progeCAD, quello che dobbiamo fare è realizzare una DLL. In Visual Studio è sufficiente selezionare il giusto tipo di progetto:

Creare una DLL

A cosa dobbiamo porre attenzione? Dobbiamo stare attenti a configurare il progetto in questo modo:

  • La versione del .NET Framework deve essere la 4.5.
  • Il progetto deve contenere il riferimento alla libreria "TD_Mgd_4.01_11.dll". In realtà questa libreria vari a seconda del CAD utilizzato. Ad esempio, in progeCAD 2019 si chiamerà "TD_Mgd_4.02_11.dll". Nella pratica cambia poco, sono semplicemente versioni diverse della stessa libreria. Cio significa che altri CAD potranno avere versioni differenti, con nomi (la parte numerica) differenti.
  • Il progetto deve contenere il riferimento alla libreria "IcMgd_4.01_11.dll". Come per la DLL precedente, in progeCAD 2019 avremo "IcMgd_4.02_11.dll".
  • Il progetto deve contenere il riferimento alla libreria "IcCoreMgd_4.01_11.dll". Come per la DLL precedente, in progeCAD 2019 avremo "IcCoreMgd_4.02_11.dll".

Tutte le librerie indicate si trovano direttamente all'interno della cartella del CAD, in questo caso di progeCAD.

Nella pratica:

Aggiungere i riferimenti Riferimenti aggiunti

Scendendo un po piu nel particolare:

  • La libreria "TDMgd..." permette di accedere alle funzionalità delle librerie Teigha.
  • La libreria "IcMgd..." e "IcCoreMgd..." forniscono invece l'accesso alle funzionalità proprie dell'ambiente progeCAD.

Bene. A questo punto siamo pronto per scrivere qualche riga di codice.

Mettiamo il codice

Il progetto, nella sua struttura, è pronto. Ora vediamo come adattara il codice in modo da renderlo compatibile con il CAD, in modo che quest'ultimo lo riconosca e riesca a utilizzarlo.

Iniziamo aggiungendo, nel codice, le "using" più comuni.

Using

Dopo di chè occupiamoci della dichiarazione della classe principale aggiungendo i modificatori "static" e "public" indispensabili per consentire al CAD di raggiungere il nostro programma.

Static e Public Class

A questo punto creiamo il metodo che verrà richiamato, dal CAD, all'esecuzione del nostro nuovo comando "HelloWorld":

Nuovo Metodo

Arriviamo ora a un momento interessante. Dobbiamo inserire gli attributi necessari per dire al CAD che il metodo appena creato è il comando "HelloWorld", si perchè finorà è un metodo come un'altro, senza un significato particolare. Per collegare il nostro metodo a un comando del CAD è necessario utilizzare l'attributo "CommandMethod", in questo modo:

Attributo CommandMethod

Concludiamo il nostro mini-programma ricavando l'oggetto relativo al documento (disegno) corrente e quello all'editor (ambiente CAD). Proprio quest'ultimo oggetto ci servirà per stampare, sulla linea di comando del CAD, un piccolo messaggio:

Codice comando HelloWorld

Nella pratica, una volta caricato il programma nel CAD, digitando ed eseguento il nuovo comando "HelloWorld" verrà visualizzato il messaggio "Esecuzione HelloWorld completata.".

La compilazione

E' arrivato il momento di compilare il nostro progetto per produrre la nostra DLL.

Eseguiamo quindi il comando "Build->Build Solution" e...

Errore

Dannazione, un errore!!!

Il problema, come si può ben vedere dal messaggio di errore, è relativo a una diversità nell'architettura del processore. Diversità tra la configurazione del nostro progetto e la configurazione delle librerie che, all'inizio, abbiamo collegato.

In questo programma ho utilizzato un progeCAD a 64bit, ovviamente con Windows a 64bit. Quindi? Quindi è necessario compilare una versione "x64" e non come "Any CPU".

Per risolvere la cosa, clicchiamo su "Any CPU" e aggiungiamo la configurazione "x64":

Configurazione x64

Una volta creata e attivata la nuova configurazione, compiliamo, il gioco è fatto:

Compilazione eseguita con successo

Ecco qui il nostro file DLL su disco:

La nostra DLL pronta per il CAD

Ora vediamo se tutto funziona anche nel CAD.

Proviamo il programma

Apriamo il nostro CAD, in questo caso progeCAD. Fatto? Bene.

Lanciamo il comando "_APPLOAD" e carichiamo la nostra "HelloWorld.DLL".

Una volta caricata la nostra DLL, proviamo a digitare il nuovo comando "HelloWorld".

Digitiamo il nostro nuovo comando

Digitiamo il nostro comando e avviamolo. In basso a sinistra vedremo il messaggio che indica che tutto è andata per il verso giusto.

Il risultato di HelloWorld

La nostra prima applicazione ha funzionato!

Conclusioni

Certo, quello che abbiamo fatto può sembrare pochino. In realtà non lo è affatto perchè questa è la porta per implementare, nel nostro CAD, le nostre procedure automatiche che, spesso, possono risulvere una miriade di problemi e possono semplificare le attività quotidiane.

Ovviamente la strada per farlo è ancora lunga, forse lunghissima, ma con un po di impegno e pazienza...

Per poter continuare il nostro viaggio nel "magico" mondo delle applicazioni CAD ecco alcuni riferimenti.

Qualche riferimento

Per approcciare con il tipo di applicazione che abbiamo visto in questo articolo, ecco cosa potrebbe servirci:

  • progeCAD. Anche la versione DEMO (limitata nel tempo) è possibile sperimentare le nostre applicazioni. Ovviamente una versione ufficiale è sempre meglio. ProgeSOFT
  • SDK di progeCAD. Un pacchetto che contiene esempi e documentazione (in inglese). progeCAD SDK
  • Visual Studio. Anche la versione gratuita va benissimo. Visual Studio Community
  • Una buona guida al linguaggio C#, che è quello utilizzato per il nostro esempio. Direi che si può iniziare dal sito ufficiale. Documentazione di .NET
  • Un libro su C# per iniziare, semplice e gratuito è disponibile sul sito di Antonio Pelleriti.
  • Infine, un piccolo testo gratuito, sempre su C#, è disponibile anche sul sito di Punto-Informatico.

Ovviamente...

Per qualsiasi approfondimento o per esprimere la tua opinione, contattami utilizzando la pagina di contatto.