Sei sulla pagina 1di 5

Desenarea 3D

Informatiile necesare construirii imaginii unui corp 3D se afla stocate in baza de date.
Aceste informatii sunt multimi de puncte ce vor fi proiectate pe ecran, si ordinea in care
anumite puncte trebuie unite intre ele. Punctele sunt organizate sub forma de liste de
vertexuri (ca la polilinii). Un vertex este un punct de pe suprafata unui model in care se
intalnesc doua sau mai multe linii folosite in reprezentarea corpului respectiv. In
AutoCAD, lista de vertexuri este delimitata de doua liste: la inceput lista care ne da tipul
entitatii (3DMESH, POLYLINE, PFACE - de fapt, numele entitatii va fi "POLYLINE",
diferenta dintre ele facandu-se prin coduri - vezi Anexa), iar la sfarsit o lista de tip
"SEQEND". Intre aceste doua liste se afla listele corespunzatoare vertexurilor, care
contin in principal coordonatele nodurilor respective:

( ... (0 . "VERTEX") (8 . "0") (10 x y z) ... )

Un obiect 3D poate fi construit din linii (reprezentare de tip "wireframe") sau din fatete
(portiuni de suprafata), adica prin comanda EXPLODE vom obtine entitati de tip LINE
sau 3DFACE. Manipularea si modificarea obiectelor 3D se pot reduce la transformarea
coordonatelor unei multimi de puncte (vertexurile). Pentru a vizualiza un obiect in
diverse pozitii, la diferite distante fata de observator si a-l modifica dupa o anumita lege,
se folosesc transformari globale 3D: translatia, rotatia, marirea sau micsorarea la scara,
simetria etc. In general, comenzile AutoCAD de desenare sau editare 2D se pot extinde si
la 3D, eventual cu schimbarea sistemului de coordonate (UCS). De exemplu, prin MOVE
se poate deplasa un obiect atat in plan, cat si in spatiu; in schimb, o comanda de tipul
FILLET, OFFSET sau TRIM nu lucreaza decat in plan, iar pentru a schimba planul de
lucru se va folosi comanda UCS.

Crearea obiectelor 3D

Crearea unui corp 3D presupune introducerea listei de vertexuri (explicit sau pe baza
unor reguli si eventual a unor obiecte existente). In cazul entitatilor simple (linii si
polilinii), introducerea datelor se face la fel ca la desenarea in plan. Comenzile sunt LINE
(inainte exista LINE si 3DLINE; acum LINE accepta si puncte 2D, si puncte 3D) si
3DPOLY, iar sintaxa lor este asemanatoare cu cea de la LINE (in 2D) si PLINE. O retea
de linii se creeaza cu comanda 3DMESH, iar entitatea rezultata va fi de tip POLYLINE
(putem sa spunem ca este de tip 3DMESH, pentru ca exista diferente intre ea si poliliniile
obisnuite). Sintaxa comenzii este:

Command: 3DMESH
Mesh M size: 3 (3 linii)
Mesh N size: 2 (2 coloane)
Vertex (0,1): punct
Vertex (1,1): punct
Vertex (1,0): punct
Vertex (1,1): punct
Vertex (2,0): punct
Vertex (2,1): punct

Rezultatul va fi o suprafata de tip 3DMESH (arata ca o plasa de sarma), totdeauna


deschisa. Pentru a o inchide, se poate folosi comanda PEDIT, optiunile Mclose si Nclose.
In baza de date apare o entitate de tip POLYLINE, care se deosebeste de poliliniile
obisnuite prin listele 71 si 72. Lista 71 contine valoarea lui M, iar 72 pe a lui N:

(... (0 . "POLYLINE") ... (10 0.0 0.0 0.0) ... (71 . 3) (72 . 2) ...)
- urmeaza listele vertexurilor, iar la sfarsit o lista de tip SEQEND.

O entitate de tip 3DMESH poate fi privita ca o matrice, ale carei elemente sunt
vertexurile. M reprezinta numarul de linii, iar N numarul de coloane. Comanda 3DMESH
este incomoda cand se introduc toate punctele direct, de la tastatura, dar este usor de
utilizat prin programe AutoLISP. De exemplu, fisierul FPLOT.LSP, din pachetul
AutoCAD; iata o portiune din el:

(defun fplot (fcn xrange yrange res / ce stepx stepy i j x y)


(setq x (car xrange)
stepx (/ (- (cadr xrange) x) (float res))
stepy (/ (- (cadr yrange) (car yrange)) (float res))
i 0)
(setq ce (getvar "cmdecho"))
(setvar "cmdecho" 0)
(command "3Dmesh" res res)
(while (< i res)
(setq j 0
y (car yrange))
(while (< j res)
(setq j (1+ j)
y (+ y stepy))
(command (list x y (apply fcn (list x y))))
)
(setq i (1+ i)
x (+ x stepx))
)
(setvar "cmdecho" ce)
)

Suprafata obtinuta cu 3DMESH este alcatuita din elemente de tip 3DFACE . 3DFACE
este echivalentul 3D al comenzii (si tipului de entitate) SOLID. Colturile ei sunt tot
vertexuri, unite intre ele prin linii, dar spatiul dintre linii este considerat opac. Poate fi
umplut folosind comanda SHADE. Daca am fi desenat o suprafata din linii, am fi obtinut
o retea de tip wireframe, asupra careia nu se pot aplica comenzile HIDE si SHADE. O
suprafata alcatuita din 3DFACE poate fi obtinuta si cu comanda PFACE, care are sintaxa
asemanatoare cu 3DMESH, adica trebuie specificat fiecare vertex, dar nu mai trebuie
introduse valori pentru M si N, deoarece fatetele (3DFACE) pot fi asezate arbitrar.
Fiecare element al suprafetei poate avea culoarea si stratul diferite de ale celorlalte
elemente. Numarul de vertexuri nu este limitat. Pentru fiecare vertex introdus, se vor cere
legaturile cu celelalte vertexuri, pentru a forma o fateta. Numarul de laturi ale acesteia nu
este limitat decat de numarul vertexurilor. Sintaxa:

Command: PFACE
Vertex 1: punct
Vertex 2: punct
...................
Vertex n: Enter
Face 1, vertex 1: (nr. intreg)
Face 1, vertex 2: Enter
Face 2, vertex 1: ........

In baza de date apare tot o entitate de tip POLYLINE, care in listele 71 si 72 va contine
numarul de vertexuri si respectiv numarul de fatete pe care acestea le determina. Listele
vertexurilor sunt de doua tipuri: intai cele ale vertexurilor introduse, apoi pentru fiecare
dintre acestea, mai apare o lista care contine legaturile cu celelalte vertexuri (listele 71,
72, 73 si 74). Numerele care apar in listele de legaturi sunt numerele de ordine ale
vertexurilor introduse, aflate la inceputul succesiunii de liste de vertexuri. Daca sunt mai
mult de patru laturi, apar in listele 71...74 si numere negative, care reprezinta legatura cu
lista vertexului urmator sau precedent. Ca si 3DMESH, PFACE este o comanda usor de
apelat din programe AutoLISP.

Alte comenzi cu care se pot genera suprafete:

- Edgesurf - o suprafata marginita de patru curbe


- Revsurf - suprafata obtinuta prin rotatia unui obiect in jurul unei axe
- Rulesurf - suprafata obtinuta prin deplasarea unei linii (generatoare) cu capetele asezate
pe doua contururi inchise sau deschise
- Tabsurf - suprafata obtinuta prin deplasarea unui contur intr-o directie specificata.

Lista care, in baza de date, este asociata unei linii 3D este aceeasi cu cea asociata unei
linii 2D (la care aveam coordonata Z nula). Pentru 3DFACE, intalnim liste de forma:

(... (0 . "3DFACE") (8 . "0") (10 x1 y1 z1) (11 x2 y2 z2) (12 x3 y3 z3) (13 x3 y3 z3)
...(70 . n) ...)

unde 10, 11, 12 si 13 sunt constructorii listelor colturilor fatetei, iar lista 70 contine
numarul laturii invizibile (poate fi 0, daca toate sunt vizibile):
1 - prima latura invizibila
2 - a doua latura invizibila
4 - a treia latura invizibila
8 - a patra latura invizibila.
Afisarea desenelor 3D

Chiar cand desenam un obiect tridimensional, ecranul monitorului este tot plan
(aproximativ), deci desenul de pe ecran va fi o proiectie a obiectului nostru. In general,
proiectiile sunt aplicatii care duc puncte din spatii cu n dimensiuni in spatii cu mai putine
dimensiuni. Proiectia unei imagini pe ecran este o transformare prin care punctele din
spatiul tridimensional sunt duse intr-un spatiu cu 2 dimensiuni. In AutoCAD se folosesc
doua tipuri de proiectii: proiectia paralela si proiectia perspectiva. Exista doua tipuri de
proiectii paralele:
- proiectia ortogonala paralela, pentru care directia de proiectie coincide cu normala la
planul de proiectie;
- proiectia oblica, pentru care directia de proiectie difera de normala la planul de
proiectie.
Proiectia ortogonala paralela (ortografica) este folosita atunci cand se reprezinta
obiectele in elevatie, plan sau profil (cele 3 vederi folosite in desenul tehnic). In aceste
cazuri, planul de proiectie este perpendicular pe una din axele sistemului de referinta. Se
pastreaza distantele si unghiurile.
In AutoCAD, aceste vederi sunt obtinute privind desenul dintr-unul din punctele (0,0,1),
(0,1,0) sau (1,0,0); adica observatorul priveste in lungul unei axe. Definirea punctului din
care este privit obiectul se face cu comanda VPOINT (View POINT). Alte tipuri
particulare de proiectii ortogonale sunt proiectiile axonometrice, pentru care planul de
proiectie nu mai este perpendicular pe o axa a sistemului de referinta. Un exemplu este
proiectia axonometrica izometrica, pentru care directia de proiectie face unghiuri egale cu
cele 3 axe ale sistemului de referinta. Se pastreaza paralelismul liniilor, dar se
denatureaza unghiurile. Proiectia axonometrica izometrica poate fi obtinuta privind
obiectul (sau obiectele) din punctul (1,1,1) (la VPOINT) sau folosind comanda
ISOPLANE. Modificand punctul de observare, se pot obtine si alte tipuri de proiectii
paralele; se pot da orice coordonate pentru punctul de observare.
Sintaxa comenzii VPOINT:

Command: VPOINT
Rotate/ <View point> (0,0,1):

Punctul de observare implicit (la inceperea unui desen nou) este (0,0,1).

Proiectia perspectiva creeaza imagini similare celor obtinute prin fotografiere, mai
realiste decat cele obtinute prin proiectia paralela.
In proiectia perspectiva, liniile paralele intre ele si neparalele cu planul de proiectie par
sa convearga intr-un punct numit "punct de fuga". Daca observatorul este fix, atunci se
pot observa toate obiectele situate in interiorul unui "con de vedere". In aplicatiile pe
calculator se inlocuieste conul de vedere cu o piramida de vedere. Ecranul este o
directoare a piramidei de vedere care impreuna cu pozitia observatorului determina
complet aceasta piramida.
Exista doua metode de obtinere a proiectiei perspective a unui corp 3D:
- prin proiectarea fiecarui punct 3D pe planul ecranului, pastrandu-se in memorie atat
punctul rezultat, cat si originalul;
- prin aplicarea unei transformari 3D (transformare perspectiva) care deformeaza corpul
astfel incat proiectia paralela a corpului obtinut sa coincida cu proiectia perspectiva a
celui initial. In memorie, imaginea va fi stocata doar prin coordonatele punctelor care
alcatuiesc corpul transformat.
In AutoCAD, proiectia perspectiva a unui corp poate fi obtinuta prin comanda DVIEW
(Dynamic VIEW). Prin aceasta comanda se poate obtine si proiectia paralela, fiind mai
expresiva decat VPOINT (dar mai lenta). Pentru alegerea dinamica a punctului de
observare (cand apare cererea "Select objects:") se va selecta un grup de entitati care vor
fi rotite in functie de pozitia observatorului (CAmera) si a punctului observat (TArget).
Daca la "Select objects:" se raspunde cu Enter, AutoCAD va desena pe ecran o casuta,
care va fi rotita in locul obiectelor desenate de utilizator. Pentru a se trece in proiectie
perspectiva este suficient sa se aleaga o distanta nenula (optiunea "Distance"). Revenirea
din proiectie perspectiva in proiectie paralela se face cu "Off".
Lista completa a optiunilor comenzii DVIEW:

CAmera/ TArget/ Distance/ POints/ PAn / Zoom/ TWist/ CLip/ Hide/ Off/ Undo/
<eXit>:

Acest prompter va fi repetat pana cand se va opta pentru parasirea comenzii (eXit).
Celelalte optiuni vor fi amintite in lista completa a comenzilor AutoCAD.

Pentru a afisa mai multe vederi ale unui corp pe ecran, se foloseste comanda VPORTS.
Fiecare din ferestrele obtinute va putea contine o vedere a corpului desenat (o proiectie).
O modificare facuta intr-una din ferestre va afecta si celelalte vederi, pentru ca toate
vederile sunt create pornind de la aceeasi baza de date, deci modificarea bazei de date
duce la modificarea tuturor vederilor. Comenzile de afisare (DISPLAY) aplicate unui
VPORT nu le afecteaza neaparat si pe celelalte (doar REDRAWALL si REGENALL
afecteaza toate VPORTurile).
In cazul corpurilor 3D care au si suprafete opace, o reprezentare mai realista poate fi
obtinuta stergand liniile "ascunse" (adica liniile aflate dupa o suprafata opaca). Aceasta se
face prin comanda HIDE, sau optiunea HIDE a comenzii DVIEW (exista o asemenea
optiune si la plotare - comenzile PLOT si PRPLOT). Comanda HIDE este mare
consumatoare de timp; reducerea timpului se poate face printr-una din urmatoarele cai:
- "inghetarea" (freeze) straturilor care nu contin informatii necesare
- reprezentarea desenului intr-o fereastra cat mai mica (ZOOM WINDOW) si
regenerarea lui (REGEN)
- utilizarea unui calculator mai puternic.
Asemanatoare comenzii HIDE este comanda SHADE, care produce un fel de umbre
(depinde si de tipul monitorului). Aceasta, precum si celelalte comenzi care se refera la
lucrul cu obiecte 3D (desenare, editare, afisare) vor fi amintite in sectiunea care cuprinde
lista tuturor comenzilor AutoCAD.

Potrebbero piacerti anche