Sunteți pe pagina 1din 222

UNIVERSITATEA "POLITEHNICA" DIN TIMIOARA

FACULTATEA DE MECANIC
Catedra de Tehnologia Construciilor de Maini

Ing. Dan Mica

TEZA DE DOCTORAT

Metode de generare,
conversie, import, export,
analiz i fabricaie
optimizat a suprafeelor
discrete

Conductor tiinific :

Prof. dr. ing. George Drghici

1998

Mulumiri

Mulumesc n primul rnd prinilor c s-au gndit s m fac i s


m creasc independent i zvpiat, cu nelegere pentru afeciunile mele
cam exotice pentru calculatoare, la nceputul anilor 80.
Mulumesc soiei pentru linitea, nelegerea i sprijinul oferit n
redactarea acestei lucrri. Mulumesc fiicei mele, care nu m-a lsat s
dorm nopile i s lucrez zilele, oferindu-mi timp berechet pentru a gndi.
Autorul se simte dator de a le mulumi tuturor dasclilor care i-au
cluzit sinuosul drum spre altarul tiinei.
Acum, din punct de vedere tiinific, primele gnduri de recunotint
se ndreapt spre conductorul tezei, prof. dr. ing. George Drghici,
care a ndrumat munca doctorandului cu mult competen (via email),
punnd la dispoziie att cunotinele sale, ct i un material bibliografic
personal foarte preios prin coninut, sfer de cuprindere i mai ales
actualitate.
Gnduri de recunotin se ndreapt ctre prof. dr. ing. Gavril
Urdea, prof. dr. ing. Nicolae V. Ivan, prof. dr. ing. George G. Savii,
care m-au onorat, n calitate de preedinte, respectiv refereni, n comisia
de doctorat.
Alte gnduri se ndreapt spre prof. dr. ing. Constantin
Stncescu, cel care, n decursul anilor, i-a gsit ntotdeauna timp s
discute i s publice n prima revist de CAD din Romnia, Hello CAD
fans, o mulime de articole despre rezultatele i produsele autorului,
precum i pentru onoarea de a m asista n calitate de referent.
Mulumiri speciale ef lucr. ing. Mircea elariu, care a fost
oricnd dispus s stea i s analizeze cu mine diferite aspecte legate de
aceast lucrare.
De asemenea, gndurile mi se ndreapt spre prietenul, ing Dorin
Dasclu, care n ultimii 5 ani a fost primul care a testat i i-a expus
observaiile valoroase despre utilitatea i posibilele ci de mbuntire
ale algoritmilor expui.
Nu poate fi omis din aceasta sumar niruire prietenul i exvecinul
meu, ing. Mircea Bunea, care mi-a hrnit spiritul cu o mulime de
cunotine n domeniul DTP (DeskTopPublishing - paginaie computerizat
sau aranjare n pagin) i m-a ajutat la corectarea acestei lucrri.

Mulumesc conducerilor intreprinderilor ROMACOST, ELBA i


CAROM pentru sprijinul material i tiinific acordat n perioada 19911993.
Mulumesc Domnului ing. David Boucher - director tehnic la
Pathtrace Engineering Systems Ltd, care mi-a oferit oportunitatea de
a-mi continua studiile i de a gsi algoritmilor i aparatelor matematice o
finalitate comercial.
Dac ar fi s menionez un singur lucru care m-a ajutat imens n
aceast munc de analiz i sintez, acesta ar trebui s fie, bineneles,
INTERNETUL, cu o mulime de aparate matematice, descrieri de
produse, oameni fr principii, plini numai de cunostine i umor, care dea lungul vremii mi-au fost de un real ajutor, mpingndu-m s continui i
s finalizez aceast lucrare.

Cuprins
1. Introducere....................................................................1
2. Stadiul actual.................................................................7
2.1. Introducere.............................................................................. 8
2.2. Evoluia metodelor de stocare.................................................9
2.2.1. Seturi de puncte..................................................................................9

Figura 2.1 Reprezentare i stocare prin puncte..................9


2.2.2. Curbe i suprafee analitice multiparametrice...................................10

Figura 2.2. Reprezentare prin curbe analitice...................10


2.2.3. Curbe la o nlime dat 2D...............................................................11
2.2.4. Polilinii plane .....................................................................................11
2.2.5. Suprafee extrudate..........................................................................12

Figura 2.3 Curbe 2D la diferite cote Z..............................12


2.2.6. Polilinii n spaiu ................................................................................13

Figura 2.4 Polilinii n 3D..................................................13


2.2.7. Solide simple.....................................................................................14

Figura 2.5 Corpuri simple................................................14


2.2.8. Suprafee discrete faetate ...............................................................15

Figura 2.6 Solide faetate cu 3 i 4 laturi.........................15


2.2.9. Suprafee discrete demulabile...........................................................16

Figura 2.7 Solide stocate matricial..................................16


2.2.10. Suprafee i curbe superioare .........................................................17

Figura 2.8 Suprafee B-spline..........................................18


2.2.11. Solide sculpturale............................................................................18

Figura 2.9 Solide sculpturale...........................................19


2.2. Evoluia limbajelor de programare.........................................21
2.3. Evoluia sistemelor de proiectare i fabricaie pe plan mondial
24
2.4. Evoluia sistemelor de proiectare i fabricaie pe plan naional
26
2.5. Concluzii................................................................................ 28
3. Metode de notaie i clase utilizate...............................30
3.1. Introducere............................................................................31
3.2. Limbajul pseudocod...............................................................32
3.2.1.
3.2.2.
3.2.3.
3.2.4.
3.2.5.
3.2.6.
3.2.7.
3.2.8.
3.2.9.

Clas .................................................................................................33
Obiect................................................................................................33
Operator ...........................................................................................33
Lista cu parametri..............................................................................34
Indexul vectorilor ..............................................................................34
Enumerare ........................................................................................34
Algoritm.............................................................................................35
Cuvinte cheie.....................................................................................37
Comentariu........................................................................................37

3.3. Clase utilizate........................................................................39


3.3.1. Clasa ntreg.......................................................................................39
3.3.2. Clasa Boolean....................................................................................39
3.3.3. Clasa Real..........................................................................................40
3.3.4. Clasa Punct........................................................................................41
3.3.5. Clasa SetDeCaractere........................................................................42
3.3.6. Clasa BazaVectorial.........................................................................42
3.3.7. Clasa Curb.......................................................................................43
3.3.8. Clasa CurbSuperioar......................................................................45
3.3.9. Clasa Plas.........................................................................................45
3.3.10. Clasa SuprafeeSuperioare..............................................................47
3.3.11. Clasa CapDeScul............................................................................48

Figura 3.10 Cteva capete de frez suportate de aceast


lucrare.............................................................................49
3.3.12. Clasa BazDiscret..........................................................................50
3.3.13. Clasa SuprafeeDiscrete..................................................................50

Figura
3.11 Exemple de operatori solizi posibili ntre
diferite suprafee discrete................................................52
3.3.14. Clasa Masc.....................................................................................54

Figura 3.12 Metode de combinare a mtilor....................55


3.3.15. Coleciile..........................................................................................56

3.4. Concepte introduse...............................................................57


3.5. Concluzii................................................................................ 61
4. Metode de generare i modelare ..................................63
4.1. Introducere............................................................................64

4.2. Metode de generare discrete.................................................65


4.2.1.
4.2.2.
4.2.3.
4.2.4.

Plan orizontal.....................................................................................65
Plan nclinat ......................................................................................65
Funcie Z(x, y)...................................................................................66
Interpolarea prin seciuni...................................................................66

Figura 4.13 Interpolare prin seciuni pe SD......................68


4.2.5. Combinarea cu o alt SD...................................................................68

Figura 4.14 Combinarea solidelor. Exemplu de combinare a


300 SD. Zonele albastre sunt date de zonele neprelucrabile
din cauza interferenei (figura b).......................................69
4.2.6. Exemple despre metodele discutate.................................................69

Figura 4.15 Exemple de modelare elementare..................70


4.2.7. Set de puncte ...................................................................................70

Figura 4.16 Interpolarea prin puncte:..............................72


4.2.8. Interpolarea capetelor de scule.........................................................73

Figura 4.17 Diferite scule i valorile lor dup conversia n


suprafa discret............................................................73
4.2.9. Calculul SD nfurtoare i SD de racordare statice .......................74
4.2.10. Calculul SD nfurtoare i SD de racordare dinamice ..................76

Figura 4.18 Exemple de nfurtori i racordri statice


(coloana 1) i dinamice (coloana 2)....................................78
4.3. Filtre...................................................................................... 79
4.3.1. Filtre de creare..................................................................................79
4.3.2. Filtre de distrugere............................................................................81

Figura 4.19 Exemple de export a unor zone critice de


detecie a zonelor plane pe solide, importate din MasterCAM
i MicroStation (aceeai analiz, cu i fr filtrri).............81
4.4. Metode de generare vectorial..............................................82
Figura 4.20 Exemplificarea metodei de antrenare a reelei
neuronale asociat suprafeei discrete, reprezentarea
curbelor echiparametrice U, V, a punctelor de intersecie...83
Figura 4.21 Importul a trei repere exportate ca suprafae
BSpline sau solide BRep din EdgeCAM, AutoCAD i
Microstation (Solid Edge)..................................................85
4.5. Concepte introduse...............................................................86
4.6. Concluzii................................................................................ 87
5. Metode de conversie i formate de import export........88
5.1. Introducere............................................................................89
5.2. Metode de conversie.............................................................91
5.2.1. Conversia n curbe.............................................................................91

Figura 5.22 Prezentarea algoritmului de conversie a SD n


curbe echipoteniale, folosind metoda clasic a punctelor de
control i cea nou, care folosete continuitatea seciunilor.
92
Figura 5.23 Conversii din SD. Reprezentare de tehnologie
mixt, de combinare a ciclurilor de frezare curbe nivel i
seciuni echidistante........................................................94
Toate analizele i fiierele NC au fost generate folosind
reprezentarea discret, cu algoritmul prezentat. Simularea i
verificarea este fcut cu DSView.....................................94
5.2.2. Proiectarea unei familii de curbe pe suprafaa discret....................96

Figura
5.24 Exemplu de conversie echipotenial i
proiecie pe SD, cu EdgeCAM V3.0.....................................97
5.2.3. Offset pe SD......................................................................................98

Figura 5.25 Exemplificarea algoritmului de offset inteligent


pe suprafaa discret. Procesri fcute pe repere importate
din diferite sisteme CAD/CAM, pornind de la dreptunghi sau
de la drepte paralele........................................................98
5.2.4. Convertirea n plase patrulatere........................................................99

Figura 5.26 Plase exportate i convertite din suprafee


discrete............................................................................99
5.2.5. Convertirea n reprezentare triunghiular.......................................100

5.3. Formate de import - export..................................................102


5.3.1. Formatul DXF...................................................................................106

Figura 5.27 Exemple de export i listing n format DXF,


create cu TechnoFunction V1.0 (dou funcii excentrice
elariu)..........................................................................108
5.3.2. Formatul STL....................................................................................108

Figura
5.28 Reprezentare cadru de srm i solid,
importat ca fiier STL, pentru verificare solid a frezrii
capturate din NCVerify....................................................110
5.3.3. Formatul CL ....................................................................................110

Figura 5.29 Exemple de fiier CL importat i simulat cu


NCVerify.........................................................................111
5.3.4. Formatul NC.....................................................................................111

Figura
5.30 Export fiier NC cu modul FHTSP activat,
exemplificarea reducerii micrilor n avans rapid cu peste
95%................................................................................116
Figura 5.31 Alte exemplificri ale utilizrii TechnoCAM i
GNCPP............................................................................116
5.4. Concepte introduse.............................................................117

5.5. Concluzii.............................................................................. 119


6. Metode de analiz i optimizare...................................120
6.1. Introducere.......................................................................... 121
6.2. Concepte introductive.........................................................122
6.3. Metode de analiz a SD.......................................................123
6.3.1. Calculul seciunilor paralele cu Z constant......................................124

Figura
6.32 Convertirea n curbe de nivel. Curbele
echipoteniale (n b) sunt mai bombate, din cauza aplicrii
algoritmilor pe SDCS. Curbele de nivel sunt cele cu culoare
nchis (rou).................................................................124
6.3.2. Calculul seciunilor paralele n planul XY.........................................125

Figura 6.33 Convertirea n curbe paralele n planul XY


(zonele deschise la culoare - crem)..................................125
6.3.3. Calculul de detecie a zonelor plane................................................126

Figura
6.34 SD care stocheaz evoluia (n marime
absolut) a unghiului normalei cu planul orizontal, pentru
dou SD, i familii de curbe echinormale proiectate pe SDCS,
procesate din 10 n 10 grade...........................................128
Figura 6.35 Evoluia rugozitii n funcie de unghiul de
detecie a zonelor plane, pentru valori ale acestuia de 300,
450, 600, 750. Pasul pe Z i n planul XY este constant.
(EdgeCAM V3.0)..............................................................129
6.3.4. Calculul zonelor critice la frezarea seciunilor paralele n planul XY130

Figura 6.36 Evoluia SD care stocheaz variaia (n marime


absolut) unghiului n direcie perpendicular, pentru dou
SD, i familii de curbe echinormale proiectate pe SDCS,
procesate din 10 n 10 grade...........................................131
Figura 6.37 Zonele critice i umplerea lor cu curbe paralele
echidistante, care vor fi convertite n fiier NC.................132
Figura
6.38 Evoluia rugozitii i a petei critice
(neatingerea rugozitii impuse), n funcie de unghiul critic.
n aceste zone, pentru atingerea rugozitii impuse, este
utilizat un ciclu echidistant n direcie perpendicular......133
Unghiurile analizate sunt 400, 500, 600, 700. Se poate
observa c cele mai bune rezultate se obin la 450...........133
6.3.5. Suprapunerea familiilor de curbe....................................................134

Figura
6.39 Evoluia rugozitii i a petei critice
(neatingerea rugozitii impuse) n funcie de unghiul
principal de frezare n planul XY. n aceste zone, pentru
atingerea rugozitii impuse este utilizat un ciclu echidistant
n direcie perpendicular...............................................134
Figura 6.40 Comparaie ntre dou metode de offset: cea n
2D (portocaliu) i cea culcat pe suprafa......................135
6.3.6. Calculul curbelor echirugozitate......................................................135

Figura 6.41 Varierea pasului la frezarea cu curbe paralele n


planul XY, pentru asigurarea rugozitii constante. Se poate
observa suprafrezarea n zonele orizontale (TechnoCAM
V2.0)..............................................................................136
Figura
6.42 Suprafee discrete care stocheaz
transformarea echirugozitate. (SDER)..............................138
Figura 6.43 Cicluri echirugozitate i detecia materialului
neprelucrat....................................................................139
6.3.7. Calculul materialului nefrezabil.......................................................140

Figura 6.44 Suprafeele discrete ale reperului (SDR) a, b,


ale suprafeei de contact (SDC) c, d, i ale materialului
nefrezabil (SDN) e, f, pentru dou repere complexe
importate.......................................................................141
Figura 6.45 Exemplificarea algoritmului de detectare a
materialului nefrezabil i a necesitii calculului unui offset
pe normal, pentru prevenirea fenomenului de antiskating
142
Figura 6.46 Curbele necesare frezrii cu dou scule. A doua
(negru) frezeaz ce a rmas dup prima. Detectarea
materialului nefrezat, fr detectarea zonelor plane........144
Figura 6.47 Curbele necesare frezrii cu dou scule. A doua
(negru) frezeaz ce a rmas dup prima. Detectarea
materialului nefrezat, cu detectarea zonelor plane...........145
Figura 6.48 Simularea frezrii pe dou repere. Ciclul de
finisare, cu cap sferic R=10.0 mm, frezare echirugozitate,
urmat de eliminarea zonelor de interferen, cu cap sferic R
= 2.5 mm........................................................................147
Figura 6.49 Exemple de colapsare echirugozitate a curbelor
ce reprezint materialul nefrezat....................................148
6.4. Metode de analiz a curbelor...............................................149
6.4.1. Rejecia punctelor coliniare.............................................................149

Figura 6.50 Exemplificarea rejeciei punctelor intermediare


pe un fiier NC exportat cu pas constant de pe o suprafa
discret (SD)..................................................................149
6.4.2. Interpolri superioare......................................................................150
6.4.3. Minimizarea micrilor n avans rapid.............................................150

Figura 6.51 Optimizarea FHTSP pentru reducerea micrilor


n avans rapid.................................................................153
6.4.4. Modul pseodoadaptiv fr DS..........................................................154

Figura 6.52 Fiiere de degroare cu pilotarea inteligent a


avansului, n funcie de de tipul micrii axial sau radial
(rou micrii axiale) (TechnoCAM V2.0)..........................156
6.4.5. Eliminarea punctelor de inflexiune..................................................156

Figura 6.53 Diferite metode de transformare a ciclurilor


clasice n vederea reutilizri lor la frezare de vitez mare.157
6.5. Metode de analiz mixt......................................................158
6.5.1. Spiralele lui Billator..........................................................................158

Figura 6.54 Un reper analizat n vederea frezrii cu curbe


echirugozitate................................................................162
Figura 6.55 Un reper analizat n vederea frezrii cu curbe
echirugozitate................................................................163
Figura 6.56 Un reper analizat n vederea frezrii cu curbe
echirugozitate................................................................164
Figura 6.57 Un reper analizat n vederea frezrii cu curbe
echirugozitate................................................................165
6.5.2. Modul pseudoadaptiv cu SD............................................................166
6.5.3. Detecia interferenelor...................................................................166

Figura 6.58 Simularea solid a frezrii, cu NCVerify Sirius


Technology.....................................................................167
6.6. Optimizarea traseelor de scul............................................168
Figura 6.59 Dublarea / triplarea pasului, cnd nclinaia
devine mare...................................................................169
Figura 6.60 Trasee de scul cu varierea pasului.............170
6.7. Calculul reelelor de difracie...............................................171
Figura 6.61 Concepte introductive pentru realizarea reelei
de difracie.....................................................................172
Figura 6.62 Trei seturi de curbe necesare realizrii reelei
de difracie, pentru trei repere practice. Coloana a II-a
reprezint calitatea i amplasamentul fiecrei buline.......173
6.8. Metode de vizualizare a curbelor.........................................175

Figura 6.63 Reper ntr-o reprezentare complex.............176


Figura 6.64 Cteva metode de vizualizare a curbelor. a)
pentru fiecare curb; b, c) toat familia desenat n degrad;
d) degrad variind axa Z; e, f) degrad dup rugozitatea
obinut.........................................................................177
6.9. Concepte introduse.............................................................178
6.10. Concluzii............................................................................179
7. Concepte introduse.....................................................181
8. Concluzii.....................................................................188
Anexe............................................................................195
Anexa A: Clase utilizate.............................................................196
Anexa B: Abrevieri.....................................................................197
Anexa C: Definiii.......................................................................199
Anexa D: Legturi web .............................................................204
D1.
D2.
D3.
D4.
D5.
D6.
D7.
D8.
D9.

Sisteme mari de proiectare i fabricaie ...........................................204


Alte sisteme de proiectare i fabricaie..............................................204
Sisteme de proiectare........................................................................204
Procesoare APT..................................................................................205
Sisteme de fabricaie.........................................................................205
Informaii despre proiectare i fabricaie...........................................206
Informaii generale despre proiectare i fabricaie............................207
Grupuri de discuii despre proiectare i fabricaie ............................207
Alte liste de pagini web destinate proiectrii i fabricaiei WEB List. .208

BIBLIOGRAFIE................................................................209

Concluzii

Concluzii

1. Introducere

- 1-

Concluzii

Concluzii

Prezenta tez de doctorat reprezint rezultatul unei activiti de


cercetare de peste 7 ani a autorului, n domeniul proiectrii i fabricaiei
asistate, desfurat n Romnia, la BillaSoft srl, o mic firm nscut din
dorina de a face ceva pentru proiectarea i fabricaia asistat
romneasc, precum i n Marea Britanie, la Pathtrace Engineering
Systems ltd, unde i s-a oferit oportunitatea de a-i continua cercetrile, n
vederea unei finalizri comerciale a rezultatelor. n toat aceast perioad
s-a ncercat s se dezvolte, implementeze i testeze o nou modalitate
generic de concepie, introducere, modelare, vizualizare, analizare,
fabricare, optimizare, simulare i verificare a suprafeelor.
Lucrarea ncearc s mbine pregtirea i cunotinele din domeniul
de specializare al autorului, cel mecanic, cu profundele pasiuni pentru
informatic i matematic. Astfel, subiectul abordat se afl n zona de
grani dintre aceste trei impresionante i deopotriv fascinante tiine,
mbinnd cunotinele mecanice, cu algoritmi, tehnici de programare i
limbajele de programare din ce n ce mai eficiente, ntr-o evoluie de o
dinamic impresionant. Teza se dorete a fi una cu profunde aplicaii
practice, fiind implementat n dou produse destinate fabricaiei asistate
(TechnoPack BillaSoft, peste 50 utilizatori i EdgeCAM Pathtrace ltd, peste
12.000 utilizatori); acesta este i principalul motiv pentru care s-a optat
pentru prezentarea metodelor ntr-un limbaj de tranziie ntre matematic
i limbaje de programare.
Toate capitolele au o structur asemntoare, ncepnd cu un
subcapitol intitulat Introducere, n care se va prezenta problematica
propus spre rezolvare i un ultim subcapitol Concluzii, n care se vor
rezuma cele discutate de-a lungul capitolului respectiv. Aceeai structur
unificat se dorete a fi utilizat i pentru ntreaga tez, care ncepe cu
Introducere i se sfrete cu Concluzii. Penultimul capitol se va
intitula Concepte introduse i va rezuma n pseudocod cele discutate
pe parcursul tezei (antetele conceptelor introduse).
n capitolul 2, intitulat Stadiul actual, se vor sintetiza cteva
aspecte, ncercnd s se cuprind evoluia temporar a unor domenii care
au o influen important asupra problematicii. Se vor discuta,
exemplifica i comenta avantajele i dezavantajele diferitelor metode i
tehnici de stocare i analiz. Se va prezenta cronologic evoluia limbajelor
i a tehnicilor de programare, pentru a justifica crearea i utilizarea
limbajului pseudocod n descrierea unificat a algoritmilor descrii.

- 2-

Concluzii

Concluzii

n capitolul 3, intitulat Metode de notaie i clase utilizate, se


va introduce un limbaj obiectual de tip pseudocod, n care se vor descrie
algoritmii (tehnicile, metodele) i care ajut la o eventual implementare
a conceptelor discutate ntr-un limbaj de nivel nalt orientat obiect; se vor
descrie metodele de stocare a informaiilor, ncercndu-se o prezentare
ct mai concis i consistent. Se vor pune bazele unei ierarhii de clase,
care vor fi folosite n decursul lucrrii, acestea fiind: irul de caractere
(string), fiierul, ntregul, booleanul, realul, punctul, curba, curbe
superioare, plasa, suprafee superioare, masca, suprafaa digital,
coleciile (familiile) de obiecte.
Toate tipurile de dat vor fi prezentate ntr-un mod organizat,
atandu-li-se att operaiile, ct i metodele i funciile asociate.
Nu se va aborda o prezentare exhaustiv a acestor tipuri de dat, ci
doar crearea unui set decent i relativ bogat de tehnici de operare cu data
respectiv, tipurile enumerate fiind larg studiate i implementate n toate
sistemele de proiectare i fabricaie.
n capitolul 4, intitulat Metode de generare i modelare se vor
prezenta pe larg unele metode care stau la baza generrii i modelrii
suprafeelor demulabile. De asemenea, se vor prezenta diferite metode
de conversie din alte tipuri de dat, specifice importului din alte sisteme
de proiectare i fabricaie, date importate n format plas sau list cu
triunghiuri (forma cea mai simpl de export a solidelor).
De asemenea, se vor prezenta i defini filtrele, se vor prezenta i
exemplifica scopul i utilitatea lor n reducerea zgomotului introdus n
diferii pai de conversie i analiz, sau datorat diferitelor inflexiuni
particulare ale suprafeei date spre conversie, analiz i fabricaie.
Se va descrie un set de algoritmi de modelare: cel al calculului
nfurtorii i racordrii statice i dinamice, algoritmi care nu sunt
specifici numai modelrii, ci i calculului suprafeei corecie de scul i a
suprafeei de contact pentru scule generice de orice geometrie. Se vor
face particularizrile specifice capetelor de frez.
De asemenea, se vor prezenta n premier trei metodologii noi
concepute de ctre autor:

algoritmul de import i conversie a seturilor de puncte i curbe


furnizate fr nici o regul;

algoritmul de calculare a nfurtoarei i racordrilor cu forme de


orice geometrie (un caz particular al acestora sunt capetele de scul
suprafee de revoluie utilizate n frezare);
reeaua neuronal pentru antrenarea cu date care nu cad n punctele
reelei, utilizabil ca o metod generic de import a tuturor datelor
parametrice.

- 3-

Concluzii

Concluzii

n capitolul 5, intitulat Metode de conversie i formate de


import-export, se vor prezenta cteva conversii ale suprafeelor
demulabile n reprezentrile vectoriale uzuale altor sisteme de proiectare
i fabricaie, pentru a da nu numai o consisten vizual analizelor i
generrilor, ci i o finalitate i utilizabilitate n alte sisteme.
n prima parte a capitolului se vor prezenta metode de culegere a
datelor i de convertire a lor n formate de tip plas, solide faetate,
reprezentri de tip familie de curbe, care sunt specifice generrii fiierului
NC.
Pe parcursul acestui capitol se vor introduce metode de creare a
curbelor, proiecie, offset inteligent i export n formate simple ASCII, ca:
DXF, STL, CL, NC. Nu se vor discuta formate evoluate ca IGES, STEP, VDA,
pentru a nu ngreuna expunerea.
Acest capitol este de o importan notabil n utilizarea suprafeelor
digitale, n orice sistem de proiectare i fabricaie. Se va crea un set nou
de obiecte, specifice fiecrui tip de export n parte: DXFOut, STLOut,
NCOut, CLOut. Aceste noi obiecte (specifice exportului) au fost
implementate folosind o metod unificat de prezentare, ncercnd s se
ascund detaliile fiecrui format n parte, s se prezinte exemple pentru
fiecare format i listingul asociat.
Se vor expune metode noi destinate conversiei i exportului, metode
care dau utilizabilitate suprafeelor demulabile, legndu-le de alte sisteme
de proiectare, ca aparate matematice auxiliare de analiz sau conversie
n format NC.
Se va prezenta, n premier, un algoritm de conversie n curbe de
nivel foarte fin (comparativ cu pasul suprafeei digitale), care permite
conversia suprafeelor demulabile corecie de scul n format NC,
asigurnd erori de ordinul micrometrilor.
Un subcapitol aparte va fi rezervat expunerii problemei creerii unui
post procesor generic GNCPP (Generic Numeric Control Post Processor)
generator automat de tehnologie, o librrie dinamic foarte complex,
care are scopul de a genera fiier NC specific, virtual, pe orice
echipament, optimizat pentru lungime i timp de rulare.

- 4-

Concluzii

Concluzii

n capitolul 6, ultimul capitol principal, generic intitulat Metode de


analiz i optimizare, se vor cuprinde cteva dintre cele mai
importante aspecte legate de analiza i generarea optimizat a codului
NC pentru fabricarea suprafeelor demulabile pe maini-unelte cu
comenzi numerice, precum i cteva tehnici de verificare i simulare. Cum
toate acestea sunt tehnici i metode de analiz, natural ele i vor gsi
locul n acest ultim capitol.
Se vor prezenta n premier cteva contribuii ale autorului,
constnd din metode noi de analiz, precum: calculul zonelor plane,
calculul zonelor critice la frezarea de seciuni paralele n planul XY,
calculul materialului nefrezabil, calculul curbelor de egal rugozitate,
metode pseudoadaptive de variere a avansului i coreciei de uzur n
timp real, minimizarea micrilor n avans rapid, spiralele lui Billator, o
metod nou de optimizare a traseelor echidistante, prin dublarea sau
triplarea local, o metod de rezolvare a reelelor de difracie.
Pe lng prezentarea contribuiilor autorului se vor expune i cteva
metode clasice de generare de cod, considerndu-se ca element de
noutate metodele de generare a acestora (curbelor echidistante n XY i
Z) utiliznd SD n acest domeniu.
Vor fi exemplificate alte concepte, cum ar fi interpolrile superioare,
eliminarea punctelor de inflexiune, eliminarea punctelor coliniare, doar cu
scopul secundar de a da consisten i calitate unei eventuale generri de
cod NC.

n penultimul capitol, Concepte introduse, vor fi enumerate


toate clasele introduse, cu toi operatorii i algoritmii descrii de-a lungul
lucrrii.

Ultimul capitol, Concluzii, va sintetiza cele discutate, ncercnd s


scoat n eviden contribuiile autorului i s puncteze direciile rmase
deschise cercetrii.

n Anexe se vor prezenta: definiiile unor concepte utilizate,


abrevieri, legturi web utile, specifice domeniului proiectrii i fabricaiei.
Multe referine fcute pe parcursul lucrrii vor fi la pagini de web,
documente vii care prezint n timp real evoluia aparatelor
matematice discutate, nu documente moarte ca i cele scrise (reviste,
cri, manuale de prezentare sau utilizare).

- 5-

Concluzii

Concluzii

Lucrarea se dorete a fi n primul rnd una de sintez, n care se


prezint o metod solid, consistent i generic de stocare, conversie,
analiz, generare optimizat, simulare i verificare a suprafeelor discrete
demulabile, punndu-se accentul pe modul de structurare i prezentare a
conceptelor, pentru a da un caracter ct mai practic expunerii.

- 6-

Concluzii

Concluzii

2. Stadiul actual

- 7-

Concluzii

Concluzii

2.1. Introducere
Dat fiind complexitatea i varietatea tipodimensional, n cursul
anilor s-a ncercat ca n funcie de stadiul respectiv de evoluie al
aparatelor matematice, calculatoarelor, limbajelor de programare,
echipamentelor cu comenzi numerice, mainilor unelte, sculelor
achietoare, s se genereze diferite metode de descriere, stocare,
procesare, optimizare, verificare i prelucrare, n vederea fabricaiei
diferitelor repere complexe.
Se va ncerca doar prezentarea ntr-o manier evolutiv a
metodelor de stocare utilizate n descrierea reperelor sau efectuarea
analizelor, precum i a limbajelor de programare, pentru a justifica
construcia i utilizarea limbajului pseudocod ntrebuinat la expunerea
metodelor i tehnicilor folosite.
Va fi atins doar stadiul actual al evoluiei proiectrii i fabricrii
asistate n Romania i pe plan mondial.
Evoluia altor domenii, care au o influen i o implicaie mai puin
important, i care vor fi atinse doar tangenial (calculatoare,
echipamente cu comenzi numerice, maini unelte, scule achietoare,
pachete de plci, teoria sistemelor, inteligena artificial, automate
celulare, automate neuronale, automate moleculare, automate genetice,
teoria dezastrelor, comunicaii, sisteme de calitate, aparate de msur i
control, tribologie, mecanisme i organe de maini, dispozitive), va
rmne nediscutat.

- 8-

Concluzii

Concluzii

2.2. Evoluia metodelor de


stocare
Cea mai mare influen, pentru domeniului studiat, o au metodele
de stocare (baza de date) i tehnicile sau algoritmii specifici pentru
fiecare tip de dat enumerat.
n ultimii 30 de ani au fost create diferite metode de stocare i
prelucrare a datelor n vederea proiectrii i fabricrii. Se va ncerca o
enumerare succint a acestora, n ordinea complexitii reprezentrii:

2.2.1. Seturi de puncte


Definiie:
Datele sunt stocate ca o colecie de puncte n spaiu.

Utilizare:
la discretizri de date provenite de la maini de scanat, palpat sau
cartografiat, la reprezentri moleculare 3D n chimie, n anii 70 80.

Avantaje:
sunt foarte simplu de importat i exportat.

Dezavantaje:
inutilizabile n analiz i fabricaie, deoarece informaii auxiliare, ca
aceea de normal, sunt imposibil de obinut (pentru executarea
ofsetului);
sunt foarte dificil de interpretat i convertit n alte reprezentri.

Exemple:

Figura 2.1 Reprezentare i stocare prin puncte


- 9-

Concluzii

Concluzii

2.2.2. Curbe i suprafee


multiparametrice

analitice

Definiie:
Suprafeele i curbele analitice sunt acelea care pot fi descrise printrun singur set de ecuaii matematice (nu conin seturi de ecuaii pe
poriuni de curb sau suprafa descris).

Utilizare:
la descrierea obiectelor matematice simple (sfere, tori, paralelipipede,
conuri).

Avantaje:
sunt foarte precise (comparativ cu metodele de stocare discrete);
asigur precizie mare (teoretic infinit) la calcularea ariei, volumului,
perimetrului, existnd integrale directe pentru ecuaiile lor;
sunt compacte, necesitnd spaii de stocare sczute (de 10-100 ori
mai mici dect cele discrete).

Dezavantaje:
tipurile de repere descrise sunt foarte limitate;
importul i exportul este dificil, necesitnd resurse nsemnate n
scrierea convertoarelor;
suprafeele descrise sunt nesculpturale.

Exemple:

Figura 2.2. Reprezentare prin curbe analitice

- 10 -

Concluzii

Concluzii

2.2.3. Curbe la o nlime dat 2D


Definiie:
Curbele plane sunt stocate ca o serie de segmente de linie, arce de
cerc, sau curbe superioare n planul XY.

La nceput au fost folosite la stocare doar segmente de linie, apoi


au fost introduse segmentele de cerc (arce), iar mai nou sunt utilizate i
segmente din curbe de ordin mai mare (cubice).

Utilizare:
pe scar larg n prezent, la definirea contururilor pentru strunjiri i
decupri prin electroeroziune, laser, jet de ap, jet de aer etc.Sunt
prezente n toate sistemele de proiectare i sunt suportate, n general,
cam de toate formatele de import export.

Avantaje:
sunt compacte, comparativ cu poliliniile;
sunt independente de toleran (stocare analitic).

Dezavantaje:
conversiile (importul, exportul) sunt relativ greu de executat;
calculele de arie, perimetru trebuie executate pentru fiecare tip de
segment n parte.

2.2.4. Polilinii plane


Definiie:
Poliniile plane sunt stocate ca o serie de segmente de linie n planul
XY, fiind deopotriv un caz particular al curbelor i al poliliniilor
spaiale.

Utilizare:
pe scar larg n prezent, la definirea contururilor pentru strunjiri i
decupri prin electroeroziune, laser, jet de ap, jet de aer etc. Sunt
prezente n toate sistemele de proiectare i sunt suportate, n general,
cam de toate formatele de import export. Toate curbele i
suprafeele sunt reprezentate vizual utiliznd poliliniile.

Avantaje:
export i import simplu;
procesare simpl a perimetrului, ariei;
sunt generice, descriind orice geometrie sub o toleran

- 11 -

Concluzii

Concluzii

Dezavantaje:
necesit spaii mari de stocare;
sunt dependente de toleran;

2.2.5. Suprafee extrudate


Definiie:
Suprafeele extrudate reprezint curbe extrudate dea lungul unei
direcii.

Utilizare:
Descrierea primordial a reperelor cu geometrie extrudat simpl 2
D destinate frezrii (carcase, repere cu guri, repere turnate/ forjate).

Dup corpurile simple sunt cele mai simpe metode de stocace a


solidelor.

Avantaje:
simplu de importat, exportat, procesat i stocat.

Dezavantaje:
geometriile descrise sunt simple, neoferind posibilitatea descrierii
volumelor sculpturale.

Exemple:

Figura 2.3 Curbe 2D la diferite cote Z

- 12 -

Concluzii

Concluzii

2.2.6. Polilinii n spaiu


Definiie:
poliliniile spaiale sunt acelea care pot descrie orice curb n spaiu,
sub o toleran. Sunt stocate ca o colecie de puncte n 3D.

Utilizare:
este tipul principal de dat geometric existent n fiierele NC
destinate frezrii n 3 i mai multe axe. Este utilizat de toate sistemele
de fabricaie care suport mai mult de 2 axe. Pe parcursul acestei
teze se vor folosi doar curbele de tip polilinie.

Avantaje:
este suportat de toate formatele de import - export;
simplu de procesat i stocat;
simplu de reprezentat;
orice curb n spaiu poate fi convertit ntr-o polilinie, sub o toleran.

Dezavantaje:
sunt dependente de toleran;
necesit memorie nsemnat pentru stocare.

Exemple:

Figura 2.4 Polilinii n 3D

- 13 -

Concluzii

Concluzii

2.2.7. Solide simple


Definiie:
solidele simple sunt cele de tip sfere, tori, conuri, piramide, curbe
extrudate.

Utilizare:
sunt primele ncercri cu adevrat valoroase de a gsi o metod
unificat de a stoca i analiza solide. Sunt utilizate ntr-o multitudine
de sisteme de proiectare, fiind destul de uor de utilizat i
implementat.

Avantaje:
simplu de editat;
interferene corect detectate;
frezri n mai mult de 3 axe;
calcul precis al suprafeei i ariei.

Dezavantaje:
formate speciale de export i import;
pot fi descrie numai geometrii simple.

Exemple:

Figura 2.5 Corpuri simple

- 14 -

Concluzii

Concluzii

2.2.8. Suprafee discrete faetate


Definiie:
sunt o metod generic de stocare a oricrei suprafee superioare sau
volum, sub form de triunghiuri sau patrulatere. [DM12 - 14], [TRI]

Se poate demonstra c orice suprafa superioar (sau volum superior)


poate fi convertit ntr-una faetat finit, sub o toleran.

Utilizare:
n formate de export de nivel jos, ca DXF i STL;
n schimbul de informaii cu analizoare de elemente finite sau de
frontier;
n simulatoare de detectare a interferenei
materialului neprelucrat (verificare).
n cartografiere.

Avantaje:
foarte generale;
capabile s stocheze orice reprezentare;
simplu de importat i exportat;
simplu de procesat.

Dezavantaje:
foarte dificil de modificat;
dependente de toleran;
mari consumatoare de memorie.

Exemple:

Figura 2.6 Solide faetate cu 3 i 4 laturi

- 15 -

sau

detectare

Concluzii

Concluzii

2.2.9. Suprafee discrete demulabile


Definiie:
suprafaa este stocat ca cota Z ntr-o matrice cu pas variabil sau
constant. [DM01 - 11]

Utilizare:
este utilizat n produsele din anii 90 care execut diferite analize pe
solide, detecteaz foarte rapid interferene, solidific traiectorii venite
de la maini de palpat sau scanere 3D etc.

Avantaje:
-

foarte compacte i uor de prelucrat;


ofer faciliti foarte bune de analiz;
uor de importat i exportat;
generic (stocheaz i analizeaz orice geometrie cu aceai
uurin).

Dezavantaje:
-

nu conine informaii despre muchii i perei verticali.

Exemple:

Figura 2.7 Solide stocate matricial


Aceast tez este un caz particular al acestui tip de structur de
dat. Metoda va fi limitat doar la repere discrete stocate cu pas
constant.

- 16 -

Concluzii

Concluzii

De menionat c pe parcursul lucrrii, din raiunea de a fi succint,


acest tip de suprafee vor fi denumite impropriu Suprafee Discrete
(SD), nemaiprecizndu-se cuvntul demulabil. Greeala nu este mult
prea mare, deoarece multe din tehnicile descrise pot fi, natural, extinse
pe alte reprezentri discrete i analitice.

2.2.10. Suprafee i curbe superioare


Definiie:
Sunt acele geometrii care utilizeaz reprezentri polinomiale pe
intervale .

Utilizare:
Sunt folosite cvasitotal n toate sistemele de modelare moderne ca i
curbe i suprafee: spline, B-spline, Bzier, Hermite etc [ECAM],
[BKOS], [DFR], [IFMP], [LEO], [SAV].

Avantaje:
compacte la utilizarea memoriei;
foarte uor de editat i racordat.

Dezavantaje:
aparatele matemetice
rudimentare i greoaie.

de

analiz

dificil de importat i exportat;


dificil de calculat suprafaa i volumul.

- 17 -

optimizare

sunt

foarte

Concluzii

Concluzii

Exemple:

Figura 2.8 Suprafee B-spline


Constituie nceputurile unei adevrate revoluii n generarea
suprafeelor. Permite ca suprafee generate prin diferite metode s fie
stocate unitar ca un singur tip de dat, la nceput ca suprafee B-spline
dup care ca suprafa B-spline nconjurat de curbe(trimmed B-spline).

2.2.11. Solide sculpturale


Definiie:
Sunt solide reprezentate analitic pe intervale care trebuiesc s nchid
un volum.

Utilizare:
Utilizat n sistemele evoluate de proiectare orientate pe solide AMD,
SolidEdge, Microstation, etc.

Avantaje:
faciliti de modelare extraordinare;
calcul precis al suprafeei i volumului;
faciltati bune pentru proiectarea parametric.

- 18 -

Concluzii

Concluzii

Dezavantaje:
lente pentru analize;
dificil de importat i exportat;
foarte complexe metode de vehiculare a bazelor de date.

Exemple:

Figura 2.9 Solide sculpturale

O metod cu adevrat revoluionar de descriere a solidelor de


orice fel, cu foarte bune rezultate n importul i exportul solidelor,
modelare, calculul suprafeelor de offset, reprezentare n mod linii
ascunse, faetat, randat. Este o reprezentare destul de complex, mare
consumatoare de memorie i foarte lent, dar analiznd evoluia tehnicii
de calcul se pare c se va impune cvasitotal n urmtorii ani, exceptnd
probabil unele faciliti de analiz, care vor lsa locul aparatelor
matematice descrise la punctul precedent [ACIS].
Concluzionnd, metodele de stocare a curbelor i suprafeelor se
mpart n dou mari categorii: discrete i analitice.
Metodele discrete (polilinii, suprafee discrete faetate, suprafee
discrete demulabile, seturi de puncte)

Avantaje:
sunt foarte generice, pot stoca orice geometrii cu aceai uurin;
foarte simplu de analizat;
simplu de implementat;

- 19 -

Concluzii

Concluzii

simplu de importat i exportat;

Dezavantaje:
sunt dependente de toleran;
dificil de editat;
mari consumatoare de memorie;
imprecise n calcule care necisit rezultate foarte precise.

Metodele analitice (curbe compuse, suprafee analitice, solide


sculpturale i simple)

Avantaje:
precise (calcule de volum, perimetru, arie);
independente de toleran;
natural de editat;
suport foarte bun pentru proiectare parametric.

Dezavantaje:
dificil de implementat;
dificil de importat i exportat;
dificil i lent de analizat.

Pe parcursul acestei lucrri vor fi utilizate cvasitotal numai metode


de stocare discrete, dorindu-se trasarea de metode generice (care nu
sunt particulare unui reper sau familii de repere n parte).
Geometriile analitice vor fi convertite, sub o toleran, n geometrii
discrete, iar analizele vor fi executate pe reprezentarea discret, folosind
proprietatea acestora de a fi foarte bune reprezentri pentru analize.

- 20 -

Concluzii

Concluzii

2.2. Evoluia limbajelor de


programare
Limbajele de programare au avut o evoluie foarte spectaculoas.
Scopul primordial a fost acela de a dezvolta ct mai repede aplicaii fr
erori, a organiza i reutiliza codul, a crea produse program ct mai
mentenabile i portabile.
n ordine cronologic se pot enumera:
cod main programare deosebit de dificil i ineficient;
asamblare o evoluie natural a codului main, prin renumirea
ntr-un format mai accesibil a acestuia. Marele dezavantaj: codul este
total neportabil de pe un sistem pe altul.
C s-a nscut pentru a face mai simpl portarea sistemelor de
operare i a aplicaiilor de pe un sistem pe altul; limbaj de nivel jos,
destinat n general scrierii sistemelor de operare portabile, necesitnd
crearea pentru fiecare platform hard a unui compilator simplu de C,
dup care, pentru implementarea sistemului de operare i a altor
aplicaii se compileaz acesta cu compilatorul respectiv. Nscut ca un
limbaj primar cu o sintax deosebit de simpl, fr verificri de tip, l-a
fcut total neinteresant pentru dezvoltatorii de proiectare i fabricaie
n anii 70;
FORTRAN (FORmula TRANslation) primul adevrat limbaj de
programare de nivel nalt. Acesta permitea pentru prima dat
programarea modular, organizarea codului n subrutine i
portarea (interpretarea sau compilarea acestuia) pe diferite sisteme.
A fost unul din cele mai folosite limbaje, cu preponderen n
domeniul tiinific. Multe sisteme mari destinate proiectrii i
fabricaiei (ex. Euclid) i au originile n anii 60-70 i n limbajul
FORTRAN;
BASIC un limbaj deosebit de simplu, aprut la nceput fr nici o
form de modularizare a informaiei, cu excepia subrutinelor care,
ns, nu avea variabile locale. Folosit n general ca limbaj interpretat
cablat n ROM, n calculatoarele personale aprute n perioada 1975
1985. Acestea erau deosebit de simple (lungime ntre 1.. 128 k). Nu se
poate specifica nici un sistem de proiectare i fabricaie comercial
care sa fie scris nativ n BASIC. Din cauza rzboiului dintre firmele
Microsoft i Imprise, Basic, prin noua lui ncarnare, Visual Basic, a
ajuns un limbaj larg ntlnit ca limbaj de comand n sisteme de
proiectare i fabricaie, deopotriv datorit simplitii, dar i API-ului
Visual Basic for Applications furnizat de Microsoft, foarte puternic
i bine documentat;

- 21 -

Concluzii

Concluzii

Pascal, Modula, Oberon aprute ncepnd din 1971, ca urmare a


lucrrilor profesorului Wirth n domeniul programrii structurate,
acestea au fost o adevrat revoluie n domeniul academic, fiind
limbaje de nivel nalt cu verificri de tip, permind creerea de librrii
de algoritmi, refolosirea codului prin creerea modulelor (Modula2 i
Oberon), a listelor de import i export; au dominat i nc mai domin
mediul universitar, fiind limbajele preferate pentru instruirea
studenilor n algoritmi i tehnici de programare;
ADA unul dintre cele mai complexe i solide limbaje aprute,
conine verificare puternic de tip metode de detecie i tratare de
erori, utiliznd compilatoare foarte complexe. Este folosit n general n
aplicaiile critice din punct de vedere al erorilor, n domeniul aviatic i
militar, n mainframeuri.
Objectual Ada, Smaltalk, C++, Eifel, Delphi, Borland Pascal,
Object Pascal, Objective C, Java apariia programrii orientat pe
obiecte este una dintre cele mai mari revoluii n domeniul
programrii, permind, pe lng avantajele programrii modulare i
structurate, noi concepte de modularizare, ca: polimorfism, motenire
simpl i multipl, ncapsulare, serializare, metode virtuale etc. Se pot
realiza librrii cu obiecte MFC (Microsoft Foundation Clasa), Java
Beans, Turbo Vision. Cu ajutorul acestor librrii, aplicaiile foarte mari
pot fi generate foarte uor cu ajutorul mediilor vizuale i a
vrjitoriilor, care fac ca probleme ce altdat necesitau luni de
programare s fie rezolvate n timpi de domeniul minutelor, n zona
designului interfeei periferiei i comunicaiei. Cea mai important
evoluie la ora actual o are limbajul Java, care este un dialect
simplificat de C++ pur obiectual, ce are marele avantaj de a fi
portabil pe orice echipament, fr recompilare, de la telefoane i
televizoare inteligente pn la cele mai sofisticate calculatoare.

Utilizare:
La ora actual C++ este destinat produselor profesionale de nalt
performan uniplatform; pentru portare pe o alt platform acestea
necesit recompilare.
Java este destinat produselor soft multiplatform i este cvasitotal
prezent pe internet, dar codul generat este de cca 10 ori mai lent dect
cel generat de C++ sau Delphi.
ADA i FORTRAN sunt utilizate n mainframeuri i aplicaii din
domeniul militar, datorit numrului imens de librrii scrise pentru ele,
stabilitii compilatoarelor i verificarea tipului strict de dat.
Delphi (Object Pascal) este destinat instruirii n tehnici de
programare i tehnici de implementare rapid a aplicaiilor (Rapid
Application Development RAD).

- 22 -

Concluzii

Concluzii

Basic este un limbaj de batch file sau macro pentru diferite


produse, destinat proiectrii asistate sau suitelor office, dar i pentru
dezvoltarea unor produse prin tehnica RAD.
NOT: Nu au fost incluse n aceast list o mulime de alte
limbaje de nivel nalt: PL1, Simula, B; limbaje de script sau batch
file: Perl, CGI, diferite alte dialecte de Basic; limbaje destinate bazelor
de date: Cobol, DBase, Paradox, Access, Aproach, ncercnd s se
cuprind doar acele limbaje care au avut sau au un real impact n
proiectare i fabricaie.
Limbajul ales pentru aceast tez n descrierea unificat a
aparatului matematic, algoritmului i a (eventualei) implementri este
bazat pe Java i C++, cu traducerea cuvintelor cheie din englez n
romn. Se va crea astfel un limbaj orientat obiect simplu, care se
dorete a acoperi cu succes scopul propus.
Dorina autorului a fost aceea de a da un caracter practic i generic
expunerii, fr repetarea n trei locuri (aparat matematic, algoritm n
pseudocod i implementare ntr-un limbaj) a aceleai metode.

- 23 -

Concluzii

Concluzii

2.3. Evoluia sistemelor de


proiectare i fabricaie pe plan
mondial
Pe plan mondial, oferta de produse de proiectare i fabricaie este
ntr-adevr impresionant. Este listat n Anexa D numai o enumerare
care ncearc s sorteze produsele i serviciile destinate pieei de
proiectare i fabricaie. Vor fi prezentate doar cu numele, deoarece ar fi
necinstit s se prezinte doar o parte din produse. n general, fiecare
produs sau serviciu este destinat unei anumite piee. Cine are prilejul s
citeasc aceast lucrare n format electronic poate observa c aproape
toate titlurile sunt legturi la paginile de web ale firmelor productoare,
deci acest subcapitol, ce se refer la stadiul actual, poate fi actualizat
permanent, dorindu-se a fi cu adevrat un stadiu actual. Se poate
observa c, n general, firmele care dezvolt programe destinate
proiectrii i fabricaiei mari au aprut n anii 70-80 i dein segmente
nsemnate din pia (peste 95%).
Din punctul de vedere al proiectrii, n general, se poate observa c
AutoCAD-ul devine un standard. Exemplu elocvent al factorul comercial
n detrimentul calitii, o multitudine de alte programe i-au artat
calitile remarcabile n domeniul proiectrii parametrice (Ashlar
Vellum, TurboCAD, Pro Engineering, Microstation, SolidEdge,
SolidWork) dar, din pcate, n piaa de consum relativ ridicat al
produselor de proiectare se pare c factorul comercial tinde s domine.
n domeniul fabricaiei, casele mici de software, care in relaia
client - productor foarte strns, par a domina piaa. Fiecare firm
productoare tinde s satisfac n primul rnd doleanele clienilor
actuali, n baza unor contracte de colaborare, training i service. Odat
cu creterea n faciliti a acestor produse, care ncep s satisfac din ce
n mai mult doleane ale consumatorilor, se poate observa tendina
(natural) spre comercial i n piaa programelor de fabricaie.
Probabil c din cauza aceastei tendine (sistemul de proiectare a
ajuns un produs de larg consum i sistemul de fabricaie este un produs
de consum relativ sczut foarte specializat), la ora actual companiile
care ofer soluii integrate au un deficit n vnzri, prelevnd companiile
specializate pe domenii, integrnd linii de proiectare, fabricaie i analiz
de la mai muli furnizori.

- 24 -

Concluzii

Concluzii

Podusele din domeniul analizei i optimizrii fabricaiei reperelor


complexe sunt foarte puine i realizate cu amatorism, din punct de
vedere al facilitilor oferite, dovedind c domeniul este unul foarte nou.
Acesta este abordat de autor pe parcursul prezentei teze.
Tendina este aceea de integrare a proiectrii i fabricaiei, cu
consecine favorabile n desfiinarea graniei dintre compartimentele de
proiectare constructiv (design) i cel de proiectare tehnologic
(fabricaie); n sensul conceperii unor programe inteligente, care
nglobeaz i simuleaz comportamentul uman n situaii concrete date
(sisteme expert); astfel, acestea cuprind decizii n adoptarea unui anumit
mod de a realiza un reper, au incluse tehnici de optimizare, i numai n
situaii extreme necesit intervenia omului, doar sub forma
conversaional, programele tinznd s propun, prin intermediul
vrjitorilor, ci de rezolvare, soluii optimale, n urma analizelor din ce
n ce mai sofisticate.

- 25 -

Concluzii

Concluzii

2.4. Evoluia sistemelor de


proiectare i fabricaie pe plan
naional
n Romnia, dezorganizarea creat de sistemul comunist (resimit
n toate rile din estul Europei) a fcut ca domeniul proiectrii i
fabricaiei s fie tratat cu amatorism, nici pn la ora actual nefiind
create produse viabile pe piaa de larg consum. Evoluia defectuoas i
are originile n metodele prin care au fost tratate aceste probleme, n
colective reduse, avnd adesea un caracter academic, i care erau
rareori comunicate publicului larg ori pieei interesate, avnd astfel un
impact nesemnificativ n industrie. Astfel, n acea perioad, idei de foarte
bun calitate nu au fost cunoscute sau cel puin comunicate.
Evident, se pot cita cteva materializri ale ingineriei romneti n
acest domeniu (APT conversaional, ALMI [ALM], SORI [SOR],
MANA [MAN]), ca i o caracteristic comun a acestora fiind definirea
separat, negrafic a entitilor geometrice, i prezena unor ordine de
micare distincte. Din punct de vedere al performanelor, aceste
programe sunt comparabile ntre ele, dar cercetarea i dezvoltarea n
continuare a problemei este aproape nchis. Alte produse mai
complexe, care posed o interfa grafic, sunt BIBEXE [BIB],
TechnoPack Lite & Pro. [DM01..11]
Se pare c singurul produs software care a obinut recunoaterea
este TechnoPack [DM01..11], acesta gsindu-i loc ntre produsele
destinate proiectrii i fabricaiei pe plan mondial (poate fi gsit la
sistemele destinate fabricaiei). Este produsul care, n decursul vremii, a
fost dezvoltat de autor pe baza cercetrilor i studiilor n domeniul
proiectrii, fabricaiei, dar mai ales a analizei i optimizrii generrii
codului NC, n vederea realizrii reperelor complexe pe maini unelte cu
comenzi numerice.
Contribuii valoroase la promovarea proiectrii i fabricaiei asistate
de calculator au fost aduse de ctre prof. dr. ing. Constantin
Stncescu, un inimos i pasionat susintor al noului n proiectare [HCF,
DMCS07, DMCS08]. Revista condus de Domnia sa a prezentat,
ncepnd din 1992, noutile notabile pe plan mondial i naional.
Datorit acesteia, a primului club din Romnia, precum i a
nvmntului axat pe proiectarea asistat de calculator promovat la
Facultatea de IMST din Bucureti, s-au format o mulime de
departamente de proiectare asistat n intreprinderile romneti.

- 26 -

Concluzii

Concluzii

O alt apariie editorial care a dus la promovarea i dezvoltarea


proiectrii asistate este CAD Report, condus de un tnr colectiv din
Tg. Mure [CREP].

- 27 -

Concluzii

Concluzii

2.5. Concluzii
Avnd n vedere cele expuse, se poate observa c, n domeniul
stocrii, comunicrii (importului, exportului, DNC), vizualizrii i simulrii,
lucrurile sunt aproape nchise, existnd colective i produse foarte
performante. Singurele locuri cu adevrat deschise mbuntirilor sunt:
generarea optimizat a codului NC:
analizarea i calculul zonelor neprelucrate din cauza interferenelor
scul - semifabricat;
generarea codului, cu condiia de frezare la rugozitate constant ceea ce duce la reducerea dramatic a timpilor de prelucrare.
detecia pentru diferite cicluri clasice (echidistante n x, y, z) a zonelor
critice, unde nu se poate asigura rugozitatea impus;
analiza i compensarea uzurilor;
analiza i compensarea dilatrilor;
generarea codului NC n curbe cu ct mai puine inflexiuni - pentru a
preveni oprirea i schimbarea sensului de rotaie a motoarelor mainii
unelte, ceea ce duce la ocuri, vibraii i previne utilizarea eficient a
traseelor de scul generate la maini unelte cu avans rapid;
reducerea micrilor rapide - prin optimizarea traiectoriilor n ciclurile
de finisare, ceea ce duce la avansuri constante i timpi mai sczui;
luarea automat a deciziei privind care tip de frezare este
recomandat pentru un anumit tip de reper (n funcie de gabarit,
nclinaii, inflexiuni, racordri);
deciderea, n cazul existenei mai multor scule achietoare, a setului
optim de scule necesar n vederea frezrii reperului dat, la rugozitatea
cerut, ntr-un timp ct mai redus;
simulri inteligente: (menin n tot timpul generrii fiierului NC
starea de frezare a semifabricatului).
Aceste simulri trebuie s asigure citirea nivelelor de siguran pentru
micri n avans rapid, ct mai reale, deci ct mai joase, optimiznd
timpul n micri rapide;
S se poat cunoate n fiecare moment cantitatea de material care
este prelevat n direcie radial i frontal, oferind oportunitatea de a
pilota inteligent avansul, ncrcnd ct mai uniform scula i maina
unealt cu solicitri i scznd timpii necesari prelucrrii unui reper;
citirea i convertirea ntr-un format utilizabil a datelor provenite de
la maini de palpat, scanat i cartografiat;
citirea i convertirea ntr-un format utilizabil a datelor provenite
din alte sisteme destinate proiectrii i fabricaiei, n format CL sau
NC;

- 28 -

Concluzii

Concluzii

n general, acestea sunt i domeniile studiate de autor n ultimii ani,


domenii n care ar dori s-i aduc contribuia.

- 29 -

Concluzii

Concluzii

3. Metode de
notaie i clase
utilizate

- 30 -

Concluzii

Concluzii

3.1. Introducere
Analiznd stadiul actual i observnd evoluia exploziv a tehnicilor
de stocare folosite n decursul vremii, nu s-a ncercat crearea unei noi
metode de stocare, ci folosirea uneia din alte domenii, artndu-se n
decursul lucrrii imensul potenial pe care l posed n domeniul
fabricaiei.
Metoda de stocare pentru SD utilizat de ctre autor se ncadreaz
n suprafee discrete demulabile. Aceast metod discret se regsete
ntr-o multitudine de alte domenii, ca metod de stocare, vizualizare i
analiz, utilizat n general pentru stocarea i procesarea imaginilor,
hrilor, propagarea dezastrelor (incendii, taifune) n funcie de
geometria terenului, la simularea solid a frezrii n 2, 2, 3 axe [LWRK],
procesare de semnal i zgomot bidimensional.
Din cauza problematicii destul de complexe care se dorete a fi
rezolvat, vor fi prezentate i alte metode de stocare (clase) folosite n
decursul tezei; acestea sunt: irul de caractere, fiierul, ntregul,
booleanul, realul, punctul, curba, curbe superioare, plasa, suprafee
superioare, masca, suprafaa discret, coleciile.
Toate clasele vor fi prezentate ntr-un mod organizat, atandu-li-se
att operaiile ct i metodele i funciile asociate, ncercndu-se n
prima parte expunerea unui limbaj pseudocod rudimentar i simplu de
neles, orientat pe obiecte.
Nu se dorete o prezentare exhaustiv a acestor clase, ci doar
crearea unui set decent i relativ bogat de tehnici de operare pe clasa
respectiv, tipurile enumerate fiind larg studiate i implementate n toate
sistemele de proiectare i fabricaie moderne.
La sfritul capitolului, n subcapitolul Concepte introduse, se va
ncerca sintetizarea n pseudocod a celor discutate pe parcursul
capitolului. De asemenea, nu se vor expune toate metodele i funciile
triviale, deoarece aceasta ar duce la ncrarea nejustificat a tezei.

- 31 -

Concluzii

Concluzii

3.2. Limbajul pseudocod


Pe parcursul tezei se va ncerca structurarea conceptelor descrise
ntr-un limbaj de tip pseudocod orientat pe obiecte, asemntor cu C++
[CPP], [BST] sau Java [JAV], sintaxa nefiind asemntoare n totalitate.
Scopul principal al acestei structurri este acela de a fi succint, flexibil,
sugestiv, trebuind s posede abilitatea de a descrie aparatele
matematice, structurile de date, designul i implementarea algoritmului.
Dorina autorului este aceea de a prezenta cele discutate ntr-un singur
context.
Faciliti avansate ca:
motenire multipl sau privat,
clase abstracte i funcionale,
operatori compui (+=, -=, *=, etc),
constructori i destructori,
interfee multiple, protejate sau private,
tratarea excepiilor,
spaiile numelor,
pointeri i referine,
variabile volatile, constante i mutabile,
mecanisme asincrone de tratare a validitii datelor,
clase i funcii template,
clase i funcii
trigonometrice),

din

librriile

standard

(cu

excepia

celor

metode virtuale,

nu vor fi folosite, deoarece sunt mai greu de asimilat, n dorina de a nu


face dificil nelegerea algoritmilor.[RBPEL] Structura de clase va fi
prezentat doar pentru a forma o ierarhie logic de clase i a moteni
proprietile comune.
n acest limbaj variabila se va numi Obiect. Tipul (sau structura)
variabilei, precum i algoritmii asociai, vor fi ncapsulai ntr-o Clas.
Aceast convenie este necesar pentru a face deosebirea dintre
structurile clasice i clase (sau variabilele clasice i obiecte): primele nu
pot conine metode (algoritmi ncapsulai, coninui), nu posed
motenire, polimorfism, abstractizare, metode avansate de creere i
distrugere etc.

- 32 -

Concluzii

Concluzii

3.2.1. Clas
Clasele sunt scrise ngroat i verde nchis i au asociat
obligatoriu o prescurtare ct mai sugestiv, format din una sau mai
multe caractere scrise cu liter mic. Prefixarea trebuie specificat
numai prima oar cnd clasa este definit.
Clasele ncapsuleaz (conin) atribute (set de date), operatori,
metode. Clasele sunt la ora actual cele mai nalte forme de stocare a
informaiilor.
Ele se pot moteni, pot asigura
polimorfism, prototipizare, abstractizare etc.

mecanisme

evoluate

de

Exemple:
Real prefix: r; Intreg prefix: n; Curb prefix: c; Punct prefix: p;

3.2.2. Obiect
Obiectele sunt instanele (de tipul) unei clase ce sunt declarate n
felul urmtor: TipClasa prefixclasaNumeObiect; numele obiectului este
prefixat obligatoriu de prescurtarea clasei respective (notaia ungar).
Sunt scrise normal.

Exemple:
Real rTolerana = 0.0, rRugozitate;
ntreg nIndex = 0, nPuncteCorectate(0);
Punct pTest(0.0, 0.0, 1.0), pMax = {1.0, 1.0, 10.0}, pMin;
Curb cPtrat;
n cazul mai multor obiecte de un anumit tip se folosete un
operator , ca separator. Obiectele pot fi iniializate n timpul declarrii,
folosind operatorul de atribuire = sau un constructor specific, utiliznd
operatorul (), cazul nPuncteCorectate, pTest.

3.2.3. Operator
Operatorii sunt setul de operaii posibile definit pe Clasa
respectiv. Ei sunt utilizai n scopul scrierii expresiilor ntr-un limbaj mai
apropiat de cel natural. Cteva exemple de utilizare a operatorilor sunt
descrise n continuare:
rA = rB + rC cu Atribuie(rA, Sum(rB, rC))
- 33 -

Concluzii

Concluzii

rDistXYZ = Radical(rX * rX + rY * rY + rZ * rZ) cu Atribuie(rDistXYZ,


Radical(Sum(nmulete(rX, rX), nmulete(rY, rY), nmulete(rZ, rZ))))
Apariia operatorilor a fost o evoluie natural a limbajelor, fcnd
scrierea expresiilor mult mai lizibil i mai apropiat de cea matematic.
Ca exemple de limbaje care nu conin operatori: Lisp, Prolog, Forth.

Exemple:
+, -, *, /, &, |, %, <, >, =, ==, +=, -=, *=, /=, &=, |=, %=, I, SAU, !, (),
[];

3.2.4. Lista cu parametri


Lista cu parametri ai unei metode sau funcii este descris
utiliznd operatorul () (paranteza deschis).

Exemple:
ntreg Max(ntreg n0, n1);
NimicAnalizeaz(); //lista este vid, dar marcat, pentru a face diferena fa de un obiect.

3.2.5. Indexul vectorilor


Iteratorii (indecii) coleciilor sunt accesai folosind operatorul
[] (paranteze ptrate).

Exemple:
Nimic fcCurb[2].Rotunjete(ntreg nIndex);

3.2.6. Enumerare
Enumerrile sunt utilizate fr operatori speciali, n cazul cnd
este vorba de un element, sau folosind operatorul {} (paranteze
acolade), dac sunt mai multe elemente.

Exemple:
//enumerare de instruciuni
Dac(condiie)
{
rA = rB + rC; //instruciunea 1;
rSum ++; //echivalent cu rSum = rSum +1; instruciunea 2;
} //Dac
Altfel
rSum --; //echivalent cu rSum = rSum 1; instruciunea 1;
//enumerare de reali
Punct pMax = {1.0, 12.0, 10.0};

- 34 -

Concluzii

Concluzii

3.2.7. Algoritm
Algoritmii (aparate matematice, proceduri, rutine, funcii, metode)
se vor regsi n dou locuri, sub form de funcii (n cazul n care nu
sunt coninui ntr-un corp de clas) sau metode (n cazul n care se
gsesc ncapsulai n interiorul unei clase).
Algoritmii sunt blocuri de cod care pot returna un obiect dintr-o
clas anume, sau un obiect din clasa special Nimic, dac nu returneaz
nimic (numii proceduri n unele limbaje).
Algoritmii sunt scrii subliniat n culoarea rou nchis i suplimentar
trebuiesc nsoii de lista de obiecte care trebuiesc transmise, scris
folosind operatorul () (ntre paranteze rotunde). n cazul cnd aceast
list este vid, trebuie chemat cu parantez rotund deschis, urmat
de parantez nchis, pentru a face distincia ntre algoritmi i obiecte.
Algoritmii pot s aib unii parametri iniializai n momentul
definiiei, ceea ce nseamn c urmtoarele chemri ale aceluiai
algoritm EsteApropiat() sunt valide, vor fi interpretate i vor avea ca
rezultat, ca n exemplul urmtor:
Boolean EsteApropiat(Real r0 = 0.0, r1= 0.0, rToleran = 1e-10)
{
Dac(r0 r1 < rToleran SAU r1 r0 < rToleran) //echivalent Abs(r1 r0) < rTol
ntoarce(ADEVRAT);
Altfel
ntoarce(FALSE);
} //EsteApropiat

Utilizri posibile:

Chemare

Interpretare

EsteApropiat(10.0,
11.0, 2.0)
EsteApropiat(10.0,
11.0)
EsteApropiat(3.0)

Rezultat

EsteApropiat(10.0, 11.0, ADEVRAT


2.0)
EsteApropiat(10.0, 11.0, FALS
1e-10)
EsteApropiat(3.0,
0.0, FALS
1e-10)
EsteApropiat(0.0,
_, EsteApropiat(0.0,
0.0, ADEVRAT
0.01)
0.01)
EsteApropiat(_, 11.0)
EsteApropiat(0.0, 11.0, FALS
1e-10)
EsteApropiat()
EsteApropiat(0.0,
0.0, ADEVRAT
1e-10)

- 35 -

Concluzii

Concluzii

3.2.7.1.

Funcii

Funciile sunt algoritmi liberi, care nu sunt ncapsulai n interiorul


vreunei clase.

Exemple:
NimicAnalizeaz();
Real Max(Real rA, Real rB);
Punct Max(Punct rA, Punct rB);

3.2.7.2.
1.

Funcii speciale

Dac i Dac-Altfel

Dac o condiie este ndeplinit se execut prima enumerare de


instruciuni, altfel (eventual) a doua enumerare.
Dac(condiie){} [Altfel{}]

2.

PentruFiecare

Pentru fiecare valoare, ncepnd cu condiia de start, sfrind cu


condiia de sfrit
satisfcut i incrementnd cu condiia de
incrementare, execut o enumerare de instruciuni.
PentruFiecare(Condiie de start = 1; condiia de sfrit = 1; condiia
de incrementare = 1) {}.

3.

PnCnd

Pn cnd este satisfcut condiia execut o enumerare de


instruciuni.
PnCnd(condiie){}
Se poate
condiie, _).

4.

observa

PnCnd(condiie)

ntoarce i ntoarce()

PentruFiecare(_,

ntoarce oprete execuia unui algoritm i (eventual) ntoarce un


obiect din clasa returnat de algoritmul respectiv.
ntoarce[(obiect de tipul clasei returnate)];

- 36 -

Concluzii

Concluzii

3.2.7.3.

Metode

Metodele sunt algoritmi specifici unui clase i sintaxa lor este


exact ca aceea de la algoritmi, cu excepia c avnd acces la datele
ncapsulate (private, interioare unei clase), cnd o metod este chemat,
aceasta trebuie prefixat de numele obiectului respectiv, urmat de un
operator . (punct).

Exemple:
Nimic dsPies.Analizeaz(); Real cCurb.PuneLa(ntreg nIndex, Punct
pPunct);

3.2.8. Cuvinte cheie


3.2.8.1.

Clasa

Clasa (cuvnt cheie) nseamn nceputul definiiei unei noi clase.

3.2.8.2.

DerivatDin

DerivatDin
(cuvnt
cheie)
comportamentului unei clase printe.

3.2.8.3.

nseamn

motenirea

Operator

Operator (cuvnt cheie) nseamn nceputul descrierii operatorilor


permii pe clasa respectiv.

3.2.8.4.

Enumerare

Enumerare (cuvnt cheie) nseamn nceputul enumerrii valorilor


posibile pentru un obiect.

3.2.9. Comentariu
Comentariile sunt clarificri ale pseudocodului, sunt scrise italic i
sunt prefixate de //.

Exemple:
//acesta este un comentariu
n interiorul comentariilor, n cazul n care se doresc a fi specificate
diferite valori pentru un coeficient, acestea vor fi specificate n felul
urmtor:

- 37 -

Concluzii

Concluzii

//[0.001, 0.1] <0.01> valori posibile n intervalul nchis [0.001,


0.1], cu valoarea iniial 0.01
Acestea sunt conveniile minimale cu care se vor modela unificat
diferitele aspecte matematice, de structur, algoritmice sau problemele
legate de implementare.
De menionat c, pe parcursul lucrrii, algoritmii au fost expui n
forma lor primar, fr implementarea unor mecanisme evoluate de
Undo, Redo, contoare de derulare, mecanisme de oprire i recuperare,
tehnici de tratare a erorilor, implementri internaionale, tehnici de
optimizare a algoritmilor, transmiteri prin referine sau pointeri, metode
avansate de inline sau mecanisme de alocare i dealocare dinamic de
memorie. Toate acestea numai din considerentul de a face prezentarea
ct mai lizibil, urmrindu-se doar prezentarea derulrii pur algoritmice a
metodei respective. O implementare ct de ct complet, ntr-un limbaj
de programare, este de circa 3..10 ori mai lung i nu face obiectul
lucrrii.

- 38 -

Concluzii

Concluzii

3.3. Clase utilizate


3.3.1. Clasa ntreg
ntregii reprezint mulimea numerelor ntregi Z. n interiorul
acestei lucrri, ntregii sunt utilizai pentru indexi, stocarea numerelor de
elemente ale diferitelor clase superioare etc.

Operatori:
O Expresi Explicaii
p
e
=
+
*
/
!
&
|
%
I
SAU
%%
>
<

C
C
C
C
C
C
C
C
C
C
C
C
C
C

=
=
=
=
=
=
=
=
=
=
=
=
=
=

A
A + B
A B
A * B
A / B
!A
A & B
A | B
A % B
A I B
A SAU B
A %% B
A > B
A < B

Egalitatea 5 = 5
Adunarea 5+3= 8
Scderea 53= 2
nmulirea 5*3=15
nprirea 5/3= 1
NEGAIA !5 = 2;!101 =010
I logic 5&3= 1; 101&110=001
SAU logic 5|3= 7; 101&110=111
SAU exclusiv5%3= 6; 101&110=110
C = (A&B>0)?1:0
C = (A|B>0)?1:0
C = (A%B>0)?1:0
C = (A>B)?1:0
C = (A<B)?1:0

O
p

Expres
ie

Explica
ii

==
+=
-=
*=
/=
!=
&=
|=
%=
INT
MIN
MAX
>=
<=

C
C
C
C
C
C
C
C
C
C
C
C
C
C

(C=A)?1:0;
C = C + A
C = C A
C = C * A
C = C / A
C = !A
C = C & A
C = C | A
C = C % A
INT 4.5 =4
C = MIN(A,C)
C = MAX(A,C)
C=(A>=B)?1:0
C=(A<=B)?1:0

== A
+= A
-= A
*= A
/= A
!= A
&= A
|= A
%= A
INT rA
MIN A
MAX A
= A>=B
= A<=B

Metode:
NimicMin (ntreg nA, nB); //ntoarce minimul dintre valorile nA i nB
NimicMax (ntreg nA, nB); //ntoarce maximul dintre valorile nA i nB
NimicAbs (ntreg nA); //ntoarce valoarea absolut

Funcii asociate:
ntreg Min (ntreg nA, nB); //ntoarce minimul dintre valorile nA i nB
ntreg Max (ntreg nA, nB); //ntoarce maximul dintre valorile nA i nB
ntreg Abs (ntreg nA); //ntoarce valoarea absolut

Prefixare: n;
Exemple:
nNumrPuncte numrul de puncte;

3.3.2. Clasa Boolean


Booleenii sunt o clas particular derivat din ntregi (deci
motenesc toate proprietile acestora). Rolul lor este acela de a asigura
implementarea logicii matematice.

- 39 -

Concluzii

Concluzii

Singurele valori posibile ale booleenilor sunt ADEVRAT (= 1) i


FALS (= 0).

Operatori:
Toi operatorii posibili pe Clasa ntreg sunt aplicabili specializrii (clasei
derivate) Boolean; evident, nu toi i au sensul.

Metode:
Toate metodele de la Clasa ntreg sunt motenite.

Prefixare: b;
Exemple:
bStart variabila boolean Start;

3.3.3. Clasa Real


Realii sau numerele reale din R. Reprezint o clas elementar
descris pentru a nelege operaiile executate cu numere reale. Toate
operaiile, metodele i funciile asociate pot fi extinse foarte uor la
clasele mai evoluate: punct, baz vectorial etc.

Operatori:
Op Expres
ie

Explicaii

Op
.

Expresie

Explicaii

=
+
*
/

C
C
C
C
C

Egalitatea 5.0 = 5.0


Adunarea 5.0+3.0= 8.0
Scderea 5.03.0= 2.0
nmulirea 5.0*3.0=15.0
mprirea 5.0/3.0= 1.6

>
<

C = A > B
C = A < B

==
+=
-=
*=
/=
Real
min
max
>=
<=

C
C
C
C
C
C
C
C
C
C

(C=A)?1.0:0.0
C = C + A
C = C A
C = C * A
C = C / A
4.0 = real 4
C = min(A,C)
C = max(A,C)
(A>=B)?1.0:0.0
(A<=B)?1.0:0.0

=
=
=
=
=

A
A
A
A
A

*
/

B
B
B
B

C = (A>B)?1.0:0.0
C = (A<B)?1.0:0.0

Metode:
NimicMin (Real rA, rB); //ntoarce minimul dintre valorile rA i rB
NimicMax (Real rA, rB); //ntoarce maximul dintre valorile rA i rB
NimicMorf(Real rA, rB, rP = 0.5); //ntoarce rA * rP + rB * (1.0 - rP)
NimicAbs (Real rA); //ntoarce valoarea absolut

Funcii asociate:
Real Min (Real rA, rB); //ntoarce minimul dintre valorile rA i rB
Real Max (Real rA, rB); //ntoarce maximul dintre valorile rA i rB
Real Morf(Real rA, rB, rP = 0.5); //ntoarce rA * rP + rB * (1.0 - rP)
Real Abs (Real rA); //ntoarce valoarea absolut

- 40 -

== A
+= A
-= A
*= A
/= A
real nA
min A
max A
= A>=B
= A<=B

Concluzii

Concluzii

Prefixare: r;
Exemple:
rMin, rMax valorile minim i maxim;

3.3.4. Clasa Punct


Punctele sunt entiti elementare folosite de ctre toate clasele
vectoriale superioare, pentru a stoca valorile diferitelor entiti care le
compun.
De menionat c, pentru simplicitate, n decursul lucrrii se vor
folosi doar puncte din R3. Se poate meniona aici c, n domeniul tiinei
sunt folosite puncte n mai multe dimensiuni Rn sau puncte cu construcie
special pentru suprafee superioare R5 u, v, x, y, z, unde u, v sunt
coordonatele parametrice ale suprafeei de pe care deriv.

Operatori:
Pe clasa Punct se aplic exact aceleai tipuri de operaii ca i la
Clasa Real, corespunztor fiecrui membru rX, rY, rZ.
Pentru a da consisten se implementeaz operaiile cu scalari de
tip real sau ntreg, care pot substitui coordonatele unui punct, spre
exemplu:
pP0(2.0); //pP0.rX = 2.00; pP0.rY = 2.00; pP0.rZ = 2.00; Iniializare
pP0 = 0.0; //pP0.rX = 0.00; pP0.rY = 0.00; pP0.rZ = 0.00; Iniializare
pP0(1.0, 3.9,-1.2); //pP0.rX = 2.00; pP0.rY = 3.90; pP0.rZ =-1.20; Iniializare
pP0 = {2.0, 1.9,-1.2}; //pP0.rX = 2.00; pP0.rY = 1.90; pP0.rZ =-1.20; Iniializare
pP1 = 2.0 * pP0; //pP1.rX = 4.00; pP1.rY = 3.80; pP1.rZ =-2.40; nmulire scalar
pP1*= pP0; //pP1.rX = 8.00; pP1.rY = 7.22; pP1.rZ = 2.88; nmulire point
pP0/= 2.0; //pP0.rX = 1.00; pP0.rY = 0.95; pP0.rZ =-0.60; mprire
pP1 = max(pP0, 5.0); //pP1.rX = 8.00; pP1.rY = 7.22; pP1.rZ = 5.00; Similar pP1 MAX 5
pP0 min 0.0; //pP0.rX = 0.00; pP0.rY = 0.00; pP0.rZ =-0.60; Op. MIN cu scalar.
pP0=morph(pP0,pP1,0.5); //pP0.rX = 4.00; pP0.rY = 3.61; pP0.rZ = 2.20; funcia morph.

Se poate observa c setul de operaii descris este destul de


consistent i permite o operare decent cu clasele elementare descrise
pn n prezent: ntreg, boolean, real i punct.

Metode:
NimicMin (Punct pA, pB); //ntoarce minimul dintre valorile pA i pB
NimicMax (Punct pA, pB); //ntoarce maximul dintre valorile pA i pB
NimicMorf(Punct pA, pB, pP = 0.5); //ntoarce pA * pP + pB * (1.0 - pP)
NimicAbs (Punct pA); //ntoarce valoarea absolut
NimicRotX(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui X
NimicRotY(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Y
NimicRotZ(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Z

- 41 -

Concluzii

Concluzii

NimicScalare(Punct pScalare, Real rFactorScalare); //scalarea fa de un punct


NimicTranslaie(Punct pTranslaie); //scalarea fa de un punct

Funcii asociate:
Punct Min (Punct pA, pB); //ntoarce minimul dintre valorile pA i pB
Punct Max (Punct pA, pB); //ntoarce maximul dintre valorile pA i pB
Punct Morf(Punct pA, pB, pP = 0.5); //ntoarce pA * pP + pB * (1.0 - pP)
Punct Abs (Punct pA); //ntoarce valoarea absolut
Punct RotX(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui X
Punct RotY(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Punct RotZ(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Punct Scalare(Punct p, pScalare, Real rFactorScalare); //scalarea fa de un punct
Punct Translaie(Punct p, pTranslaie); //scalarea fa de un punct

Prefixare: p;
Exemple:
pMin, pMax punctul minim i maxim;
p0.rX - valoarea cotei x din punctul 0;

3.3.5. Clasa SetDeCaractere


irul de caractere este o colecie de obiecte din clasa ntreg. Este
utilizat la transmiterea mesajelor. Citirea unui caracter din interiorul unui
obiect din clasa SetDeCaractere se face cu operatorul[] specific
parcurgerii coleciilor.

Prefixare: str;
Exemple:
strMesaj = Acesta este un set de caractere;

3.3.6. Clasa BazaVectorial


Ba zaVectorial este o clas elementar care traseaz un
comportament comun pentru clasele mai evoluate (curbe, plase,
suprafee discrete).
Aceast clas a fost imaginat ca punct de pornire pentru
descrierea celorlalte superobiecte bazate pe colecii de puncte.
Conine obiectele locale din clasa Punct (pMin, pMax, pDif), care
reprezint extensia paralelipipedului spaial n care poate fi inclus
rescpectiva colecie de puncte.

- 42 -

Concluzii

Concluzii

Prefixare: bv;

3.3.7. Clasa Curb


Curbele discrete folosite n acest lucrare sunt cele mai
elementare posibile (polilinii n R3), avnd ca reprezentare o colecie de
puncte, cu urmtoarea convenie: curba se va genera trasnd segmente
de dreapt ntre fiecare pereche de puncte consecutive.
S-a ales acest mod de reprezentare elementar, deoarece oricare
curb continu de ordin superior (analitic, arc de cerc, arc de elips
etc), dat ntr-un spaiu n dimensional, poate fi convertit ntr-o astfel de
reprezentare, dndu-se o toleran admisibil.
Curbele nchise se definesc a fi acele curbe a cror prim i ultim
element coincid.
Curbele plane sunt acele curbe care nu conin informaii despre
cota Z, nu au fost tratate separat, ci sunt utilizate cele 3D, nefolosind
cota Z.
Curbele sunt entiti foarte generale, folosite n:
generare curbe directoare i generatoare, axe de rotaie etc;
analiz marcheaz i ntorc locuri critice n care anumite condiii nu se
mplinesc;
generare fiier NC traseul sculei;

Curbele au un punct de start i un sens de parcurs. n cazul


curbelor nchise, sensul de parcurs poate fi trigonometric sau orar.
Apariia curbelor discrete (polilinii) a fost natural, ele fiind cea
mai simpl metod, utilizat larg n schimbul de informaii de nivel
sczut despre curbe, ntre aplicaii. Sunt suportate de aproape toate
formatele (STEP, IGES, VDA, ACIS, DXF, ACD) .
Dezavantajul lor major este acela c sunt mari consumatoare de
memorie, din cauza stocrii discrete a valorilor.
O metod larg utilizat de scdere a consumului de memorie este
aceea de a elimina punctele care sunt coliniare; aceast metod reduce
consumul de memorie cu 10..95%.

- 43 -

Concluzii

Concluzii

O alt metod utilizat larg n generarea fiierelor NC, i care duce


implicit la reducerea lungimii acestora, este aceea n care se folosesc
curbe cu X, Y sau Z constant, convertibile n arce de cerc (aproape toate
postprocesoarele suport acest tip de dat). Scderea necesarului de
memorie este de circa 50%. n ultimii ani au aprut ECN care suport
curbe spline. Prin reconvertirea curbelor elementare n curbe spline se
asigur o reducere cu 20..50% a lungimii fiierului generat, precum i o
cretere sensibil a calitii suprafeei generate.
NOT: Toate statisticile au fost executate pe repere de complexitate
medie, cu plaje de toleran [0.001 0.1 mm] i gabarite specifice
domeniului construciilor de maini. Tendina general este aceea c: cu
ct un reper este mai simplu (numr sczut de schimbri de curvatur),
cu att optimizrile descrise anterior funcioneaz mai bine.
Exist metode de a crete calitatea curbei, prin conversia ei ntr-o
curb B-Spline i eliminarea din nou a punctelor intermediare, cu o
toleran mai mic.

Operatori:
Operatorii specifici clasei Curb sunt cei de la clasa
BazaVectorial; orice operaie care conine ca parametru un scalar sau
un punct poate fi definit pe o colecie de puncte.
Suplimentar se pot imagina operatorii +, +=, care adun la lista de
puncte un punct nou sau o list nou de puncte. Totui, aceast facilitate
nu va fi folosit, datorit necesitii de a fi consecvent n folosirea
operatorilor, lsndu-i pentru transformrile datelor n maniera folosit la
clasele real, punct.

Metode:
Metodele descrise sunt cele elementare, de adunare, modificare i
tergere a punctelor, precum i cele de schimbare de sens, interogare
despre sens, care i au rostul doar n cazul curbelor nchise.
Punct Operator[] (ntreg nNr); //ntoarce punctul numrul nNr = [1..nMax]
Punct Operator[] (Real rT); //ntoarce punctul normnd curba rT = [0.0..1.0]
Punct Operator[] (ntreg nNr, Real rT); //ntoarce punctul normnd elementul nNr
NimicPuneLa(ntreg nNr, Punct p); //seteaz punctul numrul nNr = [1..nMax]
Punct Adun(Punct p); //adun un punct
Punct Adun(ntreg nNr, Curb c); //adun o curb la poziia dat de nNr
Punct Adun(Curb c); //adun o curb la sfrit
Punct Del(ntreg nNr); //terge punctul numrul nNr = [1..nMax]
NimicSchimbSensul(); //schimb sensul de parcurgere al curbei
NimicFTrigonometric(); //face sensul de parcurs al curbei n sens trig.
NimicFTrigonometric(); //face sensul de parcurs al curbei n sens trig.
Boolean EstenSensTrig(); //ntoarce ADEVRAT daca-i n sens trig.
Boolean EstenSensOrar(); //ntoarce ADEVRAT daca-i n sens orar

- 44 -

Concluzii

Concluzii

Boolean Estenchis(); //ntoarce ADEVRAT dac curba este nchis

Funcii asociate:
Nu exist nc.

Prefixare:
c;

Exemple:
cBoundaries.nNr numrul de puncte de pe curbe care reprezint
dreptunghiul nconjurtor;
cTemp.rMax.rY valoarea Y a punctului maxim de pe curba Temp;
n general, curbele nu se folosesc singure dect n cazul particular
al generrii de suprafee ca i curbe directoare sau generatoare. Sunt de
preferat coleciile (familii) de curbe, care sunt mult mai puternice din
punct de vedere al reprezentrii. Spre exemplu, n cazul n care se
doresc locuri critice sau trasee de scule n care trebuie alternate micri
rapide cu cele n avans de lucru, sau scule de geometrii diferite, curbele
singure nu sunt destul de bogate n informaia coninut pentru a putea
reprezenta pertinent aceste tipuri de date, care conin discontinuiti
geometrice sau informaii auxiliare (tehnologice, geometrie de cap de
scul etc.).

3.3.8. Clasa CurbSuperioar


Toate curbele care nu sunt stocate ca o secven de segmente de
dreapt vor fi numite curbe superioare. Acestea pot conine: arce de
cerc, curbe B-Spline, informaii suplimentare despre scul, culoare, strat
de desenare. n aceast lucrare nu vor fi detaliate i utilizate, pentru a
pstra expunerea ct mai simpl. Fiind posibil derivarea direct din
curb, toi operatorii, metodele i funciile asociate clasei curb se
presupun motenii.

3.3.9. Clasa Plas


Plasele sunt cele mai simple obiecte care pot fi utilizate pentru
stocarea suprafeelor. Sunt extensia natural nspre stocarea
suprafeelor la curbele discrete (polilinii). n concluzie, pentru a le stoca
este nevoie de o matrice bidimensional, n care sunt stocate punctele
reelei. Rezult c forma celulei elementare este patrulater, dar nu i
plan (conversia ntr-o reprezentare triunghiular este trivial, unind
dou coluri opuse ale celulei elementare).
In mod similar se poate demonstra c orice suprafa continu de
ordin superior poate fi convertit ntr-o suprafa finit de tip plas, cu o
eroare mai mic de toleran dat.
- 45 -

Concluzii

Concluzii

Apariia plaselor a fost natural, ele fiind o metod simpl,


utilizat larg n schimbul de informaii de nivel sczut despre suprafee,
ntre aplicaii. Este suportat cam de toate formatele care suport
suprafee (STEP, IGES, VDA, ACIS, DXF).
Dezavantajul lor major este acela c sunt mari consumatoare de
memorie, din cauza stocrii discrete a valorilor.
Avnd n vedere acest dezavantaj (al consumului de memorie), dea lungul vremii sau dezvoltat metode mai evoluate, pentru a reduce
consumul de memorie, prin detecia i eliminarea poriunilor plane. O
prim observaie este c aceast metod utilizeaz o structur
arborescent pentru stocare mai eficient, dar i mai complicat, din
punctul de vedere al parcurgerii i exemplificrii.
Plasele i plasele optimizate se regsesc n multe din produsele
destinate fabricaiei actuale, ca un tip de dat ascuns, reprezentnd
corecia spaial de scul, deoarece, pe acest tip de dat proieciile i
secionriile se realizeaz relativ simplu, deci conversia n fiier NC este
relativ simpl.
Exist metode destul de complicate de a crete calitatea plasei,
prin conversia ei ntr-o plas B-Spline i stocarea cu un pas mai mare
(metoda folosit de autor n produsul TechnoMesh, numit rafinare
[DM01..12]).

Operatori:
Operatorii specifici clasei Plas sunt cei de la Clasa
BazaVectorial. Orice operaie care conine ca parametru un scalar sau
un punct poate fi definit pe o colecie de puncte de tip plas (mesh
[ACAD]).

Metode:
Metodele descrise sunt cele elementare, de adunare, modificare i
tergere a punctelor, precum i cele de schimbare de sens interogare
despre sens, care i au sensul doar n cazul curbelor nchise.
Punct Operator[] (ntreg nU, nV); //ntoarce pt. nU=[1..nNrU], nV =[1..nNrV]
Punct Operator[] (Real rU, rV); //ntoarce nomnd plasa rU,rV = [0.0..1.0]
Punct Operator[] (ntreg nU, nV, Real rU, rV); //normeaz elem. NU, nV
NimicPuneLa(ntreg nU, nV, Punct p); //seteaz punctul de la nU, nV
NimicSchimbSensul(Boolean bU, bV); //schimb sensul de parcurgere al plasei
Curb IaDeLaXY(ntreg nPlasa, Real rX, rY); //proiecteaz i returnez o list cu pt.
FamiliaDeCurbe IaDeLaU(Real rV); //convertete n f.curb pt rV
FamiliaDeCurbe IaDeLaV(Real rU); //convertete n f.curb pt rU
FamiliaDeCurbe IaDeLaX(Real rX); //convertete n f.curb pt rX
FamiliaDeCurbe IaDeLaY(Real rY); //convertete n f.curb pt rY
FamiliaDeCurbe IaDeLaZ(Real rZ); //convertete n f.curb pt rZ

- 46 -

Concluzii

Concluzii

Real Aria() //calculeaz aria


Real LungimeaU(Real rV); //lungimea la n dir U la v = rV
Real LungimeaV(Real rU); //lungimea la n dir V la u = rU
Real LungimeaMaxU(); //lungimea maxim n dir U
Real LungimeaMaxV(); //lungimea maxim n dir V
Curb CurbU(Real rV); //convertete n curb pt rV
Curb CurbV(Real rU); //convertete n curb pt rU

De menionat metodele GetU(), GetV(), GetX(), GetY(), GetZ(), care


interogheaz plasa prin proiectare sau tiere. Acestea sunt folosite n
conversia suprafeelor faetate corecie de scul, n trasee de scul.
De menionat c GetX, GetY, GetZ sunt metode foarte lente
iterative, care solicit intens procesorul. Din cauza acestei probleme,
analiza i prelucrarea lor este foart lent.

Funcii asociate:
Nu exist nc.

Prefixare:
m;

Exemple:
mAnalitic.nNrU numrul de puncte n direcia U de pe plasa Analitic;
mTemp.Put(nU, nV, pPunct) pune pe plasa Temp la punctul de
coordonate nU, nV valoarea pPunct.

3.3.10. Clasa SuprafeeSuperioare


Suprafeele superiore sunt acele suprafee care sunt descrise
prin alte metode dect cele de la plase. n general, fiecare tip de
suprafa (revoluie, rulat, racordare etc) este stocat n funcie de
metoda de generare. Aceast metod duce la premisele regenerrii
automate, a proiectrii parametrice. Dar, dezavantajul major este acela
c fiecare set de metode trebuie implementate separat pe fiecare clas
specific, lucru care duce la ngreunarea dezvoltrii produsului soft.
Cunoscndu-se acest dezavantaj al suprafeelor superiore, s-a
ncercat soluia de compromis, de a o transforma ntr-o suprafa BSpline i a implementa setul de metode superioare de secionare,
proiecia, offsetul 3D pe un singur tip de suprafa, doar o singur dat
pe acest tip de dat. Aceast metod este folosit la ora actual n
aproape toate sistemele de proiectare i fabricaie. Dezavantajele sunt
numai n ceea ce privete timpul de procesare, care n cazul utilizrii
curbelor B-Spline de ordine mari crete exponenial cu gradul curbei.
Importul i exportul suprafeelor B-Spline este suportat de
formatele de nivel nalt, ca: STEP, IGES, VDA, ACIS.
- 47 -

Concluzii

Concluzii

Prefixare:
ss;

Exemple:
ssOffset.nNrU numrul de puncte n direcia U de pe plasa Offset;

3.3.11. Clasa CapDeScul


Aceast clas are scopul de a stoca o scul ISO standard,
caracterizat de urmtorii parametri: diametrul mare al sculei rD,
diametrul mic rDb, raza de racordare rR, unghiul la baz (orizontal) rA,
unghiul fa de vertical rB, lungimea prii active (auriu) rF, lungimea
prii critice (rou) rC.

- 48 -

Concluzii

Concluzii

Figura 3.10 Cteva capete de frez suportate de aceast lucrare

Clasa CapDeScul are rolul de a furniza informaii despre


geometria sculei algoritmilor de calcul a suprafeei de contact i a
suprafeei discrete cu materialul nefrezabil, suprafee eseniale n toate
procesrile de nivel nalt, de optimizare i procesare a fiierului NC.
Nu posed operatori, metode sau funcii asociate.
- 49 -

Concluzii

Concluzii

Sunt folosite numai cu scopul de a furniza suprafeei discrete


asociate date necesare conversiei, n vederea analizelor de corecie de
scul.

Prefixare:
sc;

Exemple:
scSferic.rR raza capului de scul Sferic;

3.3.12. Clasa BazDiscret


Clasa BazDiscret este o clas de baz derivat din
BazaVectorial, destinat stocrii suprafeelor masc discret i
suprafa discret, crend premisele stocrii limitelor acestora, precum
i metode de conversie ale originilor, din cele reale ale volumului descris
n cele discrete ale matricii de stocare.

Variabile:
ntreg nX; //numrul de puncte din matrice n direcia X
ntreg nY; //numrul de puncte din matrice n direcia Y
Real rStep; //pasul reprezentrii

Metode:
Real IndexnRealPtX(ntreg nX); //conversia din index in real pe X
Real IndexnRealPtY(ntreg nY); //conversia din index in real pe Y
ntreg RealnIndexPtX(Real nX); //conversia din real n index pe X
ntreg RealnIndexPtY(Real nY); //conversia din real n index pe Y

Prefixare:
Nu exist obiecte direct derivate !

3.3.13. Clasa SuprafeeDiscrete


Suprafeele discrete sunt metoda de stocare a suprafeelor
discrete.
Forma de stocare este o matrice bidimensional, care stocheaz o
singur cot z (cea maxim), uniform, ntr-o reea parcurs cu pas
constant, n ambele direcii, X i Y, n plan.
n fapt, metoda se poate asemna cu realizarea unei fotografii
monocrome (neperspectiv) a reperului ce trebuie frezat, n direcia axei
Z a mainii, stocnd n fiecare punct dat, de coordonate x i, yi ale
fotografiei, cota z maxim vizibil.
- 50 -

Concluzii

Concluzii

O prim limitare a acestei metode este aceea c nu poate stoca


precis suprafeele neinjective (cele nedemulabile), cele care au puncte n
planul XY cu mai mult de o cot Z sau niciuna. Aceast problem a fost
rezolvat simulnd comportamentul tehnologului, care trebuie s rezolve
aceast problem dndu-i-se spre realizare un astfel de reper.
Astfel:
n cazul n care nu exist valori pentru un punct x, y, se stocheaz
minimul reprezentrii sau o alt cot arbitrar;
n cazul n care suprafaa are o singur cot Z n spaiu, aceasta se
stocheaz n matricea cu cotele Z;
n cazul n care exist mai mult de o cot pentru aceeai valoare x i
y, se stocheaz valoarea maxim.

Operatori:
operator +, -, *, /, +=, -=, *=, /=, =, MAX, MIN, ADD, SUB, MULTIPLY, DIVIDE, MORPH, FILSUS, FILJOS,
ECDSUS, ECDJOS;

Exemple despre modul n care rezult suprafaa, n 12 cazuri de


aplicare a operatorilor, n figura 3.2.
Mai multe detalii despre acetia, n capitolul urmtor.

Metode:
NimicPuneLa(ntreg nX, ntreg nY, Real rVal, ntreg nMetoda = PM_NONE, Real rMorph = 0.5);
NimicPuneLa(Real rX, Real rY, Real rVal, ntreg nMetoda = PM_NONE, Real rMorph = 0.5);
Real Operator[] (ntreg nX, ntreg nY); //citete un punct
Real Operator[] (Real rX, Real rY); //citete un punct
NimicPuneLaAll(Real rValoare); //seteaza toat suprafaa

Metoda de punere a datelor poate fi: PM_NONE, PM_MAX, PM_MIN,


PM_ADD, PM_SUB, PM_MULTIPLY, PM_DIVIDE, PM_MORPH.

Prefixare:
sd;

Exemple:
sdReper, sdCorecie
suprafeei de corecie.

suprafeele

discrete

ale

reperului

ale

3.3.13.1. Operaii solide


Operaiile solide ntre diferitele suprafee discrete (combinrile)
sunt foarte importante pentru diferitele metode de modelare, import i
analiz.
Cteva exemple ar putea fi:

- 51 -

Concluzii

Concluzii

n modelare, cu ajutorul operaiilor PM_ADD, PM_SUB se pot


aduna sau scdea diferite nscrisuri pe SD, iar cu PM_FILSUS,
PM_FILJOS se pot executa racordri;
n import, cu operaiile PM_MAX, PM_MIN se asigur
continuitatea suprafeei convertite din diferite petece importate;
n analiz, cu operaiile PM_ECDSUS, PM_ECDJOS se pot calcula
suprafeele traseelor de scul i suprafeele de contact
(backoffset), precum utiliznd PM_SUB se poate calcula SD
nefrezabil n analizele de detecie a materialului nefrezabil.

Fi
gura 3.11 Exemple de operatori solizi posibili ntre diferite suprafee
discrete
Se prezint n continuare cteva operaii solide ntre dou SD.
Exemple despre cum arat sdRezultante se pot observa n figura 3.2,
unde s-au reprezentat ntr-o seciune cele trei SD: cu negru
sdRezultat, cu rou sdNou, cu verde sdVeche.
Enumerare ModulDePunere //enumerarea modurilor de combinare solid a SD i mtilor
{
PM_NONE, //sdRezultat = sdNou;
PM_MAX, //sdRezultat = max(sdVeche, sdNou);
PM_MIN, //sdRezultat = min(sdVeche, sdNou);
PM_ADD, //sdRezultat = sdVeche + sdNou;
PM_SUB, //sdRezultat = sdVeche - sdNou;
PM_MULTIPLY, //sdRezultat = sdVeche * sdNou;
PM_DIVIDE, //sdRezultat = sdVeche / sdNou;
PM_MORPH, //sdRezultat = morph(sdVeche, sdNou, rMorfValue);
PM_FILSUS, //sdRezultat = offset(offset(sdVeche, sdHead, bSus), sdHead, bJos);
PM_FILJOS, //sdRezultat = offset(offset(sdVeche, sdHead, bJos), sdHead, bSus);

- 52 -

Concluzii

Concluzii

PM_ECSDUS, //sdRezultat = offset(sdVeche, sdNou);


PM_ECDJOS, //sdRezultat = offset(sdVeche, sdNou);
}

3.3.13.2. Necesarul de memorie


n general, ncercndu-se o analogie cu tehnica stocrii imaginilor,
SD sunt stocate ca o imagine monocrom, pentru fiecare pixel stocnduse cota Z, iar mtile SDM sunt stocate ca o imagine alb-negru, pentru
fiecare pixel fiind stocat o valoare boolean de tip Adevrat Fals.
Deci, pentru o rezoluie dat de m x n avem:
Necesarul de memorie = m * n * (4 * 8 + 1) ; //n cazul stocrii ca un
float
Necesarul de memorie = m * n * (8 * 8 + 1) ; //n cazul stocrii ca un
double

Pentru a prentmpina consumul neraional de memorie, datele au


fost stocate ca un float, adic pe patru octei. Aceast reprezentare
asigur peste 6 zecimale exacte pentru valori ntre [1000 +1000 mm],
adic cele uzuale domeniului de fabricaie. De menionat c, atunci cnd
memoria volatil (RAM) i spaiul pe disc nu erau disponibile n cantiti
suficiente, datele erau stocate ca un ntreg pe 16 bit, oferind 65536
valori, ceea ce pentru repere cu extensia uzual pe Z de [1000+1000
mm] reprezenta o precizie de 2000/65535 = 0.03 mm, considerndu-se
suficient pentru repere gabarite de 2000 mm, i 0.003 mm pentru cele
din plaja de [-100 +100 mm].
Pentru uurarea calculelor se vor folosi algoritmi bazai pe stocare
ca float, adic un tip de dat real pe 4 octei.

3.3.13.3. Mrimea suprafeelor discrete


n funcie de rezoluia de reprezentare i destinaia lor, suprafeele
discrete pot fi mprite n trei mari categorii:
mici, pn la 10.000 de puncte (100x100), rezonabile n
cazurile n care se doresc analize i rapoarte rapide despre diferite
moduri de frezare, cazul experilor auditivi i ai celor de analiz, care nu
execut export grafic, ci doar raporteaz n mare, spre exemplu, direcia
optim de frezare, sau dac este sau nu o frezare echipotenial
recomandat; reprezentare deosebit de rapid, cu timpi de analiz n
domeniul milisecundelor, decizii foarte utile luate n 2..3 secunde. Nu
sunt utilizabile n locurile n care se doresc rapoarte grafice;
timpi medii de rspuns: 0,1-3 [s]
spaiu necesar pentru stocare 4...40 [ko]
- 53 -

Concluzii

Concluzii

medii, pn la 250.000 de puncte (500x500), utilizate n


cazurile n care se doresc rapoarte grafice, ca i locuri critice din punct
de vedere al rugozitii, pentru diferite cicluri de frezare, detectarea i
exportul zonelor neprelucrate din cauza interferenelor sculsemifabricat, simple reprezentri vizuale ale solidului, sau generarea
fiierelor de degroare;
timpi medii de rspuns: 3-30 [s]
spaiu necesar pentru stocare 40..1000 [ko]
mari, peste 250.000 (>500x500), rezonabile numai n cazul
generrii fiierelor NC de finisare; sunt foarte lente i mari consumatoare
de memorie;
timpi medii de rspuns: >30 [s]
spaiu necesar pentru stocare >1000 [ko]
Este foarte important ca, n funcie de calitatea i timpul de rspuns
dorit, s se aleag corect mrimea suprafeei discrete asociate.
De menionat c, dac se stocheaz la o rezoluie mare, suprafaa
poate fi convertit ntr-una de rezoluie mai mic, fr pierdere de
calitate, procesul invers nefiind adevrat.

3.3.14. Clasa Masc


Masca reprezint o matrice bidimensional de aceleai dimensiuni
cu cele ale SD n care sunt stocate obiecte de tip boolean, i care este
utilizat pentru raportarea diferitelor rezultate ale unor analize.
Suplimentar, n cazul conversiei unei suprafee nediscrete (SN) ntruna discret (SD), s-a creat facilitatea de a stoca extensia n XY a
existenei
acesteia,
ntr-o
masc
numit
masca
suprafeei
discrete(MSD).
Mtile sunt concepte mult mai generice, i sunt folosite pentru
definirea diferitelor zone n care se execut operaiile de combinare a
unei suprafee cu alta, zone de frezare, sau sunt returnate ca raport al
extensiei procesrii unei metode de analiz.

Operatori:
Cei de la BazVectorial, pentru modificarea pMin, pMax, deci
scalri i translaii.
De asemenea, operatori noi pentru operaii cu mti: AND (Fig.3.2
a), OR (Fig.3.2 b), XOR (Fig.3.2 c), SUB (Fig.3.2 d,e), NOT (Fig.3.2 f);
- 54 -

Concluzii

Concluzii

Metode:
Sunt cele de citire i scriere.
NimicPuneLa(ntreg nX, ntreg nY, Boolean bVal, ntreg nMetoda = PM_NONE);
//pune un bool
Real Operator[] (ntreg nX, ntreg nY); //citete un bool
NimicPuneLa(Real rX, Real rY, Boolean bVal, ntreg nMetoda = PM_NONE); //pune un bool
Real Operator[] (Real rX, Real rY); //citete un bool
NimicPuneLaAll(Boolean bValoare); //seteaz toat suprafaa
NimicRevert(); //schimb toate valorile

Observnd metodele de combinare a mtilor s-a creat o metod


inteligent de a pune datele:
NimicPuneLa(ntreg nX, ntreg nY, Boolean bVal, ntreg nMetoda); //pune un bool inteligent

Aceasta are ca ultim parametru o valoare nMetoda, care poate lua


urmtoarele valori: PM_NONE, PM_AND, PM_OR, PM_XOR (fig. 3.3).

Prefixare:
sc;

Exemple:
sdReper.m, sdVrfScul.m masca suprafeei discrete a reperului i a
vrfului sculei;
sdContact.m.Get(nX, nY), - masca SD a suprafeei de contact i
interogarea acesteia despre starea de adevrat sau fals a punctului de
coordonate nX, nY;

Fi
gura 3.12 Metode de combinare a mtilor

- 55 -

Concluzii

Concluzii

3.3.15. Coleciile
Coleciile sunt seturi de obiecte derivate din aceeai clas stocate
mpreun. Accesul la un element dintr-o colecie se face cu ajutorul
operatorul [], care va returna un element din tipul stocat n colecia
respectiv.
Se poate observa imediat c: curba este o colecie de obiecte de tip
Punct, suprafaa demulabil este o colecie de Reali, irul de caractere
este o colecie de ntregi etc.

Prefixare:
f + prefixul clasei din colecie; exceptnd cazurile de prefixare
discutate

Exemple:
fcAnaliz[3].Deseneaz()
curbe fcAnaliz.

// deseneaz curba a treia din setul de

- 56 -

Concluzii

Concluzii

3.4. Concepte introduse


//Clasa int utilizat pentru operaiile cu numere intregi
//prefix Variabile: n
Clasa ntreg
{
operator +, -, *, /, &, |, %, <, >, >=, <=, =, ==, +=, -=, *=, /=, &=, |=, %=, I, SAU, %%, !, min, max; //operatorii
i conversiile din tipul real
Nimic Min (ntreg nA, nB); //ntoarce minimul dintre valorile nA i nB
Nimic Max (ntreg nA, nB); //ntoarce maximul dintre valorile nA i nB
Nimic Abs (ntreg nA); //ntoarce valoarea absolut
} //EndInt
//funcii prietene
ntreg Min (ntreg nA, nB); //ntoarce minimul dintre valorile nA i nB
ntreg Max (ntreg nA, nB); //ntoarce maximul dintre valorile nA i nB
ntreg Abs (ntreg nA); //ntoarce valoarea absolut
//Clasa bool utilizat pentru operaiile logice
//prefix Variabile: b
Clasa Boolean DerivatDin ntreg
{
} //EndBool
//Clasa real utilizat pentru operaiile cu numere reale
//prefix Variabile: r
Clasa Real
{
//operatorii
operator +, -, *, /, +=, -=, *=, /=, <, >, <=, >=, =, ==, !=;
//funcii membru
Nimic Min (Real rA, rB); //ntoarce minimul dintre valorile rA i rB
Nimic Max (Real rA, rB); //ntoarce maximul dintre valorile rA i rB
Nimic Morf(Real rA, rB, rP = 0.5); //ntoarce rA * rP + rB * (1.0 - rP)
Nimic Abs (Real rA); //ntoarce valoarea absolut
Nimic RotX(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui X
Nimic RotY(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Nimic RotZ(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Nimic Scalare(Punct pScalare, Real rFactorScalare); //scalarea fa de un punct
Nimic Translaie(Real rTranslaie); //scalarea fa de un punct
//suplimentar se pot introduce orice funcii matematice Ex sin, cos, etc!!
} //real
//funcii prietene
Real Min (Real rA, rB); //ntoarce minimul dintre valorile rA i rB
Real Max (Real rA, rB); //ntoarce maximul dintre valorile rA i rB
Real Morf(Real rA, rB, rP = 0.5); //ntoarce rA * rP + rB * (1.0 - rP)
Real Abs (Real rA); //ntoarce valoarea absolut
Real RotX(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui X
Real RotY(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Real RotZ(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Z

- 57 -

Concluzii

Concluzii

Real Scalare(Punct pScalare, Real rFactorScalare); //scalarea fa de un punct


Real Translaie(Real rTranslaie); //scalarea fa de un punct
//Clasa punct utilizat pentru operaiile cu curbe i plase
//prefix Variabile: p
Clasa Punct
{
//variabile locale
Real rX, rY, rZ; //coordonatele punctului n R3
//operatorii
operator +, -, *, /, =, ==, +=, -=, *=, /=, min ,max, morf;
//toate funciile urmtoare suport orice combinaie de puncte i reali !!
Nimic Min (PunctpA, pB); //ntoarce minimul dintre valorile pA i pB
Nimic Max (PunctpA, pB); //ntoarce maximul dintre valorile pA i pB
Nimic Morf(PunctpA, pB, pP = 0.5); //ntoarce pA * pP + pB * (1.0 - pP)
Nimic Abs (PunctpA); //ntoarce valoarea absolut
Nimic RotX(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui X
Nimic RotY(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Nimic RotZ(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Nimic Scalare(Punct pScalare, Real rFactorScalare); //scalarea fa de un punct
Nimic Translaie(Punct pTranslaie); //scalarea fa de un punct
//suplimentar se pot introduce orice funcii matematice Ex sin, cos, etc!!
} //EndPunct
//funcii prietene
Punct Min (Punct pA, pB); //ntoarce minimul dintre valorile pA i pB
Punct Max (Punct pA, pB); //ntoarce maximul dintre valorile pA i pB
Punct Morf(Punct pA, pB, pP = 0.5); //ntoarce pA * pP + pB * (1.0 - pP)
Punct Abs (Punct pA); //ntoarce valoarea absolut
Punct RotX(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui X
Punct RotY(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Punct RotZ(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Punct Scalare(Punct p, pScalare, Real rFactorScalare); //scalarea fa de un punct
Punct Translaie(Punct p, pTranslaie); //scalarea fa de un punct
//Clasa BazVectorial utilizat la operaiile cu curbe i plase n spaiu
//prefix Variabile: bv
Clasa BazVectorial
{
operator +, -, *, /, =, +=, -=, *=, /=, min ,max, morf;
Punct pMin; //dreptunghiul nconjurtor punctul de start
Punct pMax; //dreptunghiul nconjurtor punctul de sfrit
Punct pDif; //pMax pMin
} //EndBazVectorial
//Clasa curb utilizat operaiile cu curbe
//prefix Variabile: c
Clasa Curb DerivatDin BazVectorial
{
//variabile locale
ntreg nNr; //numrul de puncte (vertex) n R3
//metode

- 58 -

Concluzii

Concluzii

Punct Operator[] (ntreg nNr); //ntoarce punctul numrul nNr = [1..nMax]


Punct Operator[] (Real rT); //ntoarce punctul nomnd curba rT = [0.0..1.0]
Punct Operator[] (ntreg nNr, Real rT); //ntoarce punctul nomnd elementul nNr
Nimic PuneLa(ntreg nNr, Punct p); //seteaz punctul numrul nNr = [1..nMax]
Punct Add(Punct p); //adun un punct
Punct Del(ntreg nNr); //terge punctul numrul nNr = [1..nMax]
Punct Add(ntreg nNr, Curb c); //adun o curb la poziia dat de nNr
Punct Add(Curb c); //adun o curb la sfrit
Nimic SchimbSensul(); //schimb sensul de parcurgere al curbei
Nimic FTrigonometric(); //face sensul de parcurs al curbei n sens trig.
Nimic FTrigonometric(); //face sensul de parcurs al curbei n sens trig.
Boolean EstenSensTrig(); //ntoarce ADEVRAT dac-i n sens trig.
Boolean EstenSensOrar(); //ntoarce ADEVRAT dac-i n sens orar
Boolean Estenchis(); //ntoarce ADEVRAT dac curba este nchis
} //Curb
//Clasa plas utilizat la operaiile cu suprafee
//prefix Variabile: l
Clasa Plas DerivatDin BazVectorial
Punct Operator[] (ntreg nU, nV); //ntoarce pt. nU=[1..nNrU], nV =[1..nNrV]
Punct IaDeLaUV(Real rU, rV); //ntoarce nomnd plasa rU,rV = [0.0..1.0]
Curb IaDeLaXY(Real rX, rY); //proiecteaz i returnez o list cu pt.
Punct Operator[] (ntreg nU, nV, Real rU, rV); //normeaz elem. NU, nV
Nimic PuneLa(ntreg nU, nV, Punct p); //seteaz punctul de la nU, nV
Nimic SchimbSensul(Boolean bU, bV); //schimb sensul de parcurgere al plasei
FamiliaDeCurbe IaDeLaXY(ntreg nPlasa, Real rX, rY); //proiecteaz i returnez o list
FamiliaDeCurbe IaDeLaU(Real rV); //convertete n curb pt rV
FamiliaDeCurbe IaDeLaV(Real rU); //convertete n curb pt rU
FamiliaDeCurbe IaDeLaX(Real rX); //convertete n curb pt rX
FamiliaDeCurbe IaDeLaY(Real rY); //convertete n curb pt rY
FamiliaDeCurbe IaDeLaZ(Real rZ); //convertete n curb pt rZ
Real Aria()
//calculeaz aria
Real LungimeaU(Real rV); //lungimea la n dir U la v = rV
Real LungimeaV(Real rU); //lungimea la n dir V la u = rU
Real LungimeaMaxU(); //lungimea maxim n dir U
Real LungimeaMaxV(); //lungimea maxim n dir V
} //EndPlas
//Clasa de baz pentru suprafeele discrete de tip real i masc
//prefix Variabile: bd
Clasa BazDiscret DerivatDin BazVectorial
{
ntreg nX; //numrul de puncte din matrice n direcia X
ntreg nY; //numrul de puncte din matrice n direcia Y
Real rStep; //pasul reprezentrii
Real IndexnRealPtX(ntreg nX); //conversia din index n real pe X
Real IndexnRealPtY(ntreg nY); //conversia din index n real pe Y
ntreg RealnIndexPtX(Real rX); //conversia din real n index pe X
ntreg RealnIndexPtY(Real rY); //conversia din real n index pe Y
} //EndBazDiscret
//prefix m
Clasa MascDiscret DerivatDin BazDiscret
{

- 59 -

Concluzii

Concluzii

operator &, |, -, &=, |=, -=, ;


//citire scriere date
Nimic PuneLa(ntreg nX, ntreg nY, Boolean bVal, ntreg nMetoda = PM_NONE); //pune un bool inteligent
Boolean Operator[] (ntreg nX, ntreg nY); //citete un bool
Nimic PuneLa(Real rX, Real rY, Boolean bVal, ntreg nMetoda = PM_NONE); //pune un punct
Boolean Operator[] (Real rX, Real rY); //citete un bool
Nimic PuneLaAll(Boolean bvaloare); //seteaz toat suprafaa
Nimic Revert(); //schimb toate valorile
} //EndMascDiscret
//prefix s
Clasa SuprafaDiscret DerivatDin BazDiscret
{
MascDiscret m; //masca asociat
operator +, -, *, /, +=, -=, *=, /=, =, MAX, MIN, ADD, SUB, MULTIPLY, DIVIDE, MORPH, FILSUS, FILJOS,
ECDSUS, ECDJOS;
//citire scriere date
Nimic PuneLa(ntreg nX, ntreg nY, Real rVal, ntreg nMetoda = PM_NONE, Real rMorph = 0.5);
Nimic PuneLa(Real rX, Real rY, Real rVal, ntreg nMetoda = PM_NONE, Real rMorph = 0.5);
Real Operator[] (ntreg nX, ntreg nY); //citete un punct
Real Operator[] (Real rX, Real rY); //citete un punct
Nimic PuneLaAll(Real rValoare); //seteaza toat suprafaa
}; //EndSuprafaDiscret
Enumerare ModulDePunere //enumerarea modurilor de combinare solid a SD i mtilor
{
PM_NONE, //sdRezultat = sdNou;
PM_MAX, //sdRezultat = max(sdVeche, sdNou);
PM_MIN, //sdRezultat = min(sdVeche, sdNou);
PM_ADD, //sdRezultat = sdVeche + sdNou;
PM_SUB, //sdRezultat = sdVeche - sdNou;
PM_MULTIPLY, //sdRezultat = sdVeche * sdNou;
PM_DIVIDE, //sdRezultat = sdVeche / sdNou;
PM_MORPH, //sdRezultat = morph(sdVeche, sdNou, rMorfValue);
PM_FILSUS, //sdRezultat = offset(offset(sdVeche, sdHead, bSus), sdHead, bJos);
PM_FILJOS, //sdRezultat = offset(offset(sdVeche, sdHead, bJos), sdHead, bSus);
PM_ECSDUS, //sdRezultat = offset(sdVeche, sdNou);
PM_ECDJOS, //sdRezultat = offset(sdVeche, sdNou);
}

- 60 -

Concluzii

Concluzii

3.5. Concluzii
n acest capitol s-a dorit prezentarea unitar a modului de
organizare i structurare a datelor, algoritmilor i aparatelor matematice.
Nu s-a folosit nici o metod clasic descris n manualele de prezentare a
limbajelor orientate pe obiecte ca Java [JAV], Pascal [PAS], C++[CPP],
deoarece folosind o metod clasic de structurare, prezentarea devine
fie prea complex, fie prea sumar.
Pe parcursul lucrrii se va ncerca structurarea conceptelor
descrise, ntr-un limbaj de tip pseudocod orientat pe obiecte, asemntor
cu C++ sau Java, sintaxa nefiind asemntoare n totalitate. Scopul
principal al acestei structurri este acela de a fi succint, flexibil i
sugestiv.
La sfrsitul fiecrui capitol se vor sintetiza n acest limbaj pur
matematic i algoritmic conceptele studiate n capitolul respectiv.
Analiznd listingul se poate observa c, dei succint enumerate, clasele
elementare Intreg, Boolean, Real i Punct sunt tratate destul de
consistent, permindu-se o multitudine de operatori pe tipul respectiv.
Diferenele fa de C++ i Java sunt:
contoarele sunt bazate pe numerotaia natural ncepnd de la 1, nu
de la 0;
cuvintele cheie au fost traduse din englez;
metodele i funciile sunt subliniate i scrise cu rou nchis;
toate obiectele trebuiesc prefixate cu prefixul tipului de dat pe care-l
reprezint;
funciile, metodele i variabilele triviale s-ar putea s nu fie
comentate;
pentru simplicitate nu s-a implementat tipul pointer sau adres;

n concluzie, s-a ncercat crearea unei structuri primare de clase


care se motenesc ntr-o manier logic i acoper n totalitate clasele
necesare acestei lucrri. Structura aceasta de clase poate fi enumerat
astfel:
int
bool
real
punct
BazVectorial
Curb (superioare)
Plasa (superioare)
BazDiscret
SuprafaaDiscret
Masca
Coleciile

i
b
r
p
bv
c, cs
l, ls
bd
s
m
f

- 61 -

Concluzii
SetDeCaractere

Concluzii
str

S-au pus bazele metodei de stocare a suprafeelor discrete (SD).


S-a ncercat s se cuprind sumar doar problematica stocrii i a
seturilor de opertori admisibili pe fiecare tip de date n parte, conversia
fiecrui tip de dat particular nefcnd parte din tema acestui capitol.
De asemenea, s-a introdus conceptul de masc, ca loc n care se
raporteaz diferite aspecte legate de modul de procesare al SD.

- 62 -

Concluzii

Concluzii

4. Metode de
generare i
modelare

- 63 -

Concluzii

Concluzii

4.1. Introducere
n acest capitol se vor prezenta pe larg cteva metode care stau la
baza generrii SD (o descriere a tuturor metodelor se poate gsi n
[DM01 11, DMW01 - 04]). De asemenea, se vor prezenta diferite
metode de conversie din alte tipuri de dat, specifice importului din alte
sisteme de proiectare i fabricaie, date importate n format plas
(suprafee discrete patrulatere) sau list cu triunghiuri (suprafee
discrete faetate) [DM 12 - 15], forma cea mai simpl de export a
solidelor.
De asemenea, se vor prezenta i defini filtrele, se vor prezenta i
exemplifica scopul i utilitatea lor n reducerea zgomotului introdus n
diferii pai de conversie i analiz, sau datorat diferitelor inflexiuni
particulare ale suprafeei date spre conversie i analiz.
Se va descrie un set de algoritmi de modelare: cel al calculului
nfurtorii i racordrii statice i dinamice, care nu sunt specifici numai
modelrii, ci i calculului suprafeei corecie de scul i a suprafeei de
contact, pentru scule generice de orice geometrie; se va face
particularizarea specific capetelor de frez, ca fiind suprafee de
revoluie.
De asemenea, se vor prezenta, n premier, trei algoritmi noi
concepui de ctre autor:
algoritmul de import i conversie a seturilor de puncte i curbe
furnizate fr nici o regul;
algoritmul de calculare a nfurtoarei i racordrilor cu forme de
orice geometrie (un caz particular al acestora sunt capetele de
scul suprafee de revoluie utilizate n frezare);
reeaua neuronal pentru antrenarea cu date care nu cad n
punctele reelei, utilizabil ca o metod generic de import a
tuturor datelor parametrice.

- 64 -

Concluzii

Concluzii

4.2. Metode de generare discrete


n aceast parte a capitolului se va discuta despre metodele de
generare i conversiile discrete. Acestea se pot defini foarte simplu, ca
fiind metodele care nu depind de coordonatele reale ale solidului, ci
numai de cele ntregi. Deci, algoritmii sunt de tipul operaiilor cu matrici,
unii dintre ei apropiindu-se foarte mult de algoritmii specifici prelucrrii
imaginilor.
Utilizarea acestor tehnici n proiectare i fabricaie ar prea bizar,
dar pe parcursul capitolului se vor aduce lmuririle necesare privind
utilitatea fiecrui algoritm.

4.2.1. Plan orizontal


Umplerea unei suprafee cu un plan orizontal este util n toate
cazurile n care se dorete umplerea ntregii SD (sau a unei poriuni) cu o
cot constant.
SuprafaDiscret.PuneOrizontal( //pune o valoare orizontal pe o SD
Real rValoare, //valoarea de umplere
ntreg nModulDePunere = PM_NONE, //tipul de operaie de combinare cu SD
Boolean bTotul = ADEVRAT //locul de punere peste tot sau numai n masc
)
{
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
Dac(bTotul SAU m[nI, nJ])
PuneLa(nI, nJ, rValoare, nModulDePunere);
} //PuneOrizontal

4.2.2. Plan nclinat


Rolul acestei metode este de a pune un plan nclinat care trece prin
trei puncte.
SuprafaDiscret.PunePlan3P( //pune un plan nclinat pe o SD
Punctp1, p2, p3, //cele 3 puncte prin care trece planul
ntreg nModulDePunere = PM_NONE, //tipul de operaie de combinare cu SD
Boolean bTotul = ADEVRAT //locul de punere peste tot sau numai n masc
)
{
CPlan3Puncte pl3p; //Creeaz un obiect de tip plan
pl3p.Iniializeaz(p1, p2, p3); //Iniializeaz planul cu cele trei puncte
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
Dac(bTotul SAU m[nI, nJ])
PuneLa(nI, nJ, pl3p.IaDeLaZ(IndexnRealPtX(nI), IndexnRealPtY(nJ)), nModulDePunere);
}/PunePlan3P

- 65 -

Concluzii

Concluzii

Not: Clasa CPlan3Puncte nu a fost discutat. S-au folosit dou


metode ale ei, una (Iniializeaz) care o iniializeaz cu un set de trei
puncte p0, p1, p2 i alta (IaDeLaZ) care returneaz valoarea Z pentru un
X i Y. Implementarea acestei clase nu face parte din acest lucrare.

4.2.3. Funcie Z(x, y)


Rolul acestei metode este de a pune o funcie injectiv Z(x, y) pe
suprafaa discret.
SuprafaDiscret.PuneFuncie( //pune o funcie Z(x, y) pe o SD
SetDeCaractere strFuncia, //funcia care trebuie pus
ntreg nModulDePunere = PM_NONE, //tipul de operaie de combinare cu SD
Boolean bTotul = ADEVRAT //locul de punere peste tot sau numai n masc
)
{
CFuncie fnFuncia; //Creaz un obiect de tip funcie
fnFuncia.Iniializeaz(strFuncia); //Iniializeaz funcia cu expresia dat
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
Dac(bTotul SAU m[nI, nJ])
PuneLa(nI, nJ, fnFuncia.IaDeLaZ(IndexnRealPtX(nI), IndexnRealPtY(nJ)), nModulDePunere);
} //PuneFuncie

Not: Clasa CFuncie nu a fost discutat. S-au folosit dou metode ale
ei, una (Iniializeaz) care o iniializeaz cu un SetDeCaractere de tipul
Z(x, y) = SIN(X/100.0) + COS(Y/200.0) i o alta (IaDeLaZ) care
returneaz valoarea ei pentru un X i Y. Implementarea acestei clase nu
face partre din acest lucrare.

4.2.4. Interpolarea prin seciuni


Interpolarea prin seciuni este o metod evoluat de generare
discret a SD. Aceasta se definete prin trasarea unor seciuni, prin care
se dorete ca suprafaa s treac, marcarea lor n masc (pentru a
cunoate care zone sunt active) i interpolarea lor prin linii sau alte curbe
mai evoluate.
SuprafaDiscret.PuneInterpolareXDir( //pune o alt suprafa interpolat prin seciuni
SuprafaDiscret sdSeciuni, //suprafaa care conine seciunile
ntreg nOrdinCurbei= 1, //Ordinul curbei de interpolare
ntreg nModulDePunere = PM_NONE, //tipul de operaie de combinare cu SD
Boolean bTotul = ADEVRAT //locul de punere peste tot sau numai n masc
)
{
CFuncie fnFuncia; //Creaz un obiect de tip funcie
Punct pCurent;
Curb cInterpolator;
fnFuncia.Iniializeaz(strFuncia); //Iniializeaz funcia cu expresia dat
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
{
cInterpolator.terge();

- 66 -

Concluzii

Concluzii

PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)


Dac(sdSeciuni.m[nI, nJ])
{
pCurent(0, IndexnRealPtY(nJ), sdSeciuni[nI, nJ])
cInterpolator.Adun(pCurent);
} //Dac
cInterpolator.Interpoleaz(nY, nOrdinCurbei); //interpoleaz
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
Dac(bTotul SAU m[nI, nJ])
PuneLa(nI, nJ, cInterpolator[nJ], nModulDePunere);
} //PentruFiecare
} //PuneInterpolareXDir

NOT: Se poate observa c s-au folosit dou noi metode ale clasei
Curb, una care creaz i interpoleaz o curb cunoscnd un set de
puncte de control i o alta care terge toate punctele dintr-o list cu
puncte. De asemennea, funcia geamn PuneInterpolareYDir nu a fost
prezentat.
Algoritmii din aceast familie pot fi gsii ca produs shareware la
adresa
ftp.simtel.net\pub\msdos\cad\tmesh0.zip
sau
ftp.simtel.net\pub\msdos\cad\tpck20lt.zip i sunt descrii pe larg n
[DM05..DM11].

- 67 -

Concluzii

Concluzii

Figura
4.13
seciuni pe SD

Interpolare

prin

interpolare liniar
interpolare cubic
diferena dintre cele dou

Exemple
procesate
utiliznd
TechnoCAD V2.0 si DSView V1.0.

n figurile urmtoare se pot observa diferenele, pentru acelai set


de curbe de control (o linie nclinat la 100.0 un V la 0.0 i un sinus la
100.0): dou interpolri - una liniar (a), una superioar de ordinul trei
(b) i diferena relativ dintre cele dou (c) - nuanele de albastru sunt
utilizate pentru a figura valoarea abaterii negative, nuanele de verde
sunt nspre zero rou nspre plus (palete de analiz standard curcubeu).

4.2.5. Combinarea cu o alt SD


Combinarea cu o alt suprafa este o metod de modelare
important, fiind utilizat n crearea suprafeelor superioare complexe
care conin diferite tehnici de modelare i/sau import.
Avnd un set bogat de combinare a solidelor (prezentat mai pe larg
n figura 3.6), algoritmul devine trivial.
SuprafaDiscret.Combin( //pune o funcie Z(x, y) pe o SD
SuprafaDiscret sdComb, //sd utilizat la combinare
ntreg nModulDePunere = PM_NONE, //tipul de operaie de combinare cu SD
Boolean bTotul = ADEVRAT //locul de punere peste tot sau numai n masc
)
{
CFuncie fnFuncia; //Creaz un obiect de tip funcie
fnFuncia.Iniializeaz(strFuncia); //Iniializeaz funcia cu expresia dat
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
Dac(bTotul SAU m[nI, nJ])
PuneLa(nI, nJ, sdComb[nI, nJ], nModulDePunere);
} //EndCombin

- 68 -

Concluzii

Concluzii

Un exemplu de combinare a peste trei sute de plase importate din


EdgeCAM V3.0 se poate observa n figura 4.2 a, precum i o analiz a
materialului neprelucrat la o frezare cu cap sferic de D = 20.0 mm, n
figura 4.2 b.

Figura 4.14 Combinarea solidelor. Exemplu de combinare a 300 SD.


Zonele albastre sunt date de zonele neprelucrabile din cauza
interferenei (figura b).

4.2.6. Exemple
discutate

despre

metodele

Pentru a exemplifica cteva din metodele expuse se va scrie un


program minimal i se vor genera cteva figuri, pentru exemplificarea
conceptelor introduse.
NimicProgram()
{
Punct p1(0.0, 0.0, 0.0); //punctul 1;
Punct p2(1.0, 0.0, 1.0); //punctul 2;
Punct p3(0.0, 1.0, 1.0); //punctul 3;
SuprafaDiscret dsTest; //creaz o SD
//O iniializeaz
dsTest.Iniializeaz(200, 200, (-100.0, -100.0, -100.0), (100.0, 100.0, 100.0), Test);
dsTest.PuneLaOrizontal(0.0); //Fig.4.1 s-a utilizat predefinit PM_NONE, ADEVRAT
dsTest.Deseneaz(Fig. 4.3 a); //Deseneaz figura 4.1
dsTest.PuneLaPlan3p(p0, p1, p2, PM_MAX); //Fig.4.2
dsTest.Deseneaz(Fig. 4.3 b); //Deseneaz figura 4.2
dsTest.PuneLaFuncie(, PM_MAX); //Fig.4.3
dsTest.Deseneaz(Fig. 4.3 c); //Deseneaz figura 4.3
} //EndProgram

- 69 -

Concluzii

Concluzii

Figura
4.15 Exemple
modelare elementare

de

umplere cu un plan orizontal


(PM_NONE);
umplere cu un plan nclinat
(PM_MAX);
umplere
cu
(PM_MAX);

dou

funcii

4.2.7. Set de puncte


Pentru acest tip de interpolare s-a dezvoltat un algoritm original,
care rezolv interpolarea unui set de date, date n spaiu dup nici o
regul (adic nu sunt de-a lungul nici unei direcii de generare X, Y, Z, U,
V) (eng: cloudy set of points). Acest algoritm este prezentat n premier
aici. Utilitatea lui este fr granie, fiind deopotriv utilizabil n
proiectarea asistat, la conversia n solizi a datelor provenite de la
dispozitivele de palpat sau scanat, precum i n cartografie, la conversia
datelor provenite de la GPS (geographical positioning system)
(implementat n TechnoPoint V2.0, shareware
la
adresa
ftp.simtel.net\pub\msdos\cad\
tpnt0.zip
sau
ftp.simtel.net\pub\msdos\cad\tpck20lt.zip i descris pe larg de ctre
autor n [DM05...DM11]).

- 70 -

Concluzii

Concluzii

Algoritmul poate fi extins foarte uor i la convertirea curbelor,


discretizndu-le cu un pas constant (folosind metoda Punct
Curb.IaDeLaT(Real rT)).
De asemenea, pentru fiecare punct s-a asigurat posibilitatea setrii
unei ponderi, deci pentru fiecare punct poate fi modificat influena
acestuia n suprafaa rezultant.
De menionat c algoritmul rezolv ORICE set de puncte i/sau
curbe n spaiu. n implementarea algoritmului se va presupune c
punctele au o valoare a ponderii asociat ntr-o list cu reali, care nu a
fost discutat n capitolele precedente.
NimicAdunOCurb( //adun o curb la lista cu p. pt conv.
Curb cListaCuPuncte, //Lista cu puncte pt. conversie
FamiliaDeReali frListaCuPonderi, //Lista cu ponderi pt. fiecare p.
Curba CurbaCurent, //Curba care trebuie convertit
Real rPonderea, //Ponderea pt. curba curent
Real rPas //pasul de parcurgere
)
{
ntreg nMax = CurbaCurent.IaDeLaL() / rPas + 0.5; //nr de puncte
PentruFiecare(ntreg nI = 0; nI <= nMax, nI++)
{
cListaCuPuncte.Adun(CurbaCurent.GetT(nI/nMax));
cListaCuPonderi.Adun(rPonderea);
} //PentruFiecare
} //EndAdunOCurb
NimicSuprafaDiscret.InterpoleazPrinPuncte( //interpoleaz
Curb cListaCuPuncte, //Lista cu puncte pt. conversie
FamiliaDeReali frListaCuPonderi, //Lista cu ponderi pt. fiecare p.
FamiliaDeCurba fcAlteCurbe, //Alte Curbe care trebuiesc convertite
FamiliaDeReali frPonderiPtCurbe, //Ponderile pt fiecare curb
FamiliaDeReali frPaiiPtCurbe, //Paii pt fiecare curb
Real rRigiditatea //Rigiditatea suprafeei rezultate [0..1]
)
{
//convertete rigiditatea ntr-o form utilizat de algoritm
Dac(rRigiditatea<=0.5)
rRigiditatea:=2.0 * rRigiditatea;
Altfel rRigiditatea:=1.0 / (2.0 * (1.0 - rRigiditatea));
//Adun toate curbele poteniale la lista cu ponderi n funcie de
//ponderiile i paii asociai lor
PentruFiecare(ntreg nI = 0; nI <= nMax, nI++)
AdunOCurb(cListaCuPuncte, frListaCuPonderi, fcAlteCurbe[nI],
frPonderiPtCurbe[nI], frPaiiPtCurbe[nI]);
//interpoleaz SD
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
{
Punct pPunctulCurent(IndexnRealPtX(nI), IndexnRealPtY(nJ), 0.0);
Real rDist, rDistSpecial = 0.0, rSumaDistSpecial = 0.0, rZ = 0.0;
FamiliaDeReali frTemp;
PentruFiecare(ntreg nPunctul = 1; nPunctul <= cListaCuPuncte.nNr; nPunctul++)

- 71 -

Concluzii

Concluzii
{
rDist = DistXY(pPunctulCurent, cListaCuPuncte[nPunctul));
rDistSpecial:=Pow(1.0 / rDist, rRigiditatea)*
frListaCuPonderi[nPunctul];
rSumaDistSpecial = rSumaDistSpecial + rDistSpecial;
frTemp.Adun(rDistSpecial);
} //PentruFiecare

PentruFiecare(ntreg nPunctul = 1; nPunctul <= cListaCuPuncte.nNr; nPunctul++)


{
rZ = rZ + cListaCuPuncte[nPunctul) * frTemp[nPunctul);
} //PentruFiecare
//Ultima operaie
rZ = rZ / rSumaDistSpecial;
} //PentruFiecare
} //EndInterpoleazPrinPuncte

NOT: Clasa FamiliaDeReali nu a fost discutat; utilizarea ei este exact


ca si Curb, doar c nu stocheaz puncte, ci valori reale.

Figura 4.16 Interpolarea prin puncte:


rigiditate 0.0;
b) rigiditate 0.5;
c) rigiditate 1.0
d) set de date palpator, interpolare
solid prin set de puncte
- 72 TechnoPoint V2.0

Concluzii

Concluzii

4.2.8. Interpolarea capetelor de scule


Capetele de scul au o importan deosebit n analizele i
generrile de fiiere NC din capitolele ulterioare, precum i n racordrile
i calculul suprafeei nfurtoare necesare realizrii suprafeei
poansonului din suprafaa matriei sau invers.
Din aceste considerente, s-a ncercat s se cuprind o varietate ct
mai mare de capete de scul, pentru a acoperi toate procesrile uzuale.

Figura 4.17 Diferite scule i valorile lor dup conversia n suprafa


discret

n figura 4.5 s-au reprezentat cteva generatoare ale unor scule


uzuale (o reprezentare mai complet se poate gsi n figura 3.1).
Prezentarea aceasta ajut la explicarea i exemplificarea
conceptelor necesare unei implementri generice a algoritmului, care
permite utilizarea oricrei geometrii injective, care nu trebuie s fie
neaprat o geometrie bazat pe o suprafa de revoluie.
Pentru simplificare se v-a utiliza o suprafa de revoluie. Se va
presupune c, curba generatoare este o curb n planul XY, i se va folosi
metoda IaDeLaY(Real rX), care ntoarce valoarea cea mai mic (spre
exemplu), crend seturi de blipsuri ngroate n figur.
De menionat c obiectul asociat capului de scul este o SD, care
are acelai pas cu SD care trebuie ofsetat sau racordat. Deci, n cazul
SD discretizate cu diferii pai, trebuie create diferite discretizri ale
capetelor de scul.
NimicSuprafaDiscret.InitCapDeScul( //Creaz SD bazndu-se pe o geom. de scul
Curb cCapDeScul, //Curba care descrie geometria capului

- 73 -

Concluzii

Concluzii

Real rPas //Pasul de discretizare


)
{
Real rRazaCurent, rRaza = cCapDeScul.IaDeLaX();
ntreg nNr = rRaza / rPas + 0.5;
Iniializeaz(nNr, nNr, (-rRaza, -rRaza, 0.0), (rRaza, rRaza, 0.0), Scula);
m.PuneLaAll(FALS); //pune n toat masca fals
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
{
rRazaCurent = Sqrt(IndexnRealPtX(nI)* IndexnRealPtX(nI) + IndexnRealPtY(nJ) *
IndexnRealPtY(nJ));
Dac(rRazaCurent < rRaza)
{
PuneLa(nI, nJ, cCapDeScul.IaDeLaY(rRazaCurent));
m.PuneLa(ADEVRAT);
} //Dac
} //PentruFiecare
} //EndInitCapDeScul

Aceast metod asigur crearea i generarea sculelor pentru


frezare. Similar se pot crea SD care conin electrozi, la analizarea
prelucrrii prin electroeroziune.

4.2.9. Calculul SD nfurtoare i SD


de racordare statice
Principalii beneficiari ai capetelor de scul sunt algoritmii de
racordare i de calcul ai nfurtoarei.
Dorind a trata generic problema, se poate spune c algoritmul
enunat n continuare calculeaz SD nfurtoare, pentru orice
geometrie a SD i a sculei, deci se poate vorbi de racordri care nu sunt
sferice, ci de orice alt form. Algoritmul are abilitatea de a calcula
nfurtoarea i a face calculul total de interferen ntr-un singur pas.
NimicSuprafaDiscret.InitnfurtoareStatic( //nfoar n spaiu o SD scul
SuprafaDiscret sdSupafaa, //suprafaa care trebuie nfurat
SuprafaDiscret sdScul, //geometria capului utilizat
Boolean bDireciaSus = ADEVRAT //nfurtoarea n sus sau n jos
Boolean bTotul = ADEVRAT //toat suprafaa sau n masc
)
{
Real rtemp, rZ;
PentruFiecare(ntreg nSDX = 1; nSDX <= nX; nSDX++)
PentruFiecare(ntreg nSDY = 1; nSDY <= nY; nSDY++)
{
Dac(bDireciaSus)
rTemp = -1e100;
Altfel
rTemp = 1e100;
PentruFiecare(ntreg nSCX = 1; nSCX <= nX; nSCX++)

- 74 -

Concluzii

Concluzii

PentruFiecare(ntreg nSCY = 1; nSCY <= nY; nSCY++)


Dac(bTotul SAU sdSuprafaa.m[nSCX, nSCY]) I
sdScul.m[nSCX, nSCY] I nSDX + nSCX < nX I nSDY + nSCY < nY)
Dac(bDireciaSus)
{
rZ=sdSuprafa[nSDX+nSCX, nSDY+nSCY]+sdSCul[nSCX, nSCY]);
Dac(rZ > rTemp)
rTemp = rZ;
} //Dac
Altfel
{
rZ=sdSuprafa[nSDX+nSCX, nSDY+nSCY]-sdSCul[nSCX, nSCY]);
Dac(rZ < rTemp) rTemp = rZ;
} //Altfel
PuneLa(nSDX, nSDY, rTemp);
} //PentruFiecare
} //EndInitCapDeSculStatic

Se poate observa uor c algoritmul este de complexitate O(n 4)


(patru cicluri PentruFiecare), deci presupune calcule ndelungate. n
prezent, autorul folosete o versiune mult mbuntit (de peste 10 ori
mai rapid), dar complexitatea acestuia depete cadrul lucrrii. Timpul
necesar algoritmului prezentat este de domeniul zecilor de minute,
pentru o reprezentare de 1000 x 1000 mm i o scul de 50 x 50 mm, iar
cu cel optimizat, de numai 2 minute. Aceste tipuri de optimizri ar
conduce la o implementare de peste 1000 de linii de cod, ceea ce ar
reduce destul de mult simplitatea algoritmului prezentat.
Calculul suprafeei de racordare se execut la fel, dar n direcia
opus, folosind pentru acesta comutatorul bDireciaSus.
Calculul nfurtoarei utiliznd o masc se poate face cu acelai
algoritm, folosind comutatorul bTotul.
Calculul suprafeei de racordare este simplu. De menionat c
suprafaa de racordare cu o scul static (care nu-i modific diametrul)
este utilizat n fabricaie la simularea suprafeei teoretice de contact
(backoffset), care reprezint suprafaa teoretic absolut ce poate fi
obinut, folosind o scul de orice form i lund n considerare calculul
total de interferen. Fcnd o diferen discret ntre suprafaa de
racordare i cea normal se va obine suprafaa cu materialul nefrezabil.
NimicSuprafaDiscret.InitRacordareStatic( //nfoar n spaiu o SD scul
SuprafaDiscret sdSupafaa, //suprafaa care trebuie nfurat
SuprafaDiscret sdScalare, //geometria coeficienilor de scalare
SuprafaDiscret sdScul, //geometria capului utilizat
Boolean bDireciaSus //nfurtoarea n sus sau n jos
Boolean bTotul //toat suprafaa sau n masc
)
{
SuprafaDiscret sdTemp;
sdTemp.InitnfurtoareStatic(sdSupafaa, sdScalare, sdScul, bDireciaSus, bTotul);
InitnfurtoareStatic(sdTemp, sdScalare, sdScul, !bDireciaSus, bTotul);

- 75 -

Concluzii

Concluzii

} //EndInitRacordareStatic

4.2.10. Calculul SD nfurtoare i SD


de racordare dinamice
Algoritmul prezentat n continuare are avantajul de a combina
avantajele algoritmului precedent cu facilitatea de a putea modifica raza
sculei dinamic, n funcie de poziia capului de frezare n spaiu. Valorile
razei sunt citite dinamic de pe o suprafa discret care conine valoarea
razei sau valoarea factorului de scalare care se aplic asupra capului.
Acest tip de algoritm este utilizat n cazul n care se doresc grosimi de
perei variabile sau raze de racordare variabile.
NimicSuprafaDiscret.InitnfurtoareDinamic( //nfoar n spaiu o SD scul
SuprafaDiscret sdSupafaa, //suprafaa care trebuie nfurat
SuprafaDiscret sdScalare, //geometria coeficieniilor de scalare
SuprafaDiscret sdScul, //geometria capului utilizat
Boolean bDireciaSus //nfurtoarea n sus sau n jos
Boolean bTotul //toat suprafaa sau n masc
)
{
Real rtemp, rZ;
PentruFiecare(ntreg nSDX = 1; nSDX <= nX; nSDX++)
PentruFiecare(ntreg nSDY = 1; nSDY <= nY; nSDY++)
{
Dac(bDireciaSus)
rTemp = -1e100;
Altfel
rTemp = 1e100;
rScala = sdScalare[nSDX, nSDY];
sdScul.Scaleaz(rScal); //!! Aici scalarea se face cu recrearea SD !!
PentruFiecare(ntreg nSCX = 1; nSCX <= nX; nSCX++)
PentruFiecare(ntreg nSCY = 1; nSCY <= nY; nSCY++)
Dac(bTotul SAU sdSuprafaa.m[nSCX, nSCY]) I
sdScul.m[nSCX, nSCY] I nSDX + nSCX < nX I nSDY + nSCY < nY)
Dac(bDireciaSus)
{
rZ=sdSuprafa[nSDX + nSCX, nSDY + nSCY] + sdSCul[nSCX, nSCY]);
Dac(rZ > rTemp) rTemp = rZ;
} //Dac
Altfel
{
rZ = sdSuprafa[nSDX + nSCX, nSDY + nSCY]-sdSCul[nSCX, nSCY]);
Dac(rZ < rTemp) rTemp = rZ;
} //Altfel
PuneLa(nSDX, nSDY, rTemp);
} //PentruFiecare
} //EndInitCapDeSculDinamic

- 76 -

Concluzii

Concluzii

Aceast metod este foarte simpl i asigur o varietate de


echidistanri i racordri, autorul considernd-o unic la ora actual i
aproape imposibil de realizat folosind alte tehnici de stocare a suprafeei.
n fabricaie, algoritmii de racordare i echidistanare cu calculul total de
interferen scul-semifabricat sunt, pe departe, cei mai compleci. Cea
mai important utilizare a lor este aceea de a converti SD n trasee de
scul, care se poate observa c devine foarte simpl dup aplicarea
acestei corecii de echidistanare.
Avnd suprafaa echidistant, problema racordrilor globale sau
locale, dinamice, cu orice geometrie, devine un algoritm banal.
Racodrile n sus se execut echidistannd prima oar n sus, apoi
suprafaa echidistant se echidistaneaz n jos, rezultnd SD de pornire,
care este racordat cu geometria dorit. Racordrile n direcie contrar
se execut pornind echidistanarea n jos, urmat de cea n sus.
NimicSuprafaDiscret.InitRacordareDinamic( //nfoar n spaiu o SD scul
SuprafaDiscret sdSupafaa, //suprafaa care trebuie nfurat
SuprafaDiscret sdScalare, //geometria coeficienilor de scalare
SuprafaDiscret sdScul, //geometria capului utilizat
Boolean bDireciaSus, //nfurtoarea n sus sau n jos
Boolean bTotul //toat suprafaa sau n masc
)
{
SuprafaDiscret sdTemp;
sdTemp.InitnfurtoareDinamic(sdSupafaa, sdScalare, sdScul, bDireciaSus, bTotul);
InitnfurtoareDinamic(sdTemp, sdScalare, sdScul, !bDireciaSus, bTotul);
} //EndInitRacordareDinamic

- 77 -

Concluzii

Concluzii

Figura 4.18 Exemple de nfurtori i racordri statice (coloana 1) i


dinamice (coloana 2)
S-au prezentat suprafeele dup racordare, cu culoarea n funcie de
valoarea normalei, plus materialul adugat n valoare absolut, i cteva
seciuni solide.
- 78 -

Concluzii

Concluzii

4.3. Filtre
Filtrele sunt metode auxiliare, care au scopul principal de a cura
SD de eventualele zgomote create n diferite procese de conversie sau
interpolare, sau sunt folosite n algoritmi de export, pentru a asigura
exportul unor curbe continue lipsite de zgomot.
Acest tipuri de filtre sunt n general folosite de algoritmii de
conversie vectorial, n cazul n care nu sunt descrise pe suprafeele
stocate vectorial funcii de proiecie real GetZ(real rX, real rY).

4.3.1. Filtre de creare


Aceste filtre creaz un punct ca medie a vecinilor, n cazul n care el
este sub o valoare, iar vecinii lui ntr-o direcie sunt mai mari dect acea
valoare. Se poate observa c toi algoritmii de filtrare returneaz
numrul de puncte corectate.
ntreg SuprafaDiscret.CreazMasc2()
{
ntreg nIndex = 0;
PentruFiecare(ntreg nSDX = 2; nSDX < nX; nSDX++)
PentruFiecare(ntreg nSDY = 2; nSDY < nY; nSDY++)
{
Dac(m[nSDX 1, nSDY] I m[nSDX + 1, nSDY])
{
PuneLa(nSDX, nSDY, ([nSDX 1, nSDY] + [nSDX + 1, nSDY])/2);
m.PuneLa(nSDX, nSDY, ADEVRAT);
nIndex++;
} //Dac
Dac(m[nSDX, nSDY 1] I m[nSDX, nSDY + 1])
{
PuneLa(nSDX, nSDY, ([nSDX, nSDY 1] + [nSDX, nSDY + 1])/2);
m.PuneLa(nSDX, nSDY, ADEVRAT);
nIndex++;
} //Dac
} //PentruFiecare
ntoarce(nIndex);
} //EndCreazMasc2

Un algoritm geamn este acela care utilizeaz o analiz


suplimentar a unui vecin de pe direcia perpendicular, pentru a-l face
mai constrictiv, dar i mai realist.
ntreg SuprafaDiscret.CreazMasc3()
{
ntreg nIndex = 0;
PentruFiecare(ntreg nSDX = 2; nSDX < nX; nSDX++)
PentruFiecare(ntreg nSDY = 2; nSDY < nY; nSDY++)
{
Dac(m[nSDX 1, nSDY] I m[nSDX + 1, nSDY] I m[nSDX, nSDY + 1])
{

- 79 -

Concluzii

Concluzii

PuneLa(nSDX, nSDY, ([nSDX1, nSDY] + [nSDX + 1, nSDY] + [nSDX, nSDY 1]) / 3.0);
m.PuneLa(nSDX, nSDY, ADEVRAT);
nIndex++;
} //Dac
Dac(m[nSDX 1, nSDY] I m[nSDX + 1, nSDY] I m[nSDX, nSDY 1])
{
PuneLa(nSDX, nSDY, ([nSDX1, nSDY] + [nSDX+1, nSDY] + [nSDX, nSDY-1]) / 3.0);
m.PuneLa(nSDX, nSDY, ADEVRAT);
nIndex++;
} //Dac
Dac(m[nSDX, nSDY 1] I m[nSDX, nSDY + 1] I m[nSDX + 1, nSDY])
{
PuneLa(nSDX, nSDY, ([nSDX, nSDY-1] + [nSDX, nSDY + 1] + [nSDX+1, nSDY])/3.0);
m.PuneLa(nSDX, nSDY, ADEVRAT);
nIndex++;
} //Dac
Dac(m[nSDX, nSDY 1] I m[nSDX, nSDY + 1] I m[nSDX - 1, nSDY])
{
PuneLa(nSDX, nSDY, ([nSDX, nSDY-1] + [nSDX, nSDY+1] + [nSDX-1, nSDY]) / 3.0);
m.PuneLa(nSDX, nSDY, ADEVRAT);
nIndex++;
} //Dac
} //PentruFiecare
ntoarce(nIndex);
} //EndCreazMasc3

Se va opri aici generarea listingului, ncercndu-se n continuare s


se expun doar numele i destinaia filtrului respectiv, i considerndu-se
implementarea trivial.
Filtrul ntreg CreazMasc4(), folosit la eliminarea punctelor
singulare, este cel mai nedistructiv i foarte utilizat.
Similar cu cele trei filtre expuse aici se definesc trei filtre utilizate
pentru asigurarea continuitii i crearea curbelor care nu conin zgomot
n algoritmii de export a curbelor echipoteniale. S-au imaginat trei
metode, care au acelai nume, dar conin un parametru de tip real. Se
listeaz n continuare doar ntreg CreazValoare2(Real rZ).
ntreg SuprafaDiscret.CreazValoare2(Real rZ)
{
ntreg nIndex = 0;
PentruFiecare(ntreg nSDX = 2; nSDX < nX; nSDX++)
PentruFiecare(ntreg nSDY = 2; nSDY < nY; nSDY++)
{
Dac([nSDX 1, nSDY] > rZ I [nSDX + 1, nSDY] > rZ I [nSDX, nSDY] < rZ)
{
PuneLa(nSDX, nSDY, ([nSDX 1, nSDY] + [nSDX + 1, nSDY]) / 2.0);
m.PuneLa(nSDX, nSDY, ADEVRAT);
nIndex++;
} //Dac
Dac([nSDX, nSDY 1] > rz I [nSDX, nSDY + 1] > rZ I [nSDX, nSDY] < rZ)
{
PuneLa(nSDX, nSDY, ([nSDX, nSDY 1] + [nSDX, nSDY + 1]) / 2.0);
m.PuneLa(nSDX, nSDY, ADEVRAT);

- 80 -

Concluzii

Concluzii

nIndex++;
} //Dac
} //PentruFiecare
ntoarce(nIndex);
} //EndCreazValoare2

Un filtru mai evoluat este acela care umple cu o valoare (i implicit


masca), eliminnd zgomote de form mai rebel, numrnd nodurile
adiacente mai mici de o valoare dat i umplnd suprafaa unde acest
numr este mai mic dect o valoarea admisibil. Acest algoritm este
utilizat i n jocul de Go, la numrarea pieselor componente ale unui
grup. Este lesne de neles c, complexitatea acestui filtru nu este mic,
necesitnd chemri recursive i marcri ntr-o masc auxiliar; din
aceste considerente nu va fi exemplificat n cod surs.
ntreg SuprafaDiscret.CreazMasc(ntreg nMaxPuncte);
ntreg SuprafaDiscret.CreazValoare(ntreg nMaxPuncte, Real rZ);

4.3.2. Filtre de distrugere


Inversnd logica din filtrele de creare se pot genera filtrele de distrugere,
obinndu-se astfel familia de filtre.
ntreg SuprafaDiscret.DistrugeMasc2();
ntreg SuprafaDiscret.DistrugeMasc3();
ntreg SuprafaDiscret.DistrugeMasc4();
ntreg SuprafaDiscret.DistrugeMasc(ntreg nMaxPuncte);
ntreg SuprafaDiscret.DistrugeValoare2(Real rZ);
ntreg SuprafaDiscret.DistrugeValoare3(Real rZ);
ntreg SuprafaDiscret.DistrugeValoare4(Real rZ);
ntreg SuprafaDiscret.DistrugeValoare(ntreg nMaxPuncte, Real rZ);

Cteva exemple despre Filtre se dau n figura urmtoare, unde sau prezentat cteva conversii n curbe a unor SD, cu i fr filtrare.

- 81 Figura 4.19 Exemple de export a unor zone critice de detecie a zonelor


plane pe solide, importate din MasterCAM i MicroStation (aceeai analiz,
cu i fr filtrri)

Concluzii

Concluzii

4.4. Metode de generare


vectorial
Metodele de generare vectorial sunt foarte importante n
conversia datelor din alte modelatoare, care, n general, se bazeaz pe
aceast metod de modelare.
n general, suprafeele provenite sunt de tip plas (format DXF) sau
format list cu triunghiuri (format STL). Acestea sunt cele mai simple
formate posibile i au marele avantaj c sunt foarte uor de generat
metode de import - export care s le suporte.
Un alt mare avantaj al reprezentrilor de nivel sczut este acela c
se pot defini un set destul de decent (din punct de vedere al
performanei) de metode de rezolvare neiterative a proieciilor i
seciunilor.
Marele lor dezavantaj este acela c distrug orice informaie logic
despre modul de generare al unui solid, distrug eventualele informaii
parametrice, care n prezent sunt suportate numai de formatele STEP i
SAT (ACIS).
n concluzie, pentru acest tip de date de intrare elementare se pot
defini, fr nici o problem, metode de conversie relativ simple i viabile
din punct de vedere al performanei.
NimicSuprafaDiscret.InitPlas( //convertete o plas
CPlasa lIn //lista cu plasele de intrare
)
{
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
if (lIn.AreOProiecie(IndexnRealPtX(nI), IndexnRealPtY(nJ))
PuneLa(nI, nJ, lIn.IaDeLaZ(IndexnRealPtX(nI), IndexnRealPtY(nJ)), PM_MAX);
} //InitPlas
NimicSuprafaDiscret.InitPlase( //convertete o familie de plase
FamiliaDePlase flIn //lista cu familia de plasele de intrare
)
{
PentruFiecare(ntreg nI = 1; nI <= flIn.nNr; nI++)
InitPlas(flIn[nI]);
} //InitPlase

Nu s-au discutat listele cu date de tip triunghi, deoarece acestea se


pot trata ntr-un mod similar.

- 82 -

Concluzii

Concluzii

Metodele de conversie discutate asigur un set decent de conversii,


dar nu i eficient, n cazul n care pentru suprafeele care trebuiesc
convertite solidul nu poate sau nc nu sunt generate metode de
conversie eficiente n format triunghiular sau patrulater, ci doar foarte
lente metode de proiecie iterative. Aceste condiii duc la timpi de
conversie care sunt de domeniul orelor, n locul celor prezentate, care
sunt de domeniul secundelor.
Deci, din punct de vedere al eficenei se consider ca fiind
inacceptabil. Pentru acest tip de date a fost imaginat un algoritm inspirat
din reelele neuronale, care privesc SD ca pe o reea care se dorete a
fi antrenat cu datele provenite dintr-o reprezentare de curbe B-Spline
(spre exemplu) limitat de curbe (trimmed B-Spline). Acest algoritm este
larg utilizat de autor n conversia din toate formatele de nivel superior,
fiind prezentat n continuare, n premier.

Figura 4.20 Exemplificarea metodei de antrenare a reelei neuronale


asociat suprafeei discrete, reprezentarea curbelor echiparametrice
U, V, a punctelor de intersecie
Algoritmul, utilizeaz analiza punctelor care sunt n vecintatea
unui punct.
Algoritmul este ntr-un fel asemntor cu cel al interpolrii prin
puncte. Diferena de baz este c algoritmul de interpolare prin set de
puncte opereaz foarte bine cnd sunt relativ puine puncte, timpii de
rulare crescnd linear cu numrul de puncte. Algoritmul prezentat n
prezent este utilizat pentru antrenarea unui punct din 2..10 puncte de
intrare.
Acest algoritm este destul de precis, asigurnd pentru o medie de
trei puncte de antrenare pe punct al SD o precizie medie de 0,001 mm,
ceea ce se consider satisfctor.

- 83 -

Concluzii

Concluzii

Importana acestui algoritm este imens d.p.d.v. al consumului de


timp, deoarece, n realitate, calcularea unui punct echiparametric (U, V)
de pe suprafa este, n general, de peste 100 de ori mai rapid dect
calcularea iterativ a unui punct la o coordonat (X, Y), deci pentru un
set decent de antrenare (de 3 puncte pe punct al SD) se asigur timpi de
peste 30 de ori mai mici. n realitate, dup ce s-a cronometrat pe un set
de 10 repere de complexiti diferite, se poate spune c s-au obinut
timpi mai mici de 20..100 ori.
Algoritmul asigur o rezolvare destul de simpl i elegant a
problemei. Metoda const din:
pentru fiecare punct P(U,V) se calculeaz cei patru vecini discrei;
se calculeaz distana ptratic, cu relaia D2 = DX2 + DY2 ;
aceasta este utilizat pentru a antrena cei patru vecini ai unui punct
P(u, v) dup legea 1/D2 (variaia acestei funcii se gsete n figura 4.8
b);
la sfritul algoritmului, pentru a ntoarce valoarea real, se divide cu
suma ponderilor.

Matematic:
(P(U, V) / D2) /D2
SuprafaDiscret sdSumaPD, sdSumaD;
NimicSuprafaDiscret.InitPuneLaR()
{
sdSumaPD = sdAceasta; //iniializeaz SumaPD
sdSumaPD.PuneLaAll(0.0); //o iniializeaz pe 0.0
sdSumaD = sdAceasta; //iniializeaz SumaD
sdSumaD.PuneLaAll(0.0); //o iniializeaz pe 0.0
} //EndInitPutR
SuprafaDiscret.DonePuneLaR()
{
sdSumaPD /= sdSumaD; //mparte sd SumaPD/SumaD
PnCnd(sdSumaPD.Creaz2()); //filtreaz sd pentru eventualitatea pt. puncte necreate
PnCnd(sdSumaPD.Distruge2()); //filtreaz sd pentru eventualitatea pt. puncte necreate
Combin(sdSumaPD, PM_MAX, FALS); //combin sd actual cu sd, SumaPD lund numai masca
} //EndDonePutR
NimicSuprafaDiscret.PuneLaR(PunctpP, Real rTaieSus = 2.0) //antreneaz vecinii
{
Real rX = RealnIndexPtXR(pP.iX); //convertete valoarea real dar din spaiul ntreg
Real rY = RealnIndexPtYR(pP.iY); //convertete valoarea real dar din spaiul ntreg
Real rD2;
//P00
rD2 = (rX int(rX))*(rX int(rX)) + (rY int(rY))*(rY int(rY));
Dac (rD2 < rTaieSus)
{
sdSumaPD.PuneLa(int(rX) + 0, int(rY) + 0, pP.Z/rD2); //adun pe PD
sdSumaD .PuneLa(int(rX) + 0, int(rY) + 0, 1/rD2); //adun pe PD
} //Dac

- 84 -

Concluzii

Concluzii

//P01
rD2 = (rX int(rX))*(rX int(rX)) + (rY + 1 int(rY))*(rY + 1 int(rY));
Dac (rD2 < rTaieSus)
{
sdSumaPD.PuneLa(int(rX) + 0, int(rY) + 1, pP.Z/rD2); //adun pe PD
sdSumaD .PuneLa(int(rX) + 0, int(rY) + 1, 1/rD2); //adun pe PD
} //Dac
//P10
rD2 = (rX + 1 int(rX))*(rX + 1 int(rX)) + (rY int(rY))*(rY int(rY));
Dac (rD2 < rTaieSus)
{
sdSumaPD.PuneLa(int(rX) + 1, int(rY) + 0, pP.Z/rD2); //adun pe PD
sdSumaD .PuneLa(int(rX) + 1, int(rY) + 0, 1/rD2); //adun pe PD
} //Dac
//P11
rD2 = (rX + 1 int(rX))*(rX + 1 int(rX)) + (rY + 1 int(rY))*(rY + 1 int(rY));
Dac (rD2 < rTaieSus)
{
sdSumaPD.PuneLa(int(rX) + 1, int(rY) + 1, pP.Z/rD2); //adun pe PD
sdSumaD .PuneLa(int(rX) + 1, int(rY) + 1, 1/rD2); //adun pe PD
} //Dac
} //EndPutR
NimicSuprafaDiscret.PuneLaSuprafaaSuperioar(SuprafaSuperioar sS; Real rUStep, rVStep)
{
InitPuneLaR();
PentruFiecare(Real rU = 0.0; rU<= 1.0 rU += rUStep)
PentruFiecare(Real rV = 0.0; rV<= 1.0 rV += rVStep)
PuneLaR(sS[rU, rV]);
EndPuneLaR();
} //EndPutSuprafaaSuperioar

Figura 4.21 Importul a trei repere exportate ca suprafae BSpline sau


solide BRep din EdgeCAM, AutoCAD i Microstation (Solid Edge).
Exemple n care s-a folosit reeaua neuronal pentru antrenarea SD.
Timpi de import 1..3 minute. Reprezentarea
solid utilizeaz nuanele de
- 85 albastru pentru marcarea zonelor nefrezabile cu o scul dat de r=20
mm.

Concluzii

Concluzii

4.5. Concepte introduse


Clasa SuprafaDiscret DerivatDin BazDiscret
{
//.. metodele din capitolele precedente !
Nimic Combin(SuprafaDiscret sdComb, ntreg nModulDePunere = PM_NONE, Boolean bTotul =
ADEVRAT);
Nimic PuneLaOrizontal(Real rValoare, ntreg nModulDePunere = PM_NONE, Boolean bTotul = ADEVRAT);
Nimic PuneLaPlan3P(Punctp1, p2, p3, ntreg nModulDePunere = PM_NONE, Boolean bTotul = ADEVRAT);
Nimic PuneLaFuncie(SetDeCaractere strFuncia, ntreg nModulDePunere = PM_NONE, Boolean bTotul =
ADEVRAT);
Nimic PuneLaInterpolareXDir(SuprafaDiscret sdSeciuni, ntreg nOrdinCurbei= 1, ntreg nModulDePunere =
PM_NONE, Boolean bTotul = ADEVRAT);
Nimic PuneLaInterpolareYDir(SuprafaDiscret sdSeciuni, ntreg nOrdinCurbei= 1, ntreg nModulDePunere =
PM_NONE, Boolean bTotul = ADEVRAT);
Nimic InterpoleazPrinPuncte(Curb cListaCuPuncte, FamiliaDeReali lrListaCuPonderi, FamiliaDeCurbe
fcAlteCurbe, FamiliaDeReali lrPonderiPtCurbe, FamiliaDeReali lrPaiiPtCurbe, Real rRigiditatea);
Nimic InitCapDeScul(Curb cCapDeScul, Real rPas);
Nimic InitnfurtoareStatic(SuprafaDiscret sdSupafaa, sdScul, Boolean bDireciaSus, Boolean bTotul);
Nimic InitRacordareStatic(SuprafaDiscret sdSupafaa, sdScul, Boolean bDireciaSus, Boolean bTotul);
Nimic InitnfurtoareDinamic(SuprafaDiscret sdSupafaa, sdScalare, sdScul, Boolean bDireciaSus,
Boolean bTotul);
Nimic InitRacordareDinamic(SuprafaDiscret sdSupafaa, sdScalare, sdScul, Boolean bDireciaSus, Boolean
bTotul);
Nimic InitPlas(CPLasa lIn);
Nimic InitPlase(FamiliaDePlase flIn);
Nimic PuneLaSuprafaaSuperioar(SuprafaSuperioar sS; Real rUStep, rVStep);
Nimic PuneLaSuprafeeSuperioare(FamiliaDeSuprafaeSuperioare fsFS);
//cteva filtre
ntreg CreazMasc2();
ntreg CreazMasc3();
ntreg CreazMasc4();
ntreg CreazMasc(ntreg nMaxPuncte);
ntreg CreazValoare2(Real rZ);
ntreg CreazValoare3(Real rZ);
ntreg CreazValoare4(Real rZ);
ntreg CreazValoare(ntreg nMaxPuncte, Real rZ);
ntreg DistrugeMasc2();
ntreg DistrugeMasc3();
ntreg DistrugeMasc4();
ntreg DistrugeMasc(ntreg nMaxPuncte);
ntreg DistrugeValoare2(Real rZ);
ntreg DistrugeValoare3(Real rZ);
ntreg DistrugeValoare4(Real rZ);
ntreg DistrugeValoare(ntreg nMaxPuncte, Real rZ);
//Metode utilizate de automatul neuronal la importul familiilor de Supr. sup.
Nimic InitPuneLaR();
Nimic DonePuneLaR();
Nimic PuneLaR(PunctpP, Real rTaieSus = 2.0); //antreneaz cei patru vecini
} //EndSuprafaDiscret

- 86 -

Concluzii

Concluzii

4.6. Concluzii
n acest capitol au fost descrise tehnici i metode de creare,
modelare, conversie, import i filtrare a SD.
Scopul acestuia este ca, utiliznd metodele descrise, un numr ct
mai mare de repere provenite din diferite sisteme de proiectare,
fabricaie sau modelate direct, s poat beneficia de soluiile sofisticate
de analiz i generare a codului NC care vor fi discutate n viitor.
De asemenea, s-au prezentat n premier trei algoritmi noi,
concepui de ctre autor:
algoritmul de import i conversie a seturilor de puncte i curbe
furnizate fr nici o regul;
algoritmul de calculare a nfurtoarei i racordrilor cu forme de
orice geometrie (un caz particular al acestora sunt capetele de scul
suprafee de revoluie, utilizate n frezare);
reeaua neuronal pentru antrenarea cu date care nu cad n punctele
reelei utilizabile, ca o metod generic de import a tuturor datelor
parametrice.

A fost prezentat o familie de metode auxiliare (filtrele) utilizate


pentru reducerea zgomotului introdus de diferite metode de conversie i
analiz. S-a exemplificat acest concept.

- 87 -

Concluzii

Concluzii

5. Metode de
conversie i
formate de import
export

- 88 -

Concluzii

Concluzii

5.1. Introducere
n acest capitol se vor sintetiza i prezenta cteva conversii ale SD
n reprezentrile vectoriale uzuale altor sisteme de proiectare i/sau
fabricaie, pentru a da nu numai o consisten vizual analizelor i
generrilor, ci i o finalitate i utilizabilitate n alte sisteme de proiectare
- fabricare.
n prima parte a capitolului se vor prezenta metode de culegere a
datelor i de convertire a lor n formate de tip plas, solide discrete
faetate reprezentate ca triunghiuri, reprezentri de tip familie de
curbe, specifice generrii fiierului NC via CL.
Se vor introduce metode de creare de curbe, proiecie, offset
inteligent i export n formatele simple ASCII, ca: DXF, STL, CL, NC. Nu
se vor discuta, pentru a nu ncrca expunerea, formatele evoluate, ca
IGES, STEP, VDA, avnd n vedere i utilizarea lor destul de restrns,
deocamdat. Expunerea fiecrui format superior ar necesita un minim de
20 pagini, ceea ce nu asigur cadrul lucrrii de fa.
Metodele de conversie i export sunt de o mare importan n
utilizarea suprafeelor discrete demulabile, virtual, n orice sistem de
proiectare i fabricaie. Ideea prezentrii fiecrui format const n a
mbina prezentarea acestuia, nsoit de expunerea algoritmilor n
pseudocod, cu exemplificarea fiecrui concept introdus, cu ajutorul
exemplelor i a listingului potenial, realizat de ctre clasa expus.
Se va crea un set nou de clase, specifice exportului fiecrui tip n
parte: Fiier, CDXFOut, CSTLOut, CLOut, CNCOut. Aceste clase vor fi
implementate folosind o metod unificat de prezentare, ncercnd s se
ascund detaliile fiecrui format n parte.
Se vor expune metode noi, destinate conversiei i exportului,
metode care dau o utilizabilitate SD, legndu-le de alte sisteme de
proiectare, ca aparate matematice auxiliare de analiz sau conversie n
format NC.
Se va prezenta, n premier, un algoritm de conversie n curbe de
nivel foarte fin (comparativ cu pasul suprafeei discrete), care permite
conversia SD corecie de scul n format NC, asigurnd erori de ordinul
micrometrilor.
Un subcapitol aparte va fi rezervat expunerii problemei unui
postprocesor generic de control numeric, GNCPP (generic numeric
control post processor), o librrie dinamic complex, care are scopul
de a genera fiier NC specific, virtual, pe orice echipament, optimizat
pentru lungime i timp de rulare.
- 89 -

Concluzii

Concluzii

Se vor trasa cteva statistici despre frecvena utilizrii diferitelor


formate n Marea Britanie i SUA, n funcie de numrul de maini unelte
i numrul de angajai.
n finalul capitolului se vor rezuma, n pseudocod, toate metodele i
obiectele noi, i se va concluziona asupra problemelor expuse pe
parcursul capitolului.

- 90 -

Concluzii

Concluzii

5.2. Metode de conversie


Datorit modului oarecum neuzual de stocare a informaiilor n
suprafeele discrete, pentru ca acestea s fie utilizabile n ct mai multe
sisteme de proiectare i fabricaie, s-au creat tehnici i metode de
conversie i export a SD n diferite reprezentri geometrice. Acestea
sunt: curbele, plasele patrulatere i cele triunghiulare .

5.2.1. Conversia n curbe


Conversiile SD i proieciile unor curbe aplicate pe SD au un rol
important n generarea fiierelor NC, sau n crearea unor extensii a unor
zone critice.
Unicul caz de conversie a SD n curbe discutat n aceast lucrare va
fi acela de conversie a unei SD n curbe de nivel.
Acest algoritm are utilitate nu numai n generarea fiierelor NC cu Z
=ct, cum s-ar putea crede la o analiz superficial, ci aplicaiile lui se pot
extinde n orice generare de curb de pe SD ! n capitolul urmtor,
destinat analizei i optimizrii, se vor prezenta o multitudine de
transformri particulare (manipulatori) specifice analizelor SD, n
vederea utilizrii acestui algoritm foarte puternic i GENERIC, de export.
Problematica acestui algoritm este aceea c trebuie creat o
familie de curbe care s despart SD n dou regiuni, una cu valori mai
mari dect cea analizat, iar alta cu valori mai mici dect aceasta. n
general, aceast problem nu este nou, i se regsete ntr-o mulime
de programe [LWRK], [CTR]. Soluiile propuse pn acum sunt, n
general, precare din punct de vedere al calitii curbelor exportate,
total improprii folosirii direct ca i trasee de scul, fr o rafinare uzual
manual, care ncetinete procesul i duce la distrugerea generrii i
regenerrii automate.
n general, acest algoritm i gsete utilitatea n toate locurile unde
trebuie recunoscut o form, fcnd analogia cotei Z cu o culoare sau
intensitate luminoas, n cazul utilizrii imaginilor monocrome, sau a trei
componente (rou, verde, albastru), n cazul analizrii imaginilor color.
Alte posibile utilizri ale algoritmului ar putea fi: creterea rezoluiilor
analogice ale fotografiilor, recunoaterea formelor, convertirea imaginilor
n format vectorial etc.

- 91 -

Concluzii

Concluzii

Se consider c algoritmul descris n continuare este unicul


algoritm, cunoscut de autor, care utilizeaz proprietatea remarcabil a
unei seciuni (sau proiecii) de a fi o curb discret continu. Deci,
folosind teorema lui Cauchy ntre 2 puncte, unul mai mic i unul mai
mare dect o valoare dat, se gsete cel puin un punct care
intersecteaz nivelul de analiz.
Imaginea de mai jos i propune prezentarea problematicii acestui
algoritm.
Algoritmul se bazeaz pe proprietatea remarcabil a fiecrui
ptrat elementar (format din patru segmente de dreapt, i care
formeaz ntotdeauna un patrulater nchis) de a avea un numr par de
intersecii cu un plan orizontal [0, 2, 4]. Deci, orice curb care intr
trebuie s i ias din ptrat, curbele neputnd fi deschise (sau nchise)
dect n cazul n care ncep i se termin pe marginea SD.
Precizia curbelor create de acest algoritm (negru + rou, punctele
de control) este de ordinul 1/1000 * pasul, iar a celui bazat pe culegerea
pasului, de ordinul pasului (verde + albastru, punctele de control).
n urma analizelor fcute, acest algoritm, combinat cu cel de
detecie a muchiilor vii, a produs, n toate cazurile analizate, rezultate
similare: pn la trei zecimale exacte, comparat cu algoritmi care
folosesc tehnici pur vectoriale.

Figura
5.22 Prezentarea algoritmului de conversie a SD n curbe
echipoteniale, folosind metoda clasic a punctelor de control i cea nou,
care folosete continuitatea seciunilor.

- 92 -

Concluzii

Concluzii

Din pcate, erorile nu sunt liniare, ci sunt o funcie de nclinare a


suprafeei. Astfel, la 90o , eroarea de detecie a unui zid poate deveni
comparabil cu pasul, ceea ce duce la erori de domeniul 0.1..1.0 *
pasul, de multe ori netolerabile ! Din aceast cauz, n sistemele
evoluate destinate fabricaiei, TechoPack i EdgeCAM, la ora actual se
folosete o tehnologie mixt de generare a fiierului NC: n proporie de
90% din suprafa de pe SD, iar n zonele care au nclinaii mari sunt
folosite suprafeele vectoriale, care sunt insensibile la schimbarea
nclinaiei, dar sunt de peste 500 de ori mai lente !

- 93 -

Concluzii

Concluzii

Figura 5.23 Conversii din SD. Reprezentare de tehnologie mixt, de


combinare a ciclurilor de frezare curbe nivel i seciuni echidistante.
Toate analizele i fiierele NC au fost generate folosind reprezentarea
discret, cu algoritmul prezentat. Simularea i verificarea este fcut cu
DSView.
- 94 -

Concluzii

Concluzii

Algoritmul poate fi descris n pseudocod astfel:


NimicCDiscretSurface.AdunCurb(FamiliaDeCurbe fcOut, int nX, nY)
{
//prea laborios pentru a fi descris.
} //EndAdunCurb
NimicCDiscretSurface.CreazCurbe(FamiliaDeCurbe fcOut, Real rPentruZ)
{
//y0
PentruFiecare(ntreg nI = 1; nI < nX; nI++)
Dac ([nI, 0] > rPentruZ I [nI + 1, 0] < rPentruZ SAU
[nI, 0] < rPentruZ I [nI + 1, 0] > rPentruZ)
AdunCurb(fcOut, nI, 0);
//y max
PentruFiecare(ntreg nI = 1; nI < nX; nI++)
Dac ([nI, nNrY] > rPentruZ I [nI + 1, nNrY] < rPentruZ SAU
[nI, nNrY] < rPentruZ I [nI + 1, nNrY] > rPentruZ)
AdunCurb(fcOut, nI, nNrY);
//x 0
PentruFiecare(ntreg nJ = 1; nJ < nY; nJ++)
Dac ([0, nJ] > rPentruZ I [0, nJ] < rPentruZ SAU
[0, nJ] < rPentruZ I [0, nJ] > rPentruZ)
AdunCurb(fcOut, 0, nJ);
//x max
PentruFiecare(ntreg nJ = 1; nJ < nY; nJ++)
Dac ([nNrX, nJ] > rPentruZ I [nNrX, nJ] < rPentruZ SAU
[nNrX, nJ] < rPentruZ I [nNrX, nJ] > rPentruZ)
AdunCurb(fcOut, nNrX, nJ);
//curbele nchise interioare
PentruFiecare(ntreg nI = 2; nI < nX-1; nI++)
PentruFiecare(ntreg nJ = 2; nJ < nY-1; nJ++)
AdunCurb(fcOut, nI, nJ);
} //EndCreazCurbe
NimicCDiscretSurface.CreazToateCurbele( //creaz toate curbele
FamiliaDeCurbe fcOut, //locul unde sunt stocate curbele
Real rZStep = 1.0, //pasul
Boolean bAuto = ADEVRAT, //dac calculeaz automat cotele de start i sfrit
Real rZStart = 0.0, //cota de pornire
Real rZEnd = 10.0) //cota de oprire
{
Dac(bAuto)
{
rZStart = pMax.rZ; //atribuie automat Z maxim
rZEnd = pMin.rZ; //atribuie automat Z minim
}
PentruFiecare(Real rZ = rZStart; rZ < rZEnd; rZ += rZStep)
CreazCurbe(fcOut, rZ);
} //EndCreazToateCurbele

- 95 -

Concluzii

Concluzii

NOT: Detaliile de implementare a metodei AdunCurb() nu au fost


expuse, deoarece metoda este destul de simpl, dar lung; ea se
bazeaz pe conceptele expuse la nceputul capitolului.

5.2.2. Proiectarea unei familii de curbe


pe suprafaa discret
Aceast metod d consisten i generalitate algoritmului de
conversie n curbe echipoteniale i deschide posibiliti nelimitate
pentru toi algoritmii de generare a fiierului NC prin tehnici proiective
(spirale, radiale, offset, morf etc).
Tehnica este destul de simpl i este expus n continuare:
NimicCDiscretSurface.ProiecteazCurb(Curb cProiecteaz)
{
PentruFiecare(ntreg nI = 1; nI < c.nNr; nI++)
{
Punctp = cProiecteaz[nI];
p.rZ = IaDeLaR(p.rX, p.rY);
cProiecteaz.PuneLa(nI, p);
} //PentruFiecare
} //EndProiecteazCurb
NimicCDiscretSurface.ProiecteazCurbe(FamiliaDeCurbe fcProiecteaz)
{
PentruFiecare(ntreg nI = 1; nI < c.nNr; nI++)
ProiecteazCurb(fcProiecteaz[nI])
} //EndProiecteazCurbe

Not: algoritmul expus proiecteaz doar noduri; n mod similar se poate


descrie un algoritm care proiecteaz toate liniile, cu un anumit pas dat;
un exemplu despre cele dou familii de algoritmi, cel de conversie n
curbe echipoteniale a unei SD, dup care proiectarea pe o alt SD, se
prezint n figura 5.3.

- 96 -

Concluzii

Concluzii

Figura 5.24 Exemplu de conversie echipotenial i proiecie pe SD, cu


EdgeCAM V3.0

- 97 -

Concluzii

Concluzii

5.2.3. Offset pe SD
Offsetul sau echidistanarea unei curbe pe o SD este deosebit de
util pentru generarea fiierelor NC de frezare cu rugozitate constant
(cea mai eficient metod de frezare). Algoritmul va fi prezentat n
detaliu n subcapitolul Calculul curbelor echirugozitate. Cteva
exemple ale conceptului se pot observa n urmtoarea figur, unde se
prezint, n nuane diferite, offsetarea pe SD a unui dreptunghi sau a

Figura
5.25 Exemplificarea algoritmului de offset inteligent pe
suprafaa discret. Procesri fcute pe repere importate din diferite
sisteme CAD/CAM, pornind de la dreptunghi sau de la drepte paralele
dou drepte paralele.

- 98 -

Concluzii

Concluzii

5.2.4. Convertirea n plase patrulatere


Aceast conversie este utilizat n cazul n care se dorete exportul
ntregii pnze, din suprafaa discret ntr-un alt produs, via un format
extern de export.
Cel mai simplu format care suport plasele, ca entitate, este
formatul DXF.
Se va exemplifica, n continuare, n pseudocod, algoritmul necesar
creerii unei plase dintr-o SD:
NimicCDiscretSurface.ExportPlas(SetDeCaractere strNumeDXF)
{
ntreg nCuloare = 15
SetDeCaractere strLayer = Plasa;
CDXFExport dxfout;
dxfout.Iniializeaz(strNumeDXF);
dxfout.InitPlas(nX, nY, nCuloare, strLayer);
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
{
Punctp(IndexnRealPtX(nI), IndexnRealPtY(nJ), [nI, nJ]);
dxfout.PuneVertex(p);
} //PentruFiecare
dxfout.DonePlas();
dxfout.Sfrete();
} //EndExportPlas

Se poate observa c, conversia i exportul ntr-o plas uniform


riglat este relativ simpl, atta vreme ct este definit o clas
CDXFOut, care va fi prezentat pe parcursul capitolului.
Se prezint, n continuare, dou plase exportate din TechnoCAD
V2.0 [DM04..06] i vizualizate cu DSView .

Figura 5.26 Plase exportate i convertite din suprafee discrete


- 99 -

Concluzii

Concluzii

5.2.5. Convertirea
triunghiular

reprezentare

Reprezentarea
triunghiular,
stocat
n
formatul
STL
(stereolitography format), este cea mai simpl reprezentare posibil
pentru exportul i importul solidelor. n prezent, STL este exportat de
ctre toate sistemele de proiectare orientate pe solide (Solid Edge, Solid
Works, ProEngineering, Autodesk Mechanical Desktop), ca export generic
n sistemele de analiz cu elemente finite (FEA), n cele de fabricaie
(CAM) sau de verificare.
Teoria triangularizrii, folosit pentru convertirea n acest format,
este foarte vast avnd aplicaii ntr-o multitudine de domenii, ca:
analiz cu elemente finite, trasri de hri, stocri optimizate a zonelor
plane.
Primele ncercri, cu adevrat remarcabile, de rezovare a
triangularizrii suprafeelor i tetraedrizrii volumelor au fost fcute de
Delaunay, bazndu-se pe polinoamele convexe Voronoi [TRI].
Se va prezenta, n continuare, un algoritm minimal de conversie a
SD n reprezentare solid triunghiular neoptimizat.
NimicCDiscretSurface.ExportPlas(SetDeCaractere strNumeDXF)
{
CSTLExport stlout;
Punctp1, p2, p3, p4;
stlout.Iniializeaz(strNumeDXF);
PentruFiecare(ntreg nI = 1; nI < nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ < nY; nJ++)
{
p1(IndexnRealPtX(nI + 0), IndexnRealPtY(nJ + 0), [nI + 0, nJ + 0]);
p2(IndexnRealPtX(nI + 0), IndexnRealPtY(nJ + 1), [nI + 0, nJ + 1]);
p3(IndexnRealPtX(nI + 1), IndexnRealPtY(nJ + 0), [nI + 1, nJ + 0]);
p4(IndexnRealPtX(nI + 1), IndexnRealPtY(nJ + 1), [nI + 1, nJ + 1]);
stlout.PuneLa(p1, p2, p3);
stlout.PuneLa(p2, p3, p4);
} //PentruFiecare
stlout.Sfrete();
} //EndExportPlas

Not: algoritmul prezentat este cel mai simplu posibil; n realitate,


autorul utilizeaz unul mult mai sofisticat, care reduce mrimea fiierelor
STL de peste 4 ori; acest algoritm ncearc, prin diferite metode, s
gseasc i s elimine punctele coplanare (fig. 2.1), dup care trece la
optimizarea setului de puncte. Lungimea acestui algoritm, n limbaj C++,
este de peste 8000 linii cod, n comparaie cu cel listat, de sub 20 !

- 100 -

Concluzii

Concluzii

Exemple de solizi, n formatul solid triunghiular STL, se prezint n


figurile 2.5 i 2.6.

- 101 -

Concluzii

Concluzii

5.3. Formate de import - export


Formatele de import - export au o mare importan n
automatizarea circulaiei informaiei ntr-o intreprindere. Din pcate, la
ora actual, se pare c sunt nc preferate formatele standard de nivel
jos, ca STL, CL, NC, PLT, pentru singurul motiv c sunt uor de
implementat, ceea ce duce la transferul ateptat, fr prea multe
dificulti.
Formatele de nivel mai ridicat des utilizate sunt cele proprietare
sistemelor de proiectare (CAD), ca DXF (AutoCAD), DWG (AutoCAD), SAT
(ACIS), VDA (Microstation), deoarece rutinele de import - export sunt
furnizate de ctre o singur companie (cea proprietar), care se ocup
de dezvoltarea i implementarea importului i exportului n formatul
respectiv.
Formatele standard de nivel nalt, ca IGES, STEP, sunt mult mai
bogate n forma de reprezentare, dar i mult mai complicate, existnd
dificulti de a scrie rutine de import - export i probabil, din aceast
cauz, sunt i mai puin utilizate. Se pare, ns, c urmtorii ani vor
aparine acestor formate, impuse de ingineria concurent.
n tabelele urmtoare se vor prezenta formatele cele mai utilizate
n anul 1997, n dou ri industrializate - Marea Britanie i SUA, pentru
comunicarea ntre sistemele CAD i CAM. Datele au fost procesate i
puse la dispoziia autorului de ctre domnul Geofrey Taylor, director de
marketing la Pathtrace ltd. Eantionul analizat a fost de peste 100 de
intreprinderi, n fiecare ar. Datele obinute sunt folosite pentru
definirea ordinii de dezvoltare a convertoarelor, ncercnd s se trag
concluzii practice pertinente despre adevratul stadiu actual al
comunicaiei ntre sistemele de proiectare i fabricaie. n special n
ntreprinderile mici i mijlocii se pare c cele mai folosite metode de
comunicaie sunt nc desenele imprimate i formatele proprietare
Autodesk (DXF i DWG). Formatul standard IGES are o pondere sczut
(sub 10 % ), iar formatul STEP aproape c nu exist. ntr-o evoluie
ascendent spectaculoas este formatul SAT (format proprietar de
descriere a solidelor ASCII), care are o cretere continu de utilizare, de
peste 4 % pe an.
Sintetiznd tendinele de utilizare pe 1997, acestea sunt:
Metoda de transfer
Repere desenate
Translaii manuale
Fiiere SAT (solide ACIS)

Proporia de
utilizare, n
[%]
75
13
14
- 102 -

Tendina de
cretere n
1997, [%/ an]
-5
0
+4

Concluzii

Concluzii

Fiiere IGES (standard)


25
+1
Fiiere STEP (standard)
5
+1
Fiiere DXF (AutoCAD)
35
+1
Fiiere DWG (AutoCAD)
40
+2
Fiiere VDA (Microstation)
5
+1
Fiiere STL (solide faetate)
2
+3
Se poate observa c, nsumnd coloana a doua, rezult o valoare
mai mare de 100 %, din cauz c majoritatea intreprinderilor utilizeaz
mai mult de un format de transfer. Cu ct o intreprindere este mai mare,
cu att va avea tendina de a folosi schimbul electronic de date, n timp
ce intreprinderile mici, care sunt reprezentate de subcontractori,
schimb nc datele n format desenat.
Marea Britanie

Numr angajai

Despre
intreprindere
Repere desenate

Numr maini unelete

Tota <50 50.. 201.. >500 1..5 6..10 10..1 16.. >20
l
200 500
5
20
81.5 86.7 73.3 86.7 80.0 100.0 69.6 90.9 78.6 100.
0
Translaii manuale
14.6 21.7 13.3
0.0
0.0
0.0 16.1 18.2
0.0 12.5
Fiiere SAT (solide 5.4
6.7
6.7
0.0
0.0
0.0
7.1
6.8
0.0 0.0
ACIS)
Fiiere
IGES 30.8 31.7 26.7 26.7 60.0
0.0 32.1 27.3 28.6 37.5
(standard)
Fiiere
DXF 43.1 45.0 40.0 40.0 50.0 50.0 44.6 45.5 35.7 50.0
(AutoCAD)
Fiiere
DWG 38.5 35.0 46.7 26.7 30.0 50.0 33.9 38.6 50.0 62.5
(AutoCAD)
Fiiere
VDA 3.8
5.0
4.4
0.0
0.0
0.0
5.4
4.5
0.0 0.0
Microstation

- 103 -

Concluzii

Altele

Concluzii

9.2

SUA

10.0

8.9

13.3

Numr angajai

0.0

0.0

12.5

9.1

0.0

0.0

Numr maini unelete

Despre
Total <50 50.. 201.. >500 1..5 6..10 10..1 16.. >20
intreprindere
200 500
5
20
Repere desenate
72.9 80.0 66.7 69.2 60.0 64.7 69.6 93.8 83.3 75.0
Translaii manuale
13.5 15.6 12.1
7.7 20.0
8.8 17.4 12.5
0.0 18.8
Fiiere SAT (solide 13.5 17.8 12.1
7.7
0.0 14.7 13.0 12.5
0.0 18.8
ACIS)
Fiiere
IGES 27.1 24.4 33.3 23.1 20.0 35.3 21.7
6.3
0.0 43.8
(standard)

- 104 -

Concluzii

Fiiere
(AutoCAD)
Fiiere
(AutoCAD)
Fiiere
Microstation
Altele

Concluzii

DXF

33.3

31.1

36.4

30.8

40.0

2.9

34.8

25.0

16.7 50.0

DWG

45.8

37.8

51.5

53.8

60.0

35.3

39.1

50.0

50.0 68.8

VDA

5.2

2.2

9.1

0.0

20.0

0.0

4.3

12.5

0.0 12.5

5.2

2.2

9.1

0.0

20.0

8.8

0.0

6.3

- 105 -

0.0

6.3

Concluzii

Concluzii

5.3.1. Formatul DXF


Este unul dintre cele mai utilizate formate de nivel jos. A fost creat
de firma Autodesk n anii 80 i este larg utilizat pentru schimbarea
datelor de tip curbe sau plase, cu celul elementar patrulater, avnd n
1997 o pondere de peste 20% n schimbul de informaii dintre sistemele
de proiectare i fabricaie. Este continuu dezvoltat de firma Autodesk i,
mpreun cu formatul binar DWG, tot al firmei Autodesk, deine jumtate
din transferurile dintre sistemele CAD i CAM.
n aceast lucrare se va prezenta doar partea de export a
formatului, deoarece n lucrare este folosit ca export a curbelor de
analiz sau a suprafeelor discrete, n vederea vizualizrilor.
Ca o curiozitate, aproape toate reprezentrile n care se utilizeaz
librria profesional de randare n timp real OpenGL (c)SGI au fost
transferate utiliznd formatul DXF. Produsul care a fost proiectat i
realizat special pentru aceast lucrare, n vederea vizualizrii de calitate
a SD, se numete DSView.
De-a lungul vremii, autorul a ncercat s sintetizeze o form ct mai
simpl de export n acest format, prezentat mai pe larg n [HCF] i
[DXF].
NimicCDXFExport.Iniializeaz(SetDeCaractere strNume) //iniializarea obiectului
{
fiier.Creaz(strNume);
fiier.Scrie( 0\nSECTION\n 2\nENTITIES\n); //scrie antetul DXF
} //EndInit
NimicCDXFExport.Sfrete() //terminarea sesiunii de export
{
fiier.Scrie( 0\nENDSEC\n 0\nEOF\n); //scrie sfritul DXF
fiier.nchide();
} //Sfrete
NimicCDXFExport.InitCurb(ntreg nCuloare = 15, SetDeCaractere strLayer = SD ieire)
{
//iniializeaz exportul unei curbe
fiier.Scrie( 0\nPOLYLINE\n 8\n%s\n 62\n%d\n, strLayer, nCuloare);
fiier.Scrie( 10\n0.0\n 20\n0.0f\n 30\n0.0\n70\n8\n 66\n1\n);
} //EndInitCurb
NimicCDXFExport.DoneCurb() //terminarea sesiunii de export curb
{
fiier.Scrie(\n 0\nSEQEND\n 8\n0\n); //scrie sfritul curb
} //EndDoneCurb
NimicCDXFExport.InitPlas(ntreg nU, nV, nCuloare = 15, SetDeCaractere strLayer = SD ieire)
{
//iniializeaz exportul unei plase
fiier.Scrie( 0\nPOLYLINE\n 8\n%s\n 62\n%d\n, strLayer, nCuloare);
fiier.Scrie( 10\n0.0\n 20\n0.0f\n 30\n0.0\n70\n16\n 66\n1\n);
fiier.Scrie( 71\n %d\n 72\n %d\n, nU, nV);
} //EndInitPlas

- 106 -

Concluzii

Concluzii

NimicCDXFExport.DonePlas() //terminarea sesiunii de export plas


{
fiier.Scrie(\n 0\nSEQEND\n 8\n0\n); //scrie sfritul plas
} //EndDonePlas
NimicCDXFExport.Export(Punct pIn) //export un vertex
{
fiier.Scrie( 0\nVERTEX\n 8\n0\n 10\n%f\n 20\n %f\n 30\n%f\n,
pIn.rX, pIn.rY, pIn.rZ);
} //EndExport

Acesta este un obiect minimal, care asigur n totalitate exportul


plaselor i curbelor 3D, via formatul DXF.
ntr-o prezentare
urmtoarea:

simplificat,

filozofia

formatului

DXF

este

dxfin.Iniializeaz(Test.DXF); //iniializarea obiectului


dxfin.InitCurb(); //pot fi specificate eventual culoarea sau layerul
PentruFiecare(ntreg nI = 1; nI < 10, nI++)
dxfin.Export(pPunct);
dxfin.DoneCurb(); //termin o curb
dxfin.InitPlas(10, 20); //pot fi specificate eventual culoarea sau layerul
PentruFiecare(ntreg nI = 1; nI < 10, nI++)
PentruFiecare(ntreg nJ = 1; nJ < 20, nJ++)
dxfin.Export(pPunct);
dxfin.DonePlas(); //termin o curb
dxfin.Sfrete(); //nchide fiierul;

Deci, fiierul, ca i orice alt entitate care se export, trebuie


iniializat i nchis prin secvena Init*() Done*() .
De menionat c formatul DXF suport i o versiune binar, cu
extensia .DXB, care nu face ns obiectul acestei prezentri, fiind prea
criptic.

- 107 -

Concluzii

Concluzii

n continuare se pot observa dou exemple de export DXF care

Figura 5.27 Exemple de export i listing n format DXF, create cu


TechnoFunction V1.0 (dou funcii excentrice elariu)
folosesc acest obiect.
0
SECTION
2
ENTITIES
0
POLYLINE
8
0
62

13
10
270.000000
20
10.000000
30
450.000000
70
16

66
1
71
19
72
91
0
VERTEX
8

0
10
2.000000
20
0.000000
30
0.000000
0
SEQEND

8
0
0
ENDSEC
0
EOF

5.3.2. Formatul STL


Formatul STL s-a nscut cu mai mult de 10 ani n urm, ca un
format de import, fiind folosit pentru mainile speciale de prototipizare
rapid, prin polimerizare cu ajutorul laserului.
De-a lungul vremii, acesta a fost utilizat destul de rar, deoarece
este total impropriu i distructiv reprezentrilor nesolide B-Spline,
condiia de baz a descrierii unui solid fiind aceea c o latur a unui
triunghi trebuie s corespund la numai dou triunghiuri, condiie destul
de restrictiv n conversia altor tipuri de dat.
Odat cu impunerea modelatoarelor solide, formatul STL a
renscut, fiind unicul format de nivel jos comun tuturor sistemelor de
proiectare, pentru transferul solidelor. Astfel, el este folosit la ora
actual de urmtoarele tipuri de aplicaii:
-

sisteme de proiectare (n general import - export);

- 108 -

Concluzii

Concluzii

sisteme de fabricaie (import - export i procesarea


suprafeelor corecie de scul);
- sisteme de analiz cu elemente finite (import i utilizare
direct a reprezentrii);
- vizualizoare realistice i cadru de srm (import);
- sisteme de verificare a corectitudinii fiierului NC (import);
Concluzia este c a nceput s reprezinte un limbaj comun i simplu
de comunicare.
-

Se va prezenta, n continuare, forma de fiier ASCII ncapsulat ntro clas numit CSTLOut.
NimicCSTLExport.Iniializeaz(SetDeCaractere strNume) //iniializarea obiectului
{
fiier.Creaz(strNume);
fiier.Scrie(solid SD Export);
} //Iniializeaz
NimicCSTLExport.Sfrete() //terminarea sesiunii de export
{
fiier.Scrie(endsolid);
fiier.nchide();
} //Sfrete
NimicCSTLExport.Export(Punct p1, p2, p3)
{
fiier.Scrie( facet normal 0.0 0.0 0.0\n);
fiier.Scrie(
outer loop\n);
fiier.Scrie(
vertex %d %d %d, p1.rX, p1.rY, p1.rZ);
fiier.Scrie(
vertex %d %d %d, p2.rX, p2.rY, p2.rZ);
fiier.Scrie(
vertex %d %d %d, p3.rX, p3.rY, p3.rZ);
fiier.Scrie(
endloop\n);
fiier.Scrie( endfacet\n);
} //Export
Metoda de utilizare a formatului STL este urmtoarea:
CSTLExport stlout;
stlout.Iniializeaz(Test.STL);
for (ntreg nI = 1; nI<= nNrTriunghiuri; nI++)
stlout.Export(p1, p2, p3);
stlout.Sfrete();

Se poate observa c exportul este ceva mai simplu, comparabil cu cel de


la formatul DXF, deoarece STL nu suport dect o singur entitate, cea
de faet trunghiular.
De menionat c formatul STL suport i o versiune binar, cu aceeai
extensie, care nu face ns obiectul acestei prezentri.
n continuare se arat dou imagini n format STL, una n reprezentare
cadru de srm, alta render plan, i un listing de fiier STL.

- 109 -

Concluzii

Concluzii

Figura 5.28 Reprezentare cadru de srm i solid, importat ca fiier STL,


pentru verificare solid a frezrii capturate din NCVerify.

solid SD Export
facet normal 0.0 0.0 0.0
outer loop
vertex 0.038 0.038 0.045
vertex -0.007 0.0384 0.045
vertex -0.007 -0.03 0.045000
endloop
endfacet
..

facet normal 0.0 0.0 0.0


outer loop
vertex -0.00 -0.036 0.040
vertex -0.007 -0.03 0.045
vertex -0.007 0.038 0.045
endloop
endfacet
endsolid

5.3.3. Formatul CL
Formatul CL este un format vectorial, deosebit de important n
transferurile de trasee de scul, deoarece n el pot fi nmagazinate date
despre scul, compensaii, informaii geometrice de micare i informaii
tehnologice despre avansuri i turaie.
Marele avantaj al acestui format este acela c este generic,
nmagazinnd toate informaiile necesare generrii fiierului NC, pentru
un anumit reper, independent de echipament. Deci, CL este ieirea
comun a tuturor sistemelor destinate fabricaiei, fiind un dialect al
limbajului APT.
Fiind un format relativ complex, n aceast lucrare nu va fi folosit.
Vor fi generate direct fiiere NC, care sunt destul de asemntoare ca
sintax.
Pentru exemplificare se vor prezenta cteva figuri i o poriune de
listing n format CL.

- 110 -

Concluzii

Concluzii

Figura 5.29 Exemple de fiier CL importat i simulat cu NCVerify.

1 CBOX -1.8744 -3.3565 -0.1330 9.4887 4.1458 1.0000


2 NSIDES 16
2 UNITS/ INCHES
3 PARTNO shador
4 PPRINT PROGRAM FOR PART NAME shado3Wr
5 PPRINT PROGRAM FOR MFG PLAN NAME shado3Wr
6 PPRINT PROGRAM TIME OF CREATION Apr 23 1994 15:05:40
7 MULTAX/ON
9 PPRINT SETUP: Setup10
11 PPRINT Drill.CBHoleGroup.1 TOOLPATH
12 CUTTER/ 0.500000, 0.000000, 0.250000, 0.000000, 31.000000, 0.000000, 2.0000
13 LOADTL/ 1
14 SPINDL/ 474, RPM, CLW
15 RAPID
...........
862 GOTO/ 0.0, 2.5, 1.1, 0.0, 0.0, 1.0
863 COOLNT/OFF
864 FINI

5.3.4. Formatul NC
Prin convertirea formatul generic CL, pentru un echipament
specific, acesta i pierde generalitatea i devine un fiier NC specific
pentru un echipament NC dat. Teoretic, limbajul NC este un dialect
simplificat de BASIC, standardizat. Din pcate, fiecare echipament
respect, mai mult sau mai puin, acest standard.
n general, micrile G0, G1, G2, G3 i regitrii X, Y, Z, I, J, K, M, F, S
se respect de toate echipamentele.

- 111 -

Concluzii

Concluzii

n aceast lucrare vor fi generate fiiere NC direct din familii de


curbe. Pentru acest deziderat a fost creat o clas minimal care export
fiier standard NC ntr-un fiier, utiliznd doar N, G0, G1, X, Y, Z pentru a
asigura o implemetare simpl i o portabilitate cvasitotal.
NimicCNCExport.Iniializeaz(SetDeCaractere strNume) //creaz un fisier NC
{
nLinie = 1;
fiier.Deschide(strNume);
fiier.Scrie(SD generare cod NC);
fiier.Scrie(%1);
} //Init
NimicCNCExport.Sfrete() //nchide fiierul NC
{
pLast.Z += 10.0;
Export(pLastZ);
fiier.Scrie(%1);
fiier.nchide();
} //Sfrete
NimicCNCExport.Export(Punct p, Boolean bRapid = FALS)
{
pLast = p;
Dac (bRapid)
fiier.Scrie(N%nG0X5dY%dZ%d\n, nLinie++, p.rX, p.rY, p.rZ);
Altfel fiier.Scrie(N%nG1X5dY%dZ%d\n, nLinie++, p.rX, p.rY, p.rZ);
} //Export
Aceast clas este utilizat astfel:
CNCExport ncout;
ncout.Iniializeaz(Test.CNC);
PentruFiecare(nI = 1; nI <= cExport.nNr; nI++)
ncout.Export(cExport[nI])
ncout.Sfrete();

Not: n realitate, autorul utilizeaz la generarea fiierului NC o librrie


creat special pentru toate produsele din seria Techno*; aceasta a fost
numit Generic Numeric Control Post Procesor V2.0 (GNCPP) i a
fost dezvoltat pe parcurs, pentru a rezolva problema generrii.
Librria GNCPP este un produs freeware, care poate fi gsit n
multe website-uri cu produse shareware i freeware, avnd pn n
prezent peste o sut de utilizatori cunoscui.
Se vor prezenta cteva tehnologii care sunt utilizate n GNCPP
V2.0 (prezentarea n pseudocod depete spaiul lucrrii, lungimea lui
fiind de peste 20.000 linii cod):

- 112 -

Concluzii

Concluzii

Postprocesorul este un modul unitar, i se ocup de un singur lucru:


modul n care se genereaz fiierul NC. Este realizat pentru a genera
fiiere standard ANSI-DIN sau are posibilitatea programrii lui pentru
diferite dialecte nestandardizate.
Are peste 200 de variabile de configurare, care sunt foarte bine
documentate i uor de configurat, crendu-se astfel familii de
postprocesoare nestandardizate, reale sau virtuale (pentru diferite
analize, sau vizualizri).
Este folosit n mod unitar de toate modulele care genereaz fiiere
NC (TehnoCAM, TehnoBulge, Tehno2D, TehnoMesh). n Romnia,
fiierele generate de el ruleaz pe ECN foarte variate, ca: CNC600,
Fanuc, Sinumeric, Heidenheim, NUM, NUMEROM, Elerofil, DEM
etc.
Poate genera (la cerere) fiiere DXF, n paralel cu cele CNC, pentru
verificri pe alte sisteme de proiectare. Calculeaz automat lungimea pe
care o execut capul n timpul frezrii, n micare de lucru i n micare
rapid, i timpul necesar frezrii unei suprafee, crend automat i un
fiier cu datele tehnologice.
Programele NC pot fi fragmentate automat, n funcie de memoria
MUCN sau numrul de linii suportate de aceasta.
Convertete datele geometrice, din 3 n 2,5 axe, punnd astfel n
valoare parcul de maini unelte din ar i scurtnd cu 30 % fiierele NC.
Posed un mod euristic de rezolvare a problemei comis voiajorului
(TSP), foarte rapid i performant, eliminnd peste 90 % din micrile de
avans rapid, scurtnd semnificativ unele tipuri de fiiere NC. Acest
algoritm este prezent doar n seria TechnoPack, fiind creat n premier
la BillaSoft [DM01..DM11].
Conine modul Adaptiv, care analizeaz frezarea i (n urma
analizei) schimb valoarea avansului automat n timpul rulrii fiierului
NC, ncrcnd uniform cu solicitri freza i scula; n funcie de geometria
acesteia i modul de frezare (longitudinal, radial, mixt) ncetinete
micarea de avans i corecteaz spaial micarea capului, n raport cu
uzura sculei (optimizare pt. timp).
Modul Stealth (ascuns) st tot timpul n aciune (ct
postprocesorul este n funciune) i analizeaz scrierea fiierelor NC,
hotrnd dac informaiile care se doresc a fi scrise n fiierul NC sunt
importante sau dac se pot deduce din alte linii de informaii, crend
astfel fiiere NC ct mai scurte. Fiierele generate cu Stealth activ sunt
cu 60...90 % mai scurte dect cele normale, nepierzndu-se informaii
geometrice utile (optimizare pentru lungime).
- 113 -

Concluzii

Concluzii

Se prezint un listing parial al variabilelor care stau la baza


configurrii postprocesorului:
[GenericNCPostProcessor V2.0 ACTIVE variables ]
[WARNING: IF YOU PERFORM MODIFICATIONS DO NOT KILL INDENTATION ! ]
[Variable = Current;T[Possible ]<Def.> Comment ]
[============================================================================]
[CNC.Process]
CNCExport = Y ;C[Y_ ]< Y> Process CNCFile else not
DXFExport = N ;C[Y_ ]< N> Process DXFFile else not
RepExport = Y ;C[Y_ ]< Y> Process ReportFile else not
NameDigitNr = 3 ;I[0..5 ]< 3> Nr. of digits in CNC Name
LongName = Y ;C[Y_ ]< Y> If N cut in name CNC type inf.
Extension =CNC ;S[Y_ ]< CNC> Name of extension of CNCFile
[CNC.Constrantregs]
OptFilter = 0.200;R[0.01..0.5]< 0.2> Value of optimizing filter
BreakKilo = Y ;C[Y_ ]< Y> Break CNCFile after MaxKilo or MaxLine
MaxKilo = 320.000;R[1..1000 ]< 32> Number of Kilos in each CNC file
MaxLine = 990 ;I[10..10000]< 990> Number of Lines in each CNC file
ExportValue = 2.000;R[0..1000 ]< 2> ExportValue of z in case of break CNCFile
AutoBreak = 10.000;R[0..10 ]< 10> Break value in CNC file < ExportValue
CondensedExport= Y ;C[Y_ ]< Y> Y purge trivial data in CNC File
IndentedExport = N ;C[Y_ ]< N> Y indent for good visibility
Enable2Half = Y ;C[Y_ ]< Y> Enable 2.5 axis generation
Frontal = Y ;C[Y_ ]< Y> Enable frontal milling
Relative = N ;C[Y_ ]< N> Enable relative coordinate
RelativeG2G3= N ;C[Y_ ]< N> Enable relative coordinate for I, J, K
DecimalNr = 3 ;I[0..4 ]< 3> Nr. of decimals in CNC File
ForceDecimal= N ;C[Y_ ]< N> Force decimal in all real variables
G2G3 = Y ;C[Y_ ]< Y> Enable arc interpolation
G2G3Radius = 2.000;R[-1e3..1e3]< 2> If G2G3=N then value to discreet arc
..

Un exemplu de fiier NC generat prin GNCPP de ctre un client


(TechnoCAM V2.0):
*-Generic NC V2.00 (c)1990-96 Dan MICSA----*
============================================
- Tool : CF10-10;
- Name : QQ [1];
- ProcessBy : Select.RECTANGLE.CNCExport;
- RegUser : Dan MICSA;
- RegCompany : ?=>! BillaSoft;
- SerialNr : ROTM0001;
- ProcessDate: 13/01/97;
- ProcessHour: 10:28:46;
- Processor : TechnoCAD V2.0;
- Cfg.Name20N: X:\W\EXE\CNC.20N;
-------------------------------------------- Bounds.XMin: 5.0;XMax: 21.0 [mm];
- Bounds.YMin: -7.3;YMax: 7.5 [mm];
- Bounds.ZMin: -5.0;ZMax: 45.0 [mm];
- SpeedLength: 10.000[ mm]; 5.934[%];
- Work Length: 158.523[ mm]; 94.066[%];
- TotalLength: 168.523[ mm];
- SpeedTime : 0[h] 0.010[min]; 0.627[%];
- Work Time : 0[h] 1.585[min]; 99.373[%];
- TotalTime : 0[h] 1.595[min];

- 114 -

Concluzii

Concluzii

- SpeedCost : 0.001[ $]; 0.314[%];


- Work Cost : 0.264[ $]; 99.686[%];
- TotalCost : 0.265[ $];
- Nr.of Lines: 66
- Nr.of Bytes: 1342
- Optimizing : -2[%];
-------------------------------------------%1G71N5P0,100.000
N6S100F=P0
N7G0X21Y7.5Z45
N8G1Z-5
N9X20
N10X19Z-2.2
N11X18Z2.6
N12X17Z4.8
N13X16Z5.9
N14X15
...
N70X20.5Y7.5
N71Z5
N72G0Z15
N73G0Z17
N9999%1G71

- 115 -

Concluzii

Concluzii

Cteva figuri n care s-a folosit GNCPP ca generator i analizor de

Figura
5.30 Export fiier NC cu modul FHTSP activat, exemplificarea
reducerii micrilor n avans rapid cu peste 95%.

Figura 5.31 Alte exemplificri ale utilizrii TechnoCAM i GNCPP


a) reea de difracie, b) reper complex cu pas variabil, pentru frezare la
rugozitate constant
tehnologie.

- 116 -

Concluzii

Concluzii

5.4. Concepte introduse


Clasa SuprafaDiscret DerivatDin BazDiscret
{
//Concepte introduse n celelalte capitole
Nimic CreazCurbe(FamiliaDeCurbe fcOut, Real rPentruZ);
Nimic CreazToateCurbele(FamiliaDeCurbe fcOut, Real rZStep = 1.0, Boolean bAuto = ADEVRAT, Real
rZStart, rZEnd);
Nimic ProiecteazCurb(Curb cProiecteaz);
Nimic ProiecteazCurbe(FamiliaDeCurbe fcProiecteaz);
Nimic ProiecteazCurb(Curb cProiecteaz, Real rPas = 0.1); //cu pas constant
Nimic ProiecteazCurbe(FamiliaDeCurbe fcProiecteaz, Real rPas = 0.1); //pas ct.
Nimic ExportDXF(ntreg nCuloare = 15, SetDeCaractere strLayer = SD ieire)
} //SuprafaDiscret
Clasa Fiier //obiect necesar fisierelor de export - import
{
Nimic Deschide(SetDeCaractere strNume); //deschide sau creeaz un fiier
Nimic nchide(); //nchide un fiier
Nimic Scrie(SetDeCaractere strOut); //scrie un SetDeCaractere n fisier
Nimic Citete(SetDeCaractere strIn); //citete un SetDeCaractere din fisier
} //Fiier
Clasa DXFExport //o rudimentare a formatului de export DXF care suport curbe i plase
{
Fiier fiier; //fiierul de export
Nimic Iniializeaz(SetDeCaractere strNume);
Nimic Sfrete();
Nimic InitCurb(ntreg nCuloare = 15, SetDeCaractere strLayer = SD ieire);
Nimic DoneCurb();
Nimic InitPlas(ntreg nU, nV, nCuloare = 15, SetDeCaractere strLayer = SD ieire);
Nimic DonePlas();
Nimic Export(Punct pIn);
} //DXFExport
Clasa STLExport //o rudimentare a formatului de export STL care suport doar ASCII Export
{
Fiier fiier; //fiierul de export
Nimic Iniializeaz(SetDeCaractere strNume);
Nimic Sfrete();
Nimic Export(Punct p1, p2, p3);
} //STLExport
Clasa NCExport //o rudimentare a formatului de export NC ce suport numai informaii geometrice de tip segment
{
Fiier fiier; //fiierul de export
Nimic Iniializeaz(SetDeCaractere strNume);
Nimic Sfrete();
Nimic Export(Punct p, Boolean bRapid);
} //NCExport

- 117 -

Concluzii

Concluzii

- 118 -

Concluzii

Concluzii

5.5. Concluzii
n acest capitol au fost introduse metode de creare de curbe,
proiecie, offset inteligent i export n formate simple ASCII, ca: DXF,
STL, NC.
Acest capitol, al metodelor de conversie i export, este de mare
importan n utilizarea suprafeelor discrete, virtual, n orice sistem de
proiectare i fabricaie. Ideea prezentrii lui a fost aceea de a mbina
prezentarea riguroas, nsoit de expunerea algoritmilor n pseudocod,
cu exemplificarea fiecrui concept introdus, cu ajutorul exemplelor i a
listingului potenial, realizat de ctre clasele expuse.
A fost creat un set nou de clase specifice fiecrui tip de export n
parte: Fiier, CDXFOut, CSTLOut, CNCOut. Aceste clase au fost
implementate folosind o metod unificat de prezentare, ncercnd s se
ascund detaliile fiecrui format n parte.
Au fost create metode noi, destinate conversiei i exportului,
metode care dau o utilizabilitate SD, legndu-le de alte sisteme de
proiectare, ca aparate matematice auxiliare de analiz sau conversie n
format NC.
S-a prezentat, n premier, un algoritm de conversie n curbe de
nivel foarte fin, care permite conversia SD corecie de scul n format NC,
i s-au prezentat aplicaiile lui, potenial nelimitate, n detectarea
formelor de analiz i vectorizarea fotografiilor.
S-a expus i exemplificat GNCPP, un postprocesor generic de
format NC, probabil unul dintre cele mai elaborate postprocesoare la ora
actual, realizat ca o librrie dinamic, foarte complex, care are scopul
de a genera fiier NC specific, i virtual, pentru orice echipament,
optimizat pentru lungime i timp de rulare.

- 119 -

6. Metode de
analiz i
optimizare

-120-

6.1. Introducere
n acest capitol, generic intitulat Metode de analiz i
optimizare, se vor cuprinde cteva dintre cele mai importante aspecte
legate de analiza SD i generarea optimizat a codului NC pentru
fabricarea suprafeelor discrete pe MUCN, precum i cteva tehnici de
verificare, simulare i vizualizare. Cum toate acestea sunt tehnici i
metode de analiz, ele i vor gsi locul n acest capitol.
Principalul scop al capitolelor prezentate pn n prezent a fost acela
de a proiecta i expune un set consistent de obiecte, (relativ) bogat n
metode de modelare, import, export, conversii i proiecii de curbe, n
vederea analizrii i a generrii optimizate de cod NC.
Metodele
algoritmilor n:

expuse

vor

fi

grupate

funcie

de

similitudinea

metode de analiz a SD;


metode de analiz a curbelor;
metode de analiz mixte;
optimizri posibile ale traseelor de scule;
calculul reelei de difracie pentru elementele optice;
metode de vizualizare a curbelor;

Se vor prezenta, n premier, metode noi de analiz: calculul zonelor


plane, calculul zonelor critice la frezarea de seciuni paralele n planul XY,
calculul materialului nefrezabil, calculul curbelor de egal rugozitate,
metode pseudoadaptive de variere a avansului i coreciei de uzur n
timp real, minimizarea micrilor n avans rapid, spiralele lui Billator,
optimizarea traseelor echidistante prin dublarea sau triplarea local,
rezolvarea reelelor de difracie.
Pe lng prezentarea contribuiilor autorul, se vor expune i cteva
metode clasice de generare de cod, considerndu-se ca elemente de
noutate metodele de generare ale acestuia (curbe echidistante n XY i Z),
utiliznd SD n acest domeniu.
Vor fi exemplificate i alte concepte, cum ar fi interpolrile
superioare, eliminarea punctelor de inflexiune, eliminarea punctelor
coliniare, doar cu scopul secundar de a da consisten i calitate unei
eventuale generri de cod NC.

-121-

6.2. Concepte introductive


Metodele de analiz i optimizare expuse n acest capitol se
mpart n trei mari categorii, care au, la rndul lor, alte subseciuni.
Acestea sunt:
metode care opereaz pe suprafaa discret. Utilizeaz o SD
intermediar numit SDCST (suprafa discret corecie de scul
transformat), creat, n general, din SDCS (suprafa discret
corecie de scul), care este secionat, convertit n curbe
echipoteniale, care sunt proiectate napoi pe SDCS. Aceste
transformri intermediare sunt cele necesare pentru:

calculul seciunilor paralele cu Z constant;


calculul seciunilor paralele n planul XY;
calculul de detecie a zonelor plane (flat land detection);
calculul zonelor critice la frezarea planului XY (steep walls detection);
calculul curbelor de egal rugozitate;
calculul materialului nefrezabil;
metode care sunt efectuate dup crearea, conversia i proiectarea curbelor
pe SDCS, analiznd i optimiznd setul de curbe creat prin acest proces, n
vederea convertirii lor n fiier NC optimizat (acestea, n general, au fost
realizate ntr-un produs separat, GNCPP, care nu are nimic comun cu SD).
Acestea sunt:
rejecia punctelor coliniare;
minimizarea micrilor n avans rapid;
modul pseodoadaptiv fr DS;
eliminarea punctelor de inflexiune;
metode mixte, care implic modificarea curbelor n acord cu SD, care
stocheaz stadiul actual de frezare al semifabricatului:
spiralele lui Billator;
cota Z de securitate minim;
modul pseudoadaptiv cu DS;
detecia interferenelor.

-122-

6.3. Metode de analiz a SD


Metodele de transformare a suprafeelor discrete sunt de o mare
importan n metodele de analiz, optimizare, conversie n curbe i apoi
n generarea fiierului NC.
Se menioneaz, nc o dat, c toate metodele care optimizeaz
generarea codului NC, bazndu-se pe transformarea suprafeelor
discrete, analizeaz SDCS i nu suprafaa real (SDR). Toate metodele
expuse au, n general, aceeai derulare, care poate fi sintetizat astfel:
se creaz SD (import, modelare, combinri etc);
se alege o scul ISO (librrie electronic, magazia intreprinderii);
se calculeaz SD nfurtoarea static SDCS (pag. 74);
se calculeaz i se creaz transformarea acesteia n SDCST,
se secioneaz cu algoritmul de conversie n curbe de nivel SDCST
(pag. 91);
Apar dou ci posibile de utilizare a curbelor:
Utilizarea ca i curbe care restricioneaz generarea fiierului (fig.
5.2)
Utilizarea ca i fiier NC (fig. 5.8, 5.9)
se proiecteaz napoi pe SDCS (pag. 96);
se optimizeaz curbele generate;
se export curbele proiectate (pag. 111);

n continuare sunt prezentate cteva transformri intermediare ale


SD. Ele reprezint stadiul actual de studiu i analiz n domeniul
optimizrii fabricaiei suprafeelor discrete, i sunt doar un modest
nceput, cruia autorul i-a dedicat ultimii apte ani. Se consider c
potenialul aceastei metodologii de generare a fiierelor NC, sau a altor
analize, utiliznd transformrile intermediare, este nelimitat i se redau,
n cele ce urmeaz, doar cteva, utilizate i testate de autor, lsnd
spaiu de cercetare n acest domeniu.
Prezentarea se va face ntr-o ordine gradual a complexitii
algoritmului de transformare.

-123-

6.3.1. Calculul seciunilor paralele cu Z


constant
Calculul seciunilor paralele cu Z constant reprezint cea mai simpl
transformare a SDCS n vederea convertirii ei n fiier NC. Aceasta este
transformarea vid, deoarece algoritmul de conversie asigur convertirea
n curbe de nivel direct, deci SDCST = SDCS !
Rezumnd n pseudocod, se poate scrie:
NimicSuprafaDiscret.TransfDetectPtZ(SuprafaDiscret sdAnaliz)
{
sdAceasta = sdAnaliz;
} //TransfDetectPtZ
NimicSuprafaDiscret.DetectCurbeleZ(
FamiliaDeCurbe fcOut, Real rStep = 1.0)
{
SuprafaDiscret sdTransformare; //pregtete suprafaa Discret a transformrii
sdTransformare = sdAceasta; //o iniializeaz
sdTransformare.TransfDetectPtZ(sdAceasta); //o calculeaz
CreazToateCurbele(fcOut); //export curbele
} //DetectCurbeleZ

Exemplificarea conceptelor introduse, n figura urmtoare (cu rou sunt


reprezentate seciunile echipoteniale).

Figura 6.32 Convertirea n curbe de nivel. Curbele echipoteniale (n b)


sunt mai bombate, din cauza aplicrii algoritmilor pe SDCS. Curbele de nivel
sunt cele cu culoare nchis (rou)

-124-

6.3.2. Calculul seciunilor paralele n


planul XY
O alt transformare simpl este cea a calculului seciunilor paralele
n planul XY. Aceasta este probabil cea mai neuzual transformare
posibil. Ea este prezentat doar pentru a arta gradul de generalitate al
algoritmului de conversie n curbe echipoteniale (ACCE).
Scopul este de a demonstra c pentru orice problem n care trebuie
calculat o familie de curbe care sunt caracterizate printr-un parametru
constant (n acest caz o secionare cu curbe paralele n planul XY), se
poate gsi o tehnic de transformare care reduce problema la conversie,
utiliznd ACCE.
Se va prezenta n continuare o metod care ncapsuleaz aceast
transformare:
NimicSuprafaDiscret.TransfDetecteazPentruPlanulXY(
SuprafaDiscret sdAnaliz, Real rUnghi = 45.0)
{
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
PuneLa(nI, nJ, IndexnRealPtX(nI)*cos(rUnghi) + IndexnRealPtY(nJ)*sin(rUnghi)); //iniializare cu dist
} //TransfDetecteazPentruPlanulXY
NimicSuprafaDiscret.DetecteazCurbelenXY(
FamiliaDeCurbe fcOut, Real rStep = 1.0, rUnghi = 45.0)
{
SuprafaDiscret sdTransformare; //pregtete suprafaa Discret a transformrii
sdTransformare = sdAceasta; //o iniializeaz
sdTransformare.TransfDetecteazPentruPlanulXY(sdAceasta, rUnghi); //o calculeaz
CreazToateCurbele(fcOut, rZStep);
} //DetecteazCurbelenXY

Cele expuse pot fi cuprinse n figurile urmtoare.

-125Figura 6.33 Convertirea n curbe paralele n planul XY (zonele deschise la


culoare - crem)

6.3.3. Calculul de detecie a zonelor


plane
Detecia zonelor plane este de o deosebit importan n mprirea
SD n dou poriuni, una specific frezrii cu Z constant i alta (cea a
zonelor plane) cu cicluri specifice frezrii cu drepte paralele n planul XY.
Cele dou tipuri de frezare sunt, la ora actual, cele mai utilizate
metode de frezare. Avantajele constau n faptul c:
traseele sculei pot fi gsite relativ uor, condiiile de intersectare
a SDCS cu plane paralele sunt mai uoare, comparativ cu alte metode
(Not: cea mai simpl i natural metod este cea echiparametric, n
lungul parametrului U sau V al suprafeei);
fiierele NC sunt mai scurte cu 30%, deoarece nu conin dect
micri n dou axe, n fiecare moment;
se pot folosi interpolrile circulare ale ECN, rezult calitate foarte
bun a suprafeei i fiier NC mai scurt.
pot fi folosite de toate echipamentele care sunt limitate de 2.5
axe; la ora actual, peste 90% din echipamentele din ar nu
suport simultan mai mult de 2 axe (considerente strategice de
realizare de suprafee complexe, din perioada rzboiului rece).

Transformarea aplicat SDCS este aceea de a o converti n valoarea


absolut a unghiului de nclinare a normalei fa de planul XY.
Rezumarea n pseudocod este :
NimicSuprafaDiscret.TransfDetecteazSuprafaaPlan(SuprafaDiscret sdAnaliz)
{
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
PuneLa(nI, nJ, sdAnaliz.IaDeLaNormal(nI, nJ));
} //TransfDetecteazSuprafaaPlan
NimicSuprafaDiscret.DetecteazSuprafaaPlan(
FamiliaDeCurbe fcOut, Real rPentruZ = 45.0)
{
SuprafaDiscret sdTransformare; //pregtete suprafaa discret a transformrii
sdTransformare = sdAceasta; //o iniializeaz
sdTransformare.TransfDetecteazSuprafaaPlan(sdAceasta); //o calculeaz
CreazCurbe(fcOut, rPentruZ);
} //DetecteazSuprafaaPlan

Not: metoda IaDeLaNormal() nu a fost discutat. Ea returneaz


nclinaia normalei fa de orizontal, n punctul respectiv.
Figurile 6.1 i 6.2 reprezint dou exemple de cicluri combinate
echipoteniale echidistante n planul XY.

-126-

n figurile urmtoare sunt prezentate, pentru dou repere, cum


arat SDCST care stocheaz variaia normalei i evoluia n spaiu a
acestor curbe echinormale, dup ce au fost proiectate pe SDCS.

-127-

Figura
6.34 SD care stocheaz evoluia (n marime absolut) a
unghiului normalei cu planul orizontal, pentru dou SD, i familii de
curbe echinormale proiectate pe SDCS, procesate din 10 n 10 grade.
-128-

Deoarece acest gen de transformare reprezint una dintre cele mai


importante contribuii n domeniul mbuntirii ciclurilor clasice de
frezare a suprafeelor, se va prezenta, pe un reper dat, evoluia rugozitii
n funcie de unghiul de detecie a zonelor plane.

Figura 6.35 Evoluia rugozitii n funcie de unghiul de detecie a zonelor


plane, pentru valori ale acestuia de 300, 450, 600, 750. Pasul pe Z i n planul
XY este constant. (EdgeCAM V3.0)
Analiznd aceste patru repere se poate observa c, n cazul frezelor
sferice, unghiul optim de detectare a zonelor plane se situeaz la 45 0 .
-129-

6.3.4. Calculul
zonelor
frezarea
seciunilor
planul XY

critice
paralele

la
n

O problem similar cu cea precedent este aceea de a descoperi


zonele critice, cnd se frezeaz ntr-o anumit direcie n planul XY, adic
locurile unde nclinaia suprafeei n direcie perpendicular este mare, i
de a compensa acest neajuns cu frezri n direcii perpendiculare.
Problema fiind geamn
prezentarea n mod analog.

cu

cea

precedent,

se

va

ncerca

Se menioneaz c, pentru stadiul actual al evoluiei mainilor


unelte cu comenzi numerice (MUCN) i a echipamentelor (ECN) din ara
noastr, precum i pentru a obine lungimea fiierului generat ct mai
scurt, cazul particular al frezrii cu unghiuri de nclinaie de 0 0 sau 900 (n
planul XY) joac un rol foarte important.
n pseudocod, algoritmul are urmtoarea nfiare:
NimicSuprafaDiscret.TransfDetecteazPerpendicular(SuprafaDiscret sdAnaliz, Real rPentruUnghiu = 45.0)
{
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
PuneLa(nI, nJ, sdAnaliz.IaDeLaPerpendicular(nI, nJ, rPentruUnghiu));
} //TransfDetecteazPerpendicular
NimicSuprafaDiscret.DetecteazPerpendicular(
FamiliaDeCurbe fcOut, Real rPentruUnghiu = 45.0)
{
SuprafaDiscret sdTransformare; //pregtete suprafaa Discret a transformrii
sdTransformare = sdAceasta; //o iniializeaz
sdTransformare.TransfDetecteazPerpendicular(sdAceasta); //o calculeaz
CreazCurbe(fcOut, rPentruUnghiu);
} //DetecteazPerpendicular

Not: metoda IaDeLaPerpendicular() nu a fost discutat. Ea nu


returneaz altceva dect valoarea nclinaiei curbei n direcie
perpendicular, n punctul respectiv, fa de orizontal.
Se prezint, n continuare, cteva figuri n care se pot observa SD
transformate, pentru a analiza locurile critice n direcia de frezare.

-130-

Figura
6.36 Evoluia SD care stocheaz variaia (n marime absolut)
unghiului n direcie perpendicular, pentru dou SD, i familii de curbe
echinormale proiectate pe SDCS, procesate din 10 n 10 grade.
-131-

Familia de curbe procesate cu aceste tipuri de detecie a zonelor


critice (care reprezint propunerea de a freza SD numai cu cicluri paralele
n planul XY) arat ca n figura urmtoare.

Figura
6.37 Zonele critice i umplerea lor cu curbe paralele
echidistante, care vor fi convertite n fiier NC.

-132-

Deoarece acest gen de transformare reprezint una dintre cele mai


importante contribuii n domeniul mbuntirii ciclurilor clasice de
frezare a suprafeelor, se va prezenta, pe un reper dat, evoluia rugozitii
n funcie de unghiul de detecie a zonelor plane.

Figura 6.38 Evoluia rugozitii i a petei critice (neatingerea rugozitii


impuse), n funcie de unghiul critic. n aceste zone, pentru atingerea
rugozitii impuse, este utilizat un ciclu echidistant n direcie
perpendicular.
Unghiurile analizate sunt 400, 500, 600, 700. Se poate observa c cele mai
bune rezultate se obin la 450.

-133-

Figura 6.39 Evoluia rugozitii i a petei critice (neatingerea rugozitii


impuse) n funcie de unghiul principal de frezare n planul XY. n aceste zone,
pentru atingerea rugozitii impuse este utilizat un ciclu echidistant n direcie
perpendicular.
Unghiurile analizate n planul XY sunt 00, 300, 600, 900. Toate comutrile dintre
cicluri au fost fcute cnd normala a avut un unghi mai mare de 45 0.

6.3.5. Suprapunerea familiilor de curbe


Pentru a reduce zonele martor, acelea care rmn la marginea
dintre dou tipuri de frezri (diferite din cauza deteciei zonelor critice), se
aplic o metod de offsetare (echidistanare) a curbelor alese, pentru
conversia n fiier NC.
Acest tip de echidistanare poate fi executat prin trei metode:
a) n 2D nerecomandabil, deoarece acest tip de offset nu analizeaz
nclinaiile suprafeei fa de planul orizontal i s-ar putea, n unele cazuri, s
propun spre frezaze ntregi perei, aproape verticali (figura urmtoare);

-134-

b) offset inteligent - este exact ca i cel n 2D, numai c dup ce s-a terminat
de offsetat, curbele acestea sunt culcate (mulate) pe suprafee i rezult un
nou set de curbe, care sunt n concordan cu curvatura suprafeei de
dedesubt (figura urmtoare);
c) offset n planul unghiular de tiere acest tip de offset este mult mai
simplu de calculat dect cel precedent, deoarece el creaz dou tipuri de
curbe echiunghiulare de tiere, offsetate cu 1...2 grade. Curbe
echiunghiulare de la 100 la 800 se afl n figurile 6.3 c, d i 6.5 c, d.

Figura 6.40 Comparaie ntre dou metode de offset: cea n 2D (portocaliu)


i cea culcat pe suprafa.
Autorul folosete n prezent numai offsetri de la punctele b i c,
pentru a prentmpina frezarea de dou ori n vecintatea pereilor
verticali.

6.3.6. Calculul curbelor echirugozitate

-135-

Curbele echirugozitate sunt cele mai interesante curbe d.p.d.v. al


frezrii optimizate. Ele reprezint locul geometric al curbelor care au
proprietatea c: dac se frezeaz cu o anumit scul se va ajunge la o
rugozitate constant pe toat suprafaa, atunci nseamn c nu se vor
suprafreza anumite zone (vor fi lustruite) pentru a se asigura rugozitatea
stabilit n alte zone (fig. 6.10). Deci, n concluzie, timpul de frezare este
minim (deoarece asigur rugozitatea maxim admis, constant, pe toat

Figura 6.41 Varierea pasului la frezarea cu curbe paralele n planul XY,


pentru asigurarea rugozitii constante. Se poate observa suprafrezarea n
zonele orizontale (TechnoCAM V2.0)
suprafaa).
n urma analizelor fcute de autor pe 10 repere diferite, pentru
aceeai rugozitate sau obinut fiiere NC mai scurte, n general cu
20..50%.
Acest gen de curbe pot fi create printr-o metod asemntoare, ca
i celelalte curbe de parametru constant, deci vor fi numite curbe
echirugozitate (Eng. Equicusp).
n pseudocod, aceste transformri se pot rezuma astfel:
NimicSuprafaDiscret.TransfEchirugozitate(SuprafaDiscret sdAnaliz, ntreg nMetoda)
{
PutAll(0.0); //seteaz toat pe 0.0
SuprafaDiscret sdTempX, sdTempY, sdTemp;
sdTempX = sdAceasta; //creaz ca aceasta
sdTempY = sdAceasta; //creaz ca aceasta
Dac(nMetoda = ct_nEchirugozitateX SAU nMetoda = ct_nEchirugozitateXY)
{
sdTemp = sdAceasta; //creaz ca aceasta
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 2; nJ < nY; nJ++)
{
PuneLa(nI, nJ, DistXZY(IndexnRealPtX(nI-1), IndexnRealPtY(nJ), [nI-1, nJ],IndexnRealPtX(nI),
IndexnRealPtY(nJ), [nI, nJ]));
sdtemp.PuneLa(nX - nI, nY - nJ, DistXZY(IndexnRealPtX(nX-nI+1),
IndexnRealPtY(nJ), [nX-nI+1, nJ],
IndexnRealPtX(nX - nI), IndexnRealPtY(nJ), [nX - nI, nJ]));

-136-

} //PentruFiecare
Combina(sdTemp, PM_MIN); //combin i las minimul
sdTempX = sdAceasta; //creaz ca aceasta
} //Dac
Dac(nMetoda = ct_nEchirugozitateY SAU nMetoda = ct_nEchirugozitateXY)
{
sdTemp = sdAceasta; //creaz ca aceasta
PentruFiecare(ntreg nI = 2; nI < nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
{
PuneLa(nI, nJ, DistXZY(
IndexnRealPtX(nI), IndexnRealPtY(nJ-1), [nI, nJ-1], IndexnRealPtX(nI),
IndexnRealPtY(nJ), [nI, nJ]));
sdtemp.PuneLa(nX - nI, nY - nJ, DistXZY(IndexnRealPtX(nI),
IndexnRealPtY(nJ), [nX-nI+1,
nJ], IndexnRealPtX(nX - nI), IndexnRealPtY(nJ), [nX - nI, nJ]));
} //PentruFiecare
Combina(sdTemp, PM_MIN); //combin i las minimul
sdTempY = sdAceasta; //creaz ca aceasta
} //Dac
Dac(nMetoda = ct_nEchirugozitateXY)
Combina(sdTempX, PM_MIN); //combin i las minimul
} //TransfEchirugozitate
NimicSuprafaDiscret.DetectEchirugozitate( FamiliaDeCurbe fcOut, ntreg nMetoda =ct_nEchirugozitateXY,
Real rPasul = 1.0)
{
SuprafaDiscret sdTransformare; //pregtete suprafaa discret a transformrii
sdTransformare = sdAceasta; //o iniializeaz
sdTransformare.TransfEchirugozitate(sdAceasta, nMetoda); //o calculeaz
CreazCurbe(fcOut, rPentruZ);
} //DetectEchirugozitate

-137-

Algoritmul nu face altceva dect s adune distana dintre dou puncte,


suprafeele rezultante artnd ca n figura 6.11.
Algoritmul poate avea mai multe materializri, n funcie de cte

Figura
6.42 Suprafee discrete care stocheaz transformarea
echirugozitate. (SDER)
nceputuri are de pe marginile dreptunghiului care conine piesa.
Aceaste transformri au fost fcute cu condiia de a se putea
asigura o transformare intermediar, deci ele nu conin alte informaii
auxiliare despre curbe care taie curbele, destinate fiierului NC.
Suplimentar, se poate vorbi despre aceste tipuri de fiiere, care conin
curbe nconjurtoare, i se pot construi SDER care conin distanele
proiectate pe SDCS ale curbelor care se intenioneaz s fie folosite ca i
curbe de tiere a fiierului NC.

-138-

Folosind variaia culorii i desennd SDCS n aceste culori, se obin


reprezentrile din figura 5.3, algoritmul nefiind altceva dect cazul
particular al offsetului pe suprafa a unui dreptunghi sau a unor drepte
paralele.

Figura 6.43 Cicluri echirugozitate i detecia materialului neprelucrat


-139-

6.3.7. Calculul materialului nefrezabil

-140-

Materialul nefrezabil este totalitatea materialului care rmne


neprelucrat, din cauza apariiei interferenei scul - semifabricat. Deci, el
nu este o variabil de pasul sau tipul fiierului NC (a crui analiz
genereaz calculul materialul nefrezat), fiind doar o variabil de
geometria semifabricatului i a sculei, i se calculeaz foarte simplu,

Figura 6.44 Suprafeele discrete ale reperului (SDR) a, b, ale suprafeei de


contact (SDC) c, d, i ale materialului nefrezabil (SDN) e, f, pentru dou
repere complexe importate.
fcnd diferena dintre SD de contact (SDC) (Eng.: backoffset) i SDR.
-141-

n figura precedent s-au prezentat pentru dou repere, SD reper,


SD contact i SD nefrezabil, pentru clarificarea conceptelor.
Deci, aplicnd pe SDN o conversie echipotenial n curbe de nivel
cu o valoare Z puin mai mare ca 0 (actual autorul folosete valori ntre
0.01 i 0.2), se obin curbele cutate ale deteciei materialului neprelucrat
din cauza interferenei scul - semifabricat.
De menionat c aceste curbe mai trebuiesc offsetate pe direcia
normalei la SDR, cu o distan egal cu raza sculei urmtoare, pentru a
prentmpina urcarea pe perei (antiskating), propus pentru eliminarea
SDN. n urmtoarea figur se exemplific cele expuse n acest subcapitol,
ntr-o seciune 2D.

Figura
6.45 Exemplificarea algoritmului de detectare a materialului
nefrezabil i a necesitii calculului unui offset pe normal, pentru prevenirea
fenomenului de antiskating
n pseudocod, algoritmul are urmtoarea nfiare:
NimicSuprafaDiscret.DetectNefrezabil(FamiliaDeCurbe fcNefrezabil,
SuprafaDiscret sdReper, sdSculaAnal, sdSculaMic, Boolean bDetectPlan = FALS)
{
SuprafaDiscret sdVrfSAcul, sdContact, sdNefrezabil;
sdVrfSAcul.InitnfurtoareStatic(sdReper, sdSculaAnal);
sdContact.InitnfurtoareStatic(sdVrfSAcul, sdSculaAnal, FALS);
sdNefrezabil = sdContact sdReper;
Dac(bDetectPlan) //n cazul n care se dorete frezarea cu o frez cilindric
PentruFiecare(ntreg nI = 1; nI <= nX; nI++)
PentruFiecare(ntreg nJ = 1; nJ <= nY; nJ++)
Dac(sdReper[nI, nJ] = sdReper[0, 0]) sdNefrezabil.PuneLa(nI, nJ, 0.0);
sdNefrezabil.CreazCurbe(fcNefrezabil, 0.05); //creaz curbele de pe sdNefrezabil
sdReper.OffseteazCurbe(); //offseteaz cu raza umtoarei scule !!
} //TransfEchirugozitate

-142-

Cteva repere analizate cu acest algoritm se pot observa n figurile


ce urmeaz. Suplimentar s-au trasat curbele cu cele dou scule: cele roii
corespund sculei mari, iar cele negre pentru scula mic, n cazul n care
bDetectPlan = FALS.

-143-

Figura 6.46 Curbele necesare frezrii cu dou scule. A doua (negru)


frezeaz ce a rmas dup prima. Detectarea materialului nefrezat, fr
detectarea zonelor plane.

-144-

Figura 6.47 Curbele necesare frezrii cu dou scule. A doua (negru)


frezeaz ce a rmas dup prima. Detectarea materialului nefrezat, cu
detectarea zonelor plane.
-145-

n figurile 6.15 i 6.16 au fost prezentate, pentru trei repere,


detectarea materialului neprelucrat, cu i fr detectarea zonelor plane.

-146-

Se poate observa c n cazul n care se folosete o strategie mixt


pentru eliminarea materialului neprelucrat (frezare 3D, scul sferic, zone
curbe + frezare 2D, scul plan, zone plane) scurtarea timpului de frezare
cu a doua scul este n intervalul procentual de 10% - 50%. Se consider
ca fiind o optimizare semnificativ, deoarece pentru repere de

Figura 6.48 Simularea frezrii pe dou repere. Ciclul de finisare, cu cap


sferic R=10.0 mm, frezare echirugozitate, urmat de eliminarea zonelor de
interferen, cu cap sferic R = 2.5 mm
complexitate mare, timpul necesar eliminrii materialului nefrezabil este
comparabil cu cel al ciclului de finisare.
-147-

De menionat c cele mai bune rezultate (puine inflexiuni i micri


n avans rapid) au fost obinute folosind colapsarea echirugozitate a
curbelor care definesc materialul nefrezat. Cteva exemple sunt date n
figurile urmtoare.

Fi
gura 6.49 Exemple de colapsare echirugozitate a curbelor ce reprezint
materialul nefrezat.
n coloana nti sunt reprezentate suprafeele i curbele care delimiteaz
materialul nefrezabil. n coloana a doua, curbele sunt colapsate n 3D,
pentru a genera un ciclu de frezare cu condiia de rugozitate constant.
Acestea au fost contribuiile autorului n domeniul frezrii optimizate
a suprafeelor discrete, care utilizeaz algoritmii bazai pe transformrile
discrete ale acestora.
n continuare se va trece la tehnici de optimizare care se aplic pe
familia de curbe, sau folosesc tehnici mixte de analiz i optimizare.

-148-

6.4. Metode de analiz a curbelor


O parte din acest gen de optimizri sunt prezente, ntr-o proporie
mai mic sau mare, n sistemele de fabricaie. n general, aceste
optimizri nu au nimic comun cu geometria suprafeei, ele legndu-se
numai de forma i poziia curbelor care alctuiesc traseul vrfului sculei.

6.4.1. Rejecia punctelor coliniare


Una din cele mai des utilizate metode de optimizare pentru
lungimea fiierului NC este aceea de a rejecta punctele intermediare care
sunt la o distan mai mic dect tolerana impus.
Nu se va exemplifica n pseudocod implementarea, fiind lung i
simpl. Oricum, n Clasa Curb a fost prevzut o astfel de metod.
n general, acest tip de rejecie aduce reduceri ale fiierului NC de
30..90%.

Figura 6.50 Exemplificarea rejeciei punctelor intermediare pe un fiier NC


exportat cu pas constant de pe o suprafa discret (SD)

-149-

6.4.2. Interpolri superioare


La ora actual, interpolarea circular pentru micri simple n
planele XY, XZ, YZ este prezent n toate ECN, fiind standardizat de
foarte mult vreme. Unele dintre ECN au nceput s suporte arce de cerc
n spaiu i curbe spline (Fanuc, Heidenheim). Din aceste motive, n
sistemele de fabricaie actuale i-au fcut apariia aceste tipuri de
interpolri speciale, care asigur o calitate mbunntit a suprafeei i,
n general, o lungime mai sczut a fiierului NC. Dup unele studii
efectuate de autor, lungimea fiierului NC cu acest gen de interpolri
superioare activat este de 50%...125%, deci nu n toate cazurile se
asigur o scurtare a fiierului NC, dar se asigur o calitate mai
bun a suprafeei frezate. O alt raiune de a implementa interpolrile
superioare este moda: n general utilizatori care au MUCN care suport
aceste interpolri doresc s-i foloseasc ct mai multe din facilitile
acesteia.

6.4.3. Minimizarea micrilor n avans


rapid
Acest tip de optimizare este unul dintre cele mai importante,
reducnd lungimea micrilor n avans rapid cu peste 95% pentru unele
frezri particulare i deschiznd premisele unor generri foarte eficiente
de fiiere NC pentru MUCN de vitez mare.
Aceast problem i gsete o paralel n optimizarea drumului
dintre n localiti (problema comis voiajorului), materializat aici prin
trasee de scul.
Rezolvarea complet a problemei comport o dificultate polinomial
de O(n!), cu n trasee. Dac se ia n considerare i posibilitatea c fiecare
traseu poate fi reversibil, complexitatea problemei crete la O(n!*2n),
ceea ce, din punct de vedere al timpilor de rezolvare, duce la un dezastru,
n cazul n care numrul de trasee depete 50. Spre exemplu, pentru
rezovarea unei probleme de 100 trasee, un calculator cu procesor
Pentium Pro 200Mz a lucrat mai mult de o zi.
n realitate, fiierele NC conin uzual 2005000 de curbe
individuale, ceea ce constituie o complexitate imposibil de rezolvat la ora
actual. Din aceast cauz, soluionarea problemei comis voiajorului TSP
(Traveling Salesman Problem) prin alte metode este una dintre cele
mai importante probleme de optimizare, pentru care, n literatura de
specialitate ncearc timid s-i fac apariia algoritmi din familia celor
bazai pe automate neuronale sau celulare, sau triangularizrile
Delaunay.

-150-

n cazul frezrii, sistemele de fabricaie folosesc metoda de frezare


n zig-zig, optimizarea oprindu-se atunci cnd se depesc cazurile
particulare cunoscute.
Avnd n vedere importana pe care o are pentru generarea
optimizat a fiierului NC, s-a ncercat s se creeze un algoritm care s
rezolve aceast problem ct mai rapid i ct mai aproape de situaia
teoretic. Acest algoritm poart numele Metod euristic rapid de
rezolvare a problemei comis voiajorului - FHTSP (Fast Heuristically
Traveling Salesman Problem).
Complexitatea a sczut de la n la n, ceea ce face ca timpii de
rezolvare a unor probleme de 500 trasee s fie de numai 0.5 secunde, iar
pentru 2000 trasee, de 10 secunde.
Soluia gsit este ideal n proporie de peste 90%, iar timpii de
calcul nu exist practic. Acest algoritm generic este implementat de
ctre autor n GNCPP i EdgeCAM, iar comportarea lui n practic este
ireproabil.
Algoritmul se poate rezuma n pseudocod astfel (o versiune
unidirecional):
FamiliaDeCurbe.OptimizeazFHTSP(ntreg nRezolvComplet = 40)
{
FamiliaDeCurbe fcTemp;
Curb cStart, cCurent;
Punct pCurent, pStart;
//dac sunt puine curbe rezolv complet problema
Dac(nNr <= nRezolvComplet)
OptimizeazTSP();
Altfel
{
cStart = [1];
fcTemp.PuneLa(cCurent); //adun curba 1
pStart = cStart[cStart.nNr]; //captul de sfrit
terge(1); //i o terge
PentruFiecare(ntreg nI = 2; nI <= nNr; nI++)
{
Real rDist = 1e100;
ntreg nDist = 0;
PentruFiecare(ntreg nJ = 1; nJ <= nNr; nJ++)
{
cCurent = [nI];
pCurent = cCurent[1]; //captul de start
Dac(DistXYZ(pCurent, pStart) < rDist)
{
rDist = DistXYZ(pCurent, pStart);
nDist = nI;
} //Dac
} //PentruFiecare
cStart = [nDist];
pStart = cStart[cStart.nNr]; //captul de sfrit

-151-

terge(nDist);
} //PentruFiecare
} //Altfel
sdAceasta = fcTemp; //!! actualizeaz familia de curbe
} //OptimizeazFHTSP

Algoritmul nu face altceva dect s sorteze curbele, n funcie de


distana minim dintre capetele de sfrit i start, pornind cu prima curb.
Algoritmul care analizeaz distana dintre ambele capete, i n cazul n
care este parcurs n ordine invers o inverseaz, este prea complicat
pentru a fi expus.
Acest algoritm este nsoit de altul, care leag capetele mai multor
curbe, mai mici dect o distan (uzual 3..6 * pasul de procesare), i
astfel, necesarul de ieiri i intrri n material se reduce drastic (n
exemplul ilustrat, de la circa 500 de intrri i ieiri au mai rmas 10, deci
o optimizare de circa 98 %, iar timpul necesar acestei optimizri a fost de
2 secunde !).
Se prezint, spre exemplificare, un caz de fiier NC echipotenial, cu
i fr acest tip de optimizare, procesat cu aceleai condiii iniiale.

-152-

Figura 6.51 Optimizarea FHTSP pentru reducerea micrilor n avans rapid


fr FHTSP
cu FHTSP

-153-

6.4.4. Modul pseodoadaptiv fr DS


La ora actual, un sistem adaptiv de variere a avansului n funcie
de cantitatea de material prelevat este foarte costisitor.
Se va prezenta, n dou subcapitole separate, dou metode (una
care utilizeaz SD i alta care nu utilizeaz SD) de a analiza fiierul NC i
de a varia n timp diferii parametri, ca avansul sau offsetul, pentru a lua
n considerare geometria sculei, a compensa uzurile i variaiile termice.
Cea mai simpl metod de analiz este cea prezentat n
continuare, care nu ia n considerare SD, ci numai curbele care alctuiesc
fiierul NC, ncercnd ca, n urma analizrii geometriei acestora, s
varieze avansul i cota pe Z.
n funcie de rigiditatea sa, dictat de numrul de tiuri, lungime i
diametru, scula are tendina de a freza mai bine radial sau axial. Astfel,
un burghiu, care are numai 2 tiuri, i deci este puin rigid, poate fi
folosit pentru a freza axial, dar este aproape imposibil de a freza radial cu
el, pe cnd cu o frez care are mai multe tiuri, este invers.
O prim optimizare este aceea de a varia avansul n funcie de
unghiul de nclinare fa de planul orizontal i de numrul de dini pe care
i are scula.
De menionat c acest tip de optimizare i gsete raiunea doar n
ciclurile care sunt destinate degrorii, cnd maina unealt i scula sunt
supuse unor regimuri care depind de rigiditatea lor. Acest tip de
optimizare duce la reduceri semnificative de timp, de 50..500%, deoarece
n ciclurile de degroare se folosesc scule foarte rigide, care favorizeaz
frezrile radiale, n detrimentul celor axiale, cu un factor de 3:1 ... 5:1.
Deci, folosind un avans diferit (mai mare) la frezarea radial fa de cea
axial, scula i MU pot fi ncrcate eficient. Cum la reperele uzuale
frezrile axiale ocup un timp de cca 20%, rezult c, folosindu-se acelai
avans, impus de frezarea axial, MU lucreaz 80% din timp cu un avans
de 3..5 ori mai mic, fiind deci posibil o optimizare de 240% ... 400% !
Compensarea uzurii se poate face analiznd ct cantitate de fiier
NC a fost frezat n fiecare moment, definind un coeficient procentual
care reduce avansul dup fiecare (spre exemplu) metru de material
prelucrat.
Autorul utilizeaz valori de 0.98...0.999 ale coeficientului de
micorare care se aplic multiplicativ valorii avansului pe metru de
material frezat.

-154-

La compensarea uzurii se poate vorbi i de o compensare posibil n


direcia Z, de circa 0.001...0.01 mm/m. Este posibil doar pe direcia Z,
deoarece n momentul generrii fiierului NC, compensri spaiale de
uzur nu se mai pot face, din cauza complexitii calculelor implicate.
Se consider discuia despre compensarea dilataiilor termice doar
una pur academic, ea nefiind practic operabil, din cauza mult prea
multor factori de care depinde. Aceti parametri, ca starea termic a
mainii, sculei, lichidului, mediului, variaiile n timp ale acestor
parametri, duc la necunoscute i complexiti mult prea mari pentru a fi
analizate i compensate cu precizie.

-155-

Figura 6.52 Fiiere de degroare cu pilotarea inteligent a avansului, n


funcie de de tipul micrii axial sau radial (rou micrii axiale)
(TechnoCAM V2.0)

n figura 6.21 se pot observa cteva aspecte discutate n acest


subcapitol i cantitatea relativ sczut a micrilor axiale n comparaie
cu cele radiale.

6.4.5. Eliminarea
inflexiune

punctelor

Eliminarea punctelor de inflexiune n fiierele NC duce la:

-156-

de

lungirea vieii MU, prin nesupunerea lanurilor cinematice la ocuri de


oprire i pornire;
scderea semnificativ a timpului de frezare la ciclurile de mare vitez;
calitate mbuntit a suprafeei (vibraiile fiind sczute).

De-a lungul vremii s-a ncercat transformarea ciclurilor clasice


echipoteniale i echidistante n XY, n vederea satisfacerii acestui
deziderat. Metoda cea mai simpl de transformare este aceea a adunrii
unui arc de cerc, pentru a asigura continuitatea derivatei nti pe dou
curbe echidistante. Arcul se traseaz tangent la trei curbe, dou fiind
traseele, iar a treia fiind dreapta care unete cele dou capete (fig. 6.22
a, b). Aceast transformare nmoaie dicontinuitatea din punctele de
inflexiune.
O alt metod este de a aduga o cubic, care este constrns de
capetele curbei i direciile acestora (fig. 6.22 c).

Figura 6.53 Diferite metode de transformare a ciclurilor clasice n vederea


reutilizri lor la frezare de vitez mare.
De menionat c transformrile propuse sunt n general destul de
bune i satisfac, n general, dorinele utilizatorilor. Dezavantajul lor este
acela c sunt destul de greu de implementat.

-157-

6.5. Metode de analiz mixt


Metodele de analiz i optimizare mixt sunt foarte utile i eficace,
ele permind analize si generri de fiiere NC sofisticate, foarte rapide,
ca: analiza curvaturii, analiza zonelor de securitate minime pentru micri
rapide, detecii de interferene cu luarea n considerare a elementelor de
fixare scul i semifabricat, cota minim Z de securitate la micri n
avans rapid etc.
Ele nu sunt aa de generale ca i cele care nu utilizeaz SD, din
cauz c trebuiesc create SD, dar odat create SD asociate, se pot folosi
metodele acestora, care permit analizele enumerate.

6.5.1. Spiralele lui Billator


Contribuiile autorului n domeniul fabricaiei cu vitez mare sunt
transformrile curbelor nchise echirugozitate n spirale. Acestea au
fost denumite Spiralele lui Billator, dup cyberporecla autorului, i
sunt o familie special de spirale, care se calculeaz printr-un morf
continuu pe familia de curbe care se conin una pe alta. n cazul n care
exist ramificaii n arborele de curbe, se procedeaz recursiv la
calcularea spiralelor lui Billator, pentru fiecare ramificaie n parte. Acest
tip special de frezare va fi coninut n exclusivitate n produsul EdgeCAM
V4.0 i sunt n ntregime generate de autor.
Ordinea operaiilor necesare pentru a transforma orice suprafa
demulabil n spirale continue, fr puncte de inflexiune, care sunt
generate pentru a lsa o rugozitate constant (deci timpul de fabricaie
este minim, nu exist suprafrezare, ca n cazul altor tipuri de frezri) este
urmtoarea:
se modeleaz reperul SDR; (import, modelare etc);
se calculeaz corecia de scul SDC;
se transform SDC n SDER (echirugozitate);
se filtreaz, pentru a nmuia colurile i a rotunji curba de 3..10 ori;
se secioneaz echipotenial (se obine un set de curbe nchise, n
90% din cazuri cu un singur maxim local - punct de colapsare);
se ordoneaz toate curbele n acelai sens;
se rotesc curbele pn n punctul de start cel mai apropiat;
se aplic un morf continuu pe curbe
se proiecteaz curba rezultat pe SDC;
se export ca fiier NC curbele rezultante;

-158-

De menionat c, pe parcursul lucrrii, au fost atinse toate aceste


metode, cu excepia celor de ordonare i rotire a curbelor pentru a avea
punctul de start ct mai apropiat.
Se vor prezenta pentru prima oar, n pseudocod, aceste dou
metode:
NimicCurb.Rotete(ntreg nDeCteOri) //rotete o curb cu nDeCteOri pai
{
PentruFiecare(ntreg nI = 1; nI < nNr; nI++)
{
PuneLa(nNr, [1]);
terge(1);
} //PentruFiecare
} //Rotete
Real Curb.AriaCuSemn() //returneaz aria cu semn pentru a detecta direcia
{
Real rAria = 0.0;
Punct pStart = [1], pEnd;
PentruFiecare(ntreg nI = 2; nI < nNr; nI++)
{
pEnd = [nI];
rAria = rAria + (pEnd.rX pStart.rX) * (pEnd.rY + pStart.rY);
} //PentruFiecare
return(rAria / 2.0);
} //AriaCuSemn
NimicCurb.FTrigonometric() //transform o curb n sens trigonometric
{
Dac(AriaCuSemn > 0.0)
SchimbSensul();
} //FTrigonometric
NimicCurb.FOrar() //transform o curb n sens orar
{
Dac(AriaCuSemn < 0.0)
SchimbSensul();
} //FOrar
NimicFamiliaDeCurbe.FTrigonometric() //transform curbele n sens trigonometric
{
Curb c;
PentruFiecare(ntreg nI = 1; nI < nNr; nI++)
{
c = [nI];
c.FTrigonometric();
} //PentruFiecare
} //FTrigonometric
NimicFamiliaDeCurbe.FOrar() //transform curbele n sens orar
{
Curb c;
PentruFiecare(ntreg nI = 1; nI < nNr; nI++)
{

-159-

c = [nI];
c.FOrar();
} //PentruFiecare
} //FOrar
NimicFamiliaDeCurbe.Rotete() //rotete curbele pn au punctul de start minim
{
Curb cStart, cEnd;
cStart = [1];
PentruFiecare(ntreg nI = 2; nI < nNr; nI++)
{
cEnd = [nI];
pStart = cStart[1];
ntreg nRotete = 0;
Real rDist = 1e100;
PentruFiecare(ntreg nCurb = 1; nCurb < cEnd.nNr; nCurb++)
{
pEnd = cEnd[nCurb];
if (DistXYZ(pStart, pEnd) < rDist)
{
rDist = DistXYZ(pStart, pEnd);
nRotete = nCurb;
} //Dac
} //PentruFiecare
Rotete(nRotete);
cStart = cEnd;
} //PentruFiecare
} //Rotete
NimicFamiliaDeCurbe.Spiral(ntreg nPuncte = 100) //transform curbele n spirale
{
Curb cStart, cEnd;
cStart = [1];
PentruFiecare(ntreg nI = 2; nI < nNr; nI++)
{
cEnd = [nI];
PentruFiecare(ntreg nT = 2; nT < nPuncte; nT++)
{
pStart = cStart.IaDeLaT(nT/nPuncte);
pEnd = cEnd.IaDeLaT(nT/nPuncte);
Add(pStart + (pEnd - pStart) * nT / nPuncte);
} //PentruFiecare
cStart = cEnd;
} //PentruFiecare
} //Spiral
//transform SDC n spirale
NimicSuprafaDiscret.SpiraleleLuiBillator(FamiliaDeCurbe fcOut, Real rStep = 1.0)
{
SuprafaDiscret sdTemp;
sdTemp.TransfEchirugozitate(sdAceasta, 255);
sdTemp.nmoaie(5); //face media celor patru vecini de 5 ori crete continuitatea !
sdtemp.CreazToateCurbele(fcOut, rStep);
fcOut.FOrar();
fcOut.Rotete();
fcOut.Spiral();
ProiecteazToateCurbele(fcOut); //citete cota Z !

-160-

} //SpiraleleLuiBillator

Aa arat, n pseudocod, o versiune simpificat a calculului


Spiralelor lui Billator (SLB), care suport doar un singur maxim local
pe SDER. De menionat c, rezolvarea cazurilor cu multiple maxime locale
este o problem destul de complicat, care necesit liste de incluziune
local i tehnici de scanline. Implemetarea algoritmului care rezolv
toate cazurile necesit mai mult de 40 pagini de pseudocod.
Cteva repere transformate n SLB i frezate se pot observa n
figurile urmtoare.

-161-

Figura
6.54
echirugozitate.

Un

reper

analizat

vederea

frezrii

cu

curbe

curbele echirugozitate proiectate pe suprafaa discret corecie de


scul (SDCS);
curbele transformate ntr-o spiral continu i proiectate pe SDCS
(Spirala lui Billator);

-162-

Figura 6.55 Un reper analizat n vederea frezrii cu curbe echirugozitate.


curbele echirugozitate proiectate pe suprafaa discret corecie de scul
(SDCS);
curbele transformate ntr-o spiral continu i proiectate pe SDCS (Spirala
lui Billator);
simularea fiierului NC rezultant, cu varierea culorii din 5 n 5 spire.

-163-

Figura 6.56 Un reper analizat n vederea frezrii cu curbe echirugozitate.


curbele echirugozitate proiectate pe suprafaa discret corecie de scul
(SDCS);
curbele transformate ntr-o spiral continu i proiectate pe SDCS (Spirala
lui Billator);
simularea fiierului NC rezultant, cu varierea culorii din 5 n 5 spire.

-164-

Figura 6.57 Un reper analizat n vederea frezrii cu curbe echirugozitate.


curbele echirugozitate proiectate pe suprafaa discret corecie de scul
(SDCS);
curbele transformate ntr-o spiral continu i proiectate pe SDCS (Spirala
lui Billator);
simularea fiierului NC rezultant, cu varierea culorii din 5 n 5 spire.

Fiecare reper a fost prezentat n trei ipostaze: momentul n care a


fost convertit n curbe echirugozitate ordonate i cu acelai sens (a),
-165-

momentul n care a fost convertit n SLB (b), i calitatea i distribuia


rugozitii, dup ce a fost simulat o frezare cu fiierul NC generat din SLB
(c).

6.5.2. Modul pseudoadaptiv cu SD


Modul pseudoadaptiv, n cazul n care se cunoate SD, este mult mai
realist, putndu-se ti n fiecare moment cantitatea de material prelevat
n direcie radial i transversal. Se pot rupe, spre exemplu, linii lungi n
buci mici, n funcie de cantitatea de material prelevat, i se poate
ncetini ciclul, n oricare moment, pentru a preveni ruperea sculei etc.
Calculele de uzur a sculei se pot face foarte precis, cunoscndu-se
n fiecare moment ct material a fost frezat cu fiecare poriune de pe
generatoarea sculei.
Acest mod de a pilota scula, variind avansurile n timp real, duce la
ncrcri optime ale sculei i mainii unelte, scznd timpii de frezare i
crescnd calitatea suprafeei i viaa MU, datorit reducerii ocurilor i
vibraiilor.

6.5.3. Detecia interferenelor


n cazul analizrii frezrii, n timp real, se poate cunoate starea
semifabricatului, putndu-se detecta interferene de tipul:
portscul - semifabricat;
elemente de fixare - scul;
portscul - elemente de fixare;

n cazul n care se cunoate i SDR se pot analiza, suplimentar,


zonele n care suprafaa a fost distrus (fiier NC prost generat) sau
zonele cu material nefrezat, analiznd semnul SD, care reprezint
diferena dintre SD simulare i SDR.
Analiza frezrii, n timp real, se poate face relativ simplu, cunoscnd
geometria fiierului NC i a sculei, folosind modul de punere PM_MIN a SD
scul (SDSC) n fiecare poziie, folosind un algoritm simplu de trasare a
liniei ntr-un raster (Bresenham).
O figur capturat dintr-un sistem care simuleaz frezarea prin
aceast tehnologie se poate observa n figura urmtoare (6.27).

-166-

Figura 6.58 Simularea solid a frezrii, cu NCVerify Sirius Technology

Alte beneficii imediate ale simulrii n timp real a frezrii sunt cele ale
gsirii cu acuratee a cotei Z minime, pentru micrile cu avans rapid.

-167-

6.6. Optimizarea traseelor de


scul
n acest subcapitol va fi expus ca metod de optimizare generarea
fiierului NC ntr-un singur ciclu, n cazul n care nu se doresc cicluri
combinate pentru eliminarea zonelor critice.
De-a lungul vremii s-au ncercat diferite metode de a scdea
rugozitatea suprafeelor prelucrate. Astfel, n sistemele de fabricaie
actuale exist o metod de frezare cu pas variabil, n ciclurile clasice de
frezare cu Z constant sau dup o direcie n planul XY. Prin aceast
metod (fig. 6.29 a, b) se asigur o rugozitate constant, ntr-un timp
rezonabil, n general mai mic cu 10..90% din timpul necesar frezrii
suprafeei cu pasul cel mai mic, constant. Aceast metod are ns un
dezavantaj, acela de a suprafreza ntreaga poriune care nu este nclinat,
lungind timpii teoretici cu 30..90%.
Autorul a ncercat s elimine acest dezavantaj i a dezvoltat o
metod care rezolv problema, crescnd doar local numrul de treceri.
Aceast metod este relativ simpl i duce la scderi ale timpului de
frezare, cu 20...60% n comparaie cu metoda clasic, cea cu pas dinamic.
Metoda descris a fost numit cu pas inteligent (smart step) i, n
general, ea este doar cu 10..15% mai lung dect cea teoretic, de
frezare la rugozitate constant !
Deci, sintetiznd pentru o suprafa oarecare i o rugozitate dat, se
poate afirma c timpii necesari frezrii pentru diferite cicluri sunt
proporionali cu urmtoarele valori:
Echirugozitate:
Pas inteligent:

1.0
1.10
..
1.15
1.6 .. 3.0
de 5.0
..
20.0

Pas dinamic:
Fr variere
pas:
Tab 6.1
Date sunt trasate dup analiza unui set de peste 50 de repere
discretizate.
La ora actual, ciclurile de frezare cu pas inteligent sunt
implementate doar n sistemele de fabricaie EdgeCAM V4.x,
TechnoPack V2.x (implementate de autor) i HyperMill, n ciclurile de
colapsare a curbelor cu mulare pe suprafa.

-168-

Figura 6.59 Dublarea / triplarea pasului, cnd nclinaia devine mare.


Frezarea echidistant cu pas inteligent (fig. 6.29 c, d) exist doar n
TechnoPack V2.x i se preconizeaz a fi introdus i n EdgeCAM V5.0,
fiind descoperit i implementat n exclusivitate de autor.
Dezvoltarea n pseudocod este destul de sofisticat i lung, din
acest considerent se va ncerca doar o explicare sumar a metodei (care
principial se apropie destul de mult de calculul zonelor critice la
frezarea seciunilor paralele n planul XY).
Se consider, pentru orice micare elementar din traseul sculei,
nclinaia acesteia n direcie perpendicular. Dac aceasta este n
intervalul 0...300 nu se execut nimic, dac este n intervalul 30 0 ... 600 se
activeaz un comutator b2x i se marcheaz punctul de start, iar dac
este mai mare de 600 se activeaz un alt comutator b3x i se marcheaz
punctul de start.

n cazul n care se schimb un interval 0 0 - 300 - 600 - 900, i unul din


comutatoarele b2x sau b3x este activat, se execut o njumtire (sau o
treime) a pasului i se face o bucl, ca n figura urmtoare.
NOT:Micare elementar nseamn c fiecare segment de dreapt este
mai mic, spre exemplu de 1 mm.Unghiurile de 300, 600 sunt orientative.
O simulare solid este prezentat n figura 6.28, n care se poate
observa (relativ) rugozitatea constant.

-169-

Avantajul frezrii cu dublarea sau triplarea pasului este acela c se


poate implementa relativ uor, nefiind necesar un modul de suprafee
discrete, utilizndu-se codul existent pentru ciclurile echidistante;
urmrind tabelul 6.1 se poate observa c timpii, n general, sunt foarte

Figura 6.60 Trasee de scul cu varierea pasului


a, b) dinamic, pe toat lungimea;
c, d) inteligent, doar n locurile unde este necesar.
apropiai de frezarea teoretic la rugozitate constant (fiind, n urma unui
studiu efectuat pe peste 20 de repere doar cu 10..15 % mai mari !), care
necesit ns calcule relativ complexe.

-170-

6.7. Calculul reelelor de difracie


Reelele de difracie i gsesc utilitatea, n particular, pentru
realizarea elementelor optice i, n general, n orice alt metod de a
grava. Reele de difracie au rolul de a crea lumin difuz din lumin
direct. Aceast metod are aplicaie la realizarea farurilor din spate de la
autovehicole, unde nu este permis transmiterea luminii directe.
Problema se pune n felul urmtor: se cere a genera o reea
patrulater care s acopere o suprafa complex, i care s aib celulele
relativ egale. Este clar c nu se poate genera o reea patrulater perfect
echidistanat care s acopere orice suprafa i s aib celule egale,
scopul este doar estetic ca celulele s fie relativ armonios poziionate,
considerentele funcionale fiind realizate deja de prezena bulinelor din
nodurile reelei.
n acest domeniu, autorul a ncercat s proiecteze o metod
general de bulinare, cu care, dndu-se o suprafa complex i dou
curbe de ghidare, s se umple suprafaa cu o reea ct mai uniform.
Algoritmul poate fi sintetizat n felul urmtor:
se dau dou curbe, o SD i o raz a bulinei, doi pai de parcurgere
pentru cele dou curbe;
se calculeaz SDCS cu o scul sferic cu raza egal cu raza bulinei;
se muleaz o curb pe SDCR (curba directoare);
se multiplic cealalt curb i se aplic pe curba directoare (curbele
generatoare);
se muleaz pe SDCR curbele generatoare;
se parcurg generatoarele, ncepnd de la intersecia lor cu curba
directoare, cu pasul curbei generatoare constant, spre stnga i spre
dreapta;
se parcurge n zig-zag reeaua de puncte rezultant i se creaz fiierul
NC.

-171-

Cele enumerate pot fi observate n figura urmtoare.

Figura 6.61 Concepte introductive pentru realizarea reelei de difracie.

-172-

Figura 6.62 Trei seturi de curbe necesare realizrii reelei de difracie,


pentru trei repere practice. Coloana a II-a reprezint calitatea i
amplasamentul fiecrei buline.

-173-

Algoritmul n pseudocod este destul de lung i nu va fi expus. Din


exemplificare se poate observa c toi algoritmii implicai au fost expui.
Se vor prezenta, n continuare, trei exemple reale executate de autor la
SC ELBA SA, care reprezint:
a i b - un far de biciclet, n care cele dou curbe sunt drepte,
unghiul dintre ele este de 600, iar pasul este egal pe cele dou direcii,
curbele fiind tiate dup un cerc, n XY;
c i d - o suprafa mai complex, n care se propune o reea
rectangular cu laturi inegale, pe o suprafa cu curvaturile variabile n
cele dou direcii de frezare;
e i f un reper teoretic, complex, cu schimbri rapide de curvatur
(discontinuiti ale derivatei nti), reea rectangular n masc; curbele
sunt tiate dup dou cercuri concentrice.
Timpii de frezare au fost sub o or, pentru fiecare reper, o reducere
semnificativ, lund n considerare c, practic la o singur suprafa, prin
metodele normale, se lucra manual (neexistnd un aparat matematic)
mai mult de o lun (ntr-un schimb), iar calitatea reelei a fost mult
superioar n algoritmul prezentat. Ultima suprafa este aproape de
realizat manual.
Pentru a putea analiza calitatea reelei obinute au fost simulate
cele dou fiiere i au fost prezentate n figura 6.31, c i d.

-174-

6.8. Metode de vizualizare a


curbelor
Acest subcapitol se va ocupa, n excusivitate, cu diferite metode de
a vizualiza, n general, orice curb sau familie de curbe, n particular,
trasee de scul. Necesitatea vizualizrii curbelor (traseelor de scul) n
diferite culori a fost mult vreme una din dorinele nesatisfcute ale
utilizatorilor de sisteme de fabricaie, care i-au dorit un mod de
reprezentare a acestora ntr-o manier ct mai uor i rapid de interpretat
. Aceast necesitate a fost observat de ctre autor la nceputul anilor
90, i rafinat pe parcurs. Multe din aceste metode folosesc paleta
standard de analiz spectral (curcubeul), nceputul fiind reprezentat de
albastru, mijlocul de verde i sfritul de rou. De-a lungul lucrrii au fost
folosite, fr explicaii, diferite metode de a reprezenta curbele. Acestea
ar putea fi sortate n aceast ordine:
toate traseele specifice unei scule sunt desenate ntr-o culoare
(tehnic uzual sistemelor de fabricaie actuale);
fiecare traseu de scul este desenat n paleta spectral - pentru a ne
forma o idee despre nceputul, ordinea i sfritul unui ciclu;
fiecare traseu de scul care ncepe cu o micare de lucru este desenat
n paleta spectral - pentru a ne forma o idee despre nceputul, ordinea
i sfritul fiecrui traseu elementar dintr-un ciclu (util pentru
spiralizri, analize de rugozitate);
curbele sunt desenate n degrad n paleta spectral, folosind ca
parametru axa X, Z, Y sau variaia unui alt parametru: unghiul de
variaie al normalei, eforturile radiale, longitudinale, mixte, materialul
nefrezat, rugozitatea etc., normate n [01];

Suplimentar se poate schimba culoarea (sau numai intensitatea


nuanei respective), obinndu-se informaii despre cantitatea de vectori
din curba respectiv (toleran, tergerea punctelor coliniare, curvatur
etc.).

-175-

Un exemplu complex, n care s-au utilizat cteva din tehnicile


expuse de reprezentare a variaiei rugozitii (albastru - bun, verde, rou
- critic), compensarea acesteia printr-un ciclu inteligent de frezare i
cantitatea de vectori (varierea intensitii n noduri) poate fi observat pe
urmtorul reper (un om de ciocolat pentru Crciun), scanat cu un scaner

Figura 6.63 Reper ntr-o reprezentare complex.


laser n Germania, care a fost procesat numai folosind algoritmi prezentai
de-a lungul tezei.

-176-

Alte exemple de reprezentare, mai simple, se pot observa n figurile


urmtoare.

Figura 6.64 Cteva metode de vizualizare a curbelor. a) pentru fiecare


curb; b, c) toat familia desenat n degrad; d) degrad variind axa Z; e,
f) degrad dup rugozitatea obinut
-177-

6.9. Concepte introduse


Clasa SuprafaDiscret DerivatDin BazDiscret
{
//Concepte introduse n celelalte capitole
Nimic TransfDetectPtZ(SuprafaDiscret sdAnaliz);
Nimic DetectCurbeleZ(FamiliaDeCurbe fcOut, Real rStep = 1.0);
Nimic TransfDetecteazPentruPlanulXY(SuprafaDiscret sdAnaliz, Real rUnghi = 45.0);
Nimic DetecteazCurbelenXY(FamiliaDeCurbe fcOut, Real rStep = 1.0, rUnghi = 45.0);
Nimic TransfDetecteazSuprafaaPlan(SuprafaDiscret sdAnaliz);
Nimic DetecteazSuprafaaPlan(FamiliaDeCurbe fcOut, Real rPentruZ = 45.0);
Nimic TransfEchirugozitate(SuprafaDiscret sdAnaliz, ntreg nMetoda);
Nimic DetectEchirugozitate(FamiliaDeCurbe fcOut, ntreg nMetoda = ct_nEchirugozitateXY, Real rPasul = 1.0);
Nimic TransfNefrezabil(SuprafaDiscret sdNefrezabil, ntreg nMetoda);
Nimic DetectNefrezabil(FamiliaDeCurbe fcNefrezabil, SuprafaDiscret sdReper, sdSculaAnal, sdSculaMic,
Boolean bDetectPlan = FALS);
Nimic SpiraleleLuiBillator(FamiliaDeCurbe fcOut, Real rStep = 1.0); //transform SDC n spirale
} //SuprafaDiscret
Clasa Curb DerivatDin BazVectorial
{
//Concepte introduse n celelalte capitole
Nimic Rotete(ntreg nDeCteOri); //rotete o curb cu nDeCteOri
Real AriaCuSemn(); //returneaz aria cu semn pentru a detecta direcia
Nimic FTrigonometric(); //transform o curb n sens trigonometric
Nimic FOrar(); //transform o curb n sens orar
} //Curb
Clasa FamiliaDeCurbe DerivatDin BazVectorial
{
//Concepte introduse n celelalte capitole
Nimic OptimizeazFHTSP(ntreg nRezolvComplet = 40);
Nimic FTrigonometric(); //transform curbele n sens
Nimic FOrar(); //transform curbele n sens orar
Nimic Rotete(); //rotete curbele pn au punctul de start minim
Nimic Spiral(ntreg nPuncte = 100); //transform curbele n spirale
} //FamiliaDeCurbe

-178-

6.10. Concluzii
n acest capitol, intitulat Metode de analiz i optimizare, s-a
ncercat s se cuprind cteva dintre cele mai importante aspecte legate
de analiza i generarea optimizat a codului NC pentru fabricarea
suprafeelor discrete pe MUCN, precum i cteva tehnici de verificare i
simulare.
Cum toate optimizrile, generrile de cod NC, verificrile i
simulrile sunt tehnici i metode de analiz, n mod natural ele i-au
gsit locul n acest capitol. S-a preferat gruparea tuturora la un loc,
deoarece ntre multe dintre acestea exist o interpenden ascuns
(d.p.d.v. matematic) i se consider c dup expunerea capitolului,
sortat din punct de vedere logic, al complexitii i asemnrii aparatelor
matematice, se poate observa asemnarea unor tehnici de analiz a
suprafeei (zone plane, material nefrezat etc.) cu tehnicile de generare a
codului NC (echidistante, echirugozitate etc.). Tehnicile de verificare
sunt aceleai, ntr-o foarte mare proporie, cu cele de simulare.
Cum lucrarea are un caracter primordial de sintez, s-a ncercat
gruparea logic, matematic, n detrimentul celei funcionale, nedorinduse pierderea relaiei dintre tehnicile de analiz.
n acest capitol s-au introdus i expus trei mari aspecte ale analizei:
metode de analiz a SD i generarea optimizat de cod NC, cteva
optimizri posibile ale codului NC n cazul traseelor echidistante i
calculul reelei de difracie pentru elementele optice.
S-au prezentat, n premier, cteva metode noi, precum:
calculul zonelor plane;
calculul zonelor critice la frezarea seciunilor paralele n planul XY;
calculul materialului nefrezabil;
calculul curbelor de egal rugozitate;
metode pseudoadaptive de variere a avansului i coreciei de uzur n
timp real;
minimizarea micrilor n avans rapid;
spiralele lui Billator;
o metod nou de optimizare a traseelor echidistante, prin dublarea
sau triplarea local;
o metod de rezolvare a reelelor de difracie;

Pe lng prezentarea contribuiilor autorul au fost expuse i cteva


metode clasice de generare de cod, considerndu-se ca elemente de
noutate metodele de generare ale lor (curbelor echidistante n XY i
Z) utiliznd SD n acest domeniu.

-179-

Alte concepte, care sunt enumerate i exemplificate pe parcursul


capitolului, cum ar fi: interpolrile superioare, eliminarea punctelor
de inflexiune, eliminarea punctelor coliniare au fost expuse doar cu
scopul secundar de a da consisten i calitate unei eventuale generri de
cod NC.

-180-

7. Concepte
introduse

-181-

//----- Clasele utilizate pe parcursul lucrrii -----------------------------------//Clasa int utilizat pentru operaiile cu numere ntregi
//prefix Variabile: n
Clasa ntreg
{
operator +, -, *, /, &, |, %, <, >, >=, <=, =, ==, +=, -=, *=, /=, &=, |=, %=, I, SAU, %%, !, min, max; //operatorii i
conversiile din tipul real
Nimic Min (ntreg nA, nB); //ntoarce minimul dintre valorile nA i nB
Nimic Max (ntreg nA, nB); //ntoarce maximul dintre valorile nA i nB
Nimic Abs (ntreg nA); //ntoarce valoarea absolut
} //EndInt
//funcii prietene
ntreg Min (ntreg nA, nB); //ntoarce minimul dintre valorile nA i nB
ntreg Max (ntreg nA, nB); //ntoarce maximul dintre valorile nA i nB
ntreg Abs (ntreg nA); //ntoarce valoarea absolut
//Clasa bool utilizat pentru operaiile logice
//prefix Variabile: b
Clasa Boolean DerivatDin ntreg
{} //Boolean
//Clasa real utilizat pentru operaiile cu numere reale
//prefix Variabile: r
Clasa Real
{
//operatorii
operator +, -, *, /, +=, -=, *=, /=, <, >, <=, >=, =, ==, !=;
//funcii membru
Nimic Min (Real rA, rB); //ntoarce minimul dintre valorile rA i rB
Nimic Max (Real rA, rB); //ntoarce maximul dintre valorile rA i rB
Nimic Morf(Real rA, rB, rP = 0.5); //ntoarce rA * rP + rB * (1.0 - rP)
Nimic Abs (Real rA); //ntoarce valoarea absolut
Nimic RotX(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui X
Nimic RotY(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Nimic RotZ(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Nimic Scalare(Punct pScalare, Real rFactorScalare); //scalarea fa de un punct
Nimic Translaie(Real rTranslaie); //scalarea fa de un punct
//suplimentar se pot introduce orice funcii matematice Ex sin, cos, etc!!
} //Real
//funcii prietene
Real Min (Real rA, rB); //ntoarce minimul dintre valorile rA i rB
Real Max (Real rA, rB); //ntoarce maximul dintre valorile rA i rB
Real Morf(Real rA, rB, rP = 0.5); //ntoarce rA * rP + rB * (1.0 - rP)
Real Abs (Real rA); //ntoarce valoarea absolut
Real RotX(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui X
Real RotY(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Real RotZ(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Real Scalare(Punct pScalare, Real rFactorScalare); //scalarea fa de un punct
Real Translaie(Real rTranslaie); //scalarea fa de un punct

-182-

//Clasa punct utilizat pentru operaiile cu curbe i plase


//prefix Variabile: p
Clasa Punct
{
//variabile locale
Real rX, rY, rZ; //coordonatele punctului n R3
//operatorii
operator +, -, *, /, =, ==, +=, -=, *=, /=, min ,max, morf;
//toate funciile urmtoare suport orice combinaie de puncte i reali !!
Nimic Min (Punct pA, pB); //ntoarce minimul dintre valorile pA i pB
Nimic Max (Punct pA, pB); //ntoarce maximul dintre valorile pA i pB
Nimic Morf(Punct pA, pB, pP = 0.5); //ntoarce pA * pP + pB * (1.0 - pP)
Nimic Abs (Punct pA); //ntoarce valoarea absolut
Nimic RotX(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui X
Nimic RotY(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Nimic RotZ(Punct pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Nimic Scalare(Punct pScalare, Real rFactorScalare); //scalarea fa de un punct
Nimic Translaie(Punct pTranslaie); //scalarea fa de un punct
//suplimentar se pot introduce orice funcii matematice Ex sin, cos, etc!!
} //Punct
//funcii prietene
Punct Min (Punct pA, pB); //ntoarce minimul dintre valorile pA i pB
Punct Max (Punct pA, pB); //ntoarce maximul dintre valorile pA i pB
Punct Morf(Punct pA, pB, pP = 0.5); //ntoarce pA * pP + pB * (1.0 - pP)
Punct Abs (Punct pA); //ntoarce valoarea absolut
Punct RotX(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui X
Punct RotY(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui Y
Punct RotZ(Punct p, pRot, Real rUnghiDeg); //rotaia n jurul lui Z
Punct Scalare(Punct p, pScalare, Real rFactorScalare); //scalarea fa de un punct
Punct Translaie(Punct p, pTranslaie); //scalarea fa de un punct
//Clasa BazVectorial utilizat pentru operaiile cu curbe i plase n spaiu
//prefix Variabile: bv
Clasa BazVectorial
{
Punct pMin; //dreptunghiul nconjurtor punctul de start
Punct pMax; //dreptunghiul nconjurtor punctul de sfrit
Punct pDif; //pMax pMin
} //BazVectorial
//Clasa curb utilizat pentru operaiile cu curbe
//prefix Variabile: c
Clasa Curb DerivatDin BazVectorial
{
//variabile locale
ntreg nNr; //numrul de puncte (vertex) n R3
//metode
Punct Operator[](ntreg nNr); //ntoarce punctul numrul nNr = [1..nMax]
Punct Operator[](Real rT); //ntoarce punctul normnd curba rT = [0.0..1.0]
Punct Operator[](ntreg nNr, Real rT); //ntoarce punctul normnd elementul nNr
Nimic PuneLa(ntreg nNr, Punct p); //seteaz punctul numrul nNr = [1..nMax]
Punct Add(Punct p); //adun un punct

-183-

Punct Del(ntreg nNr); //terge punctul numrul nNr = [1..nMax]


Punct Add(ntreg nNr, Curb c); //adun o curb la poziia dat de nNr
Punct Add(Curb c); //adun o curb la sfrit
Nimic SchimbSensul(); //schimb sensul de parcurgere al curbei
Nimic FTrigonometric(); //face sensul de parcurs al curbei n sens trig.
Nimic FOrar(); //face sensul de parcurs al curbei n sens orar.
Boolean EstenSensTrig(); //ntoarce ADEVRAT dac toate sunt n sens trig.
Boolean EstenSensOrar(); //ntoarce ADEVRAT dac toate sunt n sens orar
Boolean Estenchis(); //ntoarce ADEVRAT dac toate sunt nchise
Nimic Rotete(ntreg nDeCteOri) //rotete o curb cu nDeCteOri
Real AriaCuSemn() //returneaz aria cu semn pentru a detecta direcia
} //Curb
//Clasa plas utilizat pentru operaiile cu suprafee
//prefix Variabile: l
Clasa Plas DerivatDin BazVectorial
Punct Operator[] (ntreg nU, nV); //ntoarce pt. nU=[1..nNrU], nV =[1..nNrV]
Punct IaDeLaUV(Real rU, rV); //ntoarce normnd plasa rU,rV = [0.0..1.0]
Curb IaDeLaXY(Real rX, rY); //proiecteaz i returnez o list cu pt.
Punct Operator[] (ntreg nU, nV, Real rU, rV); //normeaz elem. NU, nV
Nimic PuneLa(ntreg nU, nV, Punct p); //seteaz punctul de la nU, nV
Nimic SchimbSensul(Boolean bU, bV); //schimb sensul de parcurgere al plasei
FamiliaDeCurbe IaDeLaXY(ntreg nPlasa, Real rX, rY); //proiecteaz i returnez o list
FamiliaDeCurbe IaDeLaU(Real rV); //convertete n curb pt rV
FamiliaDeCurbe IaDeLaV(Real rU); //convertete n curb pt rU
FamiliaDeCurbe IaDeLaX(Real rX); //convertete n curb pt rX
FamiliaDeCurbe IaDeLaY(Real rY); //convertete n curb pt rY
FamiliaDeCurbe IaDeLaZ(Real rZ); //convertete n curb pt rZ
Real Aria(); //calculeaz aria
Real LungimeaU(Real rV); //lungimea la n dir U la v = rV
Real LungimeaV(Real rU); //lungimea la n dir V la u = rU
Real LungimeaMaxU(); //lungimea maxim n dir U
Real LungimeaMaxV(); //lungimea maxim n dir V
} //Plas
//Clasa de baz pentru suprafeele discrete de tip real i masc
//prefix Variabile: bd
Clasa BazDiscret DerivatDin BazVectorial
{
ntreg nX; //numrul de puncte din matrice n direcia X
ntreg nY; //numrul de puncte din matrice n direcia Y
Real rStep; //pasul reprezentrii
Real IndexnRealPtX(ntreg nX); //conversia din index in real pe X
Real IndexnRealPtY(ntreg nY); //conversia din index in real pe Y
ntreg RealnIndexPtX(Real rX); //conversia din real n index pe X
ntreg RealnIndexPtY(Real rY); //conversia din real n index pe Y
} //BazDiscret
//Clasa Masc
//prefix m
Clasa MascDiscret DerivatDin BazDiscret
{
operator &, |, -, &=, |=, -=, ;

-184-

//citire scriere date


Nimic PuneLa(ntreg nX, ntreg nY, Boolean bVal, ntreg nMetoda = PM_NONE); //pune un bool inteligent
Boolean Operator[](ntreg nX, ntreg nY); //citete un bool
Nimic PuneLa(Real rX, Real rY, Boolean bVal, ntreg nMetoda = PM_NONE); //pune un punct
Boolean Operator[](Real rX, Real rY); //citete un bool
Nimic PuneLaAll(Boolean); //seteaz toat suprafaa
Nimic Revert(); //schimb toate valorile
} //MascDiscret
//Clasa suprafaa discret
//prefix s
Clasa SuprafaDiscret DerivatDin BazDiscret
{
MascDiscret m; //masca asociat
operator +, -, *, /, +=, -=, *=, /=, =, MAX, MIN, ADD, SUB, MULTIPLY, DIVIDE, MORPH, FILSUS, FILJOS,
ECDSUS, ECDJOS;
//citire scriere date
Nimic PuneLa(ntreg nX, ntreg nY, Real rVal, ntreg nMetoda = PM_NONE, Real rMorph = 0.5);
Nimic PuneLa(Real rX, Real rY, Real rVal, ntreg nMetoda = PM_NONE, Real rMorph = 0.5);
Real Operator[] (ntreg nX, ntreg nY); //citete un punct
Real Operator[] (Real rX, Real rY); //citete un punct
Nimic PuneLaAll(Real rValoare); //seteaza toat suprafaa
Nimic Combin(SuprafaDiscret sdComb, ntreg nModulDePunere = PM_NONE, Boolean bTotul =
ADEVRAT);
Nimic PuneLaOrizontal(Real rValoare, ntreg nModulDePunere = PM_NONE, Boolean bTotul = ADEVRAT);
Nimic PuneLaPlan3P(Punctp1, p2, p3, ntreg nModulDePunere = PM_NONE, Boolean bTotul = ADEVRAT);
Nimic PuneLaFuncie(SetDeCaractere strFuncia, ntreg nModulDePunere = PM_NONE, Boolean bTotul =
ADEVRAT);
Nimic PuneLaInterpolareXDir(SuprafaDiscret sdSeciuni, ntreg nOrdinCurbei= 1, ntreg nModulDePunere =
PM_NONE, Boolean bTotul = ADEVRAT);
Nimic PuneLaInterpolareYDir(SuprafaDiscret sdSeciuni, ntreg nOrdinCurbei= 1, ntreg nModulDePunere =
PM_NONE, Boolean bTotul = ADEVRAT);
Nimic InterpoleazPrinPuncte(Curb cListaCuPuncte, FamiliaDeReali lrListaCuPonderi, FamiliaDeCurbe
fcAlteCurbe, FamiliaDeReali frPonderiPtCurbe, FamiliaDeReali frPaiiPtCurbe, Real rRigiditatea);
Nimic InitCapDeScul(Curb cCapDeScul, Real rPas);
Nimic InitnfurtoareStatic(SuprafaDiscret sdSupafaa, sdScul, Boolean bDireciaSus, bTotul);
Nimic InitRacordareStatic(SuprafaDiscret sdSupafaa, sdScul, Boolean bDireciaSus, bTotul);
Nimic InitnfurtoareDinamic(SuprafaDiscret sdSupafaa, sdScalare, sdScul, Boolean
bDireciaSus,
Boolean bTotul);
Nimic InitRacordareDinamic(SuprafaDiscret sdSupafaa, sdScalare, sdScul, Boolean bDireciaSus, Boolean
bTotul);
Nimic InitPlas(CPLasa lIn); //importul unei plase
Nimic InitPlase(FamiliaDePlase flIn); //importul unei liste cu plase
Nimic PuneLaSuprafaaSuperioar(SuprafaSuperioar sS, Real rUStep, rVStep);
Nimic PuneLaSuprafeeSuperioare(FamiliaDeSuprafaeSuperioare fsFS);
//conversii i proiecii
Nimic CreazCurbe(FamiliaDeCurbe fcOut, Real rPentruZ);
Nimic CreazToateCurbele(FamiliaDeCurbe fcOut, Real rZStep = 1.0, Boolean bAuto = ADEVRAT, Real
rZStart, rZEnd);
Nimic ProiecteazCurb(Curb cProiecteaz);
Nimic ProiecteazCurbe(FamiliaDeCurbe fcProiecteaz);

-185-

Nimic ProiecteazCurb(Curb cProiecteaz, Real rPas = 0.1); //cu pas constant


Nimic ProiecteazCurbe(FamiliaDeCurbe fcProiecteaz, Real rPas = 0.1); //pas ct.
Nimic ExportDXF(ntreg nCuloare = 15, SetDeCaractere strLayer = SD ieire)
//cteva filtre
ntreg CreazMasc2();
ntreg CreazMasc3();
ntreg CreazMasc4();
ntreg CreazMasc(ntreg nMaxPuncte);
ntreg CreazValoare2(Real rZ);
ntreg CreazValoare3(Real rZ);
ntreg CreazValoare4(Real rZ);
ntreg CreazValoare(ntreg nMaxPuncte, Real rZ);
ntreg DistrugeMasc2();
ntreg DistrugeMasc3();
ntreg DistrugeMasc4();
ntreg DistrugeMasc(ntreg nMaxPuncte);
ntreg DistrugeValoare2(Real rZ);
ntreg DistrugeValoare3(Real rZ);
ntreg DistrugeValoare4(Real rZ);
ntreg DistrugeValoare(ntreg nMaxPuncte, Real rZ);
//Metode utilizate de automatul neuronal la importul familiilor de Supr. sup.
Nimic InitPuneLaR();
Nimic DonePuneLaR();
Nimic PuneLaR(PunctpP, Real rTaieSus = 2.0); //antreneaz cei patru vecini
//trasnformri, analize i optimizri ale generrii de fiier NC
Nimic TransfDetectPtZ(SuprafaDiscret sdAnaliz);
Nimic DetectCurbeleZ(FamiliaDeCurbe fcOut, Real rStep = 1.0);
Nimic TransfDetecteazPentruPlanulXY(SuprafaDiscret sdAnaliz, Real rUnghi);
Nimic DetecteazCurbelenXY(FamiliaDeCurbe fcOut, Real rStep = 1.0, rUnghi = 45.0);
Nimic TransfDetecteazSuprafaaPlan(SuprafaDiscret sdAnaliz);
Nimic DetecteazSuprafaaPlan(FamiliaDeCurbe fcOut, Real rPentruZ = 45.0);
Nimic TransfEchirugozitate(SuprafaDiscret sdAnaliz, ntreg nMetoda);
Nimic DetectEchirugozitate(FamiliaDeCurbe fcOut, ntreg nMetoda = ct_nEchirugozitateXY, Real rPasul = 1.0)
Nimic TransfNefrezabil(SuprafaDiscret sdNefrezabil, ntreg nMetoda)
Nimic DetectNefrezabil(FamiliaDeCurbe fcNefrezabil,
SuprafaDiscret sdReper, sdSculaAnal, sdSculaMic, Boolean bDetectPlan = FALS);
Nimic SpiraleleLuiBillator(FamiliaDeCurbe fcOut, Real rStep = 1.0);
} //SuprafaDiscret
Clasa Fiier //obiect necesar fiierelor de export import
{
Nimic Deschide(SetDeCaractere strNume); //deschide sau creeaz un fiier
Nimic nchide(); //nchide un fiier
Nimic Scrie(SetDeCaractere strOut); //scrie un SetDeCaractere n fiier
Nimic Citete(SetDeCaractere strIn); //citete un SetDeCaractere din fiier
} //SuprafaDiscret
Clasa DXFExport //o rudimentare a formatului de export DXF care suport curbe i plase

-186-

{
Fiier fiier; //fiierul de export
Nimic Iniializeaz(SetDeCaractere strNume);
Nimic Sfrete();
Nimic InitCurb(ntreg nCuloare = 15, SetDeCaractere strLayer = SD ieire);
Nimic DoneCurb();
Nimic InitPlas(ntreg nU, nV, nCuloare = 15, SetDeCaractere strLayer = SD ieire);
Nimic DonePlas();
Nimic Export(Punct pIn);
} //DXFExport
Clasa STLExport //o rudimentare a formatului de export STL care suport doar ASCII Export
{
Fiier fiier; //fiierul de export
Nimic Iniializeaz(SetDeCaractere strNume);
Nimic Sfrete();
Nimic Export(Punct p1, p2, p3);
} //CSTLExport
Clasa NCExport //o rudimentare a formatului de export NC
{
Fiier fiier; //fiierul de export
Nimic Iniializeaz(SetDeCaractere strNume);
Nimic Sfrete();
Nimic Export(Punct p, Boolean bRapid);
} //NCExport
Enumerare ModulDePunere //enumerarea modurilor de combinare solid a SD i mtilor
{ PM_NONE, PM_MAX, PM_MIN, PM_ADD, PM_SUB, PM_MULTIPLY, PM_DIVIDE, PM_MORPH,
PM_FILSUS, PM_FILJOS, PM_ECDLSUS, PM_ECDJOS, PM_AND, PM_OR, PM_XOR }

-187-

8. Concluzii

- 188-

Programarea asistat de calculator a MUCN a cunoscut o dinamic


de dezvoltare extraordinar n ultimii ani, favorizat de dezvoltarea
exploziv a componentelor hard, apariia unor limbaje tot mai
performante (C++, Java, Delfi), a unor sisteme de operare foarte
performante (Linux, BeOS, Windows 95 i NT, Rhapsody), a unor sisteme
de proiectare asistat orientate pe solide (SolidWorks, Autodesk
Mechanical Desktop, SolidEdge, ProEngineering) i a unor sisteme de
fabricaie asistat (MasterCAM, EdgeCAM, DelCAM, HyperMill, SurfCAM).
Analiznd critic situaia existent la momentul actual a rezultat c
exist un complex de modele matematice, pachete soft i resurse
tehnologice care acoper, mai mult sau mai putin complet, latura
fabricaiei.
Avnd n vedere cele expuse n capitolul privitor la Stadiul
actual, se poate observa c n domeniul proiectrii, stocrii, comunicrii
(importului, exportului, DNC), vizualizrii i simulrii, lucrurile sunt
aproape nchise, existnd colective i produse foarte performante.
Singurele locuri deschise mbuntirilor sunt:
Generarea optimizat a codului NC:
analizarea i calculul zonelor neprelucrate din cauza interferenelor
scul - semifabricat;
generarea codului, cu condiia de frezare la rugozitate constant, ceea
ce duce la reducerea dramatic a timpilor de prelucrare.
detecia zonelor critice, unde nu se poate asigura rugozitatea impus,
pentru diferite cicluri clasice (echidistante n x, y, z);
analiza i compensarea uzurilor;
analiza i compensarea dilatrilor;
generarea codului NC n curbe, cu ct mai puine inflexiuni, pentru a
preveni oprirea i schimbarea prea deas a sensului de rotaie a
motoarelor mainii unelte, ceea ce duce la ocuri, vibraii i previne
utilizarea eficient a codului generat la maini unelte de turaii mari, cu
avans rapid;
reducerea micrilor rapide, prin optimizarea traiectoriilor n ciclurile
de finisare, ceea ce duce la avansuri constante i timpi mai sczui;
luarea automat a deciziei privind care tip de frezare este
recomandat pentru un anumit tip de reper, n funcie de gabarit,
nclinaii, inflexiuni, racordri;
deciderea, n cazul existenei mai multe scule achietoare, a setului
optim necesar n vederea frezrii reperului dat, la rugozitatea cerut,
ntr-un timp ct mai redus;

- 189-

Simulri inteligente, care s menin n tot timpul generrii fiierului NC


starea de frezare a semifabricatului. Aceste simulri trebuie s asigure:
citirea nivelelor de siguran pentru micri n avans rapid, ct mai reale,
deci ct mai joase, optimiznd timpul n micri rapide; cunoaterea n
fiecare moment a cantitii de material care este prelevat n direcie radial
i frontal, oferind oportunitatea de a pilota inteligent avansul, ncrcnd ct
mai uniform scula i maina unealt i scznd timpul necesar prelucrrii
unui reper.
Citirea i convertirea ntr-un format utilizabil a datelor provenite de
la maini de palpat, scanat i cartografiat.
Citirea i convertirea ntr-un format utilizabil a datelor provenite din
alte sisteme de proiectare i fabricaie n format CL sau NC.
Tehnici de simulare rapid a fiierelor NC.
Tehnici de verificare, cu raportarea zonelor nefrezate i (eventual) a
locurilor unde s-au produs interferene;
Experi care s ajute utilizatorul s ia o decizie despre modul optim de
frezare a unei suprafee.

n general, acestea sunt i domeniile studiate de autor n ultimii ani,


domenii n care i-a adus contribuia n prezenta tez de doctorat.
Teza s-a dorit a fi n primul rnd una de sintez, prezintndu-se o
metod solid, consistent i generic de stocare, modelare,
conversie, import-export, analiz, generare optimizat, simulare i
verificare, bazat n totalitate pe suprafeelor discrete uniform riglate
(demulabile), punndu-se un mare accent pe modul de structurare i
prezentare.

Lucrarea a fost mprit n patru capitole principale:


Metode de notaie i clase utilizate
Metode de generare i modelare
Metode de conversie i formate de import export
Metode de analiz i optimizare

Aceast organizare prezint graduat problemele care apar n


analiza, designul i implementarea unei noi metodologii de stocare,
care se dorete a fi una viabil din punctul de vedere al satisfacerii unui
numr ct mai mare de necesiti.

n capitolul intitulat Metode de notaie i clase utilizate s-a


prezentat modul de organizare i structurare a datelor. Nu s-a folosit nici
o metod clasic descris n manualele de prezentare a limbajelor
orientate pe obiect, ci:
- 190-

S-a descris un limbaj pseudocod, orientat pe obiecte, utilizat n


descrierea unificat a modelelor matematice, algoritmilor i a codului
surs;
S-a ncercat crearea unei structuri primare de obiecte care se
motenesc ntr-o manier logic i acoper ntr-o mare msur tipul de
structuri de dat necesare acestei lucrri;
S-au pus bazele metodei de stocare a suprafeelor discrete (SD),
precum i cteva metode de rezolvare a cazurilor n care suprafaele
care se doresc a fi convertite nu sunt discrete. S-a ncercat s se
cuprind sumar doar problematica stocrii, conversia fiecrui tip
particular de dat nefcnd parte din tema acestui capitol.
S-a introdus conceptul de masc, ca loc n care se raporteaz diferite
aspecte legate de modul de procesare al SD.

n capitolul intitulat Metode de generare i modelare au fost


descrise tehnici si metode de creare, modelare, conversie, import i
filtrare a SD.
Scopul acestui capitol a fost acela ca un numr ct mai mare de
repere provenite din diferite sisteme de proiectare sau fabricaie,
reprezentate prin diferite metode sau modelate direct, utiliznd metodele
descrise, s poat beneficia de tehnicile sofisticate de analiz i generare
a codului NC discutate pe parcursul capitolelor urmtoare.
De asemenea, au fost prezentate, n premier, trei metode noi,
concepute de ctre autor:
Algoritmul de import i conversie a seturilor de puncte i curbe
furnizate fr nici o regul;
Algoritmul de calculare a nfurtoarei i racordrilor cu forme de
orice geometrie (un caz particular al acestora sunt capetele de scul
suprafee de revoluie utilizate n frezare);
Reeaua neuronal pentru antrenarea cu date care nu cad n punctele
reelei, utilizabil ca o metod generic de import a tuturor datelor
parametrice.

A fost prezentat o familie de metode auxiliare, filtrele, utilizate


pentru reducerea zgomotului introdus de diferite metode de conversie i
analiz, exemplificndu-se acest concept.

n capitolul intitulat Metode de conversie i formate de import


- export au fost introduse metode de: creare de curbe, proiecie, offset
inteligent i export n formate simple ASCII, ca: DXF, STL, NC, CL.

- 191-

Acest capitol, al metodelor de conversie i export, este de o


importan capital n utilizarea suprafeelor discrete, virtual, n orice
sistem de proiectare i fabricaie. Ideea prezentrii lui a fost aceea de a
mbina prezentarea riguroas, nsoit de expunerea algoritmilor n
pseudocod, cu exemplificarea fiecrui concept introdus, cu ajutorul
exemplelor i a listingului potenial realizat de ctre obiectele expuse.
Contribuiile eseniale aduse de acest capitol sunt:
A fost creat un set nou de obiecte specifice fiecrui tip de export n
parte: Fiier, DXFOut, STLOut, NCOut, CLOut. Aceste clase au fost
implementate folosind o metod unificat de prezentare, ncercnd s
se ascund detaliile fiecrui format n parte.
Au fost create metode noi destinate conversiei i exportului, metode
care dau utilizabilitate SD, legndu-le de alte sisteme de proiectare, ca
aparate matematice auxiliare de analiz sau conversie n format NC.
S-a prezentat, n premier, un algoritm de conversie n curbe de nivel
foarte fin, care permite SD corecie de scul s fie convertit n format
NC, i s-au prezentat aplicaiile lui, potenial nelimitate, n detectarea
formelor, analizarea i vectorizarea fotografiilor.
S-a expus i exemplificat GNCPP, generator automat de tehnologie, o
librrie dinamic complex, care are scopul de a genera fiier NC
specific, virtual, pe orice echipament, optimizat pentru lungime i timp
de rulare.

n capitolul intitulat generic Metode de analiz i optimizare au


fost cuprinse cteva dintre cele mai importante aspecte legate de analiza
i generarea optimizat a codului NC, pentru fabricarea suprafeelor
discrete pe maini unelte cu comenzi numerice, precum i cteva tehnici
de verificare i simulare.
Cum toate optimizrile, generrile de cod NC, verificrile i
simulrile sunt tehnici i metode de analiz, natural c ele i-au gsit
locul n acest ultim capitol.
S-a preferat gruparea la un loc, deoarece, ntre multe dintre acestea
exist o interpenden ascuns, iar autorul consider c, dup expunerea
capitolului, sortat din punct de vedere logic, al complexitii i
asemnrii aparatelor matematice, se poate observa asemnarea unor
tehnici de analiz a suprafeei (zone plane, material nefrezat etc.) cu
unele tehnici de generare a codului NC (echidistante, echirugozitate, etc.).
Tehnicile de verificare sunt ntr-o mare proporie identice cu cele de
simulare.
Cum lucrarea are un caracter primordial de sintez, s-a ncercat
gruparea logic, matematic, n detrimentul celei funcionale, nedorinduse pierderea relaiei dintre tehnicile de analiz.

- 192-

S-au introdus i prezentat trei aspecte ale analizei:


Metode de analiz a SD i generarea optimizat de cod NC,
Cteva optimizri
echidistante,

posibile

ale

codului

NC

cazul

traseelor

Calculul reelei de difracie pentru elementele optice.

S-au prezentat, n premier, cteva metode noi:


Calculul zonelor plane;
Calculul zonelor critice la frezarea seciunilor paralele n planul XY;
Calculul materialului nefrezabil;
Calculul curbelor de egal rugozitate;
Metode pseudoadaptive de variere a avansului i coreciei de uzur n
timp real;
Minimizarea micrilor n avans rapid;
Spiralele lui Billator;
Metoda de optimizare a traseelor echidistante prin dublarea sau
triplarea local;
Metoda de rezolvare a reelelor de difracie.

Pe lng prezentarea contribuiilor autorul au fost expuse i cteva


metode clasice de generare de cod, considerndu-se ca elemente de
noutate metodele de generare a acestora (curbelor echidistante n XY i
Z) utiliznd SD n acest domeniu.
Alte concepte enumerate i exemplificate pe parcursul capitolului,
cum ar fi interpolrile superioare, eliminarea punctelor de inflexiune,
eliminarea punctelor coliniare au fost expuse doar cu scopul secundar de
a da consisten, generalitate i calitate unei eventuale generri de cod
NC.

Direciile de cercetare abordate n continuare de ctre autor in de


integrarea domeniului inteligenei artificiale n fabricaie, referindu-se la
urmtoarele aspecte:
detecia i prelucrarea automat a gurilor i holurilor (feature
recognition),
poziia optim a unui solid n scul (n vederea unei extracii simple),
optimizarea setului de scule pentru frezarea n timp minim a oricrei
geometrii.
cicluri complexe automate: degroare + semifinisare + finisare +
frezare creion (pencil milling) + cicluri de eliminarea materialului
nefrezabil;

- 193-

Aceste analize sunt executate, n general, pe solide discrete


(faetate i demulabile). Cteva rezultate de ultima or pot fi gsite n
prezentrile i analizele de pe CD-ul nsoitor.

- 194-

Anexe

Concluzii

Anexe

- 195 -

Anexe

Concluzii

Anexa A: Clase utilizate


Tip de dat

Prefi
x
v

Operatori

SetDeCaracte
re
ntreg

str

+, -

Boolean

Real

+, -, *, /, &, |, %, <, >, =, ==, +=, -=, *=, /=, &=, |=,
%=, I, SAU, !, real;
+, -, *, /, &, |, %, <, >, =, ==, +=, -=, *=, /=, &=, |=,
%=, I, SAU, !, real;
+, -, *, /, <, >, =, ==, +=, -=, *=, /=, int;

Punct

Curb
(superioare)
Plasa
(superioare)
Masca

c, cs

Nimic

+, -, *, /, =, ==, +=, -=, *=, /=, translaie, rotaie,


scalare, min ,max;
+, -, *, /, =, ==, +=, -=, *=, /=, translaie, rotaie,
scalare, min, max;

l, ls

+, -, *, /, =, ==, +=, -=, *=, /=, translaie, rotaie,


scalare, min, max;

+, -, *, /, +=, -=, *=, /=, =, I, SAU, XSAU, NOT

Supr.
Demulabil

STL Export

CL Export

stlou
t
dxfo
ut
ncou
t
clout

+, -, *, /, +=, -=, *=, /=, =, MAX, MIN, ADD, SUB,


MULTIPLY, DIVIDE, MORPH, FILSUS, FILJOS, ECDSUS,
ECDJOS
asigur exportul n format STL;

Fiier

fiier un fiier generic fr nici o formatare special;

FamilieDe*

f*

DXF Export
NC Export

asigur exportul n format DXF;


asigur exportul n format NC;
asigur exportul n format CL;

Reali (fr), ntregi (fn), Booleeni (fb), Puncte

Curbe (fc), Plase (fm), etc.

- 196 -

BIBLIOGRAFIE

Anexa B: Abrevieri
SD
SDR
SDCS
SDCST
SDN
SDNT
SDER
SDSC
SDT

Suprafa
Suprafa
Suprafa
Suprafa
Suprafa
Suprafa
Suprafa
Suprafa
Suprafa

Discret
Discret
Discret
Discret
Discret
Discret
Discret
Discret
Discret

(demulabil)
(demulabil)
(demulabil)
(demulabil)
(demulabil)
(demulabil)
(demulabil)
(demulabil)
(demulabil)

SLB
ACCE

Spiralele lui Billator


Algoritmul de Conversie n Curbe Echipoteniale

ASCII
DXF
STL
APT
CL

Format citibil cu un editor de text


Format de import export ASCII pentru repere
Format de import export ASCII pentru repere solide reea triunghiular
Limbaj de programare pentru proiectarea tehnologiei
Format standard de export a informaiilor necesare fabricrii unui reper

NC
ECN
CNC
DNC
GNC
GNCPP

Numerical Control (control numeric)


Echipament cu Comand Numeric
Control numeric cu calculator intern
Direct Numerical Control (control numeric direct)
Generic Numerical Control (control numeric generic)
Generic Numeric Control PostProcessor

MSD
MU
MUCN

Masca Suprafeei Digitale


Main-Unealt
Maini-Unelte cu Comenzi Numerice

TSP
FHTSP

Traveling Salesman Problem (problema comis voiajorului)


Fast Heuristically Traveling Salesman Problem (rezolvarea rapid a probleme
comis voiajorului);

CAD
CAM
CAE

Computer Aided Design (proiectare asistat de calculator)


Computer Aided Manufacturing (fabricaie asistat de calculator)
Computer Aided Engineering (inginerie asistat de calculator)

TechnoPac
k
TechnoCA
D
TechnoCA
M
TechnoFu
nction
TechnoMe
sh
TechnoCur
ves
Techno2D
TechnoBul

Pachet de programe realizat de autor pentru aceast lucrare

Reper
Corecie Scul
Corecie Scul Teoretic
Nefrezabil
Nefrezabil Teoretic
EchiRugozitate
scul
Transformat

Sistemul de proiectare i analiz a SD


Sistemul de generare cod NC pe baza SD
Convertor din reprezentarea analitic a funciilor n DXF
Convertor 2 i 3 axe din DXF n NC via GNCPP pentru plase
Convertor 2 i 2 axe din DXF n NC via GNCPP i modelator
Convertor 2 i 2 axe din DXF n NC via GNCPP pentru curbe
Modul n TechnoCAD care rezolv reele de difracie

- 197 -

BIBLIOGRAFIE

ge

- 198 -

BIBLIOGRAFIE

Anexa C: Definiii
ADA (limbaje): unul dintre cele mai complexe i solide limbaje
aprute; conine verificare puternic de tip metode de detecie i
tratare de erori; utilizeaz compilatoare foarte complexe.
Algoritmi (pseudocod): aparate matematice, proceduri, rutine, funcii,
metode; se vor regsi n dou locuri, sub form de funcii (n cazul n
care nu sunt coninui ntr-un corp de clas) sau metode (n cazul n
care se gsesc ncapsulai n interiorul unei clase).
Aparate matematice (pseudocod): vezi algoritmi.
Asamblare (limbaje): o evoluie natural a codului main, prin
renumirea ntr-un format mai accesibil a acestuia.
BASIC (limbaje): limbaj deosebit de simplu, aprut la nceput fr nici
o form de modularizare a informaiei, cu excepia subrutinelor, care,
ns, nu puteau avea variabile locale.
BazDiscret (clas): clas de baz derivat din baza vectorial,
destinat stocrii suprafeelor masc i suprafa discret; conine
informaii despre pasul i numrul de puncte discrete n cele dou
direcii X i Y.
BazaVectorial (clas): clas elementar care traseaz un
comportament comun pentru clasele mai evoluate (curbe, plase,
suprafee discrete).
Booleeni (clas): clas particular derivat din ntregi.
Borland Pascal (limbaje): limbaj evoluat orientat obiect.
C (limbaje): limbaj de nivel jos, destinat n general scrierii sistemelor
de operare portabile.
C++ (limbaje): limbaj evoluat orientat obiect.
CAD Report (reviste): revist despre proiectarea asistat, editat la
Tg. Mure.
Clasa (cuvnt cheie, pseudocod): nceputul definiiei unei noi clase.
Clasele (pseudocod) sunt scrise ngroat i verde nchis i au asociat
obligatoriu o prescurtare ct mai sugestiv, format din una sau mai
multe caractere scrise cu liter mic; prefixarea trebuie specificat
obligatoriu numai prima oar cnd clasa este definit.
Cod main (limbaje): limbaj de programare rudimentar.
Coleciile (clas): seturi de obiecte de acelai tip stocate mpreun;
accesul la un element dintr-o colecie se face cu ajutorul operatorul []
care va returna un element din tipul stocat n colecia respectiv.
Comentariile (pseudocod): clarificri ale pseudocodului; sunt scrise n
italic i sunt prefixate de//.

- 199 -

BIBLIOGRAFIE

Curbe superioare (metode de stocare): curbe care utilizeaz


reprezentri polinoamiale pe intervale (mai ales cubice); sunt folosite
cvasitotal, n toate sistemele de modelare moderne, ca i curbe i
suprafee spline, B-Spline, Bzier, Hermite etc.
Curbele (clas) folosite n acest lucrare sunt cele mai elementare
posibile (polilinii n R3), folosind ca reprezentare o colecie de puncte,
cu singura convenie c, curba se va genera trasnd segmente de
dreapt ntre fiecare pereche de puncte consecutive.
Curbele analitice (metode de stocare): curbe care pot fi descrise
printr-un singur set de ecuaii matematice (nu conin seturi de ecuaii
pe poriuni de curb sau suprafa descris).
Curbele nchise (clas): curbe a cror prim i ultim element coincide.
Curbele plane (clas): curbe care nu conin informaii despre cota Z;
nu au fost tratate separat, ci sunt utilizate cele 3D, nefolosind cota Z.
Curbele plane (metode de stocare): curbe care sunt stocate ca o
serie de segmente de linie, arce de cerc, sau curbe superioare n
planul XY.
Curbele superioare (clas): curbe care nu sunt stocate ca o secven
de segmente de dreapt, deci pot conine segmente de cerc sau de
alte curbe analitice.
Cuvinte cheie (pseudocod): cuvintele rezervate n limbajul pseudocod
(Clasa, DerivatDin, Operator, Enumerare).
Dac (funcie special, pseudocod) o condiie este ndeplinit, atunci
se execut prima enumerare de instruciuni, altfel (eventual) se
execut a doua enumerare.
Delphi (limbaje): limbaj evoluat orientat obiect.
DerivatDin
(cuvnt
cheie,
comportamentului unei clase printe.

pseudocod):

motenirea

Eifel (limbaje): limbaj evoluat orientat obiect.


Enumerare (cuvnt cheie, pseudocod): nceputul enumerrii valorilor
posibile pentru un obiect.
Enumerrile (pseudocod): sunt fr paranteze acolade n cazul cnd
este vorba de un element, sau ntre paranteze acolade dac sunt mai
multe.
FORTRAN - FORmula TRANslation (limbaje): primul adevrat limbaj de
programare de nivel nalt; permitea pentru prima dat programarea
modular, organizarea codului n subrutine i portarea (interpretarea
sau compilarea acestuia) pe diferite sisteme.
Funcii speciale (pseudocod): funcii implementate pentru asigurarea
logicii algoritmilor (Dac, Altfel, Pentru, PnCnd, ntoarce).
Funciile (pseudocod): algoritmi liberi, care nu sunt ncapsulai n
interiorul vreunei clase (vezi algoritmii).
Hello CAD Fans (revist): revist despre proiectarea asistat, editat
n Bucureti.
- 200 -

BIBLIOGRAFIE

Indecii vectorilor (pseudocod): sunt ntre paranteze ptrate.


ntoarce (funcie special, pseudocod): oprete execuia unui algoritm
i (eventual) ntoarce un obiect din clasa returnat de algoritmul
respectiv.
ntregii (clas): mulimea numerelor ntregi Z.
Java (limbaje): limbaj evoluat orientat obiect.
Limbajul pseudocod (pseudocod): limbaj de tip pseudocod orientat
pe obiecte, asemntor cu C++[CPP] sau Java[JAV], sintaxa nefiind
asemntoare n totalitate, folosit pentru structurarea conceptelor
descrise pe parcursul lucrrii; scopul principal al acestei structurri
este acela de a fi succint, flexibil, sugestiv, trebuind s posede
abilitatea de a descrie aparatele matematice, structurile de date,
designul i implementarea algoritmului ntr-un singur loc.
Lista cu parametri (pseudocod) ai unei metode sau funcii; este
ntotreauna ntre paranteze rotunde.
Masca (clas): matrice bidimensional de aceleai dimensiuni cu cea
a SD, n care sunt stocate obiecte de tip Boolean, i care este utilizat
pentru raportarea diferitelor rezultate ale unor analize.
Matrici cu pas uniform sau neuniform (metode de stocare):
matrice n care suprafaa este stocat ca i cot Z.
Metodele (pseudocod): algoritmi specifici unui clase; sintaxa lor este
exact ca aceea de la algoritmi, cu excepia c, avnd acces la datele
private interioare unei clase, cnd se cheam o metod, aceasta
trebuie prefixat de numele obiectului respectiv, urmat de un punct
(vezi algoritmii).
Metodele analitice (metode de stocare): curbe compuse, suprafee
analitice, solide sculpturale i simple.
Metodele discrete (metode de stocare): polilinii, suprafee faetate,
stocri matriciale, seturi de puncte.
Modula (limbaje): limbaje aprute ncepnd din 1971, n urma
lucrrilor profesorului Wirth n domeniul programrii structurate; au
fost o adevrat revoluie n mediul academic.
Multiliniile plane (metode de stocare): caz particular al curbelor i al
poliliniilor spaiale, deopotriv; sunt stocate ca o serie de segmente de
linie n planul XY,.
Multiliniile spaiale (metode de stocare): pot descrie orice curb n
spaiu, sub o toleran; sunt stocate ca o colecie de puncte n 3D.
Oberon (limbaje): limbaje aprute, ncepnd din 1971, n urma
lucrrilor profesorului Wirth n domeniul programrii structurate; au
fost o adevrat revoluie n mediul academic.
Obiectele (pseudocod): instanele (de tipul) unei clase, fiind declarate
n felul urmtor: Clasa tvNume, numele obiectului prefixat obligatoriu
de prescurtarea clasei respective (notaia ungar); ele sunt scrise
normal.

- 201 -

BIBLIOGRAFIE

Object Pascal (limbaje): limbaj evoluat orientat obiect.


Objective C (limbaje): limbaj evoluat orientat obiect.
Objectual Ada (limbaje): limbaj evoluat orientat obiect.
Operator (cuvnt cheie, pseudocod): nceputul descrierii operatorilor
permii pe clasa respectiv.
Operatorii (pseudocod): setul de operaii posibile cu Clasa respectiv;
sunt utilizai n scopul de a scrie expresiile ntr-un limbaj mai apropiat
de cel natural.
PnCnd (funcie special, pseudocod) este satisfcut condiia,
execut o enumerare de instruciuni.
Pascal (limbaje): limbaje aprute ncepnd din 1971, n urma
lucrrilor profesorului Wirth n domeniul programrii structurate; au
fost o adevrat revoluie n mediul academic.
Pentru (funcie special, pseudocod) fiecare valoare, ncepnd cu
condiia de start i sfrind cu condiia de sfrit satisfcut,
incrementnd cu condiia de incrementare, execut o enumerare de
instruciuni.
Plasele (metode de stocare): cele mai simple obiecte care pot fi
utilizate pentru stocarea suprafeelor.
Poliliniile spaiale (metode de stocare): pot descrie orice curb n
spaiu, sub o toleran; sunt stocate ca o colecie de puncte n 3D.
Poliniile plane (metode de stocare): caz particular al curbelor i al
poliliniilor spaiale, deopotriv; sunt stocate ca o serie de segmente de
linie n planul XY.
Proceduri (pseudocod): vezi algoritmii.
Punctele (clas): entiti elementare, folosite de ctre toate clasele
vectoriale superioare, pentru a stoca valorile diferitelor entiti care le
compun.
Reali (clas) sau numerele reale R: clas elementar, descris pentru
a nelege operaiile executate cu numere reale.
Rutine (pseudocod): vezi algoritmii.
Seturi de puncte (metode de stocare): datele sunt stocate ca o
colecie de puncte n spaiu.
irulDeCaractere (clase): colecie de obiecte din clasa ntreg; este
utilizat la transmiterea mesajelor.
Smaltalk (limbaje): limbaj evoluat orientat obiect.
Solide sculpturale (metode de stocare): solide reprezentate analitic
pe intervale care trebuie s nchid un volum.
Solidele simple (metode de stocare): solide de tipul sfere, tori,
conuri, piramide, curbe extrudate.

- 202 -

BIBLIOGRAFIE

SuprafaaDiscret (clas): metoda de stocare a suprafeelor


discrete; sunt matrici bidimensionale, n care sunt stocate obiecte de
tip Real.
Suprafee extrudate (metode de stocare): curbe (polinii, multilinii) n
2D, care au un nceput i un sfrit pe axa Z.
Suprafee faetate (metode de stocare): metod generic de stocare
a oricrei suprafee superioare, sub form de triunghiuri sau
patrulatere.
Suprafee superioare (metode de stocare): utilizeaz reprezentri
polinoamiale pe intervale (mai ales cubice); sunt folosite cvasitotal n
toate sistemele de modelare moderne, ca i curbe i suprafee spline,
B-Spline, Bezier, Hermite etc.
Suprafeele analitice (metode de stocare): pot fi descrise printr-un
singur set de ecuaii matematice (nu conin seturi de ecuaii pe
poriuni de curb sau suprafa descris).
Suprafeele superiore (clas): suprafee care sunt descrise prin alte
metode dect cele de la plase.

- 203 -

BIBLIOGRAFIE

Anexa D: Legturi web


D1. Sisteme mari de proiectare i fabricaie
Produs, legtur web

Compania

CADDS-5, http: //www.cv.com/


CATIA, http: //www.catia.ibm.com/
EMS, http: //www.intergraph.com/mech/ems/ems.htm
EUCLID, http: //www.matra-datavision.com/
MASTER SERIES, http: //www.sdrc.com/
Pro/ENGINEER, http: //www.ptc.com/
UNIGRAPHICS, http: //www.ug.eds.com/

Computervision USA
Dassault France
Intergraph USA
Matra Datavision France
SDRC USA
PTC USA
EDS USA

D2. Alte sisteme de proiectare i fabricaie


Produs, legtur web

Compania

http: //www.anvil5k.com
CADAM,
http: //www.clearlake.ibm.com/MFG/engineering/consider.html
Cadkey, http: //www.cadkey.com/
CADRA, http: //www.adra.com/
CAELUM, http: //caelum.co.jp/
Cimatron, http: //http:/www.cimatron.com/
Cimalog, http: //www.swissprecision.com/SPEE3.html
GMS, http: //www.graftek.com/
ICEM, http: //www.cdc.com/icem.html
I-DEAS, http: //www.sdrc.com/
MASTERCAM, http: //www.mastercam.com/
MicroCADAM, http: //www.microcadam.com/
METALMAN, http: //www.unm.edu/~baltz/
MOZAIC, http: //www.auto-trol.com
Mr Machinist , http: //www.pennet.net/commercial/f1/
Para-Max, http: //www.innotts.co.uk/~mecs/
Prelude, http: //www.matra-datavision.com/
SURFCAM, http: //www.surfware.com/
VisiCAD/VisiCAM, http: //www.vero.it/
Varimetrix, http: //www.vx.com/
Virtual Gibbs, http: //www.bureaug.co.uk/gibbs/index.html

MCS USA
Dassault France
Baystate Technologies USA
ADRA USA
CAELUM Japan
Cimatron Israel
Swiss Precision/Engineer
Graftek
ICEM USA
SDRC USA
CNC Software USA
MICROCADAM USA
Metalman USA
Auto-Trol
F1 Computing USA
M.E.C.S. UK
Matra Datavision France
Surfware USA
Vero Italy
Gibbs USA

D3. Sisteme de proiectare


Produs, legtur web

Compania

Ashar Vellum, http: //www.ashlar.com/


AutoCAD, http: //www.autodesk.com/
Accugraph, http: //www.accugraph.com/
ArchiTECH.PC, http: //www.softcad.com/
CADVANCE, http: //www.cadvance.com/
CAD/DRAW, http: //www.tommysoftware.com/etsw001.htm
Drafix, http: //www.softdesk.com/
DesignCAD, http: //www.viagrafix.com/
DynaCADD, http: //www.ditek.com/
Douglas CAD/CAM, http: //www.douglas.com/
FastCAD, http: //com.primenet.com/evcomp/
Form.Z, http: //www.formz.com/ads.html
FreeHand,
http:

- 204 -

Ashlar USA
Autodesk USA
Accugraph USA
SoftCAD Belgium
Furukawa Info Technology
USA
Thomas Maier Germany
Softdesk USA
ViaGraphix USA
Ditek Canada
Douglas Electronics USA
Evolution computing USA
autodessys USA
//www-Macromedia USA

BIBLIOGRAFIE
1.macromedia.com/Tools/Studios/FGS/index.html
GMPCAD, http: //www.ens-cachan.fr/~gmpcad/
HVACp, http: //www.thecube.com/
Mechanical Desktop, http: //www.autodesk.com/
Microstation, http: //www.bentley.com/
MiniCAD, http: //www.graphsoft.com/
Powerlib, http: //www.cadsoftware.co.uk/plib.htm
QuickDraw,
http:
/www.wombat.com.au/wombat/showcase/sa/qikdraw/index.html
SolidBuilder, http: //www.solidbuilder.com/
RAY DREAM, http: //www2.us.com/raydream/
SolidEdge, http: //www.intergraph.com/solidedge
SolidWorks, http: //www.solidworks.com/
SolidDesigner, http: //www.hp.com/
TopCAD, http: //http:/www.merituk.co.uk/topcad/
TrueCAD , http: //www.choicecomp.com/
Trispectives, http: //www.eye.com/
CADMAX TrueSurf Master, http: //www.cadmax.com/
TurboCAD, http: //www.imsisoft.com/catprod.html
Visio, http: //205.185.183.34/html/a.html
Visual CADD, http: //www.numera.com/

IUT Cachan France


MC Squared USA
Autodesk USA
Bentley USA
Graphsoft Inc USA
CAD Software UK

/ QuickDraw Australia
Builders for Builders USA
Fractal USA
Intergraph USA
SolidWorks USA
Hewlett Packard USA
TopCAD France
3D Eyes USA
CADMAX USA
IMSI USA
Visio USA
Numera USA

D4. Procesoare APT


Produs, legtur web

Compania

APT/AC,
http: //www.clearlake.ibm.com/MFG/engineering/consider.html
HMS APT, http: //wwweurope.sgi.com/Products/appsdirectory.dir/Applications/
PC APT, http: //www.ncsoft.com/index.html

IBM USA
Houtzeel USA
N/C Software Inc. USA

D5. Sisteme de fabricaie


Produs, legtur web

Compania

ACU-CARV, http: //www.gtii.com/olmsted/oec-home.htm


AlphaCAM, http: //www.licom.com/

Olmsted Engineering USA


LicomUK
Delft
Spline
SystemThe
Netherlands
Kramer ConsultingUSA
Intercim USA
O&P Discret Technologies
USA
CamaxUSA
SolasData Ireland
MicroTech Sweden
CAMSoft USA

ArtCAM, http: //www.spline.nl/

AutoCODE, http: //www.autocode.com/


AutoPRO,
BioSculptor,
http: //www.oandp.com/commerci/biosculptor/index2.htm
CAMAND, http: //www.camax.com/
CNC Code Creator, http: //www.solas-data.ie/creator.htm
CamModul, http: //www.microtech.com/
CAMSoft, http: //pages.prodigy.com/CAMSOFT/
CAMWrite,
TheTechGroup UK
http: //ourworld.compuserve.com/homepages/tech_group/home.htm
Cadem India
CAPSMill and Turn, http: //www.cadem.com/
Cimplex USA
CIMPLEX, http: //www.csn.net/metal/home/cimplex/
Delcam UK
DUCT, http: //www.delcam.com/
E.G.S.USA
EZFeatureMill, http: //www.enggeo.com/
Pathrace UK
EdgeCAM, http: //www.pathtrace.com/
DPTechnology USA
ESPRIT, http: //www.dptechnology.com/
Software Magic USA
FlexCAM, http: //www.aii.com/
SolutionWare USA
GeoPath, http: //www.solution-ware.com/
CN Industries France
Goelan, http: //www.cni.fr/
OPENMIND Germany
HyperMILL-HyperCAM, http: //www.openmind.de/

- 205 -

BIBLIOGRAFIE
HI-MILL, http: //www.fidia.it/
NC Works, http: //www.industry.net/ca/showfile/00cm7/sponsors/psc/psc02
PEPSCUT, http: //www.peps.com/
ShopCAM
SmartCAM, http: //www.camax.com/
Synergy, http: //www.weber.com/
TechnoCAM, http: //cccsat.sorostm.ro/billasoft/
TekSoft, http: //www.teksoft.com/
WorkNC
XCAM, http: //www.industry.net/ca/showfile/00cm7/sponsors/psc/psc03/DoAuth

FIDIA Italy
Progressive
Software
Corporation
Camtek UK
ShopSystem USA
Camax USA
Weber SystemUSA
Billasoft Romania
TekSoft USA
Sescoi France
Progressive
Software
Corporation

D6. Informaii despre proiectare i fabricaie


Produs, legtur web

Compania

3Dview, http: //www.millennion.com/


ACIS, Strata, http: //www.csn.net/spatial/
Algor, http: //www.algor.com/
ANSYS, http: //www.ansys.com/
AnthroCAM, http: //www.greatlakesmet.com/faro2.htm
BOX-NET DNC, http: //www.manusoft.fi/boxnet.html
CAM-POST, http: //www.icam.com/

Millennion USA
Spatial Technology USA
Algor USA
ANSYS USA
Faro Technologies USA
Manusoft Finland
ICAM Canada
Industrial
Automation
Solutions USA
CADSi USA

Code-EX , http: //www.iasweb.com/index.htm

DADS, http: //www.cadsi.com/


http: //www.camsoftware.com/DClasa,
CAM Software USA
http: //www.camsoftware.com/
DesignBase, http: //www.ricoh.co.jp/swd/designbase/index_e.html Ricoh Japan
Camtek UK
Director 4000, http: //www.peps.com/
DloG Germany
DloG, http: //mfginfo.com/cadcam/dlog/dnc.htm
Griffo Brothers USA
CamLink, http: //www.proaxis.com/~griffobros/
EDS USA
EDS-DNC, http: //www.eds.com/edsdnc
Pilon Technology USA
FlexIt, http: //ourworld.compuserve.com/homepages/pilontech/
Compunix USA
IGES PRO, http: //www.compunix-usa.com/
LightWorks NC/MachineWorks,
LightWorks UK
http: //www.lightwork.com/nc_overview.html
I.A.M.S. USA
MetCAPP, http: //www.iams.org/cim/metcapp/desc.htm
MSC/NASTRAN, MSC/PATRAN, http: //www.macsch.com/index.html MacNeal Schwendler USA
Rasna USA
Mechanica, http: //www.rasna.com/
SDRC USA
Metaphase, http: //www.sdrc.com/metaphase/intro/
Modflow Autralia
Modflow, http: //www.worldserver.pipex.com/moldflow/
CadTech Israel
NCTool, http: //www.ventura.co.il/c/cadtech/index.htm
Cimplex USA
NCV, http: //www.csn.net/metal/home/cimplex/
Spring France
NCSimul, http: //www.spring.fr/
Predator Software USA
Predator, http: //www.teleport.com/~predator/
Sirius USA
NC Verify, http: //www.siriussys.com/
P.D.E Wizard USA
PDE Wizard, http: //www.pdew.com/
CNC Concepts USA
Pro NC Edit, http: //www.cncci.com/soft.htm
4 D Engineering UK
RevPost, http: //www.4dcadcam.com/
Tecnomatix Israel
RobCAD, http: //www.tecnomatix.com/
XOX USA
Shape, http: //www.xox.com/
Sherpa USA
Sherpa, http: //www.sherpa.com/
Silma USA
SoftMachine, http: //www.silma.com/
Spaceball, http: //www.spacetec.com/Hard
Spacetec Inc. USA
Disk/WEB_SITE/PRODUCTS/2003/2003.html
Imageware USA
Surfacer, http: //www.iware.com
Tecnomatix Israel
Valisys, http: //www.tecnomatix.com/
Tailor Made Software USA
Tailor Made Software, http: //www.serv.net/tms/

- 206 -

BIBLIOGRAFIE
Vericut, http: //www.vericut.com/
Virtual NC, http: //www.deneb.com/
HP WorkManager, http: //www.hp.com/
XYZPro EDIT, http: //www.ascendtec.com/

CGTech USA
Deneb USA
Hewlett Packard USA
Ascendant USA

D7. Informaii generale despre proiectare i fabricaie


Nume, legtur web

Comentarii

Society of CAD/CAM Engineer,


http: //chopin.kist.re.kr/cadcam/cadcam.htm
CAD/CAM Headlines, http: //www.newspage.com/NEWSPAGE/cgibin/walk.cgi/
CAD/CAM Recruiters,
Cutai o slujb ?
http: //web.infoave.net/cadcam/welcome.html
CAD Society, http: //www.wbh.com/cadsociety.html
CAD Rating Guide, http: //www.wbh.com/crg4description.html
CIMdata, http: //www.cimdata.com/
Stiri
pentru
profesioniti

CIMWorld, http: //www.cimworld.com/


Daratech, http: //www.daratech.com/
DH Brown,http: //www.dhbrown.com/
Specifying CAE/CAD/CAM system,
http: //www.os.kcp.com/home/catalog/speevacae.html
Portland Microstation Community,
http: //www.teleport.com/~timothyd/tmc/tmc.htm
SunPTC, http: //www.sunptc.com/
Society of CAD Engineer, http: //www.cadsociety.org/
SGI Mechanical CAD/CAM,
http: //www.sgi.com/Products/appsdirectory.dir/
Wahoos PC CAD/CAM Page,
http: //www.neca.com/~wahoo/camindx.html
METAL Machining and Fabrication Internet Directory,
http: //www.mmf.com/metal/
Manufacturers Information Net Home Page,
http: //mfginfo.com/home.htm
Solid Design Automation Newsletter,
http: //www.ppgsoft.com/sol.html
TechniCOM Newsletter, http: //www.technicom.com/
Pro/E Job Network, http: //www.pejn.com/
I-DEAS Job Network, http: //www.ideasjn.com/
UNIGRAPHICS Job Network, http: //www.ugjn.com/
CATIA Job Network, http: //www.catjn.com/

utilizatorii

Teste si expertize
microstation din Portland
Pagina PTC prezentata de SUN

Noutai interesante CAD/CAM


Lista de lucuri de munca n
Pro/ENG
Lista de lucuri de munca n IDEAS
Lista de lucuri de munca n
UNIGR
Lista de lucuri de munca n
CATIA

D8. Grupuri de discuii despre proiectare i fabricaie


Grupul de noutii

Comentarii

alt.cad, news:alt.cad
alt.cad.autocad, news:alt.cad.autocad
alt.cad.cadkey, news:alt.cad.cadkey
alt.comp.acad-freedom.news, news:alt.comp.acadfreedom.news
alt.comp.acad-freedom.talk, news:alt.comp.acad-freedom.talk
comp.cad.microstation, news:comp.cad.microstation
comp.cad.i-deas, news:comp.cad.i-deas
comp.cad.autocad, news:comp.cad.autocad
comp.cad.pro-engineer, news:comp.cad.pro-engineer

- 207 -

BIBLIOGRAFIE
comp.sys.intergraph, news:comp.sys.intergraph

D9. Alte liste de pagini web destinate proiectrii i


fabricaiei WEB List
Lista, legtur web
http:
http:
http:
http:

Comentarii

//pcfolini.eng.unipr.it/sites.html
//www.free.cts.com/crash/p/patcad/
//www-cad.fnal.gov/otherlinks.html
//wwwcadcam.de

Lista lui Franco Folini


Noutaiile lu Pat
Lista de Fermi Lab
O lista Germana despre CAD/CAM
O baza de date cu cunostiine despre
http: //www.cadshack.com/support.htm
CAD
Accesori CAD
http: //tribeca.ios.com/~compvent/cadstuff.html
Lista lui Pietro Di Micelli
http: //promo.net/pdm/bm_cad_i.htm
The world of CAD online by
http: //www.cadonline.com/woc.htm
CADALYST
Resource CAD in web
http: //www.renature.com/instarc/cad_net.html
Pagini CAD in web
http: //haven.uniserve.com/~ralphg/cadsite1.htm
List CAD
http: //www.mcp.com/newriders/cad/sites.html
List CAD
http: //www.arch.buffalo.edu/pairc/cad.html
Resurse CAD/CAM
http: //xenoy.mae.cornell.edu/cad-info.html
http:
//www.headquarters.com/Lista
cu
aplicaii
in
mecanicaCAD/CAM
CGI-WIN/homepage.exe?USE/Search_cad1
Lista de CAD de la I.M.T.
http: //www.webcom.com/%7Eimt/other.html
Lista de CAD de la Nerd World CAD
http: //www.nerdworld.com/nw672.html

Cadsyst
CAD
http: //www.buildingweb.com/cadsyst/cadlink.html

- 208 -

Links,

Lista de CAD despre AutoCAD

BIBLIOGRAFIE

BIBLIOGRAFIE
ACAD
ALM
BEN
BIB
BJS
BKOS
BOURDI
BOW
CAT
CNC
COH
COR
CRI
CTR

*** Autodesk - AutoCAD, manual de utilizare.


*** ALMI, manuale de utilizare.
Benchimol G., Lvine P., Pomerol J.C. Systmes experts dans
lentreprise, Herms, Paris, 1990.
*** BIBEXE, manual de utilizare, 1994.
Stroustroup B. C++ Programing Language Third Edition,
Addison Wesley, 1997.
de Berg M., van Kreveld M., Overmars M., Schwartzkopf O.
Computational Geometry algorithms and applications,
Springer Verlag, Berlin Heildelberg, 1997.
Bourdichon P. Lingnierie simultane et la gestion
dinformation, Herms, Paris, 1994.
Bowyer A., Woodwark J. A programmers geometry
Butterworths, University of Bath, 1983.
Catrina O., Cojocaru I. Turbo C++, Editura Teora, Bucuresti,
1993.
*** CNC 600, CNC 6001, CNC 646 Manuale de utilizare. 1990.
Cohen P.H., Joshi S.B. Advances in integrated product design
and manufacturing, PEDVol. 47, ASME, New York, 1990.
Corney J. 3D Modeling with the ACIS Kernel, Wiley, Ontario,
1997.
Cristea V. Tehnici de programare, Editura Teora, Bucuresti,
1992.
*** CorelTrace, manual de utilizare, fiier help,
www.corel.com, 1998.

DFR

Rogers D. F., Adams J. A. Mathematical Elements for


Computer Graphics, McGraw Hill International, Singapore,
1989.

DM01

Mica D. TechnoPack V1.0 Manual de utilizare, BillaSoft,


Timioara, 1992.

DM02

Mica D. TechnoPack V1.1 Manual de utilizare, BillaSoft,


Timioara, 1993.

DM03

Mica D. TechnoPack V1.2 Manual de utilizare, BillaSoft,


Timioara, 1994.

DM04

Mica D. TechnoPack V2.0 Lite Manual de utilizare, BillaSoft,


Timioara, 1996.

DM05

Mica D. TechnoPack V2.0 Pro Manual de utilizare, BillaSoft,


Timioara, 1997.

DM06

Mica D. TechnoPack V2.0 Pro, prezentare produs, Chip nr.


- 209 -

BIBLIOGRAFIE

14. Braov, 1996.

DM09

Mica D. Analytical Model User requirements, Pathtrace


Engineering, Reading, 1997.

DM10

Mica D. Analytical Model Functional specification,


Pathtrace Engineering, Reading, 1997.

DM11

Mica D. Analytical Model Design specification, Pathtrace


Engineering, Reading 1997

DM12

Mica D. Faceted Model User requirements, Pathtrace


Engineering, Reading, 1998.

DM13

Mica D. Faceted Model Functional specification, Pathtrace


Engineering, Reading,1998.

DM14

Mica D. Faceted Model Design specification, Pathtrace


Engineering, Reading,1998.

DM15

Mica D. Faceted Model Functional test, Pathtrace


Engineering, Reading,1998.

DMCS
07

Stncescu C., Mica D. TechnoPack V1.2 prezentare produs


Hello CAD Fans nr. 6, Bucureti, 1993.

DMCS
08

Stncescu C., Mica D. TechnoPack V2.0 Pro prezentare


produs Hello CAD Fans nr. 23, Bucureti, 1996.

DMW
0

Mica D. TechnoPack Prezentare produs, document www,


site www.dnttm.com, Timioara, 1996.

DMW
1
DMW2
DMW3
DMW
4
DRA92a
DRA92b
DRA95a
DRA95b
DUT

Mica D. EdgeAnalyser Prezentare produs, document www,


site www.pathtrace.com Pathtrace, Reading, 1998.
Mica D. Prezentare TechnoPack Pagina web:
www.sorostm.ro\billasoft, BillaSoft , Timioara, 1997.
Mica D. Analytical Model Functional TestingPagina web
www.pathtrace.com Pathtrace, Reading, 1997.
Mica D. Faceted Model Functional Testing Pagina web
www.pathtrace.com Pathtrace, Reading, 1998.
Draghici G. MasterCAM Tournage, IUT Bthune, 1992.
Draghici G. MasterCAM Fraisage, IUT Bthune, 1992.
Draghici G., Slavici T. Contributii la determinarea si prelucrarea
entitatilor geometrice complexe, Lucrarile celei dea VIIa
Conferinte Internationale de Inginerie Manageriala si
Tehnologica, Timisoara, iunie 1995.
Draghici G., Slavici T., Dumitru E. Some Contributions for
Defining and Determination of the Geometrical Offset Entities,
Buletinul Stiintific al Universitatii Tehnice din Timisoara, Tom 40
(54), Mecanica, 1995.
Dutta D., Woo A.C., Chandrashekhar S., Bailey S., Allen M.
Concurrent engineering, PEDVol. 59, ASME, New York, 1992.
- 210 -

BIBLIOGRAFIE

DWG

*** Autodesk Formatul DWG, www.autodesk.com. 1985


1998.

DXF

*** Autodesk Formatul DXF, www.autodesk.com. 1985


1998.

ECAM
ELLI
GARD9
0a
GARD9
0b
GARD9
2
GF
HCF
IFMP
IGES
JAG
LEF
LEO91
LWRK
MAN
U
MAZ
MOL
MOR
MSDN
MUS
NCV

*** Pathtrace EdgeCAM, manual de utilizare;


www.pathtrace.com. 1985 - 1998.
Ellis M., Stoustrup B. The Annotated C++ Reference Manual,
AddisonWesley, 1990.
Gardan Y. Etudes en CFAO. Outils et applications de
l'intelligence artificielle en CFAO, Hermes, Paris, 1990.
Gardan Y., Minich C. La modlisation gomtrique et
lextraction de caractristiques de forme, La gamme automatique
en usinage, Herms, Paris, 1990.
Gardan Y. La CFAO, Herms Paris, 1992.
Farin, G. Curves and surfaces for Computer Aided Geometric
Design Academic Press Inc. Harcout Brace Jovanovich,
Publishers, San Diego, CA92101, 1990.
Hello CAD Fans, Colecia revistei 1992 1998.
I.D.Faux, M.J.Prat Computational Geometry for Design and
Manufacturing, Ellis Horwood Publishers, Halsted Press, 1987.
*** ANSI Formatul IGES document www
www.tailormade.com/iges1.htm; 1996.
Jagou P. Concurrent Engineering, Herms, Paris, 1993.
Lefur E., Mathieu L. Mthodes doptimisation sous contraintes
appliques la determination des conditions de coupe, La
gamme automatique en usinage, Herms, Paris, 1990.
Leon J.C. Modlisation et construction de surfaces pour la
CFAO, Herms, Paris, 1991.
*** RapidWorks, manual de utilizare; www.ligthwork.com,
1998.
*** The Manufacturer, colecia revistei, The Manufacturing
Knowledge Group, 1996 1998.
*** MAZATROL, manual de utilizare.
Moldoveanu F., s.a. Grafica pe calculator, Editura Teora,
Bucuresti, 1996.
Moreau R. Lapproche objets, Masson, Paris, 1994.
*** Microsoft Developer Network, colecia revistei, Microsoft
Press, 1996 1998.
Muslea I. C++ Programarea orientata pe obiecte,
Microinformatica, Cluj, 1992.
*** NC Verify, Sirirus technology, fisier help, V2.x V5.0, 1995
1998.
- 211 -

BIBLIOGRAFIE

NUM
RAN
RBPE
L
SAT
SAV
SAV96
SHI
SLA94a
SLA94b
SLA95a
SLA95b
SLA96
SOM
SOR
STL
TOM
TRI
VCPP
ZEI

*** NUMAFORM, manual de utilizare.


Randoing J.M. Les SGDT, Herms, Paris, 1995.
Rumbaugh J., Blaha M., Premerlani W., Eddy F., Lorensen W.
Object Oriented Modeling and Design Prentice Hall Intl.,
Englewood Cliffs, New Jersey, 1991.
*** Spatial technology Formatul SAT
http://www.acis.com/, 1995 1998.
Savii G. G. Bazele proiectarii asistate de calculator, Editura
Mirton, Timisoara, 1997.
Savii G. Medii de dezvoltare pentru aplicatii de inteligenta
artificiala, Univeristatea Politehnica din Timisoara, 1996.
Shin Y.C., Abodelmonem A.H., Kumara S. Neural Networks in
Manufacturing and Robotics, PEDVol. 57, ASME, New York, 1992.
Slavici T. Contributii la programarea asistata de calculator a
masinilor unelte cu comanda numerica in vederea prelucrarii
entitatilor geometrice complexe, Teza de doctorat, Universitatea
Tehnica Timisoara, 1994.
Slavici T., Marinceu D. AutoCAD si alte tehnici CAD/CAM, Editura
Mirton, Timisoara, 1994.
Slavici T., Draghici G. Some Contributions to Determination and
Manufacturing of Complex Geometrical Entities, Buletinul
Stiintific al Universitatii Tehnice Timisoara, Tom 40 (54),
Mecanica, 1995.
Slavici T., Draghici G. Tehnici de baleiere a suprafetelor
complexe in spatiu, Lucrarile celei dea VIIa Conferinta
Internationala de Inginerie Manageriala si Tehnologica,
Timisoara, iunie 1995.
Slavici T. Conducerea cu calculatorul a sistemelor tehnologice,
Universitatea Politehnica din Timisoara, 1996.
Somnea D., s.a. Programarea in Assambler, Editura Tehnica,
Bucuresti, 1992.
*** SORI, manuale de utilizare.
*** Formatul STL, document www.
Toma L. Sisteme de conversie, achizitie si prelucrare a datelor,
Universitatea tehnica, Timisoara, 1993.
Midtbo T. Spatial Modeling by Delaunay Networks of of Two
and Three Dimensions, University of Trondheim, teza de
doctorat, document www, 1996.
Williams M. Bazele Visual C++ 4, Teora, Bucuresti, 1996.
Zeid I. CAD/CAM Theory and Practice, McGrawHill, 1991.

- 212 -

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