לדלג לתוכן

AutoLISP

מתוך ויקיפדיה, האנציקלופדיה החופשית
יש להשלים ערך זה: בערך זה חסר תוכן מהותי. יש להוסיף מידע בכל ההיבטים הנוגעים ל-AutoLISP.
הנכם מוזמנים להשלים את החלקים החסרים ולהסיר הודעה זו. שקלו ליצור כותרות לפרקים הדורשים השלמה, ולהעביר את התבנית אליהם.
יש להשלים ערך זה: בערך זה חסר תוכן מהותי. יש להוסיף מידע בכל ההיבטים הנוגעים ל-AutoLISP.
הנכם מוזמנים להשלים את החלקים החסרים ולהסיר הודעה זו. שקלו ליצור כותרות לפרקים הדורשים השלמה, ולהעביר את התבנית אליהם.
AutoLISP
תאריך השקה ינואר 1986 עריכת הנתון בוויקינתונים
מתכנן David Betz
מפתח Autodesk-תאגיד תוכנה אמריקני.
גרסה אחרונה ‏ (13 בפברואר 1995.)
ניבים Vital-LISP, Visual LISP
הושפעה על ידי Lisp, XLISP
סיומת .lsp
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

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.

ציר זמן של ניבי Lisp
1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2019
LISP 2, LISP 1.5, LISP 1
Maclisp
Interlisp
Lisp Machine Lisp
Scheme R5RS R6RS R7RS small
NIL
Franz Lisp
Common Lisp
Le Lisp
T
Emacs Lisp
AutoLISP
PicoLisp
EuLisp
ISLISP
OpenLisp
PLT Scheme Racket
GNU Guile
Visual LISP
Qi, QiII Shen
Clojure
Arc
LFE
Hy

דוגמאות קוד

[עריכת קוד מקור | עריכה]

תוכנית פשוטה אשר מדפיסה "Hello World" ב-AutoLISP :

(defun hello ()
    (princ "\nHello World!")
    (princ)
)

דוגמה מורכבת יותר של קוד ב-AutoLISP :

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

הקוד לעיל מגדיר פעולה חדשה היוצרת אובייקט AutoCAD ( נקודה במרחב עם ערכי X ו Y ) ואובייקט טקסט של שורה אחת המציג את ערכי ה X וה Y. שם הפעולה מכיל את התחילית ':c', אשר גורם ל AutoCAD לזהות את הפונקציה כפקודה רגילה. המשתמש יצטרך לכתוב 'pointlabel' ולהזין את קואורדינטות ה-X וה-Y, או ללחוץ על מיקום מסוים בשרטוט. אז הפונקציה תציב את הסמן בנקודה הזו, ותיצור אובייקט טקסט של שורה אחת לידו, המכיל את קואורדינטות ה X וה Y של הנקודה בהתאם ל- ( User Coordinate System ( UCS הפעיל. הפעולה לא דורשת פרמטרים, ומכילה משתנה לוקלאי אחד ('pnt').

קישורים חיצוניים

[עריכת קוד מקור | עריכה]
ערך זה הוא קצרמר בנושא תוכנה. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.