Strona 1 z 1

[PikoCNC] Skrypt do wykonywania odwiertów

: 26 sty 2012, 11:41
autor: mitek
Witam

Chce zrobić sobie program do wiercenia i mam kilka problemów

- pierwszy problem to taki że nie mogę użyć funkcji [SetArg] z cyfrą większą niż 49 potem zwyczajnie np się nie wyświetla parametr ... czy można to jakoś obejść bo sam program będzie miał sporo więcej parametrów samych współrzędnych mam 15 wiec razy 3 daje już 45 a dodatkowo chce dodać możliwość uruchomienia odpowiedniego otworu i tak dalej...
- następnym problemem jest to że używając G81 jak dam w kilku otworach tą samą głębokość to zostaje wywiercony tylko pierwszy. podobnie jest jak zastosuje R...

program meblowy;

//==============================================================================
// program do frezowania ramek na frontach meblowych
//==============================================================================

var
mode,Fxy,Fz:cardinal;
szerokosc,dlugosc,
x1,y1,z1,
x2,y2,z2,
x3,y3,z3,
x4,y4,z4,
x5,y5,z5,
x6,y6,z6,
x7,y7,z7,
x8,y8,z8,
x9,y9,z9,
x10,y10,z10,
x11,y11,z11,
x12,y12,z12,
x13,y13,z13,
x14,y14,z14,
x15,y15,z15:extended;
M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15 :boolean;


begin
// {$I panel_funkcje.pas} // dołączenie pliku z funkcjami
szerokosc:=480;
dlugosc:=720;
fxy:=2000;
Fz:=600;
x1:=32; y1:=54; z1:=-9; M1:=TRUE;
x2:=64; y2:=54; z2:=-9; M2:=TRUE;
x3:=96; y3:=80; z3:=-9; M3:=TRUE;
x4:=128; y4:=80; z4:=-9; M4:=TRUE;
x5:=10; y5:=10; z5:=-6; M5:=False;
x6:=10; y6:=10; z6:=-6; M6:=False;
x7:=10; y7:=10; z7:=-6; M7:=False;
x8:=10; y8:=10; z8:=-6; M8:=False;
x9:=10; y9:=10; z9:=-6; M9:=False;
x10:=10; y10:=10; z10:=-6; M10:=False;
x11:=10; y11:=10; z11:=-6 M11:=False;
x12:=10; y12:=10; z12:=-6; M12:=False;
x13:=10; y13:=10; z13:=-6; M13:=False;
x14:=10; y14:=10; z14:=-6; M14:=False;
x15:=10; y15:=10; z15:=-6; M15:=False;

if (RUN_CNT=0) then begin // wykonywane tylko przy pierwszym uruchomieniu
SetArgPic('wiercenia.bmp'); // obrazek objaśniający

SetArg(10,'= X [mm]',X1);
SetArg(11,'= Y [mm]',Y1);
SetArg(12,'= Z [mm]',Z1);
SetArg(13,'Wierć',M1);

SetArg(20,'= X [mm]',X2);
SetArg(21,'= Y [mm]',Y2);
SetArg(22,'= Z [mm]',Z2);
SetArg(23,'Wierć',M2);

SetArg(30,'= X [mm]',X3);
SetArg(31,'= Y [mm]',Y3);
SetArg(32,'= Z [mm]',Z3);
SetArg(33,'Wierć',M3);

SetArg(40,'= X [mm]',X4);
SetArg(41,'= Y [mm]',Y4);
SetArg(42,'= Z [mm]',Z4);
SetArg(43,'Wierć',M4);

SetArg(0,'Szerokosc',Szerokosc);
SetArg(1,'Długość',Dlugosc);
SetArg(2,'Szybkość Fxy (mm/min)',Fxy);
SetArg(3,'Szybkość Fz (mm/min)',Fz);

end;

// Organizujeny sposób wyświetlania parametrów
ArgPageTitle('wsp 1'); // nazwa pierwszej zakładki
ArgShow(13);
ArgShow(10);
ArgShow(11);
ArgShow(12);


ArgNewPage('wsp 2'); // nazwa pierwszej zakładki
ArgShow(23);
ArgShow(20);
ArgShow(21);
ArgShow(22);


ArgNewPage('wsp 3'); // nazwa pierwszej zakładki
ArgShow(33);
ArgShow(30);
ArgShow(31);
ArgShow(32);

