Az AutoLISP-programok esetében általában kevés módosításra van szükség a legújabb kiadáson való futtatásukhoz.
Ugyanakkor előfordulhat, hogy az AutoLISP program nem futtatható megfelelően a legújabb kiadásban, mert egy AutoLISP-funkció vagy az AutoCAD-alapú termék egy parancsa vagy rendszerváltozója módosult vagy elavult.
Keresse meg az egyéni programjaiban esetlegesen elavultként megjelölt parancsokat és rendszerváltozókat. Bizonyos esetekben az elavult parancsok vagy rendszerváltozók továbbra is használhatók az egyéni programok által, ugyanakkor nem írhatók be közvetlenül a parancspromptban, illetve nem érhetők el a felhasználói kezelőfelületen.
Az alábbi technikák hasznosnak bizonyulhatnak az elavult parancsok vagy rendszerváltozók egyéni programokban történő használata során:
Az AutoLISP-környezet frissült a Unicode-karakterek támogatása érdekében, ami hatással van karakterlánc-értékek módosítására szolgáló, illetve a karakterlánc-értékeket visszaadó függvényekre. A Unicode-támogatás érdekében frissített függvényekkel kapcsolatos további információkat az AutoLISP újdonságait és változásait ismertető témakörben tekintheti meg.
A programokban használt függvények alapján szükség lehet azok módosítására az Unicode-karakterek kezeléséhez. Az ASCII-függvény visszatérési értéke például most már nagyobb lehet 255-nél, vagy a korábbi kiadásokhoz képest eltérő lehet, ha a függvénynek egy Unicode-karakter lett átadva. A LISPSYS rendszerváltozóval azonosíthatja és vezérelheti a programba betöltött alapértelmezett AutoLISP-környezetet; 0 és 2 = MBCS-támogatás (korábbi környezet), 1 = Unicode-támogatás.
A következő kódrészlet bemutatja, hogyan határozható meg, hogy melyik AutoLISP-környezet van jelenleg betöltve a programba, és hogyan vezérelheti a kódvégrehajtást a betöltött környezet alapján:
(if (= (getvar "LISPSYS") 1) (alert (strcat "Unicode support enabled" "\n(ASCII \"€\") returns 8364" ) ) (alert (strcat "MBCS (Legacy) support enabled" "\n(ASCII \"€\") returns 128" ) ) )
A BEILL parancs a Blokkok palettát, míg az új KLASSZIKUSBEILL parancs a „korábbi” Beszúrás párbeszédpanelt jeleníti meg. Ha egy AutoLISP-program a Beszúrás párbeszédpanel használatán alapul, módosítania kell a meglévő programot. Korábban az alábbi AutoLISP-utasításokat használhatta a Beszúrás párbeszédpanel megjelenítéséhez:
(initdia) (command "insert")
Hogy továbbra is megjeleníthesse a Beszúrás párbeszédpanelt az AutoLISP-programokban, módosítania kell a meglévő programokat, hogy használhassa az alábbi módszerek egyikét:
(initcommandversion 2) (initdia) (command "insert")
(command "classicinsert")
A LOCALE rendszerváltozó mostantól egy olyan kódot ad vissza, amely egy két vagy több betűs, az aktuális nyelvet jelölő rövidítést tartalmaz, nem pedig egy hárombetűs rövidítést, amely a nyelvet és az alnyelvet jelölte. A két vagy több betűs rövidítés a Windows GetLocaleInfo függvényén alapul, a LOCALE_SISO639LANGNAME konstans használatával.
Az AutoCAD 2019-alapú termékek előtt ez a kód egy hárombetűs rövidítés volt, melyet a Windows GetLocaleInfo függvénye adott vissza a LOCALE_SABBREVLANGNAME konstans használatával. A hárombetűs rövidítés két információt tartalmazott: a kétbetűs nyelvrövidítést, valamint egy harmadik, az alnyelvet jelölő betűt. Például az ENU rövidítés az angol nyelv (EN) és az amerikai alnyelv (U) kombinációját jelölte.
A CDATE és DATE rendszerváltozókban tárolt értékek már nem ezred- vagy századmásodperces pontossággal mutatják az aktuális dátumot vagy időt. A két rendszerváltozó értékeinek legkisebb időmérési egysége mostantól a másodperc. Ha egy másodpercnél kisebb időközök kiszámítására van szükség, használja a MILLISECS rendszerváltozó által visszaadott értéket, amely ezredmásodperc pontossággal tárolja a munkaállomás elindítása óta eltelt időkülönbséget.
Az ezredmásodpercek kivezetése a következő dátum/idő alapú rendszerváltozókat is érintette:
Ha a meglévő programok bármelyike igényli az ezredmásodperces pontosságú időkülönbséget, akkor az érték utolsó 2 vagy 3 számjegyét beszerezheti a MILLISECS rendszerváltozóból, és hozzáfűzheti ezeket a CDATE rendszerváltozó által visszaadott értékhez, amely olyan értéket hoz létre, amely az AutoCAD 2016-alapú és korábbi termékek CDATE rendszerváltozója által visszaadott értékhez hasonló. A következő kódmintából kiderül, hogyan kaphat vissza egy dátum/idő értéket, amely az AutoCAD adott kiadása alapján tartalmazza az ezredmásodperceket is:
; 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))) ) ) )
Az AutoCAD 2016 1. frissítése során bevezetett EPDFSHX rendszerváltozó már PDFSHX néven használatos. A névváltozás miatt minden, az EPDFSHX rendszerváltozóra hivatkozó AutoLISP-utasítás felülvizsgálatra szorul. A funkciók, amelyekre e változás valószínűsíthetően a legnagyobb mértékben hat az egyéni programokban, a következők:
Az AutoLISP-fájlok már digitális aláírással láthatók el. Az AutoLISP-fájlok digitális aláírásával a fájlok anélkül tölthetők az AutoCAD rajzkörnyezetbe, hogy a felhasználó figyelmeztetést kapna arról, hogy a fájl nem megbízható. A digitális aláírással rendelkező VLX-fájlok nem tölthetők be AutoCAD 2015-alapú vagy korábbi termékekbe.
A traszter függvény a továbbiakban nem támogatja a Gyors (qui) tárgyraszter módot. A qui mód hivatkozásait el kell távolítani az AutoLISP-programokban traszter függvényeket használó összes utasításból. Ha a mód nincs eltávolítva, a traszter függvény nil értéket ad vissza a rajzterület érvényes pontjához tartozó koordinátaérték helyett.