metode de generare - optimizare a suprafetelor discrete

247
Metode de generare, conversie, import, export, analiză şi fabricaţie optimizată a suprafeţelor discrete Cuprins 1. Introducere.......................................... 4 2. Stadiul actual....................................... 8 2.1. Introducere....................................... 9 2.2. Evoluţia metodelor de stocare....................10 2.2.1. Seturi de puncte.......................................................................................................... 10 2.2.2. Curbe şi suprafeţe analitice multiparametrice........................................................ 11 2.2.3. Curbe la o înălţime dată 2D...................................................................................... 12 2.2.4. Polilinii plane.............................................................................................................. 12 2.2.5. Suprafeţe extrudate................................................................................................... 13 2.2.6. Polilinii în spaţiu......................................................................................................... 13 2.2.7. Solide simple............................................................................................................... 14 2.2.8. Suprafeţe discrete faţetate........................................................................................ 15 2.2.9. Suprafeţe discrete demulabile.................................................................................. 16 2.2.10. Suprafeţe şi curbe superioare................................................................................. 17 2.2.11. Solide sculpturale..................................................................................................... 18 2.2. Evoluţia limbajelor de programare.................21 2.3. Evoluţia sistemelor de proiectare şi fabricaţie pe plan mondial.......................................... 23 2.4. Evoluţia sistemelor de proiectare şi fabricaţie pe plan naţional......................................... 24 2.5. Concluzii.........................................25 3. Metode de notaţie şi clase utilizate................26 3.1. Introducere...................................... 27 3.2. Limbajul pseudocod...............................28 3.2.1. Clasă............................................................................................................................ 28

Upload: miculita72

Post on 09-Sep-2015

297 views

Category:

Documents


2 download

DESCRIPTION

Metode de generare,conversie, import, export, analiză şi fabricaţie optimizată a suprafeţelor discrete

TRANSCRIPT

Mulumiri

Metode de generare,

conversie, import, export, analiz i fabricaie optimizat a suprafeelor discrete

Cuprins

41. Introducere

2. Stadiul actual82.1. Introducere92.2. Evoluia metodelor de stocare102.2.1. Seturi de puncte102.2.2. Curbe i suprafee analitice multiparametrice112.2.3. Curbe la o nlime dat 2D122.2.4. Polilinii plane122.2.5. Suprafee extrudate132.2.6. Polilinii n spaiu132.2.7. Solide simple142.2.8. Suprafee discrete faetate152.2.9. Suprafee discrete demulabile162.2.10. Suprafee i curbe superioare172.2.11. Solide sculpturale182.2.Evoluia limbajelor de programare212.3.Evoluia sistemelor de proiectare i fabricaie pe plan mondial232.4.Evoluia sistemelor de proiectare i fabricaie pe plan naional242.5.Concluzii253. Metode de notaie i clase utilizate263.1. Introducere273.2. Limbajul pseudocod283.2.1. Clas283.2.2. Obiect293.2.3. Operator293.2.4. Lista cu parametri293.2.5. Indexul vectorilor303.2.6. Enumerare303.2.7. Algoritm303.2.8. Cuvinte cheie323.2.9. Comentariu323.3. Clase utilizate343.3.1. Clasa ntreg343.3.2. Clasa Boolean343.3.3. Clasa Real353.3.4. Clasa Punct363.3.5. Clasa SetDeCaractere373.3.6. Clasa BazaVectorial373.3.7. Clasa Curb373.3.8. Clasa CurbSuperioar393.3.9. Clasa Plas393.3.10. Clasa SuprafeeSuperioare413.3.11. Clasa CapDeScul413.3.12. Clasa BazDiscret433.3.13. Clasa SuprafeeDiscrete433.3.14. Clasa Masc473.3.15. Coleciile483.4. Concepte introduse493.5. Concluzii534. Metode de generare i modelare544.1. Introducere554.2. Metode de generare discrete564.2.1. Plan orizontal564.2.2. Plan nclinat564.2.3. Funcie Z(x, y)574.2.4. Interpolarea prin seciuni574.2.5. Combinarea cu o alt SD594.2.6. Exemple despre metodele discutate594.2.7. Set de puncte614.2.8. Interpolarea capetelor de scule634.2.9. Calculul SD nfurtoare i SD de racordare statice654.2.10. Calculul SD nfurtoare i SD de racordare dinamice664.3. Filtre694.3.1. Filtre de creare694.3.2. Filtre de distrugere714.4. Metode de generare vectorial724.5. Concepte introduse764.6. Concluzii775. Metode de conversie i formate de import export785.1. Introducere795.2. Metode de conversie805.2.1. Conversia n curbe805.2.2. Proiectarea unei familii de curbe pe suprafaa discret845.2.3. Offset pe SD855.2.4. Convertirea n plase patrulatere865.2.5. Convertirea n reprezentare triunghiular875.3. Formate de import - export885.3.1. Formatul DXF915.3.2. Formatul STL935.3.3. Formatul CL945.3.4. Formatul NC965.4. Concepte introduse1005.5. Concluzii1016. Metode de analiz i optimizare1026.1. Introducere1036.2. Concepte introductive1046.3. Metode de analiz a SD1056.3.1. Calculul seciunilor paralele cu Z constant1056.3.2. Calculul seciunilor paralele n planul XY1066.3.3. Calculul de detecie a zonelor plane1076.3.4. Calculul zonelor critice la frezarea seciunilor paralele n planul XY111Suprapunerea familiilor de curbe1156.3.6. Calculul curbelor echirugozitate1166.3.7. Calculul materialului nefrezabil1206.4. Metode de analiz a curbelor1266.4.1. Rejecia punctelor coliniare1266.4.2. Interpolri superioare1276.4.3. Minimizarea micrilor n avans rapid1276.4.4. Modul pseodoadaptiv fr DS1306.4.5. Eliminarea punctelor de inflexiune1316.5. Metode de analiz mixt1336.5.1. Spiralele lui Billator1336.5.2. Modul pseudoadaptiv cu SD1406.5.3. Detecia interferenelor1406.6. Optimizarea traseelor de scul1426.7. Calculul reelelor de difracie1456.8. Metode de vizualizare a curbelor1486.9. Concepte introduse1506.10. Concluzii1517. Concepte introduse1528. Concluzii159Anexe164Anexa A: Clase utilizate165Anexa B: Abrevieri166Anexa C: Definiii167Anexa D: Legturi web171D1. Sisteme mari de proiectare i fabricaie171D2. Alte sisteme de proiectare i fabricaie171D3. Sisteme de proiectare171D4. Procesoare APT172D5. Sisteme de fabricaie172D6. Informaii despre proiectare i fabricaie173D7. Informaii generale despre proiectare i fabricaie173D8. Grupuri de discuii despre proiectare i fabricaie174D9. Alte liste de pagini web destinate proiectrii i fabricaiei WEB List174BIBLIOGRAFIE175

1. Introducere

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.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.

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.

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).

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.

2. Stadiul actual

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. 2.2. Evoluia metodelor de stocareCea 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:

2.2.2. Curbe i suprafee analitice multiparametrice

Definiie:

Suprafeele i curbele analitice sunt acelea care pot fi descrise printr-un 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:

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

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:

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:

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:

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 sau detectare a 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:

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:

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.

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 de analiz i optimizare sunt foarte rudimentare i greoaie. dificil de importat i exportat; dificil de calculat suprafaa i volumul. Exemple:

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. Dezavantaje:

lente pentru analize;

dificil de importat i exportat;

foarte complexe metode de vehiculare a bazelor de date.

Exemple:

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;

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.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;

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).

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.

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.

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.

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.

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].

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;

n general, acestea sunt i domeniile studiate de autor n ultimii ani, domenii n care ar dori s-i aduc contribuia.

3. Metode de notaie i clase utilizate

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.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 din librriile standard (cu excepia celor trigonometrice),

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.

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 mecanisme evoluate de polimorfism, prototipizare, abstractizare etc.

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))

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 AltfelrSum --; //echivalent cu rSum = rSum 1; instruciunea 1;

//enumerare de reali

Punct pMax = {1.0, 12.0, 10.0};

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) < rTolntoarce(ADEVRAT);

Altfel

ntoarce(FALSE);

} //EsteApropiat

Utilizri posibile:

ChemareInterpretareRezultat

EsteApropiat(10.0, 11.0, 2.0)EsteApropiat(10.0, 11.0, 2.0)ADEVRAT

EsteApropiat(10.0, 11.0)EsteApropiat(10.0, 11.0, 1e-10)FALS

EsteApropiat(3.0)EsteApropiat(3.0, 0.0, 1e-10)FALS

EsteApropiat(0.0, _, 0.01)EsteApropiat(0.0, 0.0, 0.01)ADEVRAT

EsteApropiat(_, 11.0)EsteApropiat(0.0, 11.0, 1e-10)FALS

EsteApropiat()EsteApropiat(0.0, 0.0, 1e-10)ADEVRAT

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. Funcii speciale

a) Dac i Dac-Altfel

Dac o condiie este ndeplinit se execut prima enumerare de instruciuni, altfel (eventual) a doua enumerare.

Dac(condiie){} [Altfel{}]

b) 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) {}.

c) PnCndPn cnd este satisfcut condiia execut o enumerare de instruciuni.

PnCnd(condiie){}

Se poate observa c PnCnd(condiie) ~ PentruFiecare(_, condiie, _).

d) ntoarce i ntoarce()

ntoarce oprete execuia unui algoritm i (eventual) ntoarce un obiect din clasa returnat de algoritmul respectiv.

ntoarce[(obiect de tipul clasei returnate)];

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) nseamn motenirea comportamentului unei clase printe.

3.2.8.3. 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:

//[0.001, 0.1] valori posibile n intervalul nchis [0.001, 0.1], cu valoarea iniial 0.01Acestea 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.

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:

OpExpresieExplicaiiOpExpresieExplicaii

=C = AEgalitatea 5 = 5==C == A(C=A)?1:0;

+C = A + BAdunarea 5+3= 8+=C += AC = C + A

-C = A BScderea 53= 2-=C -= AC = C A

*C = A * Bnmulirea 5*3=15*=C *= AC = C * A

/C = A / Bnprirea 5/3= 1/=C /= AC = C / A

!C = !ANEGAIA !5 = 2;!101=010!=C != AC = !A

&C = A & BI logic 5&3= 1; 101&110=001&=C &= A C = C & A

|C = A | BSAU logic 5|3= 7; 101&110=111|=C |= AC = C | A

%C = A % BSAU exclusiv5%3= 6; 101&110=110%=C %= AC = C % A

IC = A I BC = (A&B>0)?1:0INTC INT rAINT 4.5 =4

SAUC = A SAU BC = (A|B>0)?1:0MINC MIN AC = MIN(A,C)

%%C = A %% BC = (A%B>0)?1:0MAXC MAX AC = MAX(A,C)

>C = A > BC = (A>B)?1:0>=C = A>=BC=(A>=B)?1:0

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

! 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];- 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.000N6S100F=P0N7G0X21Y7.5Z45N8G1Z-5N9X20N10X19Z-2.2N11X18Z2.6N12X17Z4.8N13X16Z5.9N14X15

. . .

N70X20.5Y7.5

N71Z5

N72G0Z15N73G0Z17N9999%1G71Cteva figuri n care s-a folosit GNCPP ca generator i analizor de tehnologie.

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

} //FiierClasa 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);} //STLExportClasa 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

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.

6. Metode de analiz i optimizare

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 expuse vor fi grupate n funcie de similitudinea algoritmilor n: 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.

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.

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. 65);

se calculeaz i se creaz transformarea acesteia n SDCST, se secioneaz cu algoritmul de conversie n curbe de nivel SDCST (pag. 80);

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. 84);

se optimizeaz curbele generate;

se export curbele proiectate (pag. 96);

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.

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;} //TransfDetectPtZNimicSuprafaDiscret.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} //DetectCurbeleZExemplificarea conceptelor introduse, n figura urmtoare (cu rou sunt reprezentate seciunile echipoteniale).

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