Strona 1 z 1

[PikoCNC] Skrypt przebiegów sinusoidalnych

: 02 lut 2012, 08:48
autor: mitek
Witam

Przesyłam ciekawy skrypt do przebiegów sinusoidalnych

program meblowy;

var
gestosc,liczniksin,amplituda,Y,margines,glebokosc,x1,y1:extended;
przesuniencie,odstep,Fxy,Fz,i,L,L_wysokosc,wysokosc,szerokosc: cardinal;
osxsin: double;

begin
// {$I panel_funkcje.pas} // dołączenie pliku z funkcjami
szerokosc:=296;
wysokosc:=713;
margines:=40;
fxy:=1800;
Fz:=800;
glebokosc:=-5;
odstep:=12;
amplituda:=5;
przesuniencie:=12;
gestosc:=0.1;


if (RUN_CNT=0) then begin // wykonywane tylko przy pierwszym uruchomieniu
SetArgPic('fala.jpg'); // obrazek objaśniający
SetArg(0,'Szerokość (mm)',szerokosc);
SetArg(1,'Wysokość (mm)',wysokosc);
//SetArg(2,'Margines (mm)',margines);
SetArg(4,'Szybkość Fxy (mm/min)',Fxy);
SetArg(5,'Szybkość Fz (mm/min)',Fz);
SetArg(6,'Głębokość wejście (mm)',glebokosc);
SetArg(8,'Odstęp między przebiegami (mm)',odstep);
SetArg(9,'Amplituda głębokości (mm)',amplituda);
SetArg(10,'Przesunięcie sinusoidy kolejnych przebiegów [średnica freza] (mm)',przesuniencie);
SetArg(11,'Gęstość z jaka wstawiane sa kolejne punkty(mm)',gestosc);
end;

// Organizujeny sposób wyświetlania parametrów
ArgPageTitle('Wymiary frontu'); // nazwa pierwszej zakładki
ArgShow(0);
ArgShow(1);
ArgShow(2);
ArgSeparator('');
ArgSeparator('Autor: Marek Mitoński PPH MITEX');
ArgNewPage('Ustaienia'); // dodanie nowej zakładki
ArgShow(6);
ArgShow(7);
ArgShow(4);
ArgShow(5);
ArgShow(8);
ArgShow(9);
ArgShow(10);
ArgShow(11);

ArgEdit; // i otwarcie okna edycji parametrów

szerokosc:=Arg(0);
wysokosc:=Arg(1);
margines:=Arg(2);

glebokosc:=Arg(6);
amplituda:=Arg(9);
Fxy:=Arg(4);
Fz:=Arg(5);
odstep:=Arg(8);
przesuniencie:=Arg(10);
gestosc:=Arg(11);
// Rysowanie =================================================================

amplituda:=amplituda/2;
glebokosc:=glebokosc/2;
L_wysokosc:=wysokosc div (przesuniencie/2);

SetM(3); Write; //START

SetG(0); SetZ(10); SetY(10); Write;
SetG(1); SetF(fz); Write;
SetX(1); SetY(1); Write;

for L:=0 to L_wysokosc+1 do begin

Y:=Y+przesuniencie;

for i:=1 to szerokosc do begin

osXsin:= amplituda* (sin (liczniksin)); // funkcja SIN
SetG(1); SetX(i); SetZ(osxsin+glebokosc); SetF(Fxy); Write; //Rysowanie
i :=i+1;
Liczniksin:=Liczniksin+gestosc; //gestosc

end;

L:=L+1;
Liczniksin:=przesuniencie*L;
SetG(0); SetZ(10); Write;
SetG(0); SetX(0); SetF(fz); SetY(Y);write;
SetG(1); SetZ(1); Write;

end;

SetG(0); SetZ(10)
SetM(5); SetM(30); write; // KONIEC

end.