Információk az AutoLISP-kompatibilitásról

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.

Megjegyzés: Az AutoCAD 2014-alapú termékektől kezdődően a felhasználói alkalmazásokat biztonságos módban kell futtatni, amennyiben a SECURELOAD rendszerváltozó értéke 1 vagy 2. Biztonságos módban futtatva az AutoCAD-alapú termék kizárólag olyan fájlokat tölthet be és futtathat, amelyek megbízható helyről származó kódot tartalmaznak. A megbízható helyeket a TRUSTEDPATHS rendszerváltozó adja meg. További információkert tekintse meg „A biztonsággal és a vírusok elleni védelemmel kapcsolatos tudnivalók” témakört.

Általános információk

Elavult parancsok és rendszerváltozók

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.

Megjegyzés: Az, hogy egy elavult parancs vagy rendszerváltozó továbbra is működik bizonyos egyéni programokban, nem jelent garanciát arra, hogy a termék jövőbeli kiadásában is működni fog. Az elavult parancsok vagy rendszerváltozók használatának elkerülése érdekében javasoljuk az egyéni programok újraírását.

Az alábbi technikák hasznosnak bizonyulhatnak az elavult parancsok vagy rendszerváltozók egyéni programokban történő használata során:

  • A parancs előtagjaként használjon pontot. A JELMÓD parancs például .JELMÓD formátumban továbbra is használható.
  • Egy elavult rendszerváltozó PARANCS függvénnyel történő végrehajtásakor Ismeretlen parancs hibaüzenetet kaphat. Használja inkább a GETVAR és a SETVAR függvényeket. A (getvar „BLIPMODE”) parancs például a BLIPMODE rendszerváltozó aktuális értékét adja vissza.
Megjegyzés: A termékből eltávolított parancsok és rendszerváltozók a fenti technikákkal nem állíthatók vissza.

AutoCAD 2021-alapú és újabb termékek

Unicode-támogatás

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"
         )
  )
)
Megjegyzés: Amikor AutoLISP-forrásfájlokat (LSP-fájlok) fordít le a Visual LISP Integrated Development Environment (VL IDE) vagy a LISPALKKÉSZÍT parancs használatával, a LISPSYS rendszerváltozó aktuális értéke vezérli a fájlok fordításához használt formátumot. Az 1 értékűre beállított LISPSYS változóval lefordított fájlok nem tölthetők be az AutoCAD 2020-alapú és korábbi kiadásokba. Ha szeretné, hogy a fájlok a korábbi kiadásokba is betölthetők legyenek, a fájlok lefordítása előtt állítsa 0 vagy 2 értékűre a LISPSYS rendszerváltozót, ez azonban korlátozni fogja az Unicode-támogatást.

AutoCAD 2020-alapú és újabb termékek

BEILL parancs

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")

AutoCAD 2019-alapú és újabb termékek

LOCALE rendszerváltozó

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.

AutoCAD 2017-alapú és újabb termékek

CDATE, DATE és más dátum/idő alapú rendszerváltozók

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:

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

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)))
    )
  )
)
EPDFSHX rendszerváltozó

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:

  • GETVAR – nil értéket ad vissza 0 vagy 1 egész számérték helyett
  • SETVAR – A program futása leáll, és megjelenik a következő hibaüzenet: ; hiba: AutoCAD-változó beállítása elutasítva: „epdfshx”
  • PARANCS – A program futása leáll, és megjelenik a következő hibaüzenet: EPDFSHX Ismeretlen parancs: „EPDFSHX”

AutoCAD 2016-alapú és újabb termékek

Digitális aláírással rendelkező fájlok

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.

traszter függvény

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.