NimicCDiscretSurface.ExportPlasă(SetDeCaractere strNumeDXF)
{
CSTLExport stlout;
Punctp1, p2, p3, p4;
stlout.Iniţializează(strNumeDXF);
PentruFiecare(Întreg nI = 1; nI < nX; nI++)
PentruFiecare(Întreg nJ = 1; nJ < nY; nJ++)
{
p1(IndexÎnRealPtX(nI + 0), IndexÎnRealPtY(nJ + 0), [nI + 0, nJ + 0]);
p2(IndexÎnRealPtX(nI + 0), IndexÎnRealPtY(nJ + 1), [nI + 0, nJ + 1]);
p3(IndexÎnRealPtX(nI + 1), IndexÎnRealPtY(nJ + 0), [nI + 1, nJ + 0]);
p4(IndexÎnRealPtX(nI + 1), IndexÎnRealPtY(nJ + 1), [nI + 1, nJ + 1]);
stlout.PuneLa(p1, p2, p3);
stlout.PuneLa(p2, p3, p4);
} //PentruFiecare
stlout.Sfârşeşte();
} //EndExportPlasă
Notă: algoritmul prezentat este cel mai simplu posibil; în realitate, autorul utilizează unul mult mai sofisticat, care reduce mărimea fişierelor STL de peste 4 ori; acest algoritm încearcă, prin diferite metode, să găsească ş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 comparaţie cu cel listat, de sub 20 !
Exemple de solizi, în formatul solid triunghiular STL, se prezintă în figurile 2.5 şi 2.6.
Dostları ilə paylaş: |