Az AutoLISP egy hatékony termelékenységnövelő eszköz, amely lehetővé teszi a munkafolyamatok automatizálását és az AutoCAD LT funkcióinak bővítését.
Bár az AutoLISP nem egy új szolgáltatás, a 2024-es kiadástól kezdve elérhető az AutoCAD LT programban.
Az AutoLISP AutoCAD LT programban való bevezetése bizonyos korlátozásokkal lehetővé teszi a legtöbb olyan AutoLISP-program futtatását, amelyet az elmúlt 40 évben fejlesztettek ki. Bár nem kell AutoLISP-szakértőnek lennie ahhoz, hogy sok meglévő programot használhasson, az AutoLISP-programozás elsajátításával hatékonyabbá teheti munkafolyamatait.
Az AutoLISP-programok általában egy .lsp kiterjesztésű szövegfájlban vannak tárolva. Az AutoLISP-fájlok betöltésének elsajátítása az egyik első dolog, amelyet a következő gyakorlatokban elsajátít, mielőtt megismerné az AutoLISP-programozás néhány alapelvét. És nem, az AutoLISP előnyeinek kihasználásához nincs szükség előzetes programozási tapasztalatokra. Sok esetben csupán néhány új koncepcióra és az AutoCAD parancsok és rendszerváltozók jelenlegi ismeretére van szüksége.
Amikor először kezdi el az AutoLISP használatát, ahelyett, hogy saját programokat írna, valószínűleg online talált vagy a vállalat által létrehozott AutoLISP-fájlt tölt be. Az AutoLISP-fájlok betölthetők:
A következő módszerek használhatók az AutoLISP-fájlok betöltésére az indításkor, rajz megnyitásakor vagy kézileg.
Betöltés indításkor | Kézi betöltés |
---|---|
|
|
Amint láthatja, az AutoCAD LT többféle módon képes betölteni az AutoLISP-fájlokat. A használt módszerek a rajzolási környezet konfigurációjától függnek. Egyelőre az Alkalmazások betöltése/törlése párbeszédpanel segítségével fogjuk megvizsgálni az AutoLISP-fájlok betöltését.
Az ALKTÖLT parancsot a parancspromptba is beírhatja.
Ha az angoltól eltérő, például jp-jp nyelv van telepítve, akkor az en-us helyett a megfelelő mappát válassza ki.
Az acadlt2024doc.lsp fájl egyike azoknak a speciálisan elnevezett AutoLISP-fájloknak, amelyeket az AutoCAD LT megkeres és betölt minden megnyitott vagy létrehozott rajzba, ha megtalálja. Ez az AutoLISP-fájl tartalmaz néhány, a termék által használt parancsot és egyéni AutoLISP-függvényt. Itt csak példafájlként használom.
Az üzenetablakban az „acadlt2024doc.lsp sikeresen betöltve.” üzenet jelenik meg a párbeszédpanel bal alsó sarkában és a parancssori ablakban.
Ez elindítja az AutoLISP által az acadlt2024doc.lsp fájlban definiált DPFOGÓK parancsot. A DPFOGÓK parancs megnyitja a Beállítások párbeszédpanelt, és megjeleníti a Kiválasztás lapot.
Az előző gyakorlatban a DPFOGÓK parancsot használta. Biztos vagyok benne, hogy kíváncsi arra, honnan tudhatta volna, hogy ez egy parancs a betöltött AutoLISP-fájlban. Előfordulhat, hogy a programok olyan kódot használnak, amely közvetlenül a parancssor ablakában üzenetet jelenít meg, így tudhatja, mely parancsok vannak definiálva és használhatók. Ez azonban nem mindig van így, és előfordulhat, hogy meg kell nyitnia egy AutoLISP-fájlt, hogy megtudja, mely parancsok vannak definiálva. Az AutoLISP-fájlokat a Jegyzettömbbel nyithatja meg.
A következő kép a Jegyzettömbben megnyitott acadlt2024doc.lsp fájl egy részét mutatja. A parancspromptban megadható, AutoLISP által definiált parancsok előtagja a c:. A közvetlenül a c: után található szöveg a parancs neve.
Bár nincs meghatározva, hogy hol tárolja a letöltött vagy létrehozott AutoLISP-fájlokat használat előtt, ajánlott egy megosztott helyen tárolni őket. A rajzsablonokhoz és a blokk-könyvtárakhoz hasonlóan arról is érdemes meggyőződni, hogy a csoport vagy a vállalat összes rajzolója rendelkezik-e hozzáféréssel ugyanazokhoz az AutoLISP-fájlokhoz. Fontolja meg a következő lehetőségeket:
Miután meghatározta az AutoLISP-fájlok tárolására szolgáló mappát, a Beállítások párbeszédpanel Fájlok lapján található Támogatási fájlok keresési útvonala és Megbízható helyek beállítással értesítenie kell az AutoCAD LT-t arról, hogy hol található a mappa. Az AutoCAD LT szoftvernek a következő okokból kell tudnia, hol találhatók az LSP-fájlok:
A következő lépések bemutatják, hogyan adhatja hozzá a C:\AutoLISP Files mappát a Támogatási fájlok keresési útvonala és a Megbízható helyek beállításhoz. Ezt a helyet később egy LSP-fájl néhány rövid AutoLISP programmal való létrehozására fogja használni.
A felsorolt mappák azok, ahol az AutoCAD LT az AutoLISP-fájlokat keresi az egyéb egyéni fájltípusok között, amelyekben a rendszer a sraffozási mintákat, a vonaltípusokat, a parancsálneveket és az új felhasználóifelület-elemek definiálását tárolja.
A mappa a lista aljára kerül.
A mappa a lista aljára kerül.
Amellett, hogy az AutoLISP-fájlokat tartalmazó mappákat írásvédettként jelöli meg, és megbízhatóként azonosítja őket, az AutoCAD LT nyújt további beállításokat is, amelyek segítenek megvédeni az AutoCAD LT-t a rosszindulatú kódoktól és kártevőktől. Az AutoCAD LT biztonsági beállításait a következő módon érheti el:
Az online talált vagy a vállalat már meglévő AutoLISP-fájljainak betöltése és kezelése csak a kezdet ahhoz, hogy az AutoLISP használatával még hatékonyabb legyen az AutoCAD LT-ben. Miután elkezd használni AutoLISP-programokat már meglévő AutoLISP fájlokból a mindennapi munkafolyamatokban, előfordulhat, hogy módosítani kívánja azokat, vagy akár saját alapvető AutoLISP-programokat szeretne írni.
Talán azt gondolja magában, hogy az AutoLISP egy programozási nyelv, és hogy Ön nem programozó. Igaz, az AutoLISP egy programozási nyelv, de nem kell programozónak lennie ahhoz, hogy megtanulja, hogyan írhat AutoLISP-programokat. A legegyszerűbb AutoLISP-program egy olyan utasítás, amely lehetővé teszi egy parancs végrehajtását vagy egy rendszerváltozó értékének módosítását.
Az AutoLISP-utasítások nyitó zárójellel kezdődnek, és záró zárójellel végződnek. Az alábbiakban egy olyan AutoLISP-utasítás látható, amely bekapcsolja az Orto módot az ORTHOMODE rendszerváltozóval.
(setvar "orthomode" 1)
A parancsokhoz és rendszerváltozókhoz hasonlóan AutoLISP-utasításokat is megadhat az AutoCAD LT parancspromptjában. Próbáljuk meg:
Ha le van tiltva, az állapotsor gombja szürkén jelenik meg.
Ekkor az állapotsor Orto mód gombjának bekapcsolva,kéken jelenik meg.
Gratulálunk az első AutoLISP-utasítás megírásához! Ön most már egy programozó!
Az előző AutoLISP-utasítás a setvar függvényt használja egy rendszerváltozó értékének beállítására. Létezik egy getvar nevű függvény is, amely egy rendszerváltozó aktuális értékét adja vissza. A setvar és a getvar függvény csak kettő a több százból, amelyek használatával automatizálhatja a munkafolyamatokat az AutoLISP segítségével. Bár az AutoLISP programozási nyelvet több száz függvény alkotja, a kezdéshez mindössze öt fő függvényt kell megismernie. Ezek közül kettőről már tanult. Az öt függvény a következő:
Most, hogy ismeri ezt az öt fő függvényt, és a setvar függvénnyel beállított egy rendszerváltozót, tekintsük át a command függvényt. Mielőtt folytatná, tudnia kell, hogy a parancsnevek előtagjaként . (pont) és _ (aláhúzásjel) karaktert, míg a parancsopciók neveinek előtagjaként _ (aláhúzásjel) karaktert használhat. Ezek a karakterek biztosítják, hogy a megadott parancs a vártnak megfelelően legyen végrehajtva.
Itt találja a karakterek jelentését:
A következő lépésekben a command függvénnyel rajzoljon egy kört, és nagyítson rá a rajzra.
A program az aktuális fólián az 5,5 pontra egy 5 egység sugarú kört rajzol.
A rajz a kör terjedelmére van nagyítva, ha ez az egyetlen objektum a rajzban, máskülönben a rajz összes objektumának terjedelmére nagyít.
Most, hogy már látott néhány AutoLISP-utasítást, nézzük meg közelebbről a példa AutoLISP-utasítások különböző részeit és szintaxisát:
Bár az AutoLISP-utasítások beírása közvetlenül a parancssorba nagyszerű mód az AutoLISP elsajátítására (mivel valós időben kap visszajelzést), nem túl hatékony az utasítások ismételt beírása a parancssorba. Az AutoLISP-utasítások újrafelhasználásának egyik módja az, hogy a defun függvénnyel egyéni parancsként csoportosítjuk őket.
Próbáljuk ki a defun függvényt, és definiáljunk egy ZP nevű egyéni parancsot, amely a rajz előző nézetére nagyít:
A parancs kimenete C:ZP.
Az előző nézet visszaáll.
Az előző nézet visszaáll.
Bár a defun függvénnyel meghatározhat egyéni parancsokat az AutoLISP-utasítások újbóli felhasználásának megkönnyítésére, a definiált parancsok csak azokban a rajzokban érhetők el, amelyek definiálva vannak, és csak amíg a rajz nyitva marad. A következő szakaszban megtanulhatja, hogyan hozhat létre egy AutoLISP-fájlt, amelyben tárolhatja az egyéni AutoLISP-parancsait, valamint más AutoLISP-utasításokat, amelyeket az AutoLISP-fájl betöltésekor végrehajtana.
Az AutoLISP referencia útmutatóban többet megtudhat az öt fő függvényről, valamint a több száz egyéb elérhető függvényről.
Most, hogy tudja, hogyan írjon be AutoLISP-kifejezéseket a parancspromptba, nézzük meg, hogyan hozhatunk létre egy AutoLISP-fájlt, és hogyan tárolhatjuk az AutoLISP-kifejezéseket és egyéni parancsokat, hogy szükség esetén elérhetők legyenek. Az AutoLISP-fájlok sima ASCII szövegfájlok, amelyek egyszerű szövegszerkesztővel, például a Jegyzettömbbel hozhatók létre, és a kiterjesztésük .lsp. Nem ajánlott olyan szövegszerkesztő alkalmazásokat használni, mint például a Write vagy a Word, mivel ezek speciális karaktereket és formázást használhatnak, ami problémákat okozhat az LSP-fájl betöltésekor.
A következő gyakorlatokban megtanulja, hogyan hozhat létre egy LSP-fájlt, adhat hozzá néhány AutoLISP utasítást és töltheti be, majd kipróbálhatja az LSP-fájlban definiált parancsokat. A korábban említett öt fő függvényen kívül az alábbi függvények is elérhetők:
Most készítsük el saját fájlunkat, és töltsük be az AutoCAD LT programba:
; 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)
Ha a programoknak Unicode-karaktereket kell használniuk, válassza az UTF-8 lehetőséget.
Most, hogy létrehozta a fájlt, az ALKTÖLT paranccsal megjelenített Alkalmazás betöltése/törlése párbeszédpanel helyett a Fájlkezelővel tölti be az LSP-fájlt.
Betöltés után a parancssori ablakban megjelenik a parancssori függvény által megjelenített „Loaded MyFirst.lsp” üzenet.
Figyelje meg, hogy a revízióbuborék vörös, és az A-ANNO-REVCLD fóliára kerül. Ez a szalag Fóliák panelének Fólia legördülő listájából vagy a Tulajdonságok/Gyorstulajdonságok palettákról látható.
A rajz a terjedelmére van nagyítva.
A rajz előző nézete visszaáll.
Az Alkalmazás betöltése/törlése párbeszédpanel nem csak arra használható, hogy manuálisan töltse be az AutoLISP-fájlokat szükség szerint, hanem arra is, hogy automatikusan betöltse az AutoLISP-fájlokat egy új rajzfájl megnyitásakor vagy létrehozásakor. Az Alkalmazás betöltése/törlése párbeszédpanel Indítópult területe határozza meg, hogy mely AutoLISP-fájlokat tölti be automatikusan.
Itt találja az AutoLISP-fájlok Indítópulthoz való hozzáadásának lépéseit:
Az ALKTÖLT parancsot a parancspromptba is beírhatja.
Ha az előző szakaszban létrehozta a myfirst.lsp fájlt, kiválaszthatja azt a fájlt.
A rendszer az Indítópulthoz adott AutoLISP-fájlt automatikusan betölti az aktuális rajzba.
Az AutoCAD LT indításakor, illetve egy rajz létrehozásakor/megnyitásakor az AutoCAD LT négy, megadott nevű AutoLISP-fájlt keres. Ha a program megtalálja a fájlokat, automatikusan betölti őket. Ezek a fájlok segítenek biztosítani, hogy az AutoCAD LT környezete a vártnak megfelelően legyen konfigurálva, és hogy az AutoLISP által definiált parancsok elérhetők legyenek a rajz létrehozásakor vagy megnyitásakor.
Az AutoCAD LT megkeresi és automatikusan betölti ezt a négy fájlt, amikor megtalálja a támogatási útvonalakon:
Az acadlt.lsp és az acadltdoc.lsp fájlt Önnek kell létrehoznia; nem részei a szabványos AutoCAD LT-telepítésnek. Az acadlt2024.lsp és az acadltdoc2024.lsp fájlok a program részét képezik, és nem módosíthatók.
Az acadlt.lsp és acadltdoc.lsp fájlokat ugyanúgy használhatja, mint bármely más LSP fájlt, azzal a kiegészítéssel, hogy ezek a fájlok a korábban említett szituációkban automatikusan betöltődnek. Ez a két fájl használható más AutoLISP-fájlok betöltésére az AutoLISP load függvényével, AutoLISP-utasítások végrehajtására, miközben ezek a fájlok betöltődnek, és AutoLISP-parancsdefiníciók definiálására, hogy azok készen álljanak a használatra, miután egy rajzot létrehoztak vagy megnyitottak. Az AutoLISP load függvénye két paramétert fogad el: a kötelező betöltendő AutoLISP-fájlt, valamint egy második opcionális paramétert, amely akkor megjelenő üzenet, ha a betöltendő AutoLISP-fájl nem található az AutoCAD LT egyik támogatási fájljának keresési útvonalán. A támogatási fájlok keresési útvonalainak beállításáról további információkat a Kezelés és a Biztonságos AutoLISP-fájlok szakaszban talál.
A következő lépések ismertetik, hogyan lehet létrehozni az acadltdoc.lsp fájlt a C:\AutoLISP Files mappában, hogyan lehet hozzáadni néhány AutoLISP-utasítást, betölteni az AutoCAD LT programba, majd ellenőrizni, hogy a fájl be van-e töltve.
; 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)
A parancssori ablakban a „Saját egyéni programok betöltése” üzenet jelenik meg, amely a 2. lépésben korábban megadott két utolsó sor egyike.
Az állapotsor gombjait újra engedélyezni kell.
A beépülőmodul-csomagok olyan mappaszerkezetek, amelyek PackageContents.xml nevű jegyzékfájlja tájékoztatja az AutoCAD LT-t a beépülő modult alkotó fájlokról és beállításokról. Bár az AutoLISP programok AutoCAD LT programba való betöltéséhez nincs szükség beépülőmodul-csomagokra, amint azt már megtudta a cikkből, ezek megkönnyíthetik az AutoLISP-fájlok kezelését, és az egyéni programok telepítésének biztonságosabb módját nyújtják, mint az acadlt.lsp vagy az acadltdoc.lsp fájlok használata esetén. A beépülőmodul-csomagok a legtöbb esetben a Beállítások párbeszédpanel használata nélkül is segíthetik az AutoCAD LT konfigurálását.
A beépülőmodul-csomagokkal kapcsolatban lásd: Példa beépülő modulra: alap .bundle mappaszerkezet.
A munkafolyamatok automatizálásával növelheti termelékenységét, és csökkentheti az ismétlődő feladatok számát. Bár az AutoLISP-programozásnak van tanulási görbéje, ha az öt fő függvény elsajátítására összpontosít, készíthet néhány kisebb programot, amelyek segítségével ráébredhet, milyen értékes az AutoLISP a mindennapi munkafolyamatokban.
Íme néhány, az AutoLISP-hez kapcsolódó gyakran használt parancs és rendszerváltozó.
Parancs | Leírás |
---|---|
AUTOBETÖLTALK | Az alkalmazás beépülőmodul-mappájában lévő összes beépülő modult listázza és újratölti. |
ALKTÖLT | Alkalmazásokat tölt be, illetve töröl ki a memóriából, és meghatározza, hogy induláskor mely alkalmazások töltődjenek be. |
OPCIÓK | Testre szabja az alkalmazás beállításait. |
BIZTONSÁGIBEÁLLÍTÁSOK | A végrehajtható fájlok terméken belüli futtatásának biztonsági korlátozásait vezérli. |
DEFTÖRÖL | Lehetővé teszi, hogy egy alkalmazás által definiált parancs felülbíráljon egy belső parancsot. |
Rendszerváltozó | Leírás | Alapértelmezett érték | Mentés helye |
---|---|---|---|
ACADLSPASDOC | Azt vezérli, hogy az acad.lsp fájl vagy az AutoCAD LT acadlt.lsp fájlja minden rajzba vagy csak a munkamenetben elsőként megnyitott rajzba legyen-e betöltve. | 0 | Beállításjegyzék |
APPAUTOLOAD | Vezérli, hogy a rendszer mikor töltse be a beépülő modul alkalmazásokat. | 14 | Beállításjegyzék |
CLAYER | Az aktuális fóliát állítja be. | 0 | Rajz |
CLIPROMPTUPDATE | Azt adja meg, hogy a parancssor megjelenítse-e az AutoLISP-kódok vagy a parancsfájlok végrehajtása során létrejövő üzeneteket és promptokat. | 1 | Beállításjegyzék |
CMDDIA | A MÉRETEDIT és a GYMUTATÓ parancshoz tartozó Helyi szövegszerkesztő és bizonyos párbeszédpanelek megjelenítését vezérli az AutoCAD-alapú termékekben. | 1 | Beállításjegyzék |
CMDECHO | Azt határozza meg, hogy az AutoLISP-parancsfüggvény közben a promptok és a bemenetek visszaírását végrehajtsa-e a program. | 1 | Nincs mentve |
FILEDIA | Letiltja a fájlnavigálási párbeszédpanelek megjelenítését. | 1 | Beállításjegyzék |
LEGACYCODESEARCH | Azt vezérli, hogy a végrehajtható fájlok keresése tartalmazza-e azt a mappát, amelyből a programot elindították. | 0, elképzelhető, hogy egy CAD-rendszergazda zárolta | Beállításjegyzék |
NOMUTT | Letiltja az üzenet megjelenését, amikor egyébként nem lenne letiltva. | 0 | Nincs mentve |
ORTHOMODE | Az egérmutató mozgását merőlegesre korlátozza. | 0 | Rajz |
OSMODE | A futó tárgyrasztereket állítja be. | 4133 | Beállításjegyzék |
SECURELOAD | Azt szabályozza, hogy a rendszer a végrehajtható fájlokat kizárólag megbízható mappákból tölti-e be. | 1, elképzelhető, hogy a CAD-rendszergazda zárolta | Beállításjegyzék |
TEXTEVAL | A SZÖVEG (AutoLISP-et használva) vagy -SZÖVEG parancsokkal bevitt szöveges karakterláncok kiértékelését szabályozza. | 0 | Nincs mentve |
TRUSTEDPATHS | Megadja, hogy melyik mappák jogosultak kódot tartalmazó fájlok betöltésére és végrehajtására. | Változó, elképzelhető, hogy egy CAD-rendszergazda zárolta | Beállításjegyzék |