Documente Academic
Documente Profesional
Documente Cultură
https://doi.org/10.1007/s00170-020-06396-2
ARTICOL ORIGINAL
REZUMAT
Până în prezent, algoritmii de tăiere pentru fabricarea aditivă sunt cei mai eficienți pentru topologiile
favorabile de plasă triunghiulară; Modelele din cel mai rău caz, în care un procent mare de triunghiuri
intersectează fiecare plan de felie, durează mult mai mult pentru a se tăia decât un fișier asemănător. În
fișierele mai mari, acest lucru are ca rezultat o durată semnificativă de tăiere, când modelele sunt ambele
cazuri cele mai grave și conțin mai mult de 100.000 de triunghiuri. Cercetarea prezentată aici introduce un
algoritm de tăiere care poate tăia în mod eficient modelele mari în cel mai rău caz. Un nou algoritm este
implementat utilizând o metodă eficientă de construcție a conturului, cu adaptări ulterioare, care fac
algoritmul potrivit pentru toate topologiile modelului. Potrivirea marginilor, care este o metodă avansată de
sortare, scade numărul de sortări pe muchie de la n număr total de intersecții la două, alături de micro-
optimizări suplimentare care oferă algoritmul eficient de construcție a conturului îmbunătățit. Algoritmul a
reușit să tranșeze un model din cel mai rău caz de 2,5 milioane de triunghiuri în anii 1025. Îmbunătățirea
maximă a fost măsurată cu 9400% față de metoda eficientă standard de construcție a conturului. De
asemenea, s-au observat îmbunătățiri în toate părțile care depășesc 1000 de triunghiuri. Algoritmul de tăiere
prezentat oferă metode noi care abordează eșecurile altor algoritmi descriși în literatură pentru a tăia în mod
eficient modelele din cel mai rău caz.
1. INTRODUCERE
Fabricarea aditivă (AM) poate fi definită ca o tehnologie în care un obiect tridimensional (3D) este
construit prin crearea secvențială de straturi bidimensionale (2D) [1 ] . Crearea componentelor poate fi
realizată folosind o gamă largă de metode și materiale; cu toate acestea, toate procesele AM constau din trei
etape distincte: (i) construirea unui model digital; (ii) aplicarea algoritmilor de preprocesare, conversia
modelului în straturi 2D apoi generarea traseului mașinii-unelte [ 2 ]; și (iii) crearea piesei fie prin
depunerea, fie prin topirea materialului pe stratul precedent. Beneficiile AM includ posibilități sporite de
proiectare față de producția subtractivă și creșterea eficienței și a costurilor în volume mici [ 3 ].
Dintre cele trei formate de fișiere principale pentru AM (*.STL, *.AMF, *.3MF) [ 4 , 5 ], toate construiesc
geometrie folosind ochiuri triunghiulare. Ochiurile din AM constau întotdeauna din triunghiuri teselated
care se conectează la vârfuri, fiecare vârf definit ca o coordonată 3D în virgulă mobilă și sunt ordonate în
sens invers acelor de ceasornic atunci când se observă partea din exterior [ 6 ] ; fiecărui triunghi i se atribuie
o normală asociată orientată spre exterior, care poate fi utilizată în timpul tăierii sau la redarea grafică a
piesei [ 7 ]. Pe măsură ce tehnologia a avansat, iar rezoluția și acuratețea mașinilor s-au îmbunătățit [ 8 ],
rețelele din fișierele AM necesare pentru a captura caracteristicile geometrice mai detaliate au crescut în
complexitate și au devenit mai fine [ 9 ]]. Algoritmul de tăiere necesar pentru a converti modelele moderne
AM în contururi 2D trebuie să se îmbunătățească în continuare, pentru a tăia în mod eficient ceea ce odată
era considerat fișiere excepțional de mari.
Modelele de piese care sunt cel mai rău caz dintr-o perspectivă algoritmică de tăiere sunt cele care conțin un
procent mare de triunghiuri care se intersectează pe orice strat dat. Procesul de tăiere constă din două
operații care calculează intersecțiile dintre triunghiuri și planul feliei și apoi sortează intersecția în contururi
învecinate. În cel mai rău caz, părțile sunt deosebit de dificil de tăiat din cauza procesului de sortare,
crescând în durată exponențial cu fiecare triunghi suplimentar din strat. Cercetarea prezentată aici se
bazează pe metoda construcției eficiente a conturului (ECC) [ 10 ] care exploatează formatul de plasă
triunghiulară adăugând caracteristici care abordează incapacitatea de a manipula în mod eficient piesele din
cel mai rău caz.
În modelul standard de tăiere (Fig. 1 ), sortarea intersecțiilor generate se bazează pe compararea punctelor
finale ale segmentului de linie generat atunci când se intersectează triunghiul cu planul feliei, așa cum este
descris de Steuben și colab. [ 14 ] luând forma unei căutări de graf conectat [ 15 ] provocând potriviri false
din cauza modelelor în care mai mult de două triunghiuri converg într-un singur punct (Fig. 2 ). Acest lucru
face ca algoritmul fie să cadă într-o buclă continuă, fie să producă o ieșire eșuată, pentru care este necesară
o metodă mai bună de sortare.
De obicei, grosimea stratului este constantă în timpul procesului de feliere; totuşi, există un număr de
exemple pentru tăierea adaptivă [ 16 , 17 , 18 ] în care înălţimea stratului este redusă la tăierea regiunilor cu
detalii ridicate sau mărită când există mai puţine caracteristici geometrice care trebuie capturate. Aceste
metode pot crește eficiența procesului de feliere; cu toate acestea, utilizarea este adecvată numai atunci când
este produs un model per ciclu de construcție. În mașinile AM mai mari, cum ar fi sinterizarea selectivă cu
laser (SLS), stereolitografia (SL) sau topirea selectivă cu laser (SLM), unde, în mod convențional, mai
multe modele sunt teselated în zona de construcție. Creșterea sau scăderea adâncimii feliei pentru un model
va fi probabil în detrimentul altor modele de pe strat. Li și Xu [ 19] recunosc că tăierea adaptivă este utilă în
primul rând pentru modelarea prin depunere fuzionată (FDM) și, prin urmare, nu poate fi considerată
potrivită pentru un motor de feliere eficient universal.
Algoritmul ECC a lui Zhang [ 10] prezintă un algoritm universal cuprinzător de tăiere, care este eficient atât
în timp, cât și în memorie; metoda lor exploatează natura în sensul acelor de ceasornic a unei rețele
triunghiulare, permițând să fie calculată o singură intersecție pe plan de felie per triunghi, reducând cerința
de memorie a algoritmului de tăiere la jumătate. În plus, metoda de sortare dinamică este utilizată în cazul
în care intersecțiile sunt inserate direct în contur, pe măsură ce sunt calculate, mai degrabă decât utilizarea
unei structuri de date intermediare pentru a păstra segmentele de linie nesortate, reducând din nou necesarul
de memorie a algoritmului. Metoda de sortare permite conectarea liniilor astfel încât să fie verificate doar
începutul și sfârșitul segmentelor de linie conectate,1 .
3 Metode
3.1 Implementarea algoritmului ECC
Zhang şi colab. [ 10 ] oferă un algoritm ECC robust, care este eficient pentru anumite geometrii de
piese. Algoritmul se bazează pe calcularea intersecțiilor pentru fiecare triunghi de sus în jos fie de-a lungul
muchiei celei mai lungi, fie de-a lungul celor două muchii mai scurte (Fig. 3 ). Decizia se bazează pe
ordinea în care apar vârfurile celei mai lungi muchii în fiecare triunghi. La calculul intersecției, aceasta este
stocată într-un nod de intersecție (IN), care conține coordonatele 2D ale intersecției, un indicator de margine
(EP) care conține adresa de memorie a vârfurilor celor două muchii ale triunghiului care intersectează
planul feliei. , și indicatorul următor și anterior, care localizează un IN următor sau precedent în listă,
respectiv (Fig. 4). O serie de IN-uri legate sunt păstrate într-o structură de date a listei de intersecție (ILL),
care conține un pointer către ILL-ul următor și un pointer către primul și ultimul element din listă.
În urma creării IN, acesta trebuie introdus într-un ILL. Toate ILL-urile existente ale punctelor de margine
ale primului și ultimului element sunt comparate cu indicatorul de margine al IN pentru inserare. IN este
apoi introdus în conformitate cu următoarele scenarii:
1. Nu există ILL existente, IN este prima intersecție calculată pe acel strat, iar IN este inserat într-un
nou ILL;
2. Se găsește o potrivire cu primul IN dintr-un ILL, iar IN este inserat în partea din față a listei;
3. Se găsește o potrivire cu ultimul IN dintr-un ILL, iar IN este inserat în spatele listei;
4. Două potriviri se găsesc, în liste separate, la primul element dintr-un ILL și ultimul element dintr-un
al doilea ILL; IN-ul conectează cele două liste; iar a doua listă este ștearsă;
5. Două potriviri sunt găsite în aceeași listă, IN este inserat în spatele listei potrivite, iar aceasta indică
că lista potrivită a fost completată;
6. Nu se găsește nicio potrivire în niciunul dintre ILLS existente, iar IN este inserat într-un nou ILL.
Odată ce IN a fost introdus într-un ILL, următoarea intersecție de pe margine este calculată și sortată. Odată
ce toate intersecțiile de pe triunghi au fost calculate și inserate în ILL-uri, triunghiul următor este luat în
considerare până când toate triunghiurile din plasă au fost luate în considerare, iar tăierea ajunge la
final. Datele din ILL-uri pot fi apoi scrise într-un format de fișier slice, sau formatul de listă ILL poate fi
utilizat direct pentru generarea traseului sculei.
La implementarea algoritmului ECC și a unei strategii tradiționale bazate pe diagrama de flux detaliată în
Fig. 1 [ 12 ], în limbajul C++, s-au efectuat teste cuprinzătoare pe fișierele *.STL prezentate în Fig. 5 şi 6 ,
iar rezultatele sunt date în Tabelul 1 . Algoritmul ECC arată îmbunătățiri față de metoda convențională de
tăiere între 9000 și 1150% pentru toate cele trei părți. Rezultatul a fost deosebit de impresionant pentru
Fig. 6 , având nevoie de sub 575 ms pentru a tăia piesa. Cu toate acestea, atât în metoda convențională, cât
și în cea ECC, există o diferență între duratele secțiunii pentru Fig. 5a și 6în ciuda faptului că consta dintr-
un număr similar de triunghiuri, a durat peste 237.000 ms și 2.752.181 ms pentru algoritmii ECC și,
respectiv, convenționali — de 413 de ori mai mult pentru a tăia pentru metoda ECC și de 494 de ori mai
mult pentru algoritmul convențional.
Figura 5b timpul de tăiere este de 20,9 și 19,2 ori mai mic decât cel din Fig. 5a pentru ECC și, respectiv,
algoritmul convențional, indicând că direcția de tăiere care interacționează cu topologia piesei are un impact
semnificativ asupra eficacității ambilor algoritmi. O posibilă soluție este analizarea pieselor și orientarea
acestora într-un mod optim pentru algoritmul de tăiere; cu toate acestea, acest lucru nu prezintă un rezultat
bun, deoarece orientarea optimă pentru feliere este puțin probabil să fie orientarea optimă pentru construirea
piesei [ 28 ]. Un algoritm capabil să taie piesele în mod eficient, indiferent de orientare, este esențial.
Analiza topologiei din Fig. 5a a indicat că procentul mediu de triunghiuri care se intersectează pe fiecare
strat este de 33% echivalent cu 34.000 de triunghiuri, ceea ce înseamnă că partea poate fi identificată ca
fiind cel mai rău caz, în timp ce pentru Fig. 5b, o medie mai mică de 2% sau 2056 triunghiuri se
intersectează pe fiecare strat. Numărul total de intersecții ale întregii părți rămâne același pentru ambele
cazuri. Se poate deduce că procedura de sortare atunci când un număr mare de triunghiuri sunt prezente pe
strat este cauza ineficienței.
Fig. 5 a Foaie de testare cu 100 de găuri cu 102.812 triunghiuri și dimensiuni 265 × 265 × 3
mm; b aceeași foaie de testare rotită cu 90°
Fig. 6 Turn de șah care conține 93.930 triunghiuri, dimensiuni: 31,75 × 31,75 × 53,15 mm
Table 2 Reduction in the number of matching processes from ECC to EECC
3.2 Potrivirea marginilor
Procesul de sortare din algoritmul ECC se bazează pe compararea indicatorului de margine la începutul și la
sfârșitul fiecărei liste de vârfuri conectate pentru o potrivire cu IN-ul curent. Acest proces poate fi optimizat
în continuare utilizând faptul că ochiurile triunghiulare pot fi asociate doar margine cu margine și vârf cu
vârf; prin urmare, un triunghi împarte doar margini cu exact alte trei, câte unul pe fiecare margine. În
consecință, odată ce s-a făcut o potrivire pentru o intersecție pe o muchie, triunghiul potrivit va fi același
pentru restul acelei muchii (Fig. 7 ). Algoritmul ECC standard a fost ajustat pentru a ține cont de acest
lucru pentru a reduce numărul de proceduri de sortare necesare pentru fiecare muchie de la n , numărul total
de intersecții ale muchiei la una.
În cazurile de la 1 la 3, adresa locației de memorie a ILL în care a fost introdus IN i este atribuită ca legătură
de margine a IN prev . În cazul 4, nu este necesară alocarea legăturii de margine, deoarece IN prev este pe
mijlocul unui ILL și, prin urmare, nu va fi verificat în inserările viitoare IN. Impactul implementării
indicatorului de legătură la margine în algoritm este că numărul de intersecții care sunt supuse procesului de
verificare pe triunghi este redus de la n (numărul total de intersecții de pe triunghi) la unu. Valorile
înregistrate în contor au fost implementate temporar în cadrul fiecărui algoritm, detaliind de câte ori a fost
supus procesul de potrivire al ECC standard pentru fiecare algoritm este prezentat în Tabelul 2 .
3.3 Modificări suplimentare și potrivirea marginilor
Transferul ILL-urilor finalizate din CLL de sortare activă într-un CLL separat care conține numai liste
completate era de așteptat să crească eficiența prin reducerea numărului de sortări. În unele cazuri, toate
triunghiurile dintr-o plasă triunghiulară multi-cochilii conectată apar succesiv în fișier; prin urmare,
conturul sau contururile asociate cu acel shell vor fi finalizate mai întâi și, în consecință, orice IN-uri
suplimentare generate de shell-urile rămase vor verifica ILL-ul finalizat la fiecare iterație de căutare. La
inițializarea algoritmului, sunt create două versiuni ale CLL: CLL-ul standard în care au loc toate sortările și
inserările IN și un al doilea CLL complet unde ILL-urile sunt transferate prin modificarea indicatorilor de
locație de memorie, când IN se constată că se potrivește în aceeași listă de două ori.
Micro-optimizarea în ordinea în care variabilele de caz sunt evaluate în bucla de caz IF/ELSE a oferit o
economie de timp vizibilă. Ordinea în care apar variabilele cazului a fost restructurată pentru a se asigura că
cel mai probabil caz apare primul. Pentru a testa care caz este cel mai probabil, au fost create o serie de
valori întregi pentru a număra de câte ori a apărut fiecare variabilă de caz. Tabelul 3 arată numărul de
apariții ale fiecărui caz înregistrat utilizând contoare întregi la rularea algoritmului ECC cu potrivirea
marginilor.
Tabelul 4 arată că cazul cel mai dominant depinde în mare măsură de topologia triunghiurilor din plasă,
evidențiat de o comparație a foilor de testare rotite din Fig. 5, prezentând cazuri diferite, în ciuda faptului că
au triunghiuri de geometrie și conexiuni identice. Tabelul 5 conține probabilitatea medie de apariție a unui
caz pentru toate modelele luate în considerare în această lucrare. Sa stabilit că ordinea proceselor de
inserare automată în bucla IF/ELSE va urma apariția cea mai probabilă până la cea mai puțin probabilă
prezentată în Tabelul 4 .
Nicio listă de potrivire Inserați în fața listei Inserați în spatele listei Legături două liste
(%) (%) (%) (%)
Îmbunătățirea cea mai de impact este prezentată în părțile identificate în cel mai rău caz
(Fig. 12 , 13 , 14 și 15 ). În cel mai mare model din cel mai rău caz care ar putea fi tăiat folosind algoritmul
ECC (Fig. 15), algoritmul EECC este cu 9400% mai rapid decât algoritmul ECC standard. Dintre piesele
testate, doar modelele care conțin sub 1000 de triunghiuri au înregistrat o creștere procentuală semnificativă
în comparație cu timpul inițial de tăiere de 180% pentru Fig. 10 . Aceasta este o creștere acceptabilă
datorită timpilor imperceptibili de tăiere atât cu algoritmii ECC, cât și EECC și poate fi explicată datorită
implementării testării edge-point care durează mai mult timp decât economiile sale; doar o scădere
neglijabilă se vede în Fig. 11 din același motiv.
Fig. 10 Model de dodecaedră format din 2074 triunghiuri, 157,81 × 133,62 × 165,15 mm
Fig. 11 Un model de calibrare format din 316 triunghiuri, 165,1 × 165,1 × 25,4 mm
Figurile 11 , 12 și 13 , 16 reprezintă cel mai mare dintre fișierele testate folosind algoritmul standard ECC,
care a fost supus procesului de tăiere timp de peste 4 ore, dar nu a ajuns niciodată la finalizare, deoarece
programul a fost terminat după acest timp, deoarece era inacceptabil de lung . Acest lucru a indicat că aceste
părți ar fi văzut îmbunătățiri și mai mari decât cele observate în Fig. 14 , dacă finalizarea ar fi fost într-
adevăr posibilă.
Fig. 12 Foaie de testare care conține 1225 de găuri, 2.513.751 triunghiuri cu dimensiunea 250 × 250 ×
3 mm
Fig. 13 Foaie de testare care conține 484 de găuri, 993.180 de triunghiuri cu dimensiunea 250 × 250 ×
3 mm
Fig. 14 Foaie de testare care conține 729 de găuri, 1.495.920 de triunghiuri cu dimensiunea 250 × 250
× 3 mm
Numele piesei #Triunghiuri #Straturi Algoritm (e) Ora ECC Timp ECC+ ECC (e)
convențional (e) potrivire îmbunătățit
de timp margine (e) în timp
Fig. 15 Foaie de testare care conține 225 de găuri, 461.712 triunghiuri cu dimensiunea 250 × 250 × 3
mm
Fig. 16 Cap figurină care conține 467.882 triunghiuri, dimensiunile de 141,61 × 111,27 × 81,29 mm
5 Concluzie
Obiectivul acestei cercetări a fost acela de a genera un algoritm de tăiere pentru AM care este capabil să
tăieze eficient părțile geometrice din cel mai rău caz, definite ca modele de plasă triunghiulară în care un
procent mare de părți ale triunghiurilor se intersectează pe fiecare strat. O adaptare a algoritmului ECC,
inclusiv reducerea numărului de sortări pentru fiecare triunghi și micro-optimizări prin structurare, au
format algoritmul ECC îmbunătățit. Testele de eficiență au fost efectuate pe un set de fișiere *.STL (cu
toate acestea, orice alte fișiere mesh triunghiulare ar putea fi utilizate în algoritm) și au găsit o îmbunătățire
maximă de 9400% pe cel mai mare fișier din cel mai rău caz. Sa constatat, de asemenea, că fișierele *.STL
care anterior erau prea ineficiente în timp pentru a finaliza tăierea folosind algoritmul ECC standard au
durat mai puțin de 300s pentru a se tăia.
Algoritmul ECC îmbunătățit abordează defecțiunile celorlalți algoritmi de a tăia părți foarte mari în cel
mai rău caz, care devin din ce în ce mai răspândite în sectorul AM [31] în reproducerea obiectelor scanate
din lumea reală [ 32 ] sau foarte detaliate, la scară largă. componente AM. Îmbunătățirile aduse procesului
de tăiere vor trebui să evolueze pe măsură ce modelele cresc în complexitate și dimensiune; în timp ce
algoritmul ECC îmbunătățit ar putea fi capabil să taie toate piesele în mod eficient acum și vor fi necesare
dezvoltări ulterioare în viitor.