مفهوم مدلسازی نربز در راینو
نرم افزارهای مدلسازی در صنایع مختلف من جمله صنعت ساختمان و معماری از دو فرایند کلی مدلسازی نربز (NURBS modeling) و مدلسازی سطوح (Mesh modeling) بهره می برند. در این نوشتار به معرفی مدلسازی نربز در راینو بعنوان یکی از نرم افزارهای شناخته شده در طراحی صنعتی و مدلسازی معماری اشاره شده است:
مقدمه: درباره راینو
نرم افزار Rhinoceros (معمولا Rhino یا Rhino3D گفته می شود.) یک نرم افزاری تجاری گرافیک سه بعدی کامپیوتری و طراحی رایانشی (CAD یا Computer Aided Design) است و توسط Robert McNeel & Associates توسعه یافته است که یک شرکت خصوصی آمریکایی بوده و در سال 1980 تاسیس شده.
راینو بر اساس مدل ریاضیاتی NURBS می باشد که مبتنی بر تولید ارائه های دقیق ریاضیاتی از منحنی ها و سطوح آزاد در گرافیک کامپیوتری می باشد. (برخلاف نرم افزارهای مبتنی بر polygon mesh).
نرم افزار راینو در فرآیند های طراحی رایانشی ( CAD )، ساخت دیجیتال ( CAM )، نمونه سازی سریع، چاپ سه بعدی و مهندسی معکوس در صنایع مختلف از قبیل معماری، طراحی صنعتی (طراحی خودرو و کشتی و … )، طراحی محصول (جواهرات و … ) و هم چنین طراحی گرافیکی کاربرد دارد.
راینو برای محیط ویندوز و مک توسعه پیدا کرده و هم چنین افزونه برنامه نویسی تصویری گرسهاپر برای این نرم افزار توسط Robert McNeel & Associates توسعه داده شده است. در ادامه به بررسی دقیق تر مدل سازی بر مبنای NURBS می پردازیم.
نربز (NURBS) : Non-uniform rational B-Spline
نربز یک مدل ریاضیاتی است که عموما در گرافیت کامپیوتری استفاده می شود و هدف آن تولید و یا ارائه خطوط و سطوح است. نربز انعطاف و دقت زیادی را برای کنترل کردن هم اشکال قابل تفسیر به روش جبری (analytic) (مثل سطوحی که با فرمول های ریاضیاتی معروف تعریف شده اند) و هم اشکال مدل شده دارد. نربزها عمدتا در طراحی رایانشی (CAD)، ساخت دیجیتال (CAM) و مهندسی (CAE) استفاده می شوند و بخشی از استانداردهای گسترده و متنوع صنعتی مثل IGES، STEP، ACIS و PHIGS هستند. ابزار نربز در پکیج ابزارهای مختلف مدلسازی سه بعدی سازی و انیمیشن وجود دارد.
نربزها به صورت موثری می توانند توسط کامپیوتر کنترل شوند و امکان ارتباط متقابل با استفاده کننده را دارند. سطوح نربز فانکشن هایی هستند از دو پارامتر که بر روی یک سطح در فضای سه بعدی نگاشته یا map می شوند. شکل سطح توسط نقاط کنترلی ( control points ) مشخص می شود. سطوح نربز می توانند به صورت فشرده احجام هندسی ساده را ارائه کنند. T-Spline ها و سطوح تقسیم شده، برای اشکال پیچیده ارگانیک مناسب تر هستند چرا که آنها تعداد نقاط کنترلی را در مقایسه با سطوح نربز دوبرابر کاهش می دهند.
به طور کلی، تغییر دادن خطوط و سطوح نربز بسیار بصری و قابل پیش بینی هستند. نقاط کنترلی همیشه یا مستقیما به خط یا سطح متصل هستند یا به گونه ای رفتار می کنند که انگار توسط یک نخ کشی وصل شده اند. بستگی به نوع رابط کاربری، ویرایش کردن می تواند از طریق المان های نقاط کنترلی انجام شود، که برای کروها یا خطوط بزیر Bezier curves بسیار مشهود هستند، یا توسط ابزارهای سطح بالا همچون مدلسازی با spline یا ویرایش سلسله مراتبی انجام می شود.
زمینه تاریخی
پیش از کامپیوترها، طراحی ها با دست از طریق ابزارهای مختلف ترسیمی بر روی کاغذ ترسیم می شدند. خط کشها برای خطوط مستقیم استفاده می شدند، پرگارها برای دایره و نقاله ها برای زاویه ها. اما رسم خیلی از اشکال، مثل فرم آزاد کمان کشتی، با این ابزارهای ترسیمی امکان پذیر نبود. اگر چه چنین خطوط و منحنی هایی با دست آزاد قابل ترسیم بودند، اما سازندگان کشتی نیاز به نسخه ای با ابعاد اصلی داشتند که نمی توانستند با دست آزاد ترسیم کنند. چنین ترسیماتی با کمک نوارهایی منعطف از چوب انجام می شدند که spline نام داشتند. Spline در محل از طریق تعدادی نقطه از پیش تعریف شده به نام ducks نگه داشته می شدند. میان duck ها انعطاف پذیری spline باعث می شد که نوار، فرمی را به خود بگیرد که انرژی خم شدگی را مینیموم کند، بنابراین هموارترین و یا نرم ترین و یا smooth ترین شکل ممکن را به خود می گرفتند که برای محدودیت ها مناسب شوند. شکل می توانست از طریق تغییر duck ها اصلاح شود.
در سال 1946، ریاضیدان ها شروع به مطالعه فرم spline کردند و فرمول چند جمله ای یا polynomial معروف به spline curve یا spline function را ایجاد کردند. آقای Schoenberg نام spline function را به دلیل شباهتش به spline مکانیکی ترسیمی نقشه کش ها به آن اختصاص داد.
زمانی که کامپیوترها به فرآیند طراحی معرفی شدند، ویژگی های فیزیکی چنین spline هایی مورد بررسی قرار گرفتند در نتیجه می توانستند به وسیله روابط دقیق ریاضیاتی مدل سازی شوند و هرجا نیاز بود بازتولید شوند. کارهای پیشتاز در فرانسه توسط مهندس شرکت رنو Pierre Bezier و فیزیکدان و ریاضیدان شرکت سیتروئن Paul de Casteljau انجام شد. آنها تقریبا به صورت موازی با هم کار می کردند، ولی از آنجا که Bezier نتایج کارش را منتشر کرد، منحنی های Bezier به نام او نام گذاری شدند، در حالی که نام de Casteljau فقط با الگوریتم های مرتبط همراه است.
در ابتدا نربزها فقط در پکیج های اختصاصی طراحی رایانشی (CAD) شرکت های خودروسازی استفاده شد. بعدها به بخش استانداردی از پکیج های گرافیک کامپیوتری تبدیل شدند.
ارائه تعاملی و در لحظه منحنی ها و سطوح نربز برای اولین بار به صورت تجاری بر روی ورک استیشن های Silicon Graphics در سال 1989 عرضه شدند، اولین مدلساز تعاملی NURBS برای کامپیوتر های شخصی، به اسم NORBS، توسط CAS Berlin توسعه داده شد که یک کمپانی کوچک استارت آپی بود که با دانشگاه فنی برلین همکاری می کرد. امروزه اکثر نرم افزارهای گرافیکی حرفه ای موجود برای کامپیوترها فناوری NURBS را در خود دارند، که غالبا، توسط موتور مفسر نربز از یک کمپانی تخصصی تفسیر و درک می شوند.
توضیحات تکمیلی
NURBS چیست؟
NURBS، مخفف Non-Uniform Rational B-Splines می باشد، ارائه ای ریاضیاتی از هندسه سه بعدی می باشد که می تواند هر شکلی را از یک خط دو بعدی ساده یا منحنی تا پیچیده ترین سطوح با فرم آزاد سه بعدی یا حجم ها را شامل شود. به دلیلی آزادی عمل و دقت، مدل های نربز می توانند در پروسه های مختلف از تصویر سازی و انیمیشن تا تولید و ساخت استفاده شوند.
هندسه نربز پنج مشخصه مهم دارد که آن را برای مدلسازی کامپیوتری به یک گزینه ایده آل تبدیل می کند:
- شیوه های صنعتی استاندارد مختلفی برای تبدیل هندسه نربز استفاده می شوند. به این معنی که استفاده کنندگان می توانند مدل های هندسی ارزشمند خود را بین نرم افزارهای مختلف مدل سازی، رندرینگ، انیمیشن و آنالیزهای مهندسی انتقال دهند. می توان اطلاعات هندسی را به شیوه ای ذخیره کرد که برای اهداف خاص پیش بینی شده قابل استفاده باشند.
- نربز تعریف دقیق و روشنی دارد. مبانی ریاضیاتی و علوم کامپیوتری هندسه نربز در بسیاری از رشته ها در دانشگاه ها تدریس می شوند. به این معنی که عرضه کنندگان نرم افزارهای تخصصی، گروه های مهندسی، شرکت های طراحی صنعتی و شرکت های انیمیشن که نیاز به ساخت نرم افزارهای مخصوص به خود را دارند، می توانند برنامه نویسان آموزش دیده ای را بیابند که قادرند با نربز کار کننم.
- نربزها می توانند به صورت دقیق احجام هندسی استاندارد ( مثل خط، دایره، بیضی، کره ) و همچنین هندسه های با فرم آزاد مثل خودرو و انسان را تولید کنند.
- میزان اطلاعات مورد نیاز برای ارائه نربز یک هندسه خاص خیلی کمتر از مقدار اطلاعات مورد نیاز برای تخمین های سطحی یا وجهی رایج است.
قوانین ارزیابی نربزها، که در زیر بحث شده، می توانند بر روی یک کامپیوتر به شیوه ای اعمال شوند که هم بهینه و هم دقیق باشد.
هندسه نربز چیست؟
خطوط منحنی ها و سطوح نربز به شیوه ای مشابه رفتار می کنند. به دلیل آنکه توضیح منحنی ها ساده تر است، آن ها را با جزییات توضیح می دهیم. یک خط محنی نربز توسط چهار عامل تعریف می شود: درجه، نقاط کنترلی، گره ها و یک قانون ارزیابی.
درجه ( Degree )
درجه یک عدد صحیح است.
این عدد معمولا 1، 2، 3 و 5 است، ولی می تواند هر عدد صحیح مثبتی باشد. خطوط و چندخطی های ( polylines ) نربز معمولا درجه 1 دارند. دایره های نربز درجه 2 هستند و آزادترین خطوط منحنی درجه 3 یا 5 دارند. گاهی از اصطلاحات linear، quadratic، cubic و quantic استفاده می شود. Linear به معنی درجه 1، quadratic به معنی درجه 2، cubic به معنی درجه 3 و quantic به معنی درجه 5 است.
این امکان وجود دارد که افزایش درجه منحنی نربز شکل آنرا تغییر ندهد. و به طور کلی، امکان کاهش درجه منحنی نربز بدون تغییر شکل آن وجود ندارد.
نقاط کنترل ( Control Points )
نقاط کنترل لیستی از نقاط به حداقل تعداد درجه بعلاوه یک است.
یکی از راه های ساده تغییر شکل یک منحنی نربز، جا به جا کردن نقاط کنترل آن است.
نقاط کنترل با یک عدد به نام وزن یا weight همراه اند. با استثناهای بسیار کم، وزن ها اعداد مثبتی هستند. زمانی که تمامی نقاط کنترل یک منحنی دارای یک وزن هستند، (معمولا 1)، منحنی non-rational نامیده می شود، در غیر این صورت منحنی rational نامیده می شود. حرف R در NURBS مخفف rational است و نشان دهنده آن است که منحنی نربز امکان rational بودن را دارد. در عمل، اکثر منحنی های نربز non-rational هستند. تعدادی از منحنی های نربز، دایره ها و بیضی ها مثال های قابل توجهی هستند که همیشه rational هستند.
گره ها ( Knots )
گره ها لیستی به تعداد (degree+N-1) عدد هستند، که N تعداد نقاط کنترل است. گاهی وقت ها این لیست اعداد knot vector نامیده می شوند که از نظر اصطلاحی، عبارت بردار به معنای جهت سه بعدی نیست.
این لیست عددهای گره ها باید شرایط فنی خاصی را در خود لحاظ کنند. راه استانداردی که تضمین می کند شماره گره ها شرایط فنی را رعایت کردند این است که وقتی در طول لیست حرکت می کنیم عددها یکسان باقی بمانند یا بیشتر شوند و تعداد عدد های تکراری نباید بیشتر از درجه یا degree نربز باشد. به عنوان مثال، برای یک منحنی نربز درجه 3 با تعداد 11 نقطه کنترل، لیست عدد ها به صورت زیر است و به عنوان لیست گره ها قابل قبول است.
0,0,0,1,2,2,2,3,7,7,9,9,9
اما لیست زیر قابل قبول نیست، به این دلیل که چهار مرتبه عدد 2 تکرار شده و 4 از درجه یا degree نربز که 3 می باشد، بیشتر است.
0,0,0,1,2,2,2,2,7,7,9,9,9
تعداد دفعاتی که یک مقدار گره تکرار می شود اصطلاحا knot’s multiplicity نام دارد. در مثال قبلی از لیست اعداد گره های قابل قبول، گره با مقدار 0 تعداد تکرار 3 دارد، گره با مقدار 1 تعداد تکرار 1 دارد، گره با مقدار 2 تعداد تکرار 3 دارد، گره با مقدار 3 تعداد تکرار 1دارد و غیره. به گره هایی که به تعداد درجه نربز، تکرار شده اند، گره full-multiplicity گفته می شود. در مثال مطرح شده، گره های با مقدار 0، 2 و 9 از این دست اند. به مقدار گرهی که فقط یک مرتبه وجود دارد simple knot گفته می شود. در مثال فوق، مقدار گره های 1 و 3 از نوع simple knots هستند.
اگر یک لیست از گره ها با گره full multiplicity شروع شود، با گره های simple ادامه یابد و با گره full multiplicity ادامه یابد، و مقادیر با فاصله های برابر باشند، در این صورت گره های uniform نامیده می شوند. برای مثال، اگر درجه یک منحنی نربز 3 باشد با 7 نقطه کنترل و لیست گره های به صورت زیر:
0,0,0,1,2,3,4,4,4
بنابراین، منحنی، گره های uniform دارد. در مثال زیر:
0,0,0,1,2,5,6,6,6
گره ها از نوع uniform نیستند. و به این گره ها اصطلاحا non-uniform گفته می شود. حروف N و U در NURBS مخفف non-uniform هستند و نشان می دهند که گره ها در یک منحنی نربز اجازه دارند که non-uniform باشند.
تکرار مقدار گره ها در میانه لیست گره باعث می شود یک منحنی نربز نرم تر یا smooth باشد. در حالت حدی شدید، یک گره full multiplicity در میانه لیست گره نشان دهنده وجود نقطه ای بر روی منحنی نربز است که دارای خم شدید یا حالت شکستگی است. به همین دلیل، بعضی از طراحان تمایل دارند که گره ها را اضافه یا کم کنند و سپس نقاط کنترلی را تنظیم کنند تا منحنی ای نرم تر یا تیز تر داشته باشند. از آنجا که تعداد گره ها برابر با ( N+degree-1 ) هستند، که N تعداد نقاط کنترلی است، افزودن گره ها تعداد نقاط کنترلی را می افزاید و حذف کردن گره ها نقاط کنترلی را حذف می کند. گره ها می توانند بدون تغییر شکل منحنی نربز، افزوده شوند. به طور کلی، حذف گره ها شکل منحنی را تغییر می دهند اما اضافه کردن گره الزاما تغییر شکل منحنی را به همراه ندارد.
گره ها و نقاط کنترل
یک تصور اشتباه این است که هر گره با یک نقطه کنترل متناظر شده. این فرضیه فقط برای نربزها با درجه 1، صحیح است (نربزهای با درجه 1 در واقع polyline یا چند خطی های ساده هستند). برای نربزها با درجه بالاتر، گروه های ( 2*degree ) گره ها وجود دارند که با گروه های ( degree+1 ) از نقاط کنترل مرتبط هستند. برای مثال، با فرض اینکه یک نربز با درجه 3 داشته باشیم با 7 نقطه کنترلی و گره های به صورت زیر:
0,0,0,1,2,5,8,8,8
چهار نقطه کنترل اولیه گروه شدند با شش گره اولیه. نقاط کنترلی دوم از نقطه پنجم با گره های 0,0,1,2,5,8 گروه شده اند. نقاط کنترلی سوم از نقطه ششم با گره های 0,1,2,5,8,8 گروه شده اند. آخرین چهار نقطه کنترل با آخرین 6 گره، گروه شده اند.
بعضی مدلسازها از یک الگوریتم قدیمی تر برای ارزیابی نربز استفاده می کنند که دو مقدار گره اضافه نیاز دارد برای در مجموع ( degree+N+1 ) تعداد گره. زمانی که راینو هندسه های نربز را اکسپورت و ایمپورت می کند، به صورت خودکار این دو گره لازم را حذف کرده یا اضافه میکند بسته به نیازهای موقعیت.
تمامی این ویژگی ها در زمان ترسیم در محیط راینو قابل تنظیم هستند.
با هر کلیک در واقع کنترل پوینت را مشخص می کنیم.
در پنجره properties جزییات بیشتری را می توان مشاهده کرد.
قانون ارزیابی Evaluation Rule
قانون ارزیابی منحنی یک فرمول ریاضیاتی است که یک شماره می گیرد و یک نقطه اختصاص می دهد.
قانون ارزیابی نربز یک فرمول است که شامل درجه ( degree )، نقاط کنترلی و گره ها است. در فرمول تایعی به اسم B-spline basis function وجود دارد. که حروف B و S در NURBS مخفف “basis spline” است. عددی که قانون ارزیابی با آن شروع می شود پارامتر نامیده می شود. می توان قانون ارزیابی را به صورت جعبه ای در نظر گرفت که یک پارامتر را دریافت می کند و یک موقعیت نقطه را تولید می کند. درجه، گره ها و نقاط کنترلی مشخص می کنند که این جعبه چگونه کار می کند.
منابع:
3 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام
وقتتون بخیر
ببخشید من به صورت عددی در بنامه فرترن دارم از روش نربز برای مدل سازی استفاده میکنم. در یک قسمت به مشکل برخوردم، خواستم ببینم شما میتونید راهنماییم کنید؟
باتشکر
سلام و وقتتون بخیر
من یک منحنی در متلب رسم کرده و به صورت pdf در راینو ایمپورت و توسط scale ابعاد اون را تنظیم کردم. حالا میخوام اون رو با یک منحنی نربز مدل کنم..چطور می تونم چنین کاری رو انجام بدم؟
به راحتی با استفاده از دستورات مربوط به ترسمیات curve ها یا منحنی ها می تونید بر روی تصویر ایمپورت شده به محیط راینو خطی را ترسیم کنید. ماهیت و نوع خط از نوع نربز خواهد بود. کلیه ترسیمات در محیط راینو به طور کلی نربز هستند.