Információk az AutoLISP makrókban történő használatáról

Az AutoLISP-et használó parancsok létrehozása a program testre szabási szolgáltatásának fejlettebb használati módja.

Az AutoLISP-változók és -kifejezések használhatók az összetett műveletek végrehajtására szolgáló makrók létrehozásához. A CUI/CUIx-fájlok betöltésekor a program egy megegyező nevű és elérési útvonalú MNL-fájlt is betölt. Ha AutoLISP kódot helyez egy MNL-fájlba, hatékonyan töltheti be a makróban használható egyéni parancsokat.

Megjegyzés:
  • Az AutoCAD LT nem támogatja az MNL-fájlok automatikus betöltését, de a fájlok betölthetők egy másik LISP-fájl LOAD AutoLISP-függvényének használatával.
  • Csak Windowson és az AutoCAD-ben (az AutoCAD LT-ben nem) a Felhasználói felület testreszabása (CUI) szerkesztőn további betöltendő AutoLISP-fájlokat is megadhat. Az AutoLISP-et használó parancsok létrehozása a program testre szabási szolgáltatásának fejlettebb használati módja. A kísérletezés és a gyakorlás hozzásegít a funkció hatékony kihasználásához.

Példák

Előre megadott értékek

Ez a példa egy blokk beillesztéséhez használt három parancsmakróból áll.

A parancsmakró bekéri az ablak szélességét.

^C^C^P(setq WINWID (getreal "\nEnter window width: ")) ^P

A parancsmakró bekéri a fal vastagságát.

^C^C^P(setq WALLTHK (getreal "\nEnter wall thickness: ")) ^P

A parancsmakró beilleszt egy „ablak” nevű blokkot, és bekéri a beillesztési pontot és az elforgatást.

^C^C_INSERT window XScale !WINWID YScale !WALLTHK

A blokk X tengelye az aktuális ablakszélességnek, az Y tengelye pedig az aktuális falvastagságnak megfelelő.

Fogók átméretezése

Ez a példa két parancsmakrót tartalmaz, amelyek növelik vagy csökkentik a GRIPSIZE rendszerváltozó aktuális értékét.

A parancsmakró 1 értékkel növeli a GRIPSIZE rendszerváltozót.

^P(setvar "gripsize"(1+ (getvar "gripsize")))(redraw)(princ)

A parancsmakró 1 értékkel csökkenti a GRIPSIZE rendszerváltozó értékét.

^P(setvar "gripsize"(1- (getvar "gripsize")))(redraw)(princ)

E parancsmakrók érvényessége csak akkor ellenőrizhető, ha a GRIPSIZE rendszerváltozó értéke nem kisebb 0-nál, és nem nagyobb 255-nél.

Prompt felhasználói bemenet kérésére

A következő példa a felhasználótól két pont megadását kéri, majd a megadott pontokat átellenes sarokpontként használva téglalapot rajzol.

^P(setq a (getpoint "Enter first corner: "));\+
(setq b (getpoint "Enter opposite corner: "));\+ 
pline !a (list (car a)(cadr b)) !b (list (car b)(cadr a)) c;^P
Legördülő menüelemhez rendelt makró meghívása (csak Windows)

A következő szintaktikával programozottan indíthatja el a legördülő menüelemek makróit:

(menucmd "Gcustomizationgroup.element_ID=|")

Az előző szintaktika akkor működik, ha a menüelem része egy, a program menüsorán található menünek, és elérhető.