Come caricare uno script LISP automaticamente

In questo articolo verranno affrontati alcuni metodi per caricare automaticamente le funzioni scritte in LISP.

 Come prima cosa ricordiamo come si fa a caricare una applicazione LISP; sulla riga di comando digitare:

appload

o alternativamente andate nel menù "Strumenti" e selezionate la voce "Carica applicazione..."

comparirà la seguente finestra, in cui vi si chiede di inserire la directory dove si trova il file lisp da caricare e di selezionarlo.

Una volta che lo avrete fatto cliccate su "carica" e i comandi definiti all'interni del file saranno pronti all'uso.

Se un certo programma fosse utilizzato con particolare frequenza sarebbe opportuno caricarlo all'avvio senza dover ripetere ogni volta la precedente procedura.
Per risolvere questo problema potremo procedere in diversi modi. Iniziamo con quello più semplice, ovvero il gruppo di avvio di Autocad, che non richiede installazione di componenti esterni.

Al momento del caricamento dell'applicazione, nella stessa finestra di dialogo di prima, premere il pulsante "contenuto..." che serve a specificare il contenuto del gruppo di avvio.

A questo punto vi comparirà una finestra di dialogo dove dovrete aggiungere il nome del file e specificare la cartella che lo contiene:

In questo modo all'avvio di Autocad verranno caricati i file elencati e voi potrete richiamarne le funzioni.

Questo metodo funziona piuttosto bene e per pochi file va più che bene, ma se nella vostra "libreria" un bel po' di file e funzioni allora vi consiglio il secondo metodo, ovvero il caricamento "dinamico".
Viene definito dinamico perché il file verrà caricato al momento che l'utente deve usare una particolare funzione, quindi potremo anche dire che il caricamento sarà "on-demand" e non andrà ad appesantire lo startup di Autocad.

Il principio su cui si basa il funzionamento della procedura che andremo ad illustrare è molto semplice.
AutoCAD carica automaticamente il contenuto dei file definibili dall'utente come acad.lsp e acaddoc.lsp; in particolare il primo viene usato per la personalizzazione del sistema e il secondo per caricare delle librerie extra.
Naturalmente queste sono solo delle indicazioni di massima, dato che i file possono contenere qualsiasi codice LISP; ad ogni modo per caricare automaticamente un'applicazione basta inserire una riga del tipo:

(load "c:/myLispFile.lsp" '("CMD1" "CMD2" "CMD3"))

nel file acaddoc.lsp; questo file, se esiste, lo troviamo in :

C:\Documents and Settings\(user)\Dati applicazioni\Autodesk\AutoCAD (version)\R(version)\ita\Support

Quando si carica automaticamente un comando specificando la funzione load o command, la definizione del comando occupa memoria indipendentemente dall'effettivo utilizzo del comando. La funzione autoload di AutoLISP rende disponibile un comando senza caricare l'intera routine in memoria.

(autoload "c:/myLispFile.lsp" '("CMD1" "CMD2" "CMD3")) 

Ora per automatizzare questa procedura esistono degli script che ci faranno risparmiare un bel po di tempo.

Come prima cosa scaricate il file ACADDOC creator.lsp e caricate l'applicazione.

Ora potrete creare l'associazione tra file e funzione col comando :

(autoload "C:/MyFolder/MyLISP.lsp" '("MyCommand1" "MyCommand2"))

In questo modo verrà creato un link tra il nome della funzione ed il file e quindi, ogni volta che l'utente userà la funzione MyCommand1, Autocad andrà a caricare il file dove essa è contenuta, ed eseguirà il comando.

Se si ha a che fare con molti file o comandi è molto utile l'applicazione autoloader, la quale creerà automaticamente le varie righe di comando per poter creare i link.
Quindi scaricate il file autoloader.lsp, caricatelo e inseritelo nelle applicazioni del gruppo di avvio, come mostrato in precedenza.

A questo punto ogni volta che desiderate avviare automaticamente una applicazione lisp, basterà lanciare il comando

autoloader

comparirà una finestra di dialogo dove dovrete specificare la cartella dove risiedono i vostri file LISP da caricare; l'applicazione cercherà tutti i file all'interno della cartella che avete specificato e le funzioni definite al loro interno.

Dopo di che verrà creato un file di testo, nel quale ogni riga contiene il nome del file e delle rispettive funzioni presenti al suo interno.

 

Prendete le righe che vi interessano e copiatele nella riga di comando.
Ora tutti i comandi che avete inserito verranno caricati on demand ogni qual volta che l'utente li dovrà utilizzare; dato che sono stati inseriti nel file "ACADDOC.lsp" .
 

Compago