mi przydało się przy robieniu zasłon na grzejniki by zwiększyć ilość wierszy trzeba skopiować kilka linjivar x, y, z, k, r, ox, oy, oxx, oyy, i: integer;
begin
clear;
x:= 110;//polozenie pierwszego dolnegio x
y:= 100;//polozenie pierwszego dolnegio y
k:= 5;//ilosc kolumn
ox:= 120; //odleglosc miedzy okregami x
oy:= 100; //odleglosc miedzy okregami y
r:= 30; //promien
//
oxx:= x;
oyy:= y;
for i:=k downto 1 do begin
elipsa(oxx,y,r,r,0);
oxx:= ox+oxx;
end;
oxx:= x;
for i:=k downto 1 do begin
elipsa(oxx,y+oy,r,r,0);
oxx:= ox+oxx;
end;
oxx:= x;
for i:=k downto 1 do begin
elipsa(oxx,y+oy+oy,r,r,0);
oxx:= ox+oxx;
end;
oxx:= x;
for i:=k downto 1 do begin
elipsa(oxx,y+oy+oy+oy,r,r,0);
oxx:= ox+oxx;
end;
oxx:= x;
for i:=k downto 1 do begin
elipsa(oxx,y+oy+oy+oy+oy,r,r,0);
oxx:= ox+oxx;
end;
selectall;
refresh;
end.
moje makra - frezowanie wielu okręgów...
-
Autor tematu - Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 744
- Rejestracja: 09 cze 2009, 22:06
- Lokalizacja: k/Krakowa
- Kontakt:
moje makra - frezowanie wielu okręgów...
Tagi:
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 2173
- Rejestracja: 29 lip 2005, 15:07
- Lokalizacja: Warszawa
- Kontakt:
Moje gratulacje! Nadal podziwiam Cię kol. Mitek za inwencję. Bardzo fajnie sobie poradziłeś. Ponieważ nie jesteś programistą (co można poznać po kodzie )podaję Ci drugą, znacznie prostszą wersję powyższego kodu - wykonuje to samo: (!)
var x, y, z, k, r, ox, oy, oxx, oyy, i: integer;
begin
clear;
x:= 110; //polozenie pierwszego dolnego x
y:= 100; //polozenie pierwszego dolnego y
k:= 5; //ilosc kolumn
ox:= 120; //odleglosc miedzy okregami x
oy:= 100; //odleglosc miedzy okregami y
r:= 30; //promien
circle(x,y,r);
selectall;
arrayrectselection(ox,oy,k,k);
selectall;
refresh;
end.
var x, y, z, k, r, ox, oy, oxx, oyy, i: integer;
begin
clear;
x:= 110; //polozenie pierwszego dolnego x
y:= 100; //polozenie pierwszego dolnego y
k:= 5; //ilosc kolumn
ox:= 120; //odleglosc miedzy okregami x
oy:= 100; //odleglosc miedzy okregami y
r:= 30; //promien
circle(x,y,r);
selectall;
arrayrectselection(ox,oy,k,k);
selectall;
refresh;
end.
Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)
-
Autor tematu - Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 744
- Rejestracja: 09 cze 2009, 22:06
- Lokalizacja: k/Krakowa
- Kontakt:
arrayrectselection(ox,oy,k,k);
kurcze ta funkcja mi umknęła a szukałem czegoś takiego choć to chyba jeden z moich pierwszych programów później sobie rodziłem pętlami
programistom nie jestem wiec pewnie sporo robiłem w koło ale cel dla mnie się liczył a zmniejszanie kodu dla przyśpieszenia ... nie w takich małych skrypcikach
kurcze ta funkcja mi umknęła a szukałem czegoś takiego choć to chyba jeden z moich pierwszych programów później sobie rodziłem pętlami
programistom nie jestem wiec pewnie sporo robiłem w koło ale cel dla mnie się liczył a zmniejszanie kodu dla przyśpieszenia ... nie w takich małych skrypcikach
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 2173
- Rejestracja: 29 lip 2005, 15:07
- Lokalizacja: Warszawa
- Kontakt:
Ale jest bardzo fajnie. Widziałem w innych skryptach, że później zacząłeś sobie radzić też z podwójnymi pętlami (dla X i Y jednocześnie). Jest także funkcja:
arraypolarselection(dx, dx, kąt);
albo
matrycakolowa(...)
Umozliwia to np, "dziurkowanie" po okręgu, tworzenie różnych dziwnych kształtów, typu zęby kół itd.
Uwaga moja do programowania jest taka:
nie musisz w pętlach zawsze używać polecenia "downto", bo ono zmniejsza licznik. Możesz licznik zwiększać poleceniem "to", czyli:
for x:=1 to 100 do
begin
...
end;
A jeśli licznik ma być wartością nie stałą, bądź ułamkową możesz używać:
repeat
...
x := x + 0.5;
...
until x = 100.5;
arraypolarselection(dx, dx, kąt);
albo
matrycakolowa(...)
Umozliwia to np, "dziurkowanie" po okręgu, tworzenie różnych dziwnych kształtów, typu zęby kół itd.
Uwaga moja do programowania jest taka:
nie musisz w pętlach zawsze używać polecenia "downto", bo ono zmniejsza licznik. Możesz licznik zwiększać poleceniem "to", czyli:
for x:=1 to 100 do
begin
...
end;
A jeśli licznik ma być wartością nie stałą, bądź ułamkową możesz używać:
repeat
...
x := x + 0.5;
...
until x = 100.5;
Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 2173
- Rejestracja: 29 lip 2005, 15:07
- Lokalizacja: Warszawa
- Kontakt: