LISP

Formazione LISP

AutoLISP è un linguaggio di programmazione che permette di estendere e personalizzare gli applicativi Autodesk.

In Media utilizza i linguaggi AutoLISP® e Visual LISP® per lo sviluppo di applicazioni personalizzate per i propri clienti nei settori dell’architettura e della meccanica. Grazie alle potenzialità del linguaggio è possibile sviluppare in poco tempo comandi per l’automazione di operazioni quali ad esempio: l’inserimento di simboli con compilazione automatica degli attributi; la lettura di file dati, ad es. i punti 3D di un rilievo topografico, con traduzione grafica dell’elemento (simbolo, codice, ecc.); la rappresentazione di impianti lineari ad es. impianto elettrico, rete di tubazioni idriche, gas, telefonia ecc. con associazione di dati estesi, redazione del computo metrico ed esportazione dati in applicativi Office (es. Excel); scrittura di comandi per il disegno di curve non supportate da AutoCAD (arco parabolico, spirale ecc.); disegno 2d/3d di carpenterie metalliche a partire da file che contengono le caratteristiche geometriche dei profili; utilizzo di AutoCAD per la rappresentazione grafica di dati strumentali, es. misuratori di portata, pressione, deformazione ecc.; funzioni per l’editazione automatica degli oggetti del disegno.

Al contrario degli altri linguaggi di programmazione i dati non vengono memorizzati in vettori o matrici ma in liste, una lista consiste di una o più informazioni raccolte fra parentesi. Una lista può contenere al suo interno un’altra lista formando così strutture complesse che permettono di organizzare dati di tipologia diversa, ad esempio è possibile formare una lista composta da un testo, un codice numerico ed un punto. L’acronimo LISP deriva da LISt Processing cioè elaborazione di liste, il fatto che il nome del linguaggio prenda origine dalle liste sta ad indicare quanto siano importanti per lo sviluppo di un qualsiasi comando o programma; per imparare a programmare in AutoLISP è indispensabile iniziare con le operazioni elementari sulle liste (creazione, modifica, estrazione dati).

Per scrivere un programma AutoLISP è sufficiente un editor qualsiasi, es. il blocco note; mediante uno specifico set di funzioni è possibile accedere al database di AutoCAD per estrarre informazioni sugli oggetti disegnati oppure sulle tabelle dei layer, dei blocchi o delle viste.

Qualsiasi comando di AutoCAD può essere richiamato in AutoLISP attraverso la funzione Command, in tal modo AutoLISP permette di trasformare AutoCAD in un motore grafico che deve occuparsi di disegnare ciò che il programma gli indica, ad es. leggere punti da un file esterno e disegnarli in AutoCAD, aggiungendo a fianco di ogni punto un numero progressivo o il codice letto nel file. Il successo di AutoLISP deriva soprattutto dalla facilità d’uso e dalle potenzialità del linguaggio, esistono infatti una infinità di applicazioni scritte in AutoLISP scaricabili gratuitamente che possono dare un ausilio importante nello sviluppo di propri comandi.

Le finestre di dialogo possono essere programmate attraverso l’aggiunta al file Lisp di un file DCL (Dialog Control Language) che definisce la struttura grafica della finestra (disposizione e dimensione di pulsanti, elenchi, barre di scorrimento, caselle di controllo ecc.); nel programma lisp viene invece scritto il codice di programma che deve essere eseguito quando si accede alla finestra premendo ad es. un pulsante o scegliendo un elemento da un elenco.

La programmazione di una finestra di dialogo può essere di non facile comprensione e richiede una certa familiarità con i linguaggi AutoLISP.

A partire dal 2000, Autodesk ha deciso di introdurre il Visual LISP® che permette di potenziare le capacità di AutoLisp attraverso l’implementazione di nuove funzionalità, quali ad esempio la programmazione ad oggetti tramite la tecnologia ActiveX e la possibilità di reagire agli eventi tramite nuove funzioni chiamate reattori. Con Visual LISP® è stato introdotto un ambiente di sviluppo direttamente in AutoCAD, che permette di avere una serie di strumenti per la creazione e modifica del codice sorgente, un debugger integrato che consente di stampare il contenuto delle variabili nei punti strategici del programma ed un compilatore per la creazione di applicazioni esterne.

Una buona conoscenza del linguaggio AutoLisp e della struttura del database di AutoCAD consente di valutare se la creazione di un nuovo comando è fattibile ed economicamente conveniente.

Per chi vuole iniziare ad imparare il linguaggio, consigliamo di apprendere i comandi secondo la scaletta di argomenti seguente: memorizzazione dati (setq) creazione di liste ed estrazione dati (list, car, cdr, cadr, cons, assoc) sintassi per il richiamo comandi di AutoCAD (command) contatori e cicli (1+, 1-, repeat, while) espressioni condizionali (if, and, or, not) funzioni avanzate per le liste (nth, subst, member) trattamento stringhe (strcat, strlen, substr) trattamento dati (itoa, atoi, rtos, atof, fix) accesso al database (entsel, entget, entdel, entlast, entmake, entmod) lettura e scrittura file (open, read, read-line, princ, write, write-line ecc.)