NimicCNCExport.Iniţializează(SetDeCaractere strNume) //crează un fisier NC
{
nLinie = 1;
fişier.Deschide(strNume);
fişier.Scrie(“SD generare cod NC”);
fişier.Scrie(“%1”);
} //Init
NimicCNCExport.Sfârşeşte() //închide fişierul NC
{
pLast.Z += 10.0;
Exportă(pLastZ);
fişier.Scrie(“%1”);
fişier.Închide();
} //Sfârşeşte
NimicCNCExport.Exportă(Punct p, Boolean bRapid = FALS)
{
pLast = p;
Dacă (bRapid)
fişier.Scrie(“N%nG0X5dY%dZ%d\n”, nLinie++, p.rX, p.rY, p.rZ);
Altfel fişier.Scrie(“N%nG1X5dY%dZ%d\n”, nLinie++, p.rX, p.rY, p.rZ);
} //Exportă
Această clasă este utilizată astfel:
CNCExport ncout;
ncout.Iniţializează(“Test.CNC”);
PentruFiecare(nI = 1; nI <= cExportă.nNr; nI++)
ncout.Exportă(cExportă[nI])
ncout.Sfârşeşte();
Notă: În realitate, autorul utilizează la generarea fişierului NC o librărie 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 generării.
Librăria GNCPP este un produs freeware, care poate fi găsită în multe website-uri cu produse shareware şi freeware, având până în prezent peste o sută de utilizatori cunoscuţi.
Se vor prezenta câteva tehnologii care sunt utilizate în GNCPP V2.0 (prezentarea în pseudocod depăşeşte spaţiul lucrării, lungimea lui fiind de peste 20.000 linii cod):
Postprocesorul este un modul unitar, şi se ocupă de un singur lucru: modul în care se generează fişierul NC. Este realizat pentru a genera fişiere standard ANSI-DIN sau are posibilitatea programării lui pentru diferite dialecte nestandardizate.
Are peste 200 de variabile de configurare, care sunt foarte bine documentate şi uşor de configurat, creându-se astfel familii de postprocesoare nestandardizate, reale sau virtuale (pentru diferite analize, sau vizualizări).
Este folosit în mod unitar de toate modulele care generează fişiere NC (TehnoCAM, TehnoBulge, Tehno2D, TehnoMesh). În România, fişierele generate de el rulează pe ECN foarte variate, ca: CNC600, Fanuc, Sinumeric, Heidenheim, NUM, NUMEROM, Elerofil, DEM etc.
Poate genera (la cerere) fişiere DXF, în paralel cu cele CNC, pentru verificări pe alte sisteme de proiectare. Calculează automat lungimea pe care o execută capul în timpul frezării, în mişcare de lucru şi în mişcare rapidă, şi timpul necesar frezării unei suprafeţe, creând automat şi un fişier cu datele tehnologice.
Programele NC pot fi fragmentate automat, în funcţie de memoria MUCN sau numărul de linii suportate de aceasta.
Converteşte datele geometrice, din 3 în 2,5 axe, punând astfel în valoare parcul de maşini unelte din ţară şi scurtând cu 30 % fişierele NC.
Posedă un mod euristic de rezolvare a problemei comis voiajorului (TSP), foarte rapid şi performant, eliminând peste 90 % din mişcările de avans rapid, scurtând semnificativ unele tipuri de fişiere NC. Acest algoritm este prezent doar în seria TechnoPack, fiind creat în premieră la BillaSoft [DM01..DM11].
Conţine modul Adaptiv, care analizează frezarea şi (în urma analizei) schimbă valoarea avansului automat în timpul rulării fişierului NC, încărcând uniform cu solicitări freza şi scula; în funcţie de geometria acesteia şi modul de frezare (longitudinal, radial, mixt) încetineşte mişcarea de avans şi corectează spaţial mişcarea capului, în raport cu uzura sculei (optimizare pt. timp).
Modul Stealth (ascuns) stă tot timpul în acţiune (cât postprocesorul este în funcţiune) şi analizează scrierea fişierelor NC, hotărând dacă informaţiile care se doresc a fi scrise în fişierul NC sunt importante sau dacă se pot deduce din alte linii de informaţii, creând astfel fişiere NC cât mai scurte. Fişierele generate cu Stealth activ sunt cu 60...90 % mai scurte decât cele normale, nepierzându-se informaţii geometrice utile (optimizare pentru lungime).
Se prezintă un listing parţial al variabilelor care stau la baza configurării postprocesorului:
[GenericNCPostProcessor V2.0 ACTIVE variables ]
[WARNING: IF YOU PERFORM MODIFICATIONS DO NOT KILL INDENTATION ! ]
[Variable = Current;T[Possible ] Comment ]
[============================================================================]
[CNC.Process]
Dostları ilə paylaş: |