Właśnie. Zmienna typy TPoint jest tzw. recordem i składa się z dwóch zmiennych (extendend) „X” i „Y”. A zmienna typu TLine jest recordem składającym się z dwóch zmiennych typu TPoint „s” i „e”, Czyli początek (s) i koniec (e) wektorajak dokładnie działa SetPT umieszcza współrzędne dla X i Y

W takim razie taki wariant: (różnica jest w środkowej części)Tylko nie wiem dlaczego jak zmieniam R zmienia się cały rysunek a nie tylko zwiększa sam łuk...
Kod: Zaznacz cały
const
Fxy=800;
srednica_freza=5.0;
glebokosc=4;
R=15.0; // R narożnika
//==========================================
var v1,v2,v3,vp1,vp2,vp3:TLine; pc:TPoint;
begin
v1.s.x:=10; v1.s.y:=80; // wektor 1
v1.e.x:=10; v1.e.y:=30;
V2.s:=v1.e;
V2.e.x:=30; V2.e.y:=10; // wektor 2
V3.s:=V2.e; // wektor 3
V3.e.x:=80; V3.e.y:=V3.s.y;
vp1:=LinePar(v1,R); // liczymy wektory odsunięte
vp2:=LinePar(v2,R);
vp3:=LinePar(v3,R);
LineInt(vp1,vp2,pc); // punkt przecięcia vp1 vp2
vp1.e:=pc; vp2.s:=pc;
LineInt(vp2,vp3,pc); // punkt przecięcia vp2 vp3
vp2.e:=pc; vp3.s:=pc;
vp1:=LinePar(vp1,-R); // przesuwamy ponownie
vp2:=LinePar(vp2,-R);
vp3:=LinePar(vp3,-R);
//SetG(41); SetR(srednica_freza/2); write;
SetG(0); SetZ(10); write;
SetG(0); SetPT(Vp1.s); SetF(Fxy); write;
SetG(1); SetZ(-glebokosc); write;
SetG(1); SetPT(Vp1.e); write;
SetG(3); SetPT(Vp2.s); SetR(R); write;
SetG(1); SetPT(Vp2.e); write;
SetG(3); SetPT(Vp3.s); SetR(R); write;
SetG(1); SetPT(Vp3.e); write;
SetG(0); SetZ(10); write;
end.