آموزش گرس هاپر (Grasshopper) – با انجام نمونه پروژه (+ فیلم رایگان)


در این مطلب قصد داریم به آموزش گرس هاپر راینو به صورت رایگان بپردازیم. تا چندی پیش هنرمندان و طراحان، بخصوص گروهی از آنها که با طراحی اشیاء و ساختههای فیزیکی واقعی سر و کار دارند (مانند طراحان خودرو، معماران، شهرسازان و طراحان صنعتی) برای ملموس کردن ایدههایشان، خلق نمونههای اولیه (Prototypeها) و همینطور بررسی و اصلاح مدلهایشان نیازمند ماکتها و نمونههایی بودند که به صورت فیزیکی و با متریالهای واقعی ساخته میشدند. با افزایش قدرت محاسباتی کامپیوترها و ظهور نرمافزارهای طراحی و تولید به کمک کامپیوتر (CAD/CAM) دردسرهای مدلسازی و تهیه پروتوتایپ کمتر شد و این امر تاثیر بهسزایی در فرم و ظاهر اشیائی گذاشت که به صورت روزمره با آنها سر و کار داریم. کافی است خودروها، جاروبرقیها یا گوشیهای تلفن قدیمی را با نمونههای کنونی مقایسه کنید تا تفاوت بارز آنها در تنوع فرم و شکل و میزان استفاده از منحنیها و پیچیدگی احجامشان را به آسانی ببینید.
همزمان با این اتفاقات، دنیای طراحی از جهات دیگری هم درگیر تحول میشد. کمبود منابع معدنی و طبیعی، ملاحظات اقلیمی و زیست محیطی و رقابت روزافزون طراحان باعث شده بود که دیگر تنها زیبایی و کارایی تنها عوامل تاثیرگذار در طراحی نباشند. مصرف کمتر مصالح، ایجاد کمترین خسارات زیست محیطی و هماهنگی بهتر با ارگونومی انسانی از جمله فاکتورهایی بودند که هنگام ارزیابی طراحیها سنجیده میشدند. علاوه بر این ریاضیات و الگوریتمهای مختلف نیز به عنوان یکی از جذابترین دادههای ورودی، مبنای طراحیهای فرمی قرار میگرفتند.
در چنین زمانی شاید آرزوی هر طراحی (که با ابزارهای دیجیتال کار میکرد) این بود که کاش میشد روند طراحی را یک بار به صورت یک تابع با ورودی و خروجیهای مشخص تعریف کرد و بعد ورودیها را تغییر داد یا شیوه ترکیب و برهمکنش آنها را عوض کرد و خروجیهای مختلف ناشی از این تغییرات را با هم مقایسه کرد تا به طراحی بهینه رسید. و البته این کار را با سرعت زیاد و توسط قدرت محاسباتی کامپیوترها به انجام رساند.
گرس هاپر یکی از نرمافزارهایی است که دقیقا برای برآورده کردن این آرزو خلق شده است. اگر در ادامه این مطلب با ما همراه باشید، پس از معرفی و توضیحی مختصر درباره تاریخچه گرس هاپر با تمرینی کوتاه، با تواناییهای گرس هاپر بیشتر آشنا خواهید شد و به آموزش گرس هاپر خواهیم پرداخت
گرس هاپر چیست؟
تعریف عمومی و ساده این است که، گرس هاپر (+) پلاگینی برای نرمافزار راینو (+) است که امکان مدلسازی الگوریتمیک (Algorithmic Modeling) را از طریق برنامهنویسی بصری (Visual Programming) جهت خلق و کنترل احجام و اشیا هندسی موجود در محیط راینو، فراهم میکند.
پیش از معرفی و آموزش گرس هاپر بد نیست اندکی نیز راجع به نرم افزار میزبان آن یعنی راینو (Rhino) صحبت کنیم. راینو در کنار AutoCAD، ٰCATIA، Solid Works، MicroStation یکی از قدرتمندترین نرمافزارهای گروه CAD به مفهوم عمومی آن (یعنی نرمافزار طراحی و ترسیم به کمک کامپیوتر) است. هنر اصلی راینو و مزیت اصلی آن نسبت به سایر نرمافزارهای این گروه، استفاده از مدلهای ریاضی مبتنی بر NURBS است که باعث میشود این نرمافزار در ایجاد، مدلسازی، ویرایش و ترکیب احجام و سطوح هندسی پیچیده بسیار سبکتر، دقیقتر و بهتر از سایر همتایانش عمل کند.
نام کامل راینو یعنی Rhinoceros به معنای کرگدن، باعث شده است که غالب پلاگینهای این نرمافزار نیز نام جانوران مختلف را بر خود داشته باشند. به عنوان نمونه میتوان به گرس هاپر (به معنی ملخ) برای مدلسازی الگوریتمی، لیدیباگ (به معنی کفشدوزک) برای آنالیز دادههای اقلیمی، کانگورو برای شبیهسازی قوانین فیزیکی در محیط راینو و ... اشاره کرد. پیش از شروع آموزش گرس هاپر بد نیست تاریخچه مختصری را نیز از آن شرح دهیم.
تاریخچه مختصر گرس هاپر
در نسخه ۴ نرمافزار راینو امکانی به نام Record History اضافه شد که به کاربر امکان میداد همزمان با مدلسازی، قوانین و دستورات ساخت این مدل را نیز ذخیره کند. با در اختیار داشتن این روند مدلسازی، کاربر میتوانست با تغییر دادن ورودیهای اولیه به نتایج مختلفی در شکل نهایی برسد. مثلا اگر هنگام روشن بودن قابلیت Record History کاربر با ترکیب تعدادی خط و منحنی و اعمال قوانین و دستوراتی خاص به شکلی مشخص دست پیدا میکرد، میتوانست به عقب بازگردد و با تغییر دادن خطوط و منحنیهای اولیه اشکال و احجام متفاوتی را به دست آورد.
کمی بعدتر این سوال مطرح شد که آیا میشود این روند مدلسازی و سیستم دسترسی به درخت تاریخچه تغییرات مدل را به صورتی صریحتر و آشکارتر در اختیار کاربر قرار داد؟ این سوال و پاسخ به آن منجر به خلق Explicit History (که به نوعی پدر گرس هاپر محسوب میشود) شد اندکی بعدتر گرس هاپر بوجود آمد. این امکانات تازه چنان مورد توجه قرار گرفتند که پس از مدتی راینو بدون گرس هاپر انگار چیزی کم داشت و در نهایت از نسخه ۶ به بعد، پلاگین گرس هاپر به همراه پکیج نصب راینو عرضه و به صورت پیشفرض نصب میشود.
یک موضوع دیگر نیز که قبل از شروع آموزش گرس هاپر باید به آن بپردازیم این است که اصلاً این ابزار کجا به کار میآید، در ادامه همین بحث را پی خواهیم گرفت.
چرا و کجا از گرس هاپر استفاده کنیم؟
پاسخ به این پرسش، در واقع مروری مجدد بر تواناییهای گرس هاپر به عنوان یک ابزار طراحی پارامتریک است و البته پاسخی هم که به این پرسش داده میشود، در خصوص همه نرمافزارهای مشابه صدق میکند. گرس هاپر در موارد زیر میتواند کمک زیادی به طراحان کرده و کار آنها را سریعتر کند:
- خودکار کردن فرآیندها: فرض کنید که میخواهید هزار خط را با فواصل مشخص به یک خط موجود عمود کنید. قطعاً این کار را با خطکش و مداد و کاغذ انجام نمیدهید. اگر از نرمافزاری غیر پارامتریک (مثلا AutoCAD) استفاده کنید، باید یک خط عمود ترسیم کنید و بعد آن را هزار بار کپی کنید یا مثلا از دستور Array استفاده کنید. اما در گرس هاپر شیوه کار متفاوت است. شما به گرس هاپر میگویید این خط را به X قسمت تقسیم کن (اینجا ۱۰۰۰ قسمت) و در هر نقطه تقسیم یک خط عمود بکش. اگر این مدل پارامتریک را ذخیره کنید، بعدتر میتوانید تعداد تقسیمات را روی هر عدد دلخواهی تنظیم کنید یا این روند روی هر خط دیگری به کار بگیرید.
- بستهبندی فرآیندهای تکراری و شخصیسازی: گفته میشود که طراحی پارامتریک برای افراد تنبلی طراحی شده که نمیخواهند کاری را که قبلا انجام دادهاند دوباره تکرار کنند. اگر روندهای کاری شما تکراری هستند میتوانید برای هر کدام از آنها دستور یا دستوراتی اختصاصی خودتان را بسازید. این به اصطلاح ماژولها به صورت یک تابع عمل میکنند که تعدادی ورودی را گرفته و با انجام مجموعهای از اعمال روی آنها، یک یا چند خروجی تولید میکنند.
- به اشتراک گذاشتن ایدهها و ابزارها: تقریبا منطبق بر همان فلسفهای که در پشت جنبش متنباز در دنیای برنامهنویسی وجود دارد، بسیاری از طراحان، ابزارها و پلاگینهای ارزشمند بسیاری در اختیار سایرین قرار میدهند که میتواند هم کار را برای دیگران سادهتر کند و هم ایدهها و ابزارهایی برای طراحیهای جدید و متفاوت در اختیار آنها قرار دهد. به عبارت سادهتر شما پلاگینهای بسیاری را برای دانلود و نصب در اختیار دارید که ماژولها و قابلیتهای جدیدی را به گرس هاپر اضافه میکنند و در بسیاری موارد ابزار یا ماژولی که به دنبالش هستید، پیشتر توسط شخصی دیگر نوشته شده است و شما فقط کافی است آن را دانلود کنید.
- تهیه آلترناتیوهای متعدد (آن هم با سرعت زیاد): در بسیاری موارد مدت زمانی که صرف ایجاد یک طرح در نرمافزاری پارامتریک میشود، برابر یا اندکی بیشتر از زمانی است که برای طراحی آن به صورت کلاسیک مورد نیاز است. اما مزیت استفاده از سیستمهای پارامتریک این است که در تغییرات بعدی، مدل پارامتریک به زمان اندکی برای تغییر پارامترهای ورودی و گرفتن نتیجه نیاز دارد، اما در مدل کلاسیک همان زمان اولیه باید مجددا صرف ساخت یک مدل جدید شود. فرض کنید میخواهید حجمی را براساس شکل موجهای سینوسی پیاده کنید. قاعدتا باید آنقدر موجهای سینوسی مختلف را با طول موجها و دامنههای متفاوت چک کنید تا بالاخره طرح نهایی هم به لحاظ زیبایی و هم عملکرد پاسخگوی نیاز طراحی شما باشد. زمانی که برای انجام این کار به کمک ابزارهای پارامتریک مورد نیاز است، در مقایسه با ابزارهای کلاسیک و مدلسازی نمونههای متعدد در واقع هیچ است.
- طراحیهای مبتنی بر ریاضیات: یکی از گرایشهای اخیری که در حوزه طراحی پدیدار شده است، تمایل به استفاده از فرمولهای ریاضی، اشکال هندسی پیچیده و ساده فراکتالی و همینطور طراحیهای مبتنی بر آزمون و خطا است. اگر بخواهید با ابزارهای کلاسیک و غیر پارامتریک، طرحی را مثلا براساس الگوی برفدانه کخ (+) یا قالی سرپینسکی (+) پیاده کنید، محاسبات عملا باید بیرون از ابزار طراحی انجام شده و نتیجه به صورت غیر خودکار وارد ابزار طراحی شما شود. اما با استفاده از ابزارهای پارامتریک، محاسبات و طراحی یکجا جمع شده و کار بسیار سادهتر خواهد شد.
بهترین راه برای یادگیری یک ابزار جدید شروع به تمرین و انجام پروژه با آن است، در همین راستا آموزش گرس هاپر را با انجام یک پروژه جالب و کوتاه آغاز میکنیم. البته پیش از شروع این پروژه لازم است یادآور شویم که در سایت فرادرس فیلمهای آموزشی در رابطه با پلاگین گرس هاپر ارائه شدهاند که آنها را میتوانید از طریق لینکهای زیر مشاهده کنید.
- برای دیدن فیلم آموزش هینه سازی انرژی ساختمان با پلاگین های گرس هاپر (Honeybee و Ladybug) در نرم افزار راینو + اینجا کلیک کنید.
- برای دیدن فیلم آموزش پلاگین گرس هاپر (Grasshopper) برای طراحی پارامتریک در راینو (Rhino) + اینجا کلیک کنید.
تمرینی کوتاه با گرس هاپر: ساخت یک خرپا
تا اینجا به اندازه کافی درباره مباحث و مقدمات تئوریک صحبت کردهایم و حالا وقت آن رسیده است که با تمرینی کوتاه، کار عملی با گرس هاپر را تجربه یا در اصل آموزش گرس هاپر را آغاز کنیم. در این تمرین قصد داریم تعریف یا به اصطلاح Definition یک خرپای ساده را در گرس هاپر بوجود بیاوریم.
این Definition میتواند خرپاهای متفاوتی را براساس پارامترهای ورودی خود بوجود بیاورد. این پارامترها عبارتند از:
- نقاط ابتدا و انتهای خرپا
- ارتفاع خرپا
- تعداد تقسیمها یا قابها
- شعاع عناصر افقی بالا و پایین
- شعاع عناصر تقسیمکننده قائم و مورب
فیلم آموزش گرس هاپر رایگان
نحوه انجام کار را میتوانید در ویدیوی زیر ببینید:
اگر به هر دلیلی نمیتوانید یا نمیخواهید ویدیو را ببینید، توضیحات مرحله به مرحله زیر به شما کمک میکند که کار را روی سیستم خودتان پیش ببرید. توجه داشته باشید که برای انجام این تمرین باید نرمافزار راینو و پلاگین گرس هاپر روی سیستم شما نصب شده باشند. اگر راینو نسخه ۵ به بعد را داشته باشید، گرس هاپر به صورت خودکار روی سیستم شما نصب شده است. حال در ادامه به آموزش گرس هاپر به صورت متنی میپردازیم.
۱. ایجاد نقاط به عنوان اشکال هندسی مرجع
اولین گام در این آموزش گرس هاپر این است که در پنجره فرمان راینو تایپ کنید POINT یا از نوار ابزار کنار صفحه، آیکون Point را کلیک کنید و دو نقطه مجزا از هم را در فضای مدل راینو مشخص کنید. از این نقاط بعدا به عنوان اشکال هندسی مرجع یا Reference Geometry استفاده خواهیم کرد.
۲. اجرا کردن Grasshopper و آشنایی کلی
در پنجره فرمان راینو تایپ کنید Grasshopper یا آیکن گرس هاپر را از نوار ابزار کلیک کنید. پس از زمانی کوتاه پنجرهای ظاهر میشود که محیط کار پلاگین گرس هاپر است.
در قسمت بالای صفحه زبانهها یا Tabهای مختلفی را مشاهده میکنید که هر کدام مجموعه دستورات مرتبط به موضوع خاصی را در خود جای دادهاند. از این دستهها میتوان به Sets (مجموعهها)، Math (فرمولهای ریاضیات)، Curve (منحنیها) و ... اشاره کرد. گرس هاپر به صورت پیشفرض در زبانه Params (پارامترها) باز میشود. دستورات موجود در هر زبانه نیز به نوبه خود به تعدادی پنل تقسیم شدهاند. مثلا در زبانه Params شما میتوانید پنلهای Geometry (اشکال هندسی) و Input (ورودیها) را مشاهده کنید.
قسمت اصلی صفحه که یک فضای خالی شطرنجی است، بوم یا Canvas نامیده میشود. Canvas عملا یک صفحه دوبعدی بیانتها است که الگوریتمهای شما در آن ایجاد (بهتر بگوییم ترسیم) میشوند.
برای شروع از همان زبانه Params و پنل Geometry روی آیکون Point کلیک کرده و سپس در یک جای خالی Canvas کلیک کنید تا یک پارامتر نقطه روی بوم شما ایجاد شود. این کار را یکبار دیگر هم تکرار کنید. اگر پارامترها را بیش از حد کوچک یا بزرگ میبینید با چرخاندن اسکرول ماوس میتوانید بزرگنمایی بوم را کم و زیاد کنید (zoom) و با نگه داشتن کلید راست و حرکت دادن ماوس میتوانید بوم را به اطراف حرکت دهید (pan). غالب آیتمهایی که شما به بوم گرس هاپر اضافه میکنید، چندین محل برای ورود و خروج دادهها دارند که به صورت نیمدایرههایی به ترتیب در سمت چپ و راست آیتم دیده میشوند. عملا الگوریتم شما از چپ به راست ترسیم میشود. پارامترهای نقطهای که الان در صفحه دارید یک ورودی و یک خروجی دارند.
نکته دیگر اینکه فعلا این پارامترها به رنگ نارنجی دیده میشوند و یک بالن کوچک در کنار آنها دیده میشود. رنگ نارنجی به این معناست که این پارامترها در دریافت دادههای ورودی یا عملکرد خود مشکل دارند. اگر نشانگر ماوس را روی این بالن نگه دارید، توضیح مشکل را هم مشاهده خواهید کرد. در تصویر زیر نقطه پایینی نتوانسته است داده مورد نیاز برای کارکرد خود را به دست بیاورد. اکنون نوبت آن است که به سراغ سومین گام از این آموزش گرس هاپر برویم.
۳. اتصال نقطههای راینو به پارامترهای نقطه
برای ادامه کار باید نقاطی را که قبلا در راینو ایجاد کرده بودیم به این پارامترها نسبت بدهیم.
برای اینکار روی یکی از پارامترهای نقطه کلیک راست کنید و از منوی باز شده گزینه Set one Point را انتخاب نمایید. با انتخاب این گزینه به محیط راینو برگشته و یکی از نقاطی را که در مرحله ۱ آموزش گرس هاپر در راینو ایجاد کرده بودید انتخاب کنید. برای پارامتر دوم نیز همین کار را تکرار کنید.
۴. ایجاد خط میان دو نقطه (عنصر افقی پایین)
حالا برای متصل کردن دو نقطه از زبانه Curve و پنل Primitive گزینه Line را انتخاب کرده و به بوم گرس هاپر اضافه کنید. این که چرا راینو خط را هم جزء اشیاء منحنی یا Curve به شمار میآورد، خارج از حوصله این مقاله است. پارامتر Line به دو ورودی از جنس نقطه یا Point احتیاج دارد. برای تامین ورودیهای این پارامتر، با درگ کردن ماوس از خروجی سمت راست هر یک از نقاط به یکی از ورودیهای سمت چپ پارامتر Line، ارتباط این پارامترها را با هم برقرار کنید.
در این بخش از آموزش گرس هاپر باید راجع به دو موضوع صحبت کنیم:
اول اینکه کاری که شما اکنون انجام دادید، همان Visual Programming یا برنامهنویسی بصری بود. شما بدون نوشتن کد و تعریف تابع و متغیر و غیره و فقط با کلیک و درگ ماوس، متغیرهایی از جنس نقطه را به یک تابع تولید خط دادید و خروجی را که یک خط بود تحویل گرفتید. این اساس همه کارهایی است که از این به بعد در گرس هاپر انجام خواهید داد. تعریف و به حرکت درآوردن پارامترها و دادهها میان توابع مختلف.
دوم اینکه بلافاصله بعد از متصل کردن نقاط به پارامتر خط، میبینید که در صفحه راینو خطی به رنگ قرمز میان این دو نقطه ترسیم میشود. دقت داشته باشید که این خط هنوز متعلق به گرس هاپر بوده و جزء اشیاء راینو نیست و به همراه فایل راینو شما ذخیره نمیشود. این خط تا زمانی دیده میشود (به عبارت درستتر پیشنمایش آن در راینو دیده میشود) که پنجره گرس هاپر باز باشد. برای آن که شیئی که تعریف آن در گرس هاپر موجود است را به صورت مستقل در راینو داشته باشید باید آن را به اصطلاح بپزید یا Bake کنید. برای این کار کافیست روی پارامتر خط کلیک راست کنید و گزینه Bake را انتخاب کنید. راجع به Bake کردن در انتهای کار بیشتر توضیح میدهیم.
۵. جابهجا کردن خط (ساخت عنصر افقی بالا)
اکنون که عنصر افقی پایین خرپا ساخته شده است، برای ساختن عنصر افقی فوقانی میتوانیم یک کپی از خط پایینی در جهت محور Z ایجاد کنیم. قبل از این کار، یکی از نماهای جانبی یا پرسپکتیو را در راینو فعال کنید تا دید بهتری نسبت به کل ترسیم داشته باشید. پس از آن در زبانه Transform روی نوار مشکی پایین پنل Euclidean (یه معنای اقلیدسی) کلیک کنید و از لیست ظاهر شده گزینه Move را انتخاب کرده و به بوم گرس هاپر اضافه کنید. Move به دو ورودی احتیاج دارد. اولی شیئی هندسی که باید جابهجا شود و دومی بُرداری که تعیینکننده میزان جابهجایی باشد. برای مشخص کردن شییء هندسی کافی است خروجی Line قبلی را به ورودی بالای Move متصل کنید.
بلافاصله بعد از اتصال خط و بدون معرفی بردار حرکت، در صفحه راینو خط دومی ظاهر میشود که حاصل جابهجایی خط اول است و دقیقا ۱۰ واحد در جهت Z بالاتر رفته است. اگر نشانگر ماوس را روی ورودی پایینی دستور Move یعنی بردار حرکت نگه دارید خواهید دید که مقدار پیشفرض آن 0.0.10 یعنی برداری به طول 10 در جهت Z است. اما اگر بخواهیم میزان این جابهجایی را خودمان مشخص کنیم، به دو ابزار نیاز داریم. اولی نوار لغزان عددی یا Number Slider است که هرجا به تنظیم یک مقدار عددی نیاز داشته باشیم از آن استفاده میکنیم و دیگری Unit Z است که با گرفتن یک مقدار عددی، برداری در جهت Z با طول همان عدد ایجاد میکند. اولی را میتوانید در زبانه Params و پنل Input پیدا کنید و دومی در زبانه Vector و پنل Vector قرار دارد. آنها را به بوم گرس هاپر اضافه کنید و سیمکشیهای آنها را انجام دهید.
خواهید دید که با حرکت دادن نوار لغزان یا همان Slider، فاصله خط دوم با خط اول کم و زیاد میشود. معمولا زمانی که ما از Sliderها استفاده میکنیم دو فاکتور را باید در آنها تنظیم کنیم:
اولی نوع عددی است که تولید میکنند که میتواند اعداد صحیح، اعشاری و یا اعداد زوج یا فرد باشد. این کار را با کلیک راست روی Slider و انتخاب حالت موردنظر از گزینه Slider type انجام میدهیم. در این جا جهت تنظیم ارتفاع خرپا حالت را روی اعداد اعشاری قرار میدهیم.
دومی دامنه حرکت Slider یا حداقل و حداکثر مقدار عددی است که میتواند تولید کند. برای تنظیم این موارد هم میتوانید روی Slider کلیک راست کرده و از گزینه Values استفاده کنید.
بعد از تنظیم این مقادیر میبینید که ارتفاع خرپا به سادگی با این Slider قابل تنظیم است. مقادیر مینیمم و ماکزیمم را براساس واحدی که در فایل راینو تنظیم کردهاید و همچنین ابعاد خرپایی که میخواهید بسازید تنظیم کنید. نکته مهمی که باید به آن توجه کنید این است که برخلاف اتفاقی که در خود راینو یا نرمافزاری مثل اتوکد می افتد، ابزار Move خود خط اولیه را جابه جا نمیکند. اینجا Move تابعی است که یک ورودی (خط موجود) و یک بردار را دریافت کرده و خروجی آن خطی است که با خط اولیه به اندازه بردار داده شده فاصله دارد.
۶. تقسیم بندی خطوط و ساخت عناصر قائم
اکنون برای ساخت عناصر قائم باید عناصر افقی بالا و پایین را به قسمتهای مساوی تقسیم کنیم. این کار با ابزار Divide Curve که در زبانه Curve و پنل Division قرار دارد انجام میدهیم. این ابزار یک منحنی و یک عدد n را به عنوان ورودی دریافت کرده و منحنی را به n قسمت مساوی تقسیم میکند. اما اینبار به جای کلیک کردن زبانه، پنل و آیکن دستور میخواهیم به روش سادهتری آن را به بوم گرس هاپر اضافه کنیم. اگر نام دستور (یا حتی بخشی از آن) را بدانید، میتوانید بهجای پیدا کردن آن در زبانهها و پنلها، آن را جستوجو کنید.
برای این کار کافیست در یک جای خالی از بوم گرس هاپر دبل کلیک کنید و در باکس ظاهر شده شروع به تایپ کردن کنید. گرس هاپر بسته به عبارتی که مینویسید دستورات موجود و مشابه را به شما نشان خواهد داد. در این مثال همین که شما حروف div را تایپ کنید دستور مورد نظر ظاهر میشود. این دستور را دوبار به بوم گرس هاپر اضافه کنید و سپس هر کدام از دو خط موجود (یکی خروجی ابزار Line و دیگری خروجی ابزار Move) را به ورودی یکی از این تقسیمکنندهها متصل کنید. همانطور که میبینید بلافاصله خطوط به ۱۰ قسمت مساوی تقسیم میشوند.
احتمالا الان میدانید که عدد ۱۰ پیشفرض تعداد تقسیمات این ابزار است و برای تغییر آن کافی است یک Slider عددی به مجموعه اضافه کرده و خروجی آن را به تقسیمکنندهها بدهید. البته لازم نیست برای هر تقسیمکننده یک Slider جداگانه تعریف کنید، بلکه بهتر است خروجی یک Slider را به هر دو متصل کنید تا تعداد تقسیمات یکی باشد و البته در این مورد خاص حتما نوع Slider را هم روی اعداد صحیح (Integer) و حد بالا و پایین را روی اعداد مناسبی مثلا ۳ تا ۲۰ بگذارید. همینطور که اینجا در مورد Line میبینید یک خروجی از یک پارامتر یا دستور را میتوان به بیش از یک ورودی متصل کرد و محدودیتی در این زمینه وجود ندارد.
در نهایت برای ساخته شدن خطوط عمودی یک دستور Line به بوم گرس هاپر اضافه کرده و خروجیهای این تقسیمکنندهها را (که در واقع مجموعهای از نقاط است) به این دستور متصل کنید. ابزار Line زمانی که به جای دو نقطه دو لیست از نقاط را به عنوان ورودی دریافت کند، یک به یک آنها را به هم متصل میکند.
۷. ساختن عناصر مورب
در گام هفتم از آموزش گرس هاپر باید بگوئیم که برای ساختن عناصر مورب، باز هم باید از لیستهای خروجی تقسیمکنندهها استفاده کنیم. اما اینبار به جای این که نقاط متناظر دو لیست (۱ به ۱و ۲ به ۲ و الی آخر) به هم متصل شوند، باید هر نقطه از لیست اول به نقطه بعدی لیست دوم (مثلا نقطه ۲ به ۳ و نقطه ۶ به ۷ و ...) متصل شود. برای انجام این کار از ابزاری به نام Shift List روی نقاط خط پایینی استفاده میکنیم که موقعیت عناصر یک لیست را به اندازه مشخصی (پیشفرض به اندازه ۱ واحد) تغییر میدهد. و بعد دوباره هر دو لیست را به ورودی یک دستور Line خواهیم داد. ابزار Shift List را میتوانید در زبانه Sets و با باز کردن قسمت پایین پنل List پیدا کنید.
در یک توضیح ساده فرض کنید که نقاط حاصل از تقسیمکننده اول ما (۱،۲،۳،۴،۵) و نقاط حاصل از تقسیمکننده دوم (a,b,c,d,e) باشند. عناصر عمودی در واقع خطوط a1 و b2 و c3 و الی آخر هستند. اما عناصر مورب باید با خطوط b1 و c2 و ... ایجاد شوند. زمانی که Shift List با میزان تغییر ۱ روی لیست اول عمل کند لیست به شکل (۵،۱،۲،۳،۴) در خواهد آمد. میتوان اینطور تصور کرد که لیست یک واحد به سمت راست هل داده شده است و عنصر آخر که از لیست بیرون میافتد دوباره به ابتدای لیست اضافه میشود.
اما در چنین حالتی ما یک خط اضافه یعنی a5 هم خواهیم داشت. Shift List ورودی اختیاری سومی به نام Wrap هم دارد که مقدار آن به صورت پیشفرض درست یا True است. این ورودی تنظیم میکند که آیا عدد یا المانی از لیست که با Shift شدن (یا هل دادن لیست) از لیست بیرون افتاد، دوباره به ابتدای لیست افزوده شود یا خیر. اگر ما این ورودی را روی False یا نادرست تنظیم کنیم، عناصری از لیست که به بیرون هل داده میشوند، دور ریخته خواهند شد. به عبارت دیگر لیست کوتاهتر خواهد شد. در این مثال هم ما با نسبت دادن مقدار False به ورودی Wrap کاری میکنیم که خط مورب آخری که از اتصال نقطه اول خط بالایی به نقطه آخر خط پایینی ایجاد میشد از بین برود.
برای این کار باید از ابزار Boolean Toggle استفاده کنیم که میتوانید آن را در زبانه Params و پنل Input بیابید. این ابزار تنها میتواند دو حالت درست True و نادرست False داشته باشد. این ابزار را به بوم گرس هاپر اضافه کرده و خروجی آن را به ورودی W یا Wrap ابزار Shift List متصل کنید. درست و نادرست بودن این ابزار با دبلکلیک روی آن تغییر میکند.
اکنون دیگر کلیات خرپا آماده است. خط بالا و پایین، خطوط قائم و مورب همگی ایجاد شدهاند. اگر با چرخاندن اسکرول ماوس (zoom) و درگ کردن با کلید چپ ماوس (pan) بوم را به گونهای تنظیم کنید که کل الگوریتم را ببینید باید چیزی شبیه تصویر زیر باشد. همچنین در تصویر زیر مشخص کردهایم که هر یک از خطوط ایجاد شده حاصل کدام ابزار است.
دقت کنید که محل قرارگیری دستورات روی بوم گرس هاپر اصلا اهمیتی ندارد. آنچه مهم است نحوه سیمکشی یا ارتباط آنها با هم است. در انتهای کار میبینید که برای کنترل بهتر، همه اسلایدرهای کنترلی را یکجا کنار هم جمع خواهیم کرد.
۸. تبدیل خطوط به لوله
در این مرحله از آموزش گرس هاپر برای کامل کردن خرپا کافی است که از روی خطوط موجود یک سری لوله بسازیم. برای این کار از ابزار Pipe استفاده میکنیم که در زبانه Surface و پنل Freeform قرار دارد. این ابزار به صورت معمول به دو ورودی نیاز دارد. اولی یک منحنی یا curve است که خط مرکز لوله را مشخص میکند و دومی یک عدد که شعاع آن را تعیین میکند.
قاعدتا دیگر باید بدانید که پس از افزودن این ابزار به بوم باید خروجی Lineهای مختلف ایجاد شده را به آن بدهید و با یک Slider شعاع آن را تنظیم کنید. اگر بخواهیم قطر همه قسمتهای خرپا یک اندازه باشد، میتوانیم کار را تنها با یک Pipe و یک Slider تمام کنیم. اما اگر بخواهیم شعاع لوله بالا و پایین به عنوان عناصر اصلی بیشتر و شعاع عناصر قائم و مورب کمتر باشد، به دو Pipe و دو Slider احتیاج داریم. در ادامه میتوانید نحوه ساخت لولههای قائم و مورب را ببینید:
نکتهای که باید به آن توجه کنید این است که پس از ساخت لولههای قائم، اگر بخواهید خروجی خطوط مورب را هم به ابزار Pipe متصل کنید، اتصال عناصر قائم قطع میشود. زمانی که میخواهید خروجی دو یا چند ابزار مختلف را به ورودی یک ابزار متصل کنید، باید هنگام انجام اتصالهای دوم و سوم و ... کلید SHIFT را هم نگه دارید تا یک علامت بهعلاوه کنار ماوس شما ظاهر شود و اتصال جدید بدون قطع کردن اتصالات قبلی برقرار شود.
همچنین در هر مرحلهای از آموزش گرس هاپر متوجه شدید که سیمی را اشتباه متصل کردهاید، کافیست روی نام درج شده کنار محل ورودی یا خروجی آن کلیک راست کنید و از گزینههای ظاهر شده Disconnect را انتخاب کنید تا لیستی از اتصالات آن ورودی و خروجی نمایش داده شود. سیمی که در آستانه قطع کردن آن هستید با رنگ قرمز نمایش داده میشود. توجه کنید که در تصویر زیر دقیقا روی P کلیک راست کردهایم.
بعد از ساختن لولههای قائم و مورب، خودتان درست به همین روش یعنی با افزودن یک Pipe و یک Slider دیگر و اتصال خروجی Line سازنده خط افقی پایین و Move سازنده خط افقی بالا به ابزار Pipe جدید، لولههای افقی را هم بسازید.
۹. مرتبسازی بوم گرس هاپر و کنترل خرپا
برای راحتی کار سایر استفادهکنندگان و همینطور یادآوری در مراجعات بعدی خودتان، میتوانید نام Sliderها یا هر یک از ابزارهای استفاده شده را تغییر دهید و حتی از حروف فارسی برای نام آنها استفاده کنید. برای اینکار یعنی تغییر نام Sliderها (یا هر پارامتر و دستور دیگری) در گرس هاپر میتوانید روی نام فعلی آن کلیک راست کرده و در اولین سطر منوی ظاهر شده نام مورد نظرتان را درج کنید. نامها معمولا با حالت توپر (Bold) در مستطیلهای سیاه رنگی در وسط شکل دستور یا پارامتر درج شدهاند.
همانطور که پیشتر هم گفتیم، محل قرارگیری پارامترها و دستورات روی بوم گرس هاپر نیز اهمیتی ندارد. به همین دلیل شما میتوانید برای راحتتر شدن کنترل خرپا، اسلایدرهای کنترلی را یکجا (مثلا نزدیک Pipeها) کنار هم جمع کنید. کافیست آنها را به نزدیکی محل مورد نظر بکشید و بعد همه آنها را با یک پنجره انتخاب کنید. کلیدهای کنترلی که در ۴ سمت پنجره شما ظاهر میشوند به شما کمک میکنند آیتمها را کنار هم مرتب کنید. مثلا لبه سمت چپ همه را در یک امتداد قرار دهید، فاصله آنها با هم را مساوی کنید و ...
خرپای موردنظری که در ابتدای آموزش گرس هاپر قصد طراحیش را داشتیم، اکنون کامل است و فرم و ابعاد آن را میتوان به کمک این پارامترها (ابزارها) تغییر داد:
- نقاط مرجع (مرحله ۱): هر جابهجایی که در راینو روی این نقاط انجام شود، باعث تغییر مکان شروع و پایان خرپا میشود.
- Slider ارتفاع (مرحله ۵): با حرکت دادن این اسلایدر میتوانید ارتفاع خرپا را تغییر دهید
- Slider تعداد تقسیمات (مرحله ۶): با تغییر دادن این اسلایدر تعداد تقسیمات یا عناصر قایم و مورب تغییر میکند.
- Sliderهای شعاع (مرحله ۸): یکی از این دو اسلایدر شعاع لوله عناصر افقی و دیگری شعاع لوله عناصر مورب و قایم را تعیین میکند.
کار با Sliderها و تغییرات حاصل از آنها را در طول آموزش گرس هاپر دیدهاید. با توجه به این که نقاط شروع و پایان خرپا از ابتدا در محیط راینو بوده و جزء اشیاء راینو محسوب میشوند، تغییر آنها نیز از داخل نرمافزار راینو میسر بوده و همه دستورات راینو روی آنها قابل اجرا است. گرس هاپر فقط موقعیت آنها را خوانده و مورد استفاده قرار میدهد. در ادامه میتوانید تاثیر جابهجایی نقاط (در همه جهات X و Y و Z) بر خرپا را هم ببینید.
10. جمع کردن کل اشیا و انتقال آنها به راینو
همانطور که در انتهای بخش چهارم اشاره کردیم، برای اینکه اشیاء حاصل از Definitionهای گرس هاپر را به راینو منتقل کنیم، (به گونهای که با بستن گرس هاپر یا از بین رفتن Definition به صورت اشیاء واقعی راینو قابل ذخیره و استفاده باشند) باید آنها را Bake کنیم. در حال حاضر فایل راینوی شما تنها حاوی دو شییء نقطه است و اگر بخواهید خرپا را به محیط راینو منتقل کنید باید خروجی دو دستور Pipe (یکی مربوط به خطوط افقی بالا و پایین و دیگری مربوط به خطوط مورب و قائم) را جداگانه Bake کنید. برای سادهتر شدن کار میتوانیم این دو خروجی را در یک شیی واحد به نام Brep (سرنام Boundary Representation) جمع کنیم و در نهایت تنها یک شییء را Bake کنیم. برای این کار ابزار Brep را از زبانه Params و پنل Geometry به بوم گرس هاپر اضافه کرده و خروجی دو دستور Pipe را به آن متصل کنید.
بعد از تنظیم پارامترها و رسیدن به خرپای مورد نظر زمان آن رسیده است که آن را به عنوان یک شییء واقعی به راینو منتقل کنیم. برای این کار روی Brep کلیک راست کرده و گزینه Bake را انتخاب کنید تا پنجره دستور Bake باز شود. از میان تنظیمات متعدد موجود فعلا چند آیتم اصلی را مطابق توضیحات شکل زیر کامل کرده و کلید Ok را بزنید تا اشیاء به راینو منتقل شوند.
اکنون میتوانید Definition گرس هاپر را ذخیره کرده و پنجره آن را ببندید. خرپای شما اکنون به عنوان یک ترسیم مستقل به محیط راینو منتقل شده است. در تصویر زیر میتوانید پنجره راینو را ببینید که در آن پیشنمایش Definition گرس هاپر با رنگ قرمز و خرپای Bake شده را با رنگ آبی مشاهده کنید.
امیدواریم که این معرفی و آموزش گرس هاپر ساده توانسته باشد تا حدی شما را با قابلیتها و سیستم کارکرد گرس هاپر آشنا کند. اگر به این نتیجه رسیده باشید که این ابزار میتواند در طراحیهای شما به کارتان بیاید، آموزش گرس هاپر فرادرس میتواند گزینه مناسبی برای شروع کار باشد.