Rinocerul şi Lăcusta, în 3D

Rinocerul şi Lăcusta, în 3D

Pentru acele aplicații CAD în care accentul cade pe suprafeţe libere (cu forme nereductibile la geometrii 3D primitive) software-ul ,,Rhino 3D’’ se arată ca o recomandare serioasă. Cei 35 ani de experienţă ai soluţiei de la Robert McNeel & Associates, arhitectura sa deschisă (mulţimea de plug-in-uri terţe) şi existenţa versiunilor pentru platformele Windows/PC, Mac OS X şi iOS/Apple, toate contribuie la statutul său. Dar la succesul acestuia conlucrează substanţial şi Grasshopper, soluţie de programare vizuală ce comple(men)tează Rhino-ul de aproape un deceniu.

Rhinoceros 3D

Cei care l-au folosit/probat, știu că maniera de interacțiune seamănă cu cea din AutoCAD (comen­zile curg asemănător; avem mecanisme OSnap și straturi, viewporturi, cotare ș.a.m.d), însă la crearea și la editarea de curbe și suprafețe aduce multe lucruri în plus. De altfel, geometriile din Rhinoceros se bazează intensiv pe modelul matematic NURBS, ceea ce îi asigură o înaltă aplicabilitate la reprezen­tarea formelor neconvenționale. De aici derivă și domeniile/direcțiile predilecte: arhitectură, design industrial (automobile, aeronautică, ambarcațiuni nautice, agrement), design de produs (electrocasnice, mobilier, bijuterii, încălțăminte, corpuri de iluminat, obiecte personale etc), dar și grafică artistică sau pentru multimedia. La deja substanțiala premisă se adaugă în zilele noastre aplicațiile pentru impri­marea 3D (rapid prototyping) și ingineria inversă (scannare 3D, LIDAR etc).

FIGURA 1. Sesiune de lucru Rhinoceros 3D

Desigur, prima capabilitate dorită de stiliști constă, apropo de suprafețe libere (aici modelate NURBS), în deformabilitatea deplină a formelor (interacționând cu oricât de multe puncte de con­trol). La aceasta se adaugă (spre finalul ciclului de lucru) abilitatea de randare (reprezentarea foto-realistică a modelelor proiectate), sens în care tre­buie spus că pe lângă algoritmul propriu Rhino Render, utilizatorul poate angaja și soluții adiționale (plug-in-uri), cu diferite particularități în generarea materialelor grafice, precum V-Ray, Maxwell, Brazil, Neon, nVidia Iray ș.a.

Randarea nativă Rhino folosește tehnologia ray-tracing și poate administra elementele specifice redărilor de calitate ale modelelor virtuale: textúri de materiale, mapare de pori și de micro­cavități superficiale, transparență, surse de lumină (difuze sau focalizate), controlul unghiurilor/direcțiilor luminilor, controlul formelor și al intensității surselor de lumină, umbrire (umbra proprie obiectelor, pe fața lor întunecată, și respectiv umbra aruncată pe obiectele adiacente), rezoluții regla­bile pentru imaginea generată, previzualizare în timp-real (globală sau pentru obiectele selectate), rotirea/ajustarea scenei, export în diverse formate rasteriale.

Trebuie să recunoaștem că succesul lui Rhinoceros nu vine doar din abilitățile sale de modelare 3D și din facilitățile sale inginerești adiționale (privind prototipizarea, analiza, documentarea și fabricația produselor), ci și din accesibilitatea sa financiară (prețul său fiind inferior soluțiilor CAD cu întrebuințare similară). Însă infiltrarea sa în mediile profesionale a fost susținută de creatorii săi și prin dotarea cu proprietăți și instrumente specifice:

  • abilități superioare de procesare ,,mesh’’ (a rețelelor de aproximare a suprafețelor neconvenționale);
  • citirea (și chiar depanarea) fișierelor de proiec­tare aduse în formate externe (citește și scrie o mulțime de formate CAD: DWG/DXF, DGN, IGES, STEP, STL, X_T, 3ds, VRML, SolidWorks, SketchUp etc);
  • compatibilitate și uneori colaborare cu soluții software CAD/CAE/CAM;
  • simulare și analiză structurală a modelelor (plug-in-uri precum ,,Scan&Solve’’);
  • analiza turnabilității și a prelucrării prin așchiere (plug-in-urile RhinoCAM și madCAM);
  • prototipizare (RhinoART, Ehino3DPrint) ș.a.

FIGURA 2. Comenzi pentru obţinerea de forme neconvenționale

Iar potențele îi sunt consolidate și de abilitățile de dezvoltare: Rhinoceros suportă două limbaje de programare (Rhinoscript, derivat din VBScript, și Python) dar include și un SDK. Plus deja-amintitul sistem de agregare a plug-in-urilor terțe.

 

 Modelarea Rhino

Puncte: puncte, nori-de-puncte, rețea de puncte, puncte extrase din obiecte, marcaje (inter­secție, diviziune, capăt, proximitate, focal).

Curbe: linie, polilinie, poliline pe rețea, curbă liberă, cerc, arc de cerc, elipsă, dreptunghi, poli­gon regulat, spirală, elice, conică, text TrueType, punct de interpolare, puncte de control (vertex­uri), schiță.

Curbe generate din alte obiecte: prin puncte, prin polilinie, extensie, continuare, racor­dare rotundă, racordare teșită, deplasament, racordare lină, din două vederi, similară, profile de secționare, intersecție, contur de suprafață/rețea, secțiune prin suprafață/rețea, graniță, siluetă, izo­linii, curbaturi extrase, proiecții plane, retrageri, schițe, cadre filare, retezări detașate, desene 2D cu cotări și texte, suprafețe desfășurate.

Suprafeţe: din 3 sau 4 puncte, din 3 sau 4 curbe, din curbe planare, din rețea de curbe, dreptunghi, plan deformabil, extrudare, panglică, rulare, loft-are cu potrivirea tangenței, suprafață dezvoltabilă, derulare de-a lungul unei căi cu potrivire de muchii, derulare de-a lungul a două curbe de rulare cu continuitatea muchiilor, supra­față de revoluție, rotire pe cale de rulare, dublare, suprafață de mixare, cale, drapare, suprafață prin rețea de puncte, creastă, racordare rotundă, racordare teșită, offset, plan prin puncte, texte TrueType și Unicode.

Solide: paralelipiped, sferă, cilindru, tub, con­ductă, con, trunchi de con, piramidă regulată, trunchi de piramidă, elipsoid de rotație, tor, extrudare de curbă plană, extrudare de suprafață 3D, găuri cu cap plan, suprafețe de racordare, regiuni, uniuni non-colectoare, texte TrueType.

Reţele mesh: generate din suprafețe NURBS, din polilinii închise, fețe de rețea, plan, parale­lipiped, cilindru, con, sferă

 

 Grasshopper 3D

Nefiind o soluție independentă, software-ul Grasshopper rulează alături Rhinoceros 3D, constituind, de fapt, un limbaj de programare vizuală asociat acestuia. În sesiunea de lucru Grasshopper utilizatorul aduce componente în suprafața de lucru și le conectează între ele pentru a alcătui logici de proiectare. Fiecare componentă poate apela comenzi și funcții Rhinoceros, pe care le va adapta și agrega corespunzător.

Da, nu este ușor de înțeles ce-i cu această ,,programare vizuală’’ (ea fiind ani de zile un holy-grail promis de informatică, dar rareori materializat acceptabil). Însă pentru cititorii familiarizați cu software-urile de modelare a solidelor (specifice sec­torului MCAD), voi spune că în Grasshopper lucrurile se derulează ca și când am concepe proiectul direct în ,,feature manager", în sensul că interacționăm cu reprezentări ale unor operații de modelare, pe care le apelăm și le asamblăm în aranjamente/secvențe care să urmărească un obiectiv de proiectare.

Fereastra principală a lui Grasshopper este simplă, constând din paletele de componente (toolbar-ul de sub meniu) și din suprafața de lucru. Toate comenzile disponibile pentru definirea algoritmilor  generativi sunt incluse în paletele de componente, grupate pe fișe. (La nevoie se pot adăuga și palete/ componente procurate ulterior instalării). Utilizatorul alege câte o astfel de componentă (punctând pe icon-ul respectivei) și o trage/plasează pe fundalul supra­feței de lucru. Componenta inserată (reprezentând funcția corespunzătoare) va constitui un nod al algoritmului, iar caseta respectivă prezintă câteva terminale de intrare/ieșire prin care utilizatorul o va conecta cu alte funcții/componente pentru a alcătui fluxuri algoritmice.

FIGURA 3. Sesiune de lucru Grasshopper 3D
 
 
Dacă schema creată devine mai greu de gestionat, utilizatorul poate recurge la facilitățile de zoom sau de căutare. Reținem și faptul că Grasshopper folosește intern un algoritm de predicție serială de tip Markov pentru a ajuta utilizatorul să găsească următoarea componentă/comandă care s-ar potrivi în lanțul algoritmic creat.

 Funcţiuni generice ale componentelor Grasshoper:

  • furnizează date (date de intrare, parametri de proiectare);
  • manipulează/modifică date (procesare de parametri);
  • desenează și modifică obiecte (corespondență cu Rhinoceros).

Categorii de funcţii/componente Grasshoper:

  • forme geometrice 2D/3D parametrice (Params: Geometry, Primitive, Special)
  • funcțiuni logico-matematice (Maths: Boolean, Domain, Polynomials, Script, Trigon, Util)
  • mulțimi de entități algebrice pentru agregarea logică sau topologică a parametrilor (Sets: List, Sequence, Sets, Text, Tree)
  • funcții de algebră liniară și de geometrie vectorială (Vector: Field, Grid, Plane, Point, Vector, Color)
  • curbe 2D de sorginte NURBS sau Bézier (Curve: Analysis, Division, Primitive, Spline, Util)
  • suprafețe 3D (Surface: Analysis, Freeform, Primitive, Util)
  • rețele de aproximare a suprafețelor (Mesh: Analysis, Primitive, Triangulation, Util)
  • operații logice de interacțiune geometrică (Intersect: Mathematical, Physical, Region, Shape)
  • transformări complexe de suprafețe/solide

 

În general componentele cu care construim ,,algoritmii’’ de proiectare vor crea geometrii 2D/3D (dar nu se limitează la aceasta). Înlănțuirea compo­nentelor (funcțiilor) inserate în algoritm presupune că pachete corespunzătoare de date trec de la o componentă la alta prin căile definite de utilizator. Aceste date constituie de fapt parametrii deproiectare și ele sunt fie definite local, fie importate din documente Rhinoceros (sau din fișiere exterioare). Putem presupune că derularea algoritmului pe baza acestor date justifică și denumirea alternativă de proiectare parametrică (care este altceva decât dimension-driven-ul din CAD). Desigur, această abor­dare îngăduie să se genereze ușor scenarii alterna­tive de proiect, prin simple modificări ale diverșilor parametri (ajustări realizate deseori prin slidere intuitive din respectivele casete; alteori, angajând ajustări neliniare ale parametrilor) și urmărind rezul­tatele corespondente din sesiunea Rhinoceros. Da, din această perspectivă există o oarecare analogie cu dimension-driven, însă efectele se manifestă mai degrabă la nivel conceptual, decât la cel al detaliilor.

Utilizatorii sunt atrași la Grasshopper în primul rând de posibilitatea de a defini ,,artă generativă’’ (la care creatorul nu mai este nemijlocit omul), dar și de aspectul că pot face aceasta fără a fi nevoiți să înve- țe limbaje de programare.

Cuplul Rhinoceros – Grasshopper a fost primit cu entuziasm în arhitectură pentru deschiderea oferită la căutarea de formule neconvenționale de proiectare: suprafețe curbe neregulate; distribuții neuniforme (aparent aleatoare) de entități; inserarea creativă de forme organice, cvasi-fractalice. Dar ase­menea considerente, ivite la fuziunea dintre tehnică și artă, au aplicabilitate (deja dovedită) și în alte domenii inginerești.

 FIGURA 4. Proiect realizat cu Grasshopper 3D


 English summary

The article presents a couple with notoriety in the 3D design soft­ware’s field: Rhinoceros and Grasshopper, from Robert McNeel & Associates. In addition to their experience/maturity, these solutions are recommended by several distinct features: Rhino has a user-interaction very similar to AutoCAD, but actually it excels in the design of three-dimensional unconventional surfaces (based on NURBS technologies), therefore being a predilection for styling-designers (of industrial design: automotive, aeronautical, boats, recreational; of product design: appliances, furniture, jewellery, lighting, personal belongings, etc). In addition to these advantages, we could count its accessibility, its open architecture (existence of many third-party plug-in solutions), compatibility and collaboration with many CAD platforms. But the Rhinoceros' success is due to the amazing complementarities offered by Grasshopper: the associated software for 3D parametric design through visual programming. The article also throws a little light on the Rhino-Grasshopper coupled way-of-working.


 MIRCEA BĂDUŢ  este inginer, consultant CAD/IT


3780 vizualizari

Galerie foto

Pentru a putea posta comentarii, trebuie sa fiti logat in contul dvs. de utilizator.

Cere Detalii sau Oferta

Completati cu numele dvs.

Completati cu denumirea companiei pe care o reprezentati.

Adresa dvs. de e-mail.

Numarul dvs. de contact.

Mesajul dvs.

Pentru abonare (la revista sau newsletter), postare comentarii sau participare la discutiile din forum, trebuie sa fiti logat in contul dvs. de utilizator. Daca nu aveti cont, click pe [creeaza un cont nou]
CAPTCHA

Introduceţi codul numeric din imaginea de mai jos.

Image CAPTCHA
Enter the characters shown in the image.