أوتو ليسب

AutoLISP هي لهجة من لغة البرمجة Lisp، مصممة خصيصًا للاستخدام مع الإصدار الكامل من AutoCAD ومشتقاته، بما في ذلك AutoCAD Civil 3D و AutoCAD Map 3D و AutoCAD Architecture و AutoCAD Mechanical . [ 1 ] لا تتضمن حزمة منتجات AutoCAD LT واجهة برمجة التطبيقات (API) ولا المفسر اللازم لتنفيذ كود AutoLISP (حتى الإصدار 2023، بينما يتضمن AutoCAD LT 2024 لغة AutoLISP). [ 2 ] تُضمّن مجموعة فرعية من وظائف AutoLISP في تطبيق AutoCAD على الويب.

سمات

AutoLISP هي لهجة صغيرة من لغة Lisp، ذات نطاق ديناميكي وكتابة ديناميكية، وتتميز بجمع البيانات المهملة ، وبنية قوائم غير قابلة للتغيير، ورموز قابلة للتعيين. تفتقر AutoLISP إلى ميزات Lisp المعتادة مثل نظام الماكرو ، ووظائف تعريف السجلات، والمصفوفات، والدوال ذات عدد متغير من الوسائط، وربط let. وباستثناء اللغة الأساسية، فإن معظم الدوال الأولية مخصصة للهندسة، والوصول إلى قاعدة بيانات DWG الداخلية لبرنامج AutoCAD ، أو معالجة الكيانات الرسومية في AutoCAD. تُعرَض خصائص هذه الكيانات الرسومية لـ AutoLISP على شكل قوائم ارتباط ، حيث تُقرن القيم برموز مجموعات AutoCAD التي تشير إلى خصائص مثل نقاط التعريف، والأقطار، والألوان، والطبقات، وأنواع الخطوط، وما إلى ذلك. يقوم AutoCAD بتحميل كود AutoLISP من ملفات .LSP. [ 3 ]

يمكن لبرنامج AutoLISP التفاعل مع المستخدم من خلال محرر الرسومات في برنامج AutoCAD باستخدام وظائف أساسية تُمكّن المستخدم من تحديد النقاط، واختيار الكائنات على الشاشة، وإدخال الأرقام والبيانات الأخرى. كما يحتوي AutoLISP على واجهة مستخدم رسومية (GUI) مدمجة ، وهي لغة التحكم في الحوار (DIL) ، لإنشاء مربعات حوار مشروطة بتصميم تلقائي، ضمن برنامج AutoCAD. [ 3 ]

تاريخ

استُمدّت لغة AutoLISP من نسخة مبكرة من لغة XLISP ، التي ابتكرها ديفيد بيتز. [ 4 ] أُضيفت هذه اللغة إلى برنامج AutoCAD الإصدار 2.18 في يناير 1986، واستمر تطويرها في الإصدارات اللاحقة حتى الإصدار 13 في فبراير 1995. بعد ذلك، أهملت شركة Autodesk تطويرها لصالح بيئات تطوير أكثر رواجًا مثل Visual Basic for Applications (VBA) و. NET Framework و ObjectARX . ومع ذلك، ظلت لغة AutoLISP اللغة الرئيسية التي يستخدمها المستخدمون لتخصيص برنامج AutoCAD.

تم تطوير وبيع لغة Vital-LISP ، وهي نسخة محسّنة بشكل كبير من لغة AutoLISP، تتضمن بيئة تطوير متكاملة (IDE) ومصحح أخطاء ومترجم ودعم ActiveX ، من قِبل شركة Basis Software. كانت Vital-LISP عبارة عن مجموعة فرعية من لغة AutoLISP الحالية، أضافت إمكانية الوصول إلى نموذج كائنات AutoCAD بطريقة مشابهة للغة VBA، بالإضافة إلى المفاعلات (معالجة الأحداث لكائنات AutoCAD)، ودعم ActiveX العام، وبعض وظائف Lisp العامة الأخرى. استحوذت شركة Autodesk على هذه اللغة، وأعادت تسميتها إلى Visual LISP ، وباعتها لفترة وجيزة كإضافة لإصدار AutoCAD 14 الذي صدر في مايو 1997. تم دمجها في AutoCAD 2000 الذي صدر في مارس 1999، كبديل لـ AutoLISP. منذ ذلك الحين، توقفت Autodesk عن إجراء تحسينات كبيرة على Visual LISP، وركزت جهودها بشكل أكبر على VBA و .NET و C++ . (حتى 31 يناير 2014) أوقفت شركة أوتوديسك دعم إصدارات VBA السابقة للإصدار 7.1، كجزء من عملية طويلة الأمد للتحول من VBA إلى .NET لتخصيص المستخدم. [ 5 ] [ 6 ]

تحظى لغة AutoLISP بشعبية واسعة لدرجة أن العديد من موردي تطبيقات التصميم بمساعدة الحاسوب (CAD) يضيفونها إلى منتجاتهم. تتضمن برامج مثل Bricscad و IntelliCAD وDraftSight وغيرها وظائف AutoLISP، مما يتيح لمستخدمي AutoLISP استخدامها كبديل لبرنامج AutoCAD. يتم تنفيذ معظم عمليات التطوير التي تستخدم AutoLISP منذ إصدار AutoCAD 2000 ضمن بيئة Visual LISP، وذلك بعد استبدال محرك AutoLISP الأصلي بمحرك Visual LISP. يوجد آلاف من الأدوات والتطبيقات التي تم تطويرها باستخدام AutoLISP أو Visual LISP (موزعة كملفات LSP وFAS وVLX). [ 7 ] [ 8 ]

19581960196519701975198019851990199520002005201020152020
 LISP 1، 1.5، LISP 2 (مهجورة)
 ماكليس
 تداخل
 MDL
 آلة التأتأة
 مخطط R5RS R6RS R7RS صغير
 لا شيء
 ZIL (لغة تنفيذ Zork)
 فرانز ليسب
 muLisp
 لغة الشفرة الشائعة معيار ANSI
 لي لِسْب
 مخطط معهد ماساتشوستس للتكنولوجيا
 XLISP
 تي
 شيز سكيم
 إيماكس ليسب
 أوتو ليسب
 PicoLi sp
 غامبيت
 EuLisp
 لغة ISLISP
 أوبن ليسب
 مخطط PLT مضرب
 لغة نيو ليسب
 جنو غايل
 لغة ليسب المرئية
 كلوجر
 قوس
 LFE
 هي

أمثلة

برنامج "مرحباً بالعالم" البسيط بلغة AutoLISP سيكون كالتالي:

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

لاحظ السطر الأخير داخل تعريف الدالة: عند تقييمها بدون وسائط، princتُرجع الدالة رمزًا فارغًا (null)، وهو رمز لا يظهر في واجهة سطر أوامر AutoCAD . وبما أن واجهة سطر أوامر AutoCAD تعمل كحلقة قراءة-تقييم-طباعة (REPL)، فإنها عادةً ما تطبع عبارة "Hello World!" في سطر الأوامر، متبوعةً مباشرةً بقيمة الإرجاع من استدعاء الدالة princ. لذلك، بدون الاستدعاء الأخير للدالة princ، ستكون النتيجة كالتالي:

Hello World!"\nHello World!"

يمكن استخدام هذه prin1الوظيفة أيضاً لتحقيق نفس النتيجة.

ومن الأمثلة الأكثر تعقيداً ما يلي:

( إلغاء c:pointlabel ( / pnt )( إذا ( setq pnt ( getpoint "\nحدد النقطة: " ))( التوقعات)( صنع( قائمة;; نوع الكيان الذي يتم إنشاؤه( 0 . "نقطة " )نقطة إدخال في نظام الإحداثيات العالمي( cons 10 ( trans pnt 1 0 ))))( صنع( قائمة' ( 0 . "نص" )( 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 بجانبها. يتضمن اسم الدالة بادئةً خاصة، c:تُمكّن AutoCAD من التعرّف على باقي اسم الدالة pointlabelكأمر عادي في موجه الأوامر. عند كتابة المستخدم 'pointlabel' في سطر أوامر AutoCAD، سيُطلب منه اختيار نقطة، إما بكتابة إحداثيات X وY، أو بالنقر على موقع في الرسم. بعد ذلك، ستضع الدالة علامةً عند تلك النقطة، وتُنشئ كائنًا نصيًا من سطر واحد بجانبها، يحتوي على إحداثيات X وY للنقطة مُعبرًا عنها بالنسبة لنظام إحداثيات المستخدم النشط (UCS). لا تتطلب الدالة أي مُعاملات ، وتحتوي على مُتغير محلي واحد ('pnt').

يمكن أيضًا كتابة المثال أعلاه لاستخدام أوامر AutoCAD المضمنة من داخل كود AutolISP لإنشاء كائنات النقطة والنص، بدلاً من إنشائها مباشرة عبر entmakeالدالة؛ ومع ذلك، فإن هذا النهج عرضة للتغييرات في موجهات الأوامر بين إصدارات AutoCAD.

مراجع

  1. "AutoLISP" . تم الاطلاع عليه بتاريخ 14 أبريل 2014 .
  2. "أوتوكاد إل تي مقابل أوتوكاد" . مؤرشف من الأصل بتاريخ 15 أبريل 2014. تم الاطلاع عليه بتاريخ 14 أبريل 2014 .
  3. 1 2 "دليل مطوري AutoLISP" (ملف PDF) . تم الاطلاع عليه بتاريخ 14 أبريل 2014 .
  4. "تاريخ لغة AutoLISP" . مؤرشف من الأصل بتاريخ 26 يناير 2025. تم الاطلاع عليه بتاريخ 17 مارس 2025 .
  5. "أسئلة وأجوبة حول وحدة مايكروسوفت فيجوال بيسك للتطبيقات" . تم الاطلاع عليه بتاريخ 14 أبريل 2014 .
  6. "دعم VBA في AutoCAD 2011" . مؤرشف من الأصل بتاريخ 15 أبريل 2014. تم الاطلاع عليه بتاريخ 14 أبريل 2014 .
  7. "مقارنة إصدارات BricsCAD" . مؤرشف من الأصل بتاريخ 15 مارس 2014. تم الاطلاع عليه بتاريخ 14 أبريل 2014 .
  8. "منصة IntelliCAD CAD - الميزات والفوائد" . تم الاطلاع عليه بتاريخ 14 أبريل 2014 .