יום ראשון, 17 בפברואר 2013

NURBS, בלנדר ומכונות כירסום

ו... חזרתי. זה לקח 3 שנים שבאמצע סיימתי צבא, סיימתי ללמוד במכללה ואפילו גרסת 2.66 הולכת לצאת עוד כשבוע. ממש מכונת זמן! חוץ מהקטע שאני לא בטוח שיהיו לנו סקייטבורדים מרחפים עוד שנתיים. בואו נקווה כי אחרת זה יהיה מאוד מאכזב. מאוד.

ולנושא של היום -
מה זה NURBS בגדול ואיך זה בבלנדר.
אז אני מראש אגיד שזה לא ממש מפותח בבלנדר. למעשה, אלא אם אתם תהפכו נורבס למצב פוליגונאלי בהמשך - אין לכם מה לעשות עם אובייקט בבלנדר שנעשה בנורבס: אין אפילו אפשרות לייצא את זה החוצה כדי להמשיך לעבוד על זה בתוכנות כמו Rhino או לתוכנות סוליד כמו SolidWorks. כלומר, כן אפשר, אבל רק במצב פוליגונאלי. ואז זה מאבד את הנקודה.

מה זה NURBS? ראשי התיבות הן Non-uniform rational B-spline ובגדול אלה עקומות שמחברות ביניהן שטח. בניגוד לפוליגונים שכל המידע של מצולע הוא כמה קודקודים יש בו, בנורבס יש המון מידע כולל כמה נקודות אחיזה יש על המשטח ועד כמה העקומות רגישות לכל שינוי (Degree). יש המון מתמטיקה מאחורי הקלעים.


המציאו את השיטה הזאת עוד בשנות החמישים בעיקר בשביל להנדס מכוניות כי היה צורך בחישובים מדויקים. אם אתם רוצים מודל מדויק פרמטרית ושיהיה מוכן לייצור תעשייתי - נורבס היא אחת הדרכים.
בנוסף, יש כל מני פעולות שפשוט קל יותר להשיג בנורבס מאשר בפולי.

אז חזרנו לנקודת ההתחלה - בבלנדר התמיכה בנורבס מאוד בסיסית והיא בעיקר תשומש רק בשביל המידול הראשוני ומהר מאוד עדיף להפוך את האובייקט לפוליגונאלי, פשוט כי אין מספיק כלים טובים לזה.
[עידכון] ישראל ישראלי הפנה אותי ל - Curve Tools, שהופכים את העבודה עם נורבס בבלנדר לטיפה יותר נעימה.

אה, ואין ייצוא/ייבוא שישמור אותו במצב הזה.
יש איזשהו פרויקט GIT שמטרתו הוא ייצוא נורבס מבלנדר, אבל נראה שלא מתחזקים כל כך את הפרויקט.
הייתי מציע תוכנת קוד-פתוח שטובה בנושא ולפי מעט גוגל - K-3D אמורה לדעת להתמודד עם זה, אבל היא תוכנה לא מפותחת מספיק בכללי.
מצאתי את AYAM, שהיא חופשית, אם-כי לפי תגובות בפורומים של בלנדר - הממשק שלה מסורבל בטירוף, אבל אמורה לדעת לתת מענה לחובבי הנורבס.
יש גם את FreeCAD שאמורה להתנהל עם דברים מהסוג הזה אבל אני לא מהנדס ואני לא לגמרי מכיר את הסביבה של תוכנות CAD, אז מפה אתם ברשות עצמכם.

אם אתם שולחים אובייקט פוליגונאלי למדפסת תלת-ממדית הכל יהיה בסדר, בגרסת 2.67 אפילו יוסיפו עוד כלי עזר להדפסה, אבל בשביל משהו מדויק כמו מכונת כירסום מתכת זה לא עובר.
כלומר, גם אם תעבירו לסולידוורקס את האובייקט הפוליגונאלי שלכם, זה לא ממש ישנה - מבחינת המכונה זה אוסף מידע לא שמיש.

פתרון זמני ולא מקצועי בעליל כדי להעביר משהו פשוט שמכונה תכיר בו:
MeshCAM. זו תוכנה די כיפית שיכולה לייצר מודל מוכן לכירסום רק מתוך תמונה. היא יכולה לקלוט גבהים של משטח רק מתמונה של שחור ולבן ולעבוד בהתאם, או שתוכלו להזין עוד מידע על ידי צבעים.



הפתרון שאני מציע הוא לייצא מבלנדר תמונה שהגבהים המשתנים של האובייקט הנבחר יבוטאו במנעד שבין השחור ללבן, כמו סוג של displacement map.
MeshCAM אומנם עולה כסף, אבל ניתן להוריד אותה לנסיון מלא של 15 יום והיא קלילה ודי מהר ניתן להבין איך לתפעל אותה, אז יכול להיות שזה יפתור את הבעיה הנקודתית שלכם.

אם חיפשתם נורבס לבלנדר ונתקלתם בשם Nurbana, אז אתם כבר יודעים שזה היה אמור להכנס לבלנדר כפרויקט "קיץ של קוד" עוד משנת 2005.
ו... זהו. לא ברור מה קורה עם הפרויקט הזה. מדי פעם מזכירים את שמו במפגשי המתכנתים השבועיים של בלנדר, אבל לא ברור אם אי פעם הוא יכנס, אם בכלל. למעשה, לא בטוח שהפרויקט רלוונטי אחרי כמעט עשור.

אם יש לאחד הקוראים מידע שיאיר את עיני אתם מוזמנים להגיב או לשלוח הודעה.