AutoLISP
Från Rilpedia
AutoLISP är en Lisp-dialekt byggd specifikt för AutoCAD och dess branschspecifika versioner. AutoLISP stöds inte i AutoCAD LT annat än med speciellt tredjepartsprogram.
Funktioner
Förutom grundläggande Lisp-funktionalitet finns stöd för geometriska funktioner och funktioner för att manipulera objekt i AutoCAD. AutoLISP har stöd för funktioner som gör det möjligt för användaren att ge input i form av bl.a. text, siffror, koordinater, val av objekt via selection sets. DCL (Dialog Control Language) är ett språk som gör det möjligt att skapa interaktiva formulär i AutoCAD
; exempel på funktion kallad(hello_world) som visar texten "Hello World!" på kommandoraden (defun hello_world () (princ "Hello World!")) ; exempel på hur kommandot "hello_world" skapas genom prefixet c: (defun c:hello_world () (alert "Hello World!") (princ)) ; exempel på LISP:s flexibilitet (setq a '(1 2 3)) (defun b (x) (+ x 5)) (cond ((= a b) (princ "\n(a) and (b) are equal")) ((and (= (type a) 'INT) (= (type b) 'INT)) (princ (strcat "\n(a)+(b)=" (itoa (+ a b))))) ((and (= (type a) 'STR) (= (type b) 'STR)) (princ (strcat "\n(a)+(b)=" a b))) ((and (listp a) (= (type b) 'USUBR)) (mapcar '(lambda (x) (princ (b x))) a)))
med följande resultat på kommandoraden 678 (6 7 8)
Historik
AutoLISP bygger på en mycket tidig version av XLISP skapad av David Betz. Språket introducerades av Autodesk i AutoCAD Version 2.18 i januari 1986. Visual-LISP, en förbättrad version av AutoLISP inkluderar en [Integrerad_utvecklingsmilj%C3%B6|integrerad utvecklingsmiljö] (IDE) och [kompilator] ursprungligen utvecklad och såld av en tredjepartsutvecklare, Basis Software. Vital LISP var en delmängd av AutoLISP men med bl.a. VBA-liknande tillgång till AutoCAD:s objektmodell, reaktorer (hantering av objekthändelser) och ActiveX-stöd. Vital LISP döptes om till Visual LISP vid Autodesks köp och såldes som tillägg till AutoCAD Version 14. I AutoCAD 2000 så ingick Visual LISP som ersättning av ursprungliga AutoLISP. Visual LISP inkluderade dock AutoLISP-funktionaliteten.