Informazioni sulla compatibilità AutoLISP

I programmi AutoLISP richiedono in genere poche modifiche per essere eseguiti nell'ultima release.

È tuttavia possibile che nell'ultima release un programma AutoLISP non venga più eseguito correttamente perché una funzione AutoLISP o un comando di un prodotto basato su AutoCAD è stato modificato o non è più supportato.

Nota: A partire dai prodotti basati su AutoCAD 2014, le applicazioni personalizzate devono essere eseguite in modalità sicura. La variabile di sistema SECURELOAD deve essere impostata su 1 o su 2. Quando si lavora in modalità sicura, i file che il prodotto basato su AutoCAD può caricare ed eseguire sono limitati a quelli che contengono codice proveniente da percorsi attendibili. I percorsi attendibili sono specificati dalla variabile di sistema TRUSTEDPATHS. Per ulteriori informazioni, vedere Informazioni sulla sicurezza e protezione dai virus.

Informazioni generali

Variabili di sistema e comandi obsoleti

Esaminare i programmi personalizzati per ricercare eventuali variabili di sistema e comandi che sono stati designati come obsoleti. In alcuni casi, una variabile di sistema o un comando obsoleto può comunque essere utilizzato con i programmi personalizzati, anche se non può essere immesso nella riga di comando o non è accessibile dall'interfaccia utente.

Nota: Anche se una variabile di sistema o un comando obsoleto potrebbe essere ancora utilizzato per un programma personalizzato, non vi è alcuna garanzia che continuerà a funzionare nelle prossime release del prodotto. Si consiglia di riscrivere i programmi personalizzati per evitare l'uso di variabili di sistema o comandi obsoleti.

Le seguenti tecniche potrebbero essere utili durante l'utilizzo di una variabile di sistema o un comando obsoleto in un programma personalizzato:

  • Aggiungere come prefisso un punto al nome del comando. Ad esempio, .PUNTINI consente l'utilizzo del comando PUNTINI.
  • Evitare di eseguire una variabile di sistema obsoleta con la funzione COMMAND che potrebbe determinare la visualizzazione del messaggio di errore Comando sconosciuto; utilizzare invece le funzioni GETVAR e SETVAR. Ad esempio, (getvar "BLIPMODE") restituisce il valore corrente della variabile di sistema BLIPMODE.
Nota: Le variabili di sistema e i comandi che sono stati rimossi dal prodotto non possono essere ripristinati utilizzando le tecniche descritte in precedenza.

Prodotti basati su AutoCAD 2020

Comando INSER

Il comando INSER ora visualizza la tavolozza Blocchi, mentre il nuovo comando INSERCLASSICO visualizza la finestra di dialogo Inserisci tradizionale. Se il programma AutoLISP dipende dall'uso della finestra di dialogo Inserisci, sarà necessario modificare il programma esistente. In precedenza, potrebbero essere state utilizzate le seguenti istruzioni AutoLISP per visualizzare la finestra di dialogo Inserisci:

(initdia)
(command "insert")

Per continuare la visualizzazione della finestra di dialogo Inserisci con i programmi AutoLISP, sarà necessario modificare i programmi esistenti per utilizzare uno di questi metodi:

  • (initcommandversion 2)
    (initdia)
    (command "insert")
  • (command "classicinsert")

Prodotti basati su AutoCAD 2017 e versioni successive

CDATE, DATE e altre variabili di sistema correlate alla data/all'ora

I valori memorizzati nelle variabili di sistema CDATE e DATA non rappresentano più la data/l'ora corrente al millisecondo o al centesimo di un secondo più vicino. I secondi sono ora l'unità di tempo più piccola in cui sono espressi i valori di queste due variabili di sistema. Se è necessario tenere traccia di intervalli di tempo minori di un secondo, si consiglia di utilizzare il valore restituito dalla variabile di sistema MILLISECS che memorizza la differenza temporale da quando è stata avviata la stazione di lavoro in millisecondi.

Le seguenti variabili di sistema correlate alla data/all'ora sono influenzate anche dalla rimozione di millisecondi:

  • TDCREATE
  • TDINDWG
  • TDUCREATE
  • TDUPDATE
  • TDUSRTIMER
  • TDUUPDATE

Se uno qualsiasi dei programmi esistenti richiede differenze temporali arrotondate al millisecondo più vicino, si potrebbero ottenere le ultime 2 o 3 cifre del valore memorizzato nella variabile di sistema MILLISECS e aggiungerle al valore restituito dalla variabile di sistema CDATE che produce un valore confrontabile con quello restituito dalla variabile di sistema CDATE nei prodotti basati su AutoCAD 2016 e versioni precedenti. Nel seguente codice di esempio è mostrato come ottenere un valore di data/ora che includa i millisecondi in base alla release AutoCAD di destinazione:

; Returns a CDATE value that includes milliseconds based on release
; Usage: (CDate)
; Replaces (rtos (getvar "CDATE") 2 8)
(defun CDate ( / ms)
  ; Check to see which AutoCAD release is being used
  (if (<= (atof (getvar "ACADVER")) 22.0)
    (rtos (getvar "CDATE") 2 8)
    (progn
      ; Get the current milliseconds and append it to the CDATE value
      (setq ms (itoa (getvar "MILLISECS")))
      (strcat (rtos (getvar "CDATE") 2 6)(substr ms (- (strlen ms) 2)))
    )
  )
)
Variabile di sistema EPDFSHX

La variabile di sistema EPDFSHX introdotta con AutoCAD 2016 Update 1 è stata rinominata PDFSHX. Come risultato del cambio del nome, eventuali dichiarazioni relative ad AutoLISP che fanno riferimento alla variabile di sistema EPDFSHX devono essere riviste. Queste sono le funzioni che più probabilmente saranno interessate da questa modifica nei programmi personalizzati:

  • GETVAR - Verrà restituito un valore nil anziché un valore intero di 0 o 1.
  • SETVAR - L'esecuzione del programma potrebbe essere interrotta e verrà visualizzato il messaggio di errore ; errore: impostazione della variabile AutoCAD rifiutata: "epdfshx".
  • COMMAND - L'esecuzione del programma potrebbe essere interrotta e verrà visualizzato il messaggio di errore EPDFSHX Comando sconosciuto "EPDFSHX".

Prodotti basati su AutoCAD 2016 e versioni successive

File con firma digitale

Ai file AutoLISP può essere ora applicata una firma digitale. L'apposizione della firma digitale ad un file AutoLISP consente di caricarlo nell'ambiente di disegno AutoCAD senza alcun avvertimento per l'utente che il file non è attendibile. I file VLX con firma digitale non possono essere caricati in prodotti basati su AutoCAD 2015 o versioni precedenti.

Funzione OSNAP

La funzione Osnap non supporta più la modalità di snap ad oggetto Quick qui. I riferimenti alla modalità qui devono essere rimossi da tutte le istruzioni che utilizzano la funzione Osnap nei programmi AutoLISP. Se la modalità non viene rimossa, la funzione OSNAP restituisce nil anziché il valore delle coordinate di un punto nell'area di disegno.