Sunteți pe pagina 1din 29

Structuri de date in Sisteme de modelare

bazate pe corpuri solide (Solid Modeling


Systems)

Curs 3

* Figura dupa MEEM4403 Computer-Aided Design Methods


Organizarea datelor
• Constructia modelulului CAD presupune descrierea
matematica exacta a acestuia.
• Cum se stocheaza aceasta descriere matematica exacta?
– Sarcina dezvoltatorului de software
• Dar este necesara intelegerea termenilor si ratiunilor ce
stau la baza modurilor de organizare a datelor.
• La ora actuala sunt trei tipuri de structuri de date folosite in
SMS la descrierea unui solid:
– CSG
– B-Rep
– Decomposition data structure
Constructive Solid Geometry
• Reprezinta o structura de date ce stocheaza istoria tuturor operatiilor de tip
Booleean aplicate primitivelor (exemplu).

Avantaje:
1. Structura de date simpla si compacta ce permite manipularea cu
usurinta a datelor.
2. Modelul solid stocat sub CSG este tot timpul un model solid valid.
3. Intodeauna convertibila in alte tipuri de reprezentare a datelor cum ar fi
B-rep
4. Modelarea parametrica poate fi realizata cu usuinta schimband doar
valoarea parametrilor primitivelor asociate.

Dezavantaje:
1. Limitata in modelare. Permite doar utilizare de primitive si operatii de tip
Bolean corespunzatoare; Nu permite operatii de tip sweep sau loft.
2. Greoaie (scumpa) din punct de vedere al vitezei de calcul si dificil de
derivat elementele topologice ale frontierei modelului 3D cum ar fi:
fete, laturi, varfuri necesare pentru:
– Vizualizarea modelului (sunt necesare fetele si laturile);
– Calculul datelor volumetrice cum ar fi masa sau centrul de greutate;
– Discretizare (MESH)
Boundary-Representation
• Elementele de baza reprezentarii b-rep sunt: fetele, laturile si varfurile
• B-Rep stocheaza aceste entitati plus conexiunile acestora (exemplu
structura B-Rep simpla).

Dezavantajele structurii simple B-Rep


• Incapabila sa reprezinte fete formate din mai multe bucle (loops)
• Greu de determinat latura comuna a doua fete

Cele mai populare si performante structuri B-Rep


• Half-edge
• Winged-edge

Formula Euler-Poincare
• Un exemplu de invalidare a formulei
Structura Decomposition (Descompuere)
• Un model solid se poate descrie cu aproximatie ca o
multime de solide simple cum ar fi de exemplu cuburile

• Reprezentarea cu ajutorul cuburilor (Voxel)


Se reprezinta un solid cu ajutorul unor cuburi egale numite voxel(s)
• Cum se calculeaza?
• De ce este necesara?
• Pro si contra

• Oct-tree representation
La reprezentarea unui corp solid cu ajutorul de hexaedre de dimensiuni
diferite.
• Cum se calculeaza?
• De ce este necesara? (La fel ca reprezentarea cu ajutorul voxel-urilor)
• Pro si Contra?
• Pro: Reducere considerabila a memorie necesare comparativ cu reprezentarea Voxel
• Con: Costuri uriase din cauza testarii celor 6 fete ale hexaedrului fata de un singur punct in
cazul voxelurilor
Modelarea cu ansambluri de
componente
• Defineste o structura logica in gruparea si organizarea modelelor
solide (part(s)) in ansambluri de componente
• Mentine relatiile dintre part(s) si datele asociate lor:
• Relatii de tip mate
• Constrangeri parametrice
• Relatii de interferenta sau non-interferenta
• Permite determina automata a ordinii de asamblare sau
dezasamblare

Proiect the motor cu 4 cilindri Matrita injectie mase plastice Mountain Bike
62 de componente 120 componente in 4 subansambluri 270 componente in 12 subansambluri
Stocarea datelor in ansambluri
• In mediile CAD timpurii informatiile legate de componente se stocau
in fisierul ansamblu. Foarte ineficient de vreme ce informatia legata
de aceiasi componenta putea apare de mai multe ori. Exemplu: A si
C.
• Mediile se asamblare moderne aloca un pointer la componentele
sau sub-ansamblurile existente, stocheaza doar copii virtuale
(instante) ale sub-componentelor.

* Figura dupa MEEM4403 Computer-Aided Design Methods


Pozitionarea in ansamblu
• De vreme ce copiile partilor (obiectelor) sunt virtuale este
necesara cunoasterea in permanenta a pozitiei fiecarei parti.
• Pozitia fiecarui obiect este calculata cu ajutorul matricilor de
transformare.

* Figura dupa MEEM4403 Computer-Aided Design Methods


Constrangeri
• Componentele pot fi pozitionate relativ intre ele utilizand
comenzile specifice de pozitionare
• Sistemele CAD moderne folosesc constrangeri
(constrains, mates) pentru pozitionarea automata a
componentelor
• Constrangerile aplicate ansamblurilor permit
pozitionarea si repozitionarea automata a componentelor
sau sub ansamblurilor cand dimensiunea partilor
componente se schimba (exemplu, daca Partea
centrala se mareste componenta C se muta spre
dreapta)
• Constrangerile (mates) caracteristice aplicate
ansamblurilor sunt: coincident, align, angle, parallel,
perpendicular, concentric, center, distance, tangent
Bottom-Up vs. Top-Down Design
• Bottom-up: partile componente sunt proiectate si editate in afara
ansamblului
1. Crearea partilor constitutive (modele solide)
2. Combinarea partilor in sub-ansambluri
3. Combinarea partilor si sub-ansamblelurilor in ansabluri
• Top-down: ierarhia ansamblurilor is sub-ansamblurilor este definita in
prima faza urmata de realizarea partilor constitutive (modelele solide)
1. Crearea ansamblurilor la nivelul superior
2. Crearea si adaugarea sub-ansamblurilor goale si a partilor constitutive
3. Constructia modelelor solide in fiserele part goale

* Figura dupa MEEM4403 Computer-Aided Design Methods


Design in Place sau Design in
Context (proiectarea in context)
• Modelele solide sunt in asa fel create incat sistemele de
coordoante ale partilor si ansamblelor sunt definite in
acelasi sistem de coordonate
• Partile vecine pot fi folosite ca referinte

Proiectare in afara contextului Proiectare in context


* Figura dupa MEEM4403 Computer-Aided Design Methods
CSG Structura de date CSG*

Nodul primitivei P2

Nodul primitivei P0 Nodul primitivei P1

* Figura dupa MEEM4403 Computer-Aided Design Methods


Tipuri de primitive
Operatii de tip Boolean

Uniune Diferenta Intersectie


Operatii de tip Sweep

Operatii de tip Loft


Reprezentarea B-Rep simpla

Modelarea unei fete:


1. Reprezentarea varfurilor
p1=(2,0,0), p2=(2,1,0), p3=(2,1,-4), p4=(2,0,-4)
2. Reprezentarea laturilor
e1={p1+(p2-p1)*t; p1, p2}
e2={p2+(p3-p2)*t; p2, p3}
e3={p3+(p4-p3)*t; p3, p4}
e4={p4+(p1-p4)*t; p4, p1}
4. Reprezentarea fetei
Dezavantajele structurii B-rep simple

• Fata f nu poate fi stocata in grupul de fete pentru ca este


marginite de doua bucle (una interna si una externa);
• Solutia este impartirea fetei f in f1 si f2

* Figura dupa MEEM4403 Computer-Aided Design Methods


Structura de date half edge (jumatate de latura)

• HalfedgeDS sau structura de date centrata pe latura. Este capabila sa


retina informatia varfurilor, laturilor si fetelor incidente cum at fi fetele
bidimensionale de pe geometriile tridimensionale;
• Fiecare latura este descompusa in doua jumatati de orientari diferite. In
fiecare Halfedge sunt stocate cate o fata incidenta si cate un varf incident.
Pentru fiecare fata si varf se stocheaza cate o Halfedge incidenta

Varful incident
Structura de date Winged Edge (latura inaripata)
sau Baumgart's winged-edge

• Se defineste sensul de traversare al geometriei in


sensul acelor de ceasornic (clockwise);
• Se defineste un tabel al laturii in care se
stocheaza:
1. Varfurile corespunzatoare,
2. Fetele stanga si dreapta,
3. Laturile predecesoare si succesoare la
travesarea fetei din stanga respectiv dreapta

Traversare la Traversare la
Latura Virfuri Fete
stanga dreapta

Nume Inceput Sfarsit Stanga Dreapta Pred Succ Pred Succ

a X Y 1 2 b d e c

b, c, d si e se numesc wings (aripile) laturii a


Cazul gaurilor

Bucla externa clockwise, cele


interne counterclockwise

Laturi auxiliare
Exemplu de reprezentare B-rep in
SolidWorks
Obiecte Topologice Obiecte Geometrice
Exemplu de reprezentare B-rep in
SolidWorks
Spațiul 3D (cartezian)
Suprafață

•Structura de date Half-edge


•Structura de date Winged-edge
Normala la
suprafață Spațiul parametric 2D
v
Normala la E1 Loop 0
față

E5 Loop 1

E2 E0 E7 E6

E3

E4 u
Forumula Euler-Poincaré
•Formula Euler-Poincaré descrie relatia dintre numarul de
varfuri, laturi si fete ale unui manifold (pliat, impaturit);
V: numarul varfurilor
E: numarul laturilor
F: numarul fetelor
G: numarul gaurilor ce penetreaza geometria (cunoscut sub numele de genus in
topologie)
L: numarul de bucle
S: numarul de invelisuri (shells); un corp solid este considerat ca shell => S ≤ 1
(ecivalentul buclelor la reprezentarea fetelor)

•Forumula Euler-Poincaré:
V - E + F - (L - F) - 2(S - G) = 0

•Exemplu
V = 8, E = 12, F = 6, G=0, S=1; L = F deoarece fiecare fata are doar o bucla
interna=>V-E+F-(L-F)-2(S-G) = 8-12+6-(6-6)-2(1-0) = 0
Geometrii non-manifold
Reprezentarile Pixel si Voxel

Stabilirea culorilor se face functie de centru patratului (cubului)


Daca centrul este in contur patratul are culoarea neagra (1) daca nu alba (0)
Exemplu de model reprezentat cu ajutorul
Voxel-urilor

•Sistemele de modelare bazate pe modelele solide, in special cele utilizate in


procesarea imaginilor medicale utilizeaza pe scara larga reprezentarea voxel;
•De ce? Este prea complicata modelarea acestora folosind functiile conventionale
carcateristice sistemelor de modelare conventionale cum ar fi sweep, loft sau
suprafete 3D complicate
Pro si Contra reprezentarii Voxel

• Avantaje
– Nu are alternative mai bune in reprezentarile de model complicate cum
ar fi corpul uman
– Usor de calculat propietatile modelului cum ar fi, masa, volum, viteza,
etc.
– Usor de aplica operatiile de tip Boulean
– Furnizeaza informatii despre spatiul liber (neocupat de voxeli) =>
aplicatii directa in programarea robotilor
– Voxel-ii pot fi utilizati cu usurinta si acuratete in programele de modelare
numerica (CAE)
• Dezavantaje
– Necesita foarte multa memorie si putere de calcul; de exemplu
reprezentarea cu acuratete a figurii anterioare a necesitat 20GB
– Este o aproximatie
Reprezentarea Oct-tree
• Pasul 1. Defineste un hexaedron H ce contine complet solidul (bounding box)
• Pasul 2. Imparte H in 8 hexaedre egale (octant)
• Pasul 3. Pentru fiecare octant asociaza culoare:
– Alb, octantul este complet afara
– Gri, octantul este partial inauntru
– Negru, octantul este complet inauntru
• Pasul 4. Pentru fiecare octant gri se repeta pasul 2 si 3 in pasul 4 pana cand nu mai
sunt octanti de culoare gri (toleranta atinsa)
Exemplu de reprezentare Oct-tree

S-ar putea să vă placă și