AutoLISP è un potente strumento per la produttività che consente di automatizzare i workflow ed estendere le funzionalità di AutoCAD LT.
Sebbene AutoLISP non sia una nuova funzionalità, è ora disponibile in AutoCAD LT a partire dalla release 2024.
L'implementazione di AutoLISP in AutoCAD LT consente di eseguire la maggior parte dei programmi AutoLISP sviluppati negli ultimi 40 anni con alcune limitazioni. Sebbene non sia necessario essere esperti di AutoLISP per sfruttare la maggior parte dei programmi esistenti, l'apprendimento della programmazione AutoLISP è una competenza che può sbloccare la produttività non sfruttata.
I programmi AutoLISP vengono in genere memorizzati in un file di testo con estensione .lsp. L'apprendimento del caricamento dei file AutoLISP è una delle prime cose che si apprende nei seguenti esercizi prima di apprendere alcune nozioni di base della programmazione AutoLISP. E no, non è necessaria un'esperienza di programmazione preliminare per sfruttare AutoLISP. In molti casi, sono necessari solo alcuni nuovi concetti e la comprensione corrente dei comandi e delle variabili di sistema di AutoCAD.
Quando si inizia ad utilizzare AutoLISP per la prima volta, anziché scrivere programmi personalizzati, è probabile che si stia caricando un file AutoLISP trovato online o creato dall'azienda. È possibile caricare i file AutoLISP:
È possibile utilizzare i seguenti metodi per caricare i file AutoLISP all'avvio, all'apertura di un disegno o manualmente.
Caricamento all'avvio | Caricamento manuale |
---|---|
|
|
Come si può vedere, AutoCAD LT è in grado di caricare i file AutoLISP in diversi modi. I metodi utilizzati dipendono dalla configurazione dell'ambiente di disegno. Per ora, esamineremo il caricamento di un file AutoLISP con la finestra di dialogo Carica/scarica applicazioni.
È possibile immettere APPLOAD anche alla riga di comando.
Se è installata una lingua diversa dall'inglese, ad esempio jp-jp, selezionare tale cartella anziché en-us.
Il file acadlt2024doc.lsp è uno dei file AutoLISP con nome speciale che AutoCAD LT cerca e carica se trovato in ogni disegno aperto o creato. Questo file AutoLISP contiene alcune funzioni AutoLISP personalizzate e alcuni comandi utilizzati dal prodotto. Qui, lo sto usando solo come file di esempio.
Nella finestra di messaggio, compare "acadlt2024doc.lsp caricato." nell'angolo inferiore sinistro della finestra di dialogo e nella finestra della riga di comando.
Viene avviato il comando DDGRIPS definito da AutoLISP in acadlt2024doc.lsp. Il comando DDGRIPS apre la finestra di dialogo Opzioni e imposta la scheda Selezione come corrente.
Nell'esercizio precedente, è stato utilizzato il comando DDGRIPS. Sicuramente ci si chiederà come si fa a sapere che si tratta di un comando nel file AutoLISP caricato. Talvolta, i programmi potrebbero utilizzare un codice che inserisce un messaggio direttamente nella finestra della riga di comando, in modo da sapere quali comandi sono definiti e utilizzabili. Tuttavia, non sempre è così e potrebbe essere necessario aprire un file AutoLISP per sapere quali comandi sono definiti. È possibile aprire un file AutoLISP utilizzando il Blocco note.
L'immagine seguente mostra parte del file acadlt2024doc.lsp aperto nel Blocco note. I comandi definiti da AutoLISP che possono essere immessi alla riga di comando hanno il prefisso c:. Il testo direttamente dopo c: è il nome del comando.
Sebbene non sia presente una posizione specifica in cui memorizzare i file AutoLISP scaricati o creati prima di utilizzarli, è consigliabile memorizzarli in una posizione condivisa. Analogamente ai modelli di disegno e alle librerie di blocchi, si desidera assicurarsi che tutti i disegnatori di un team o dell'azienda abbiano accesso agli stessi file AutoLISP. È consigliabile prendere in considerazione quanto segue:
Dopo aver identificato una cartella in cui memorizzare i file AutoLISP, è necessario specificare in AutoCAD LT la posizione della cartella utilizzando le impostazioni Percorso di ricerca dei file di supporto e Percorsi attendibili nella scheda File della finestra di dialogo Opzioni. Occorre specificare in AutoCAD LT dove si trovano i file LSP per i seguenti motivi:
Nei passaggi riportati di seguito viene illustrato come aggiungere la cartella C:\AutoLISP Files alle impostazioni di Percorso di ricerca dei file di supporto e di Percorsi attendibili. Tale percorso verrà utilizzato in un secondo momento per creare un file LSP con alcuni brevi programmi AutoLISP.
Le cartelle elencate sono quelle in cui in AutoCAD LT vengono cercati i file AutoLISP, tra gli altri tipi di file personalizzati utilizzati per memorizzare modelli di tratteggio, tipi di linea, alias di comando e definire nuovi elementi dell'interfaccia utente.
La cartella viene aggiunta in fondo all'elenco.
La cartella viene aggiunta in fondo all'elenco.
Oltre a impostare le cartelle con i file AutoLISP su sola lettura e a identificare tali cartelle come attendibili, AutoCAD LT offre anche alcune impostazioni aggiuntive che aiutano a proteggere AutoCAD LT da codice dannoso e malware. È possibile accedere alle impostazioni di Protezione di AutoCAD LT effettuando le seguenti operazioni:
La possibilità di caricare e gestire i file AutoLISP che si trovano online o già in possesso dell'azienda è solo l'inizio per diventare più produttivi con AutoLISP in AutoCAD LT. Dopo aver iniziato ad utilizzare i programmi AutoLISP dai file AutoLISP già presenti nei workflow quotidiani, potrebbe arrivare il giorno il giorno in cui si desidera apportare una modifica o persino scrivere i programmi AutoLISP di base.
Si potrebbe pensare che AutoLISP è un linguaggio di programmazione e che non si è dei programmatori. Se è vero che AutoLISP è un linguaggio di programmazione, non è però necessario essere un programmatore per imparare e scrivere programmi AutoLISP. Il programma AutoLISP più semplice è un'unica istruzione che consente di eseguire un comando o modificare il valore di una variabile di sistema.
Un'istruzione AutoLISP inizia con una parentesi di apertura e termina con una parentesi di chiusura. Di seguito è riportato un esempio di un'istruzione AutoLISP che attiva la Modalità orto con la variabile di sistema ORTHOMODE.
(setvar "orthomode" 1)
Analogamente ai nomi dei comandi e delle variabili di sistema, le istruzioni AutoLISP possono essere immesse alla riga di comando di AutoCAD LT. Proviamo:
Quando è disattivato, il pulsante della barra di stato è visualizzato in grigio.
Il pulsante Modalità orto sulla barra di stato dovrebbe ora essere attivato e di colore blu.
Congratulazioni per aver scritto la prima istruzione AutoLISP. Adesso si può dire di essere un programmatore.
L'istruzione AutoLISP precedente utilizza la funzione setvar per impostare il valore di una variabile di sistema. È inoltre disponibile una funzione che restituisce il valore corrente di una variabile di sistema denominata getvar. Le funzioni setvar e getvar sono solo due delle centinaia di funzioni che possono essere utilizzate per automatizzare i workflow utilizzando AutoLISP. Sebbene vi siano centinaia di funzioni che costituiscono il linguaggio di programmazione AutoLISP, per iniziare è necessario conoscere solo cinque funzioni chiave. Due di queste sono già state conosciute. Le cinque funzioni sono:
Ora che abbiamo conoscono le cinque funzioni chiave e abbiamo utilizzata la funzione setvar per impostare una variabile di sistema, esamineremo l'utilizzo della funzione command. Prima di continuare, è necessario sapere che i nomi dei comandi possono avere come prefisso . (punto) e _ (carattere di sottolineatura), mentre i nomi delle opzioni dei comandi possono essere preceduti da _ (carattere di sottolineatura). Questi caratteri vengono utilizzati per garantire l'esecuzione del comando fornito come previsto.
Di seguito è riportata una spiegazione del significato di questi caratteri:
Nei passaggi seguenti, si disegna un cerchio e si esegue lo zoom delle estensioni del disegno utilizzando la funzione command.
Sul layer corrente viene disegnato un cerchio con un raggio di 5 unità a 5,5.
Viene eseguito lo zoom delle estensioni del cerchio se questo è l'unico oggetto del disegno, altrimenti viene eseguito lo zoom delle estensioni di tutti gli oggetti del disegno.
Ora che abbiamo visualizzato alcune istruzioni AutoLISP, esaminiamo più da vicino le varie parti e la sintassi delle istruzioni AutoLISP di esempio:
Sebbene l'immissione diretta delle istruzioni AutoLISP alla riga di comando sia un ottimo modo per iniziare a imparare ad utilizzare AutoLISP poiché si ottiene un feedback in tempo reale, non è molto efficiente digitare più volte le istruzioni alla riga di comando. Un approccio per consentire di riutilizzare le istruzioni AutoLISP consiste nel raggrupparle come comando personalizzato con la funzione defun.
Proviamo la funzione defun e definiamo un comando personalizzato denominato ZP che esegue lo zoom dellla vista precedente del disegno:
C:ZP è l'output del comando.
Viene ripristinata la vista precedente.
La vista precedente viene ora ripristinata.
Anche se è possibile definire comandi personalizzati con la funzione defun per semplificare il riutilizzo delle istruzioni AutoLISP, i comandi definiti sono disponibili solo nei disegni in cui sono stati definiti e finché il disegno rimane aperto. Nella sezione successiva verrà illustrato come creare un file AutoLISP per memorizzare i comandi AutoLISP personalizzati insieme ad altre istruzioni AutoLISP che si potrebbero eseguire al caricamento del file AutoLISP.
È possibile ottenere ulteriori informazioni sulle cinque funzioni principali insieme alle centinaia di altre funzioni disponibili nel manuale AutoLISP Reference Guide.
Ora che sappiamo come immettere espressioni AutoLISP alla riga di comando, vedremo come creare un file AutoLISP e memorizzare le espressioni AutoLISP e i comandi personalizzati per renderli disponibili quando necessario. I file AutoLISP sono file di testo ASCII standard che possono essere creati con un editor di testo semplice, ad esempio il Blocco note, e hanno l'estensione .lsp. Non è consigliabile utilizzare un'applicazione di elaborazione di testo come Writer o Word, poiché consente di inserire formattazione e caratteri speciali che potrebbero causare problemi quando si carica il file LSP.
Negli esercizi successivi verrà illustrato come creare un file LSP, aggiungere alcune istruzioni AutoLISP al file LSP, caricare il file LSP e quindi provare i comandi definiti nel file LSP. Oltre alle cinque funzioni chiave citate in precedenza, sono state presentate anche le seguenti funzioni:
Ora creiamo un file personalizzato e lo carichiamo in AutoCAD LT:
; Zoom commands (defun c:ze () (command "._zoom" "_e")) (defun c:zp () (command "._zoom" "_p")) ; Creates the layer A-ANNO-REV, draws a rectangle and ; converts the rectangle to a revision cloud with arc lengths ; based on half the current value of the LTSCALE system variable (defun c:rv () (setq old-layer (getvar "clayer")) (command "._-layer" "_m" "A-ANNO-REVCLD" "_c" "1" "" "") (command "._rectang" PAUSE PAUSE) (command "._revcloud" "_a" (/ (getvar "ltscale") 2) "" "_o" "_l" "_n") (setvar "clayer" old-layer) ) ; Display a general message in the command line upon load (prompt "\nLoaded MyFirst.lsp") (princ).
Se i programmi devono utilizzare caratteri Unicode, selezionare UTF-8.
Dopo aver creato il file, anziché utilizzare la finestra di dialogo Carica/scarica applicazioni visualizzata con il comando APPLOAD, è possibile caricare il file LSP utilizzando Esplora file.
Una volta caricato, dovrebbe essere visualizzato il messaggio "Loaded MyFirst.lsp nella cronologia della finestra della riga di comando visualizzata dalla funzione prompt.
Notare che il fumetto di revisione è rosso e viene posizionato sul layer A-ANNO-REVCLD. Questo è visibile nell'elenco a discesa Layer del gruppo Layer della barra multifunzione o nelle tavolozze Proprietà/Proprietà rapide.
Viene eseguito lo zoom delle estensioni del disegno.
Viene ripristinata la vista precedente del disegno.
La finestra di dialogo Carica/scarica applicazioni può essere utilizzata non solo per caricare manualmente i file AutoLISP in base alle esigenze, ma anche per caricare automaticamente i file AutoLISP all'apertura o alla creazione di un nuovo file di disegno. L'area Gruppo di avvio della finestra di dialogo Carica/scarica applicazioni consente di specificare i file AutoLISP da caricare automaticamente.
Di seguito sono riportati i passaggi utilizzati per aggiungere un file AutoLISP al gruppo di avvio:
È possibile immettere APPLOAD anche alla riga di comando.
Se è stato creato il file myfirst.lsp nella sezione precedente, è possibile selezionarlo.
Il file AutoLISP aggiunto al gruppo di avvio viene caricato automaticamente nel disegno corrente.
Quando si avvia AutoCAD LT o si crea/apre un disegno, vengono cercati quattro file AutoLISP con nomi specifici. Se i file vengono trovati, vengono caricati automaticamente. Questi file consentono di verificare che l'ambiente di AutoCAD LT sia configurato come previsto e che i comandi definiti da AutoLISP siano disponibili al momento della creazione o dell'apertura di un disegno.
In AutoCAD LT vengono cercati e caricati automaticamente questi quattro file quando si trovano nei percorsi di supporto:
I file acadlt.lsp e acadltdoc.lsp devono essere creati dall'utente. Non fanno parte dell'installazione standard di AutoCAD LT. acadlt2024.lsp e acadltdoc2024.lsp sono inclusi nel programma e non devono essere modificati.
È possibile utilizzare i file acadlt.lsp e acadltdoc.lsp come qualsiasi altro file LSP; inoltre questi file vengono caricati automaticamente nei contesti indicati in precedenza. Questi due file possono essere utilizzati per caricare altri file AutoLISP utilizzando la funzione load di AutoLISP, eseguire istruzioni AutoLISP durante il caricamento di questi file e indicare definizioni di comandi AutoLISP in modo che siano pronte per l'uso dopo la creazione o l'apertura di un disegno. La funzione load di AutoLISP accetta due parametri: il file AutoLISP da caricare, che è necessario, e un secondo parametro facoltativo, che è un messaggio da visualizzare se il file AutoLISP in corso di caricamento non è presente in uno dei percorsi di ricerca dei file di supporto di AutoCAD LT. Vedere la sezione Gestione e protezione di file AutoLISP per l'impostazione dei percorsi di ricerca dei file di supporto.
Nei passaggi seguenti viene illustrato come creare il file acadltdoc.lsp nella cartella C:\AutoLISP Files, aggiungervi alcune istruzioni AutoLISP, caricare tale file in AutoCAD LT e quindi verificare che sia stato caricato.
; AutoLISP to be executed in each drawing created or opened ; Set Object Snap and Ortho modes (setvar "osmode" 4133) (setvar "orthomode" 1) ; Load the LSP file created earlier under the ; "Store AutoLISP Statements in AutoLISP (LSP) Files" section (load "myfirst.lsp" "\nMyFirst.lsp file couldn't be found") ; Display a general message in the command line upon load (prompt "\nLoading my custom programs") (princ).
Nella finestra della riga di comando, dovrebbe essere visualizzato il messaggio "Loading my custom programs", che proviene da una delle ultime due righe immesse in precedenza nel passaggio 2.
I pulsanti della barra di stato dovrebbero essere nuovamente attivati.
Un bundle di plug-in è una struttura di cartelle con un file manifesto denominato PackageContents.xml che specifica in AutoCAD LT i file e le impostazioni che costituiscono il plug-in. Sebbene non siano necessari bundle di plug-in per caricare programmi AutoLISP in AutoCAD LT, come già appreso in questo articolo, questi possono semplificare la gestione di file AutoLISP e rappresentano un metodo più sicuro per l'installazione client dei programmi personalizzati rispetto all'utilizzo dei file acadlt.lsp o acadltdoc.lsp. I bundle di plug-in consentono inoltre di configurare AutoCAD LT senza la necessità, nella maggior parte dei casi, della finestra di dialogo Opzioni.
Per informazioni sui bundle di plug-in, vedere Esempio: struttura di cartelle .bundle di base per un plug-in.
L'automazione dei workflow può contribuire a migliorare la produttività e a ridurre le attività ripetitive. Sebbene la programmazione AutoLISP abbia una curva di apprendimento, se si continua ad apprendere le cinque funzioni principali, è possibile creare alcuni piccoli programmi che aiutano a capire quanto prezioso AutoLISP possa essere nei workflow quotidiani.
Di seguito sono riportati alcuni comandi e variabili di sistema utilizzati più di frequente correlati ad AutoLISP.
Comando | Descrizione |
---|---|
APPAUTOLOADER | Elenca o ricarica tutti i plug-in nella cartella dei plug-in dell'applicazione. |
APPLOAD | Carica e scarica le applicazioni e definisce le applicazioni da caricare all'avvio. |
OPZIONI | Personalizza le impostazioni del programma. |
OPZIONISICUREZZA | Controlla le restrizioni di protezione per l'esecuzione di file eseguibili nel prodotto. |
NUOVDEF | Consente di sostituire un comando interno utilizzando un comando definito dall'applicazione. |
Variabile di sistema | Descrizione | Valore di default | Posizione di salvataggio |
---|---|---|---|
ACADLSPASDOC | Controlla se il file acad.lsp o il file acadlt.lsp per AutoCAD LT viene caricato in ogni disegno o solo nel primo disegno aperto in una sessione. | 0 | Registro |
APPAUTOLOAD | Controlla quando vengono caricate le applicazioni plug-in. | 14 | Registro |
CLAYER | Imposta il layer corrente. | 0 | Disegno |
CLIPROMPTUPDATE | Controlla se nella riga di comando vengono visualizzati i messaggi di richiesta e i messaggi generati durante l'esecuzione di un file di script o AutoLISP. | 1 | Registro |
CMDDIA | Controlla la visualizzazione dell'editor di modifica diretta del testo per i comandi DIMEDITA e DIRRAPID e la visualizzazione di alcune finestre di dialogo nei prodotti basati su AutoCAD. | 1 | Registro |
CMDECHO | Controlla la visualizzazione dei messaggi di richiesta e dell'input durante l'esecuzione del comando AutoLISP. | 1 | Non salvato |
FILEDIA | Sopprime la visualizzazione delle finestre di dialogo di navigazione. | 1 | Registro |
LEGACYCODESEARCH | Controlla se la ricerca di file eseguibili include la cartella da cui viene avviato il programma. | 0, potrebbe essere bloccato da un amministratore CAD | Registro |
NOMUTT | Sopprime la visualizzazione dei messaggi quando normalmente rimarrebbe attivata. | 0 | Non salvato |
ORTHOMODE | Vincola il movimento del cursore alla perpendicolare. | 0 | Disegno |
OSMODE | Imposta gli snap ad oggetto in esecuzione. | 4133 | Registro |
SECURELOAD | Determina se i file eseguibili possono essere caricati solo da cartelle attendibili. | 1, può essere bloccato da un amministratore CAD | Registro |
TEXTEVAL | Controlla la valutazione delle stringhe di testo immesse con il comando TESTO (mediante AutoLISP) o -TESTO. | 0 | Non salvato |
TRUSTEDPATHS | Specifica le cartelle che dispongono dell'autorizzazione per caricare ed eseguire i file contenenti codice. | Variabile, potrebbe essere bloccato da un amministratore CAD | Registro |