اتولیسپ – قسمت 5
مقدمه چینی کافیست. از امروز آستینها را بالا زده و شروع به نوشتن اولین برنامه در اتولیسپ می کنیم. در حالت کلی برنامه های اتولیسپ دو هدف بیشتر ندارند. ایجاد یک شی جدید یا تغییر اشیای موجود. منظور از شی همه ی اشکال هندسی از قبیل دایره ، خط ، چند ضلعی است تا اشیای غیر ترسیمی مانند لایه ها و انتخابها. در اصطلاح اتوکد به اشیای ترسیمی Entity و به سایر اشیا Object گفته می شود.
در اتوکد دایره یک شی است. خواص آن شامل ، رنگ آن ، شعاع آن، لایه ای که در آن قرار گرفته و ... میشود. متدها شامل کپی ، حذف ، تغییر شعاع یا مرکز و ... است. و کلیک شدن روی دایره یک رویداد برای دایره است.
متاسفانه و یا خوشبختانه در مباحث اتولیسپ لازم نیست خیلی درگیر مفاهیم بنیادی برنامه نویسی شی گرا شوید. اصولا اتولیسپ شی گرا نیست . جز اینکه خصوصیات هر شی درونش ذخیره میشود متدهایی مانند کپی یا حذف به طور اختصاصی برای دایره تعریف نشده اند. یک دستور Command همه ی اشیای را ترسیم می کندنوشتن برنامه :
هدف از این برنامه ترسیم یک مربع است که کاربر دو گوشه ی (یا طول وتر) آن را تایین می کند.
بادستور VLIDE محیط برنامه نویسی اتولیسپ را باز کنید.
یک فایل جدید باز کنید.و با نام DrawBox ذخیره کنید.
برنامه ی زیر را نوشته و اجرا کنید :
(defun c:db(/)
(setq p1 (getpoint "Pick first corner : "))
(setq p2 (getpoint "Pick second corner : "))
(command "Line" p1 p2 "")
)
(برای اجرا می توانید به آموزش قسمت 1 مراجعه کنید یا با دستور AppLoad فایل DrawBox را بارگذاری و با دستور db آن را اجرا کنید.)
در این مرحله مشاهده می کنید که پس از انتخاب دو نقطه یک خط رسم می شود. این خط قطر مربع مورد نظر نهایی ماست. حالا باید با تحلیل داده های حاصل از نقاط p1 و p2 مختصات دو گوش دیگر مربع را بیابیم.
برای بدست آوردن دقیق مختصات دو گوش دیگر دست به دامن دستورات کار با لیست می شویم.
(defun c:db(/)
(setq p1 (getpoint "Pick first corner : "))
(setq p2 (getpoint "Pick second corner : "))
(setq p3 (List (car p1) (cadr p2) 0))
(setq p4 (List (car p2) (cadr p1) 0))
(command "Line" p1 p3 p2 p4 "c")
)
برای درک نحوه ی کار برنامه ابتدا باید برنامه را از دید هندسی تحلیل کنید. یک برگ کاغذ بردارید و روی آن یک خط با زاویه حدود 45 درجه رسم کنید. دو نقطه ی انتهایی این خط نقاط p1 و p2 در برنامه هستند. حالا با استفاده از مختصات کارتزین محل دو نقطه ی دیگر را بیابید.
برای کار کردن با دستور Command باید خیلی دقیق باشید. پارامترهای ورودی به این دستور دقیقا باید با حالت وارد کردن دستی آنها در خط فرمان اتوکد همخوانی داشته باشد. در بعضی موراد انجام این عمل نیازمند اجرا دستی فرمان و یادداشت مراحل روی کاغذ می باشد. برای نمونه می توانید سعی کنید یک Text را در مختصاتی که کاربر انتخاب می کند درج کنید.
من مهندس مکانیک هستم و در زمینه ی طراحی نرم افزارهای فنی و مهندسی مشغول به کار می باشم.