این مطلب ترجمه بخشی از نگارش سوم #کتاب Grasshopper primer است که شاید بتوان از آن به عنوان یکی از بهترین منابع یادگیری این #پلاگین قدرتمند یاد کرد. خبر خوب به علاقمندان یادگیری #گرسهاپر اینکه تیم Rhino5.ir در حال ترجمه کامل این اثر به زبان فارسی است و به زودی در اختیار علاقمندان قرار خواهد گرفت. برای تفکیک متن اصلی از توضیحات مترجم، مواردی که توسط تیم ترجمه اضافه شده است درون براکت [] قرار داده شده است. اگر سما هم هنوز با گرسهاپر آشنا نیستید و میخواهید بدانید گرسهاپر چیست در ادامه این پست همراه ما باشید!
گرسهاپر یک ویرایشگر برنامهنویسی بصری (visual programming) است که توسط دیوید روتن (David Rutten) در شرکت رابرت مکنیل و شرکا (Robert McNeel & Associates) توسعه پیدا کرده است. به عنوان یک پلاگین راینو، گرسهاپر با یک محیط مدلسازی قدرتمند و همهکاره که توسط حرفهایهای طیف متنوعی از رشتهها شامل #معماری، #مهندسی ، #طراحی_محصول و غیره استفاده میشود (همان راینو) یکپارچه و هماهنگ است. ترکیب راینو و گرسهاپر امکان تعریف کنترل دقیق #پارامتریک (Parametric) بر مدلها، قابلیت کنکاش در جریان #طراحی_مولد (Generative design)، و سکویی برای توسعه سطح بالاتری از منطق #برنامه_نویسی را برای ما فراهم میکند. همه در یک رابط کاربری خوانای گرافیکی.
ریشههای گرسهاپر را میتوان در قابلیت ابزار Record history در نسخه ۴ راینو ردیابی کرد. این ویژگی راینو، کاربر را قادر میساخت همزمان با ساخت مدل، رویههای مدلسازی را به طور ضمنی در پسزمینه ذخیره کند. به عنوان مثال اگر شما با روشن بودن Record history چهار Curve را به هم Loft کنید و سپس Control point های یکی از آن Curve ها را ویرایش کنید، Surface ساخته شده هم تغییر میکند و بروز میشود. [در واقع هر دستور راینو یک یا چند ورودی یا input دارد، یعنی همان چیزی که ما به دستور میدهیم، و یک یا چند خروجی یا output، یعنی چیزی دستور به ما پس میدهد. روشن بودن Record history حین اجرای یک دستور باعث میشود که خروجیهای آن دستور به ورودیهایش وابسته شوند. در مثال قبل ورودی دستور Loft همان چهار Curve هستند که ما به دستور معرفی میکنیم و خروجی دستور هم یک Surface است که با تغییر هریک از ورودیها تغییر کرده و بروز میشود] در سال ۲۰۰۸ دیوید پرسشی مطرح کرد: «چه میشود اگر بتوان کنترل آشکارتری بر این History داشت؟» و ایدهی گرسهاپر، این History آشکار و قابل کنترل، شکل میگیرد. به این ترتیب درخت History آشکارا در معرض دید کاربر قرار داده شد تا بتواند با جزئیات بیشتر آن را ویرایش کند و این قدرت به کاربر داده شد تا دنباله و تسلسل منطقیای از دستورات، فراتر از ویژگیهای موجود در خود راینو ایجاد کند. َشش سال بعد، اکنون گرسهاپر یک ویرایشگر قدرتمند برنامهنویسی بصری است که میتواند با مجموعهای از #افرونههای که دیگران برای آن توسعه دادهاند گستردهتر هم بشود. علاوه بر آن، روندکار حرفهایها را در میان صنایع مختلف دستخوش تغییر اساسی کرده است و یک انجمن جهانی فعال از کاربران را پرورش داده است.
این کتاب، بر روی اصول پایه متمرکز شده است و دانش اصلی را که شما برای تبدیل شدن به یک کاربر عادی گرسهاپر نیاز دارید، و همچنین راهکارهایی برای اینکه چطور میتوانید با خلاقیت خودتان در عمل کارهای بیشتری انجام دهید، در اختیارتان قرار میدهد. اما قبل از آنکه به سراغ توضیحات، نمودارها و مثالها برویم، بیایید کمی در مورد این که برنامهنویسی بصری چیست، اصول اولیه محیط کاربری گرسهاپر و اصطلاحات مربوط به آن، همچنین ویژگی بازخورد «زنده» در محیط راینو و تجربهی کاربری آن صحبت کنیم.
برنامهنویسی بصری نمونهای از برنامهنویسی کامپیوتر است که در آن کاربر المانهای منطقی را به صورت بصری و گرافیکی اداره میکند، بجای آنکه به صورت نوشتاری این کار را بکند. برخی زبانهای برنامهنویسی نوشتاری شناخته شدهتر از جمله # C (سی شارپ)، Visual BASIC (ویژوال بیسیک)، Processing (پروسسینگ) – و زبانهای خودیتر برای راینو – Python (#پایتون)، و RhinoScript (#راینو_اسکریپت) از ما میخواهند که کدهای برنامه را که با قواعد خاص آن زبان محدود میشوند، به صورت نوشتاری بنویسیم. [زبانهای برنامهنویسی نیز مانند زبانهای طبیعی، هرکدام قواعد و دستور زبان مختص خود را دارند، به عنوان مثال همانطور که در زبان انگلیسی جملهها به نقطه ختم میشوند، در زبان برنامهنویسی #C هر جمله باید به علامت سمیکالن (;) ختم شود. رعایت نکردن حتی یکی از این قواعد در برنامهنویسی باعث میشود برنامه شما کار نکند!] در مقابل برنامهنویسی بصری به ما اجازه میدهد که بلوکهای کاربردی را به صورت سلسلهای از کنشها به هم وصل کنیم و تنها قواعدی که باید رعایت شود این است که ورودیهای بلوکها دادههایی از نوع مناسب دریافت کنند، [همانطور که دستورات راینو هر یک نوع خاصی از ورودی را میطلبند، به عنوان مثال ورودیهایی که به دستور Loft میدهیم حتما باید از نوع Curve باشند، نه Point و Surface و… هر یک از کامپوننتهای گرسهاپر نیز برای آنکه درست کار کنند باید ورودیای ار نوع مناسب (عدد، نقطه، خط و..) دریافت کنند] و بصورت ایدهآل به گونهای سازماندهی شوند که نتیجه دلخواه حاصل شود. این ویژگی برنامهنویسی بصری موانعی را که معمولا در شزوع یادگیری یک زبان جدید مشاهده میشود از میان برمیدارد، همچنین رابط گرافیکی را به میان میآورد که برای طراحان، گرسهاپر را در قلمروی آشناتری قرار میدهد.
این تصویر فرآیند ترسیم یک منحنی سینوسی را در گرسهاپر و پایتون نشان میدهد
برای دسترسی به گرسهاپر و قابلیتهای برنامهنویسی بصری آن لازم است ابتدا برنامه را از سایت grasshopper3d.com دانلود و نصب کنیم. پس از نصب، میتوانیم با نوشتن دستور “Grasshopper” در خط فرمان راینو، این پلاگین را باز کنیم. اولین بار که این کار را در یک پنجره جدید راینو انجام دهیم، ابتدا با یک پیام بارگذاری گرسهاپر و پس از آن با پنجره ویرایشگر گرسهاپر روبرو میشویم. اکنون میتوانیم بلوکهای کاربردی را که کامپوننت (Component) نامیده میشوند، به بوم (Canvas) اضافه کنیم و آنها را با وایر (Wire) به هم مرتبط کنیم و نهایتا کل تعریف (Definition) ساخته شده را با فرمت .ghx ذخیره کنیم.
یک «تعریف» گرسهاپر، تشکیل شده از «کامپوننت» هایی که با «سیم» ها بر روی «بوم» به هم متصل شدهاند.
هنگامی که شروع به ساخت یک تعریف [به مجموعهای از کامپوننتها و پارامترهای گرسهاپر که برای حل یک مساله یا رسیدن به نتیحهای مشخص توسط سیمها به هم مرتبط شدهاند بک تعریف یا Definition میگویبم] کنیم و یک اسلایدر (Slider) برای کنترل ترسیممان بر روی بوم ایجاد کنیم، [برای افزودن یک کامپوننت یا پارامتر به بوم گرسهاپر یا روی کامپوننت و پارامتر دلخواه ار نوارابزار گرسهاپر کلیک کنید و آن را به روی بوم بکشید، یا فسمت خالی از بوم دوبار کلیک کنید و از طریق کادری که باز میشود نام کامپوننت یا پارامتر دلخواه را جستجو کنید] احتمالا بصورت جسی ارتباطاتی را که میان این ورودیها برقرار میکنیم و آنچه را در محیط راینو مشاهده میکنیم درک میکنید. این ارتباطاب اساسا زنده هستند، یعنی اگر دستگیره روی اسلایدر را جابجا کنیم، بلافاصله تاثیرات آن را مشاهده خواهیم کرد. در یک تعریف گرسهاپر هریک از ورودیها که در جایی تغییر کند، برنامه باید دوباره شرایط جدید را محاسبه و حل کند و نمایش آن بروز شود. برای راحتی کار، وقتی شروع به طراحی با گرسهاپر میکنیم، پیشنمایشی که در محیط راینو میبینیم، یک پیشنمایش سبک و با کیفیت پایین است که با تغییر هریک از ورودیها به طور خودکار بروز میشود. باید توجه داشته باشید همزمان که تعریف شما بزرگتر و پیچیدهتر میشود، این ارتباطها هستند که جریان دادهها را هدایت میکنند. موقعیت اجزای تشکیل دهنده تعریف و پیشنمایشی که در محیط راینو نشان داده میشود، درک درستی از روند کار به شما میدهد و [چون شما تمام روال کار و جریان دادهها را مشاهده میکنید] از بسیاری نتایج ناخواسته جلوگیری میکند.
جهت جریان برنامه در گرسهاپر از چپ به راست است.
آنچه باید به خاطر داشته باشید:
- گرسهاپر یک ویرایشگر #الگوریتم گرافیکی و بصری است که با ابزارهای مدلسازی سهبعدی راینو یکپارچه و هماهنگ است.
- الگوریتمها روندهای مرحله به مرحلهای هستند که برای انجام یک عملیات مشخص طراحی شدهاند.
- از گرسهاپر برای طراحی الگوریتمهایی استفاده میکنیم که کارها را در راینو به صورت خودکار انجام دهند.
- یک راه آسان برای شروع، در صورتی که هنوز برایتان روشن نیست چطور یک عملیات مشخص را در گرسهاپر انجام دهید این است که ابتدا آن عملیات را بصورت دستی و تدریجی و مرحله به مرحله با استفاده از دستورات خود راینو انجام دهید.
ترجمه و توضیحات: محمد نیکوکار – فرشته اسکندری
ممنون
واسه من که هیچ پیش ضمینه ذهنی ای از گرسهاپر نداشتم، متن مفیدی بود.