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.