Cykle wiercenia na osi obrotowej

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 16223
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

Cykle wiercenia na osi obrotowej

#1

Post napisał: kamar » 06 cze 2014, 21:02

Witam.
Przed chwilą spotkała mnie przykra niespodzianka ze stony linuxCNC :)
Przygotowałem sobie ładny gcodzik na wiercenie multum otworków na osi obrotowej, puszczam na symulatorze a tu komunikat - cannot put an a in canned cycle
Symulator mam zle ustawiony czy faktycznie nie obsluguje ?



Tagi:


hecza
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 403
Rejestracja: 06 mar 2012, 13:25
Lokalizacja: Częstochowa

#2

Post napisał: hecza » 06 cze 2014, 21:38

Ooo
Wychodzi na to, że A B C nie obsługuje

Pozdrawiam


Autor tematu
kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 16223
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#3

Post napisał: kamar » 06 cze 2014, 21:41

hecza pisze: Wychodzi na to, że A B C nie obsługuje

Pozdrawiam
Też przejzałem teraz :) Szkoda, ale jakoś sie poradzi.


hecza
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 403
Rejestracja: 06 mar 2012, 13:25
Lokalizacja: Częstochowa

#4

Post napisał: hecza » 06 cze 2014, 21:57

To tylko taki przesąd, że oś obrotowa musi być np. A - jak jest taka potrzeba to może nazywać się np. X i pewnie pójdzie.

Pozdrawiam

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#5

Post napisał: MlKl » 06 cze 2014, 22:35

Ja tam nawet w XYZ nie używam cykli, tylko koduję w pętelkach.

Kod: Zaznacz cały

( ------------------------------ )
(           Wiercenie            )
( ------------------------------ )
( Miki                          )
( Time-stamp: <09-09-2013 17:31> )
( ------------------------------ )

(info: Wiercenie )
; Author: Z. Maciej "Miki" Bajkowski
; time stamp: 03.02.2013 21:37
; logiczny operator "lub" (OR)
; alternatywa wykluczająca (XOR) prawdziwe, gdy nieparzysta liczba argumentów jest prawdziwa
; logiczny operator "i" (AND)
; równe (EQ)
; nierówne (NE)
; większe od (GT)
; większe lub równe (GE)
; mniejsze (LT)
; mniejsze lub równe (LE)
;
; ATAN[Y]/[X] Four quadrant inverse tangent
; ABS[arg] wartość absolutna
; ACOS[arg] Inverse cosine
; ASIN[arg] Inverse sine
; COS[arg] cosinus
; EXP[arg] e raised to the given power
; FIX[arg] zaokrąglenie w dół
; FUP[arg] zaokrąglenie w górę
; ROUND[arg] zaokrąglenie
; LN[arg] logarytm
; SIN[arg] sinus
; SQRT[arg] Pierwiastek kwadratowy
; TAN[arg] Tangens
; EXISTS[arg] szuka zmiennej 
o<wiercenie> sub

#<x_pocz> = #1 (=0 początek X)
#<y_pocz> = #2 (=0 początek Y)
#<z_pocz> = #3 (=0 początek Z)
#<glebokosc> = #4 (=10  glebokosc)
#<skok> = #5 (=2 skok)
#<ilosc_rzedow> = #6 (=1 ilosc rzedow)
#<ilosc_otworow> = #7 (=1 ilosc otworow)
#<szybkosc_posuwu> = #8 (=50 Posuw)
#<odstep_x> = #9 (=10 odstep X)
#<odstep_y> =#10 (=10 odstep Y)
#<odjazd_z> =#11 (=4 odjazd Z)


g8
m3 s1






#<ilosc_otworow_1>=#<ilosc_otworow>
#<ilosc_rzedow_1>=#<ilosc_rzedow>
o200 while [#<ilosc_rzedow_1> gt 0]

o110 while [#<ilosc_otworow_1> gt 0] 

#<akt_glebokosc>=0

g0 z[#<z_pocz>+#<odjazd_z>]

g0 x[[#<x_pocz>]+[#<odstep_x>*#<ilosc_otworow_1>]-#<odstep_x>+0.1] y[[#<y_pocz>]+[#<odstep_y>*#<ilosc_rzedow_1>]-#<odstep_y>]
x[[#<x_pocz>]+[#<odstep_x>*#<ilosc_otworow_1>]-#<odstep_x>]
o100 while [#<akt_glebokosc> lt #<glebokosc>]


o5 if [[#<glebokosc>-#<akt_glebokosc>]gt #<skok>]
#<akt_glebokosc>=[#<akt_glebokosc>+#<skok>]
o5 else
#<akt_glebokosc> = #<glebokosc>
o5 endif

   g0 z[#<z_pocz>-#<akt_glebokosc>+#<skok>+0.1]
   g1 z[#<z_pocz>-[#<akt_glebokosc>]] f#<szybkosc_posuwu>
   g0 z[#<z_pocz>+#<odjazd_z>]




o100 endwhile

  g0 z[#<z_pocz>+#<odjazd_z>]
   

#<ilosc_otworow_1>=[#<ilosc_otworow_1>-1]

o1 if [#<ilosc_otworow_1> eq 0]
#<ilosc_rzedow_1>=[#<ilosc_rzedow_1>-1]

o1 endif


o2 if [#<ilosc_rzedow_1> eq 0]
#<ilosc_otworow>=0
o2 endif
o110 endwhile
#<ilosc_otworow_1>=#<ilosc_otworow>
o200 endwhile
o<wiercenie> endsub

Obrazek

Obrazek


Autor tematu
kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 16223
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#6

Post napisał: kamar » 06 cze 2014, 22:54

Takie tez ? Z różnymi odstępami.

Obrazek

Nawet mnie to zajęło 20 minut :)

Kod: Zaznacz cały

M3 s1 
g0 x2 y0 z3 a0


#1=1.11
o100 while [#1 lt 27.5]
#1=[#1+1.39]
g0 a#1
z0.5
g1 z-2 f50
g0 z3
o100 endwhile

#1=30.7
o200 while [#1 lt 50.2]
#1=[#1+1.5]
g0 a#1
z0.5
g1 z-2 f50
g0 z3
o200 endwhile

g0 a0 x-2
#1=1.59
o300 while [#1 lt 27]
#1=[#1+1.41]
g0 a#1
z0.5
g1 z-2 f50
g0 z3
o300 endwhile

#1=31.5
o400 while [#1 lt 49.5]
#1=[#1+1.5]
g0 a#1
z0.5
g1 z-2 f50
g0 z3
o400 endwhile

m30


hecza
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 403
Rejestracja: 06 mar 2012, 13:25
Lokalizacja: Częstochowa

#7

Post napisał: hecza » 06 cze 2014, 22:57

MIKI - ładnie - tylko brakuje optymalizacji pustych przejazdów - jak trafi na duży ploter i powrót do następnego rzędu będzie miał np. 2000 mm, to będzie trochę jazdy.

Pozdrawiam

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#8

Post napisał: MlKl » 06 cze 2014, 23:10

Mój "ploter" ma pole 200x350 :)

A procedurka jest odpowiednikiem cyklu na wiercenie - wystarczy ją wywołać, poprzez call o<wiercenie> gdziekolwiek trzeba coś wiercić. Oczywiście z parametrami ilość rzędów i otworów równymi 1, chyba, że trzeba powtarzać regularne grupy otworów. Jej clou nie jest wiercenie dużej ilości otworów, tylko wiercenie z wycofywaniem wiertła co zadany skok i odwiórowanie otworu.

Parę dni temu robiłem dziesięć otworów w rzędzie co 4,2 mm fi 1 mm na głębokość ok 14 mm w stalowym płaskowniku, i to pod skosem do jego płaszczyzny. Takie dziubanie z posuwem 2 mm/min i skokiem 0,2 mm. Próba wiercenia "na raz" nie udałaby się nawet na jednym otworze, a tu poszło dziesięć jednym wiertłem. Fakt, że dobrym.


Autor tematu
kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 16223
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#9

Post napisał: kamar » 07 cze 2014, 07:16

I gcodzik w akcji.

[youtube][/youtube]

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”