ArgNewPage('wsp 4'); // nazwa pierwszej zakładki
ArgShow(43);
ArgShow(40);
ArgShow(41);
ArgShow(42);


ArgNewPage('Ustaienia'); // dodanie nowej zakładki
ArgShow(0);
ArgShow(1);
ArgShow(2);
ArgShow(3);
ArgSeparator('');
ArgSeparator('Autor: Marek Mitoński PPH MITEX');

ArgEdit; // i otwarcie okna edycji parametrów

x1:=Arg(10); y1:=Arg(11); z1:=Arg(12); M1:=Arg(13);
x2:=Arg(20); y2:=Arg(21); z2:=Arg(22); M2:=Arg(23);
x3:=Arg(30); y3:=Arg(31); z3:=Arg(32); M3:=Arg(33);
x4:=Arg(40); y4:=Arg(41); z4:=Arg(42); M4:=Arg(43);
x5:=Arg(105); y5:=Arg(205); z5:=Arg(305); M5:=Arg(405);
x6:=Arg(106); y6:=Arg(206); z6:=Arg(306); M6:=Arg(406);
x7:=Arg(107); y7:=Arg(207); z7:=Arg(307); M7:=Arg(407);
x8:=Arg(108); y8:=Arg(208); z8:=Arg(308); M8:=Arg(408);
x9:=Arg(109); y9:=Arg(209); z9:=Arg(309); M9:=Arg(409);
x10:=Arg(110); y10:=Arg(210); z10:=Arg(310); M10:=Arg(410);
x11:=Arg(111); y11:=Arg(211); z11:=Arg(311); M11:=Arg(411);
x12:=Arg(112); y12:=Arg(212); z12:=Arg(312); M12:=Arg(412);
x13:=Arg(113); y13:=Arg(213); z13:=Arg(313); M13:=Arg(413);
x14:=Arg(114); y14:=Arg(214); z14:=Arg(314); M14:=Arg(414);
x15:=Arg(115); y15:=Arg(215); z15:=Arg(315); M15:=Arg(415);

szerokosc:=Arg(0);
dlugosc:=Arg(1);
Fxy:=Arg(2);
Fz:=Arg(3);

// Rysowanie =================================================================

SetM(3);write; //START
SetG(0) SetZ (10); write;

//SetX(x1); SetY(y1) SetZ(z1) SetR (1) SetF(Fz); write;

if (Arg(13)=TRUE) then begin; //Wsp1
SetG(98); write;
SetG(81); write;
SetX(x1); SetY(y1); SetZ(z1); SetF(Fz); write;
SetG(80); write;
end;

if (Arg(23)=TRUE) then begin; //Wsp2
SetG(98); write;
SetG(81); write;
SetX(x2); SetY(y2); SetZ(z2); SetF(Fz); write;
SetG(80); write;
end;

if (Arg(33)=TRUE) then begin; //wsp3
SetG(98); write;
SetG(81); write;
SetX(x3); SetY(y3); SetZ(z3); SetF(Fz); write;
SetG(80); write;
end;

if (Arg(43)=TRUE) then begin //wsp4
SetG(98); write;
SetG(81); write;
SetX(x4); SetY(y4); SetZ(z4); SetF(Fz); write;
SetG(80); write;
end;



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

end.

: 26 sty 2012, 13:27
autor: cosimo
Widzę Mitek, że bawisz się dobrze ;-) Faktycznie jest ograniczenie do 50 argumentów. Nie sądziłem, że ktoś będzie więcej potrzebował ;-) Ale można zmienić – 200 starczy??

Co do G81 nie zauważyłem takich anomalii. W ogóle G81 jest raczej do hurtowego wiercenia takich samych otworów. Robienie cyklem jednej dziurki to... mnie by się nie chciało. Można też ten skrypt bardziej z automatyzować. Jeśli docelowo to ma być więcej otworów to możesz zrobić tak , że np. co 5-ty argument zawiera X co 5+1 zawiera Y a co 5+2 zawiera Z a co 5+3 decyzję czy wiercić. A samo wiercenie zrobić w jednej pętli bez kilometrów pisania.

: 26 sty 2012, 22:07
autor: mitek
Niestety na tablicach jeszcze nie umie w tym programie :)
Docelowo program chciałbym by zawierał grupy wierceń w standardzie 32mm stosowanym w meblarstwie.

Czy jest możliwość z skryptu zapisywania np kompletów takich wierceń?