AutoLISP

AutoLISP היא ניב של שפת התכנות Lisp אשר נבנתה במיוחד בשביל השימוש בגרסה המלאה של תוכנת AutoCAD והתוכנות אשר נגזרו ממנה כגון AutoCAD Map 3D, AutoCAD Architecture, ו-AutoCAD Mechanical.

== היסטוריה ==
AutoLISP נגזרה מגרסה מוקדמת של XLISP, אשר נוצרה על ידי דייוויד בץ (David Betz). ניב ה-AutoLISP הוצג לראשונה בשנת 1986 בגרסה 2.18, ושופר בגרסאות רבות עד לגרסה 13, בפברואר 1995. מאוחר יותר, Autodesk הזניחה את AutoLISP לטובת פיתוח סביבות פיתוח פופולריות יותר כגון Visual Basic for Applications (VBA), .NET Framework ו-ObjectARX.
{| class="wikitable"
|+ציר זמן של ניבי Lisp
!1955
!1960
!1965
!1970
!1975
!1980
!1985
!1990
!1995
!2000
!2005
!2010
!2015
!2019
|-
! colspan="3" |LISP 2, LISP 1.5, LISP 1
| colspan="10" |
|-
| colspan="2" |
! colspan="5" |Maclisp
| colspan="6" |
|-
| colspan="3" |
! colspan="5" |Interlisp
| colspan="5" |
|-
| colspan="4" |
! colspan="5" |Lisp Machine Lisp
| colspan="4" |
|-
| colspan="4" |
! colspan="4" |Scheme
! colspan="2" |R5RS
! colspan="1" |R6RS
! colspan="3" |R7RS small
|-
| colspan="4" |
! colspan="2" |NIL
|-
| colspan="5" |
! colspan="2" |Franz Lisp
|-
| colspan="5" |
! colspan="9" |Common Lisp
|-
| colspan="5" |
! colspan="9" |Le Lisp
|-
| colspan="6" |
! colspan="3" |T
| colspan="4" |
|-
| colspan="6" |
! colspan="8" |Emacs Lisp
|-
| colspan="6" |
! colspan="8" |<big>AutoLISP</big>
|-
| colspan="6" |
! colspan="8" |PicoLisp
|-
| colspan="7" |
! colspan="6" |EuLisp
|-
| colspan="7" |
! colspan="8" |ISLISP
|-
| colspan="7" |
! colspan="8" |OpenLisp
|-
| colspan="7" |
! colspan="4" |PLT Scheme
! colspan="3" |Racket
|-
| colspan="7" |
! colspan="7" |GNU Guile
|-
| colspan="9" |
! colspan="5" |Visual LISP
|-
| colspan="10" |
! colspan="2" |Qi, QiII
! colspan="2" |Shen
|-
| colspan="10" |
! colspan="4" |Clojure
|-
| colspan="10" |
! colspan="4" |Arc
|-
| colspan="10" |
! colspan="4" |LFE
|-
| colspan="11" |
! colspan="3" |Hy
|}

== דוגמאות קוד ==
תוכנית פשוטה אשר מדפיסה "Hello World" ב-AutoLISP :<syntaxhighlight lang="Lisp">(defun hello ()
 (princ "\nHello World!")
 (princ)
)
</syntaxhighlight>
דוגמה מורכבת יותר של קוד ב-AutoLISP :<syntaxhighlight lang="Lisp">
(defun c:pointlabel ( / pnt )
 (if (setq pnt (getpoint "\nSpecify point: "))
 (progn
 (entmake
 (list
 '(0 . "POINT")
 (cons 10 (trans pnt 1 0))
 )
 )
 (entmake
 (list
 '(0 . "TEXT")
 (cons 10 (trans (cons (+ (car pnt) 0.6) (cdr pnt)) 1 0))
 (cons 40 (getvar 'textsize))
 (cons 1 (strcat "X:" (rtos (car pnt)) " Y:" (rtos (cadr pnt))))
 )
 )
 )
 )
 (princ)
)
</syntaxhighlight>הקוד לעיל מגדיר פעולה חדשה היוצרת אובייקט AutoCAD ( נקודה במרחב עם ערכי X ו Y ) ואובייקט טקסט של שורה אחת המציג את ערכי ה X וה Y. שם הפעולה מכיל את התחילית ':c', אשר גורם ל AutoCAD לזהות את הפונקציה כפקודה רגילה. המשתמש יצטרך לכתוב 'pointlabel' ולהזין את קואורדינטות ה-X וה-Y, או ללחוץ על מיקום מסוים בשרטוט. אז הפונקציה תציב את הסמן בנקודה הזו, ותיצור אובייקט טקסט של שורה אחת לידו, המכיל את קואורדינטות ה X וה Y של הנקודה בהתאם ל- ( User Coordinate System ( [https://knowledge.autodesk.com/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/AutoCAD-LT/files/GUID-C16311B2-789B-4A9A-8F73-BE27C901ED05-htm.html UCS] הפעיל. הפעולה לא דורשת פרמטרים, ומכילה משתנה לוקלאי אחד ('pnt').

== קישורים חיצוניים ==
* [https://www.autodesk.com/ האתר הרשמי של Autodesk]
* 
* . [http://www.autodesk.com/products/autodesk-autocad-lt/compare/compare-products קישור למקור].
* [http://docs.autodesk.com/ACDMAC/2013/ENU/PDFs/acdmac_2013_autolisp_developers_guide.pdf מדריך AutoLISP למתחילים] (PDF)
* [http://ronleigh.com/autolisp/ahistory.htm ההיסטוריה של AutoLISP]
* [https://web.archive.org/web/20140415063735/http://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/VBA-support-in-AutoCAD-2011.html "VBA support in AutoCAD 2011"]
* [https://web.archive.org/web/20140315233311/http://www.bricsys.com/en_INTL/bricscad/comparison/ "BricsCAD Compare versions"]
* [http://www.intellicad.org/intellicad-features-and-benefits "IntelliCAD CAD Platform – Features and Benefits"]
* [https://knowledge.autodesk.com/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/AutoCAD-LT/files/GUID-C16311B2-789B-4A9A-8F73-BE27C901ED05-htm.html (About the User Coordinate System (UCS]

קטגוריה:ניבי Lisp
קטגוריה:תוכנה