Gitara - raz jeszcze

Dyskusje dotyczące toczenia, remontów, modernizacji, narzędzi. Tokarki konwencjonalne.
Awatar użytkownika

Autor tematu
Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

Gitara - raz jeszcze

#1

Post napisał: Yogi_ » 01 sie 2011, 01:39

Witam serdeczne :-)
Tokarkę mam chęć mieć, a że nie mam to na razie intensywnie czytam forum i wyciągam wnioski ;-P
I tak mi się nasunęło - trafiając informację o programie "Gitara" i czytając wątek: https://www.cnc.info.pl/topics56/proble ... 658,10.htm - że nie święci garnki lepią i może uda mi się coś napisać.
Uprzedzam - długie będzie - pewnie zamotane :-(

Jako, że używam linuxa a większość jak widać Windows to pisanie programu sensu stricte odpadło - nie jestem aż tak dobry, żeby tworzyć przenośny kod - w zasadzie w ogóle nie jestem dobry... Ale ad rem...
Postanowiłem wykorzystać darmowy klon mathcada - octave, ponieważ potrafi dość szybko prowadzić obliczenia na macierzach, a przecież rozpiska kół zmianowych w kolumnach abcd macierzą jest.
Zainspirowała mnie odpowiedź kol BYDGOST z tamtego wątku:
BYDGOST pisze: wieslaw5555 napisał/a:
Zamieszczam obiecane zdjęcie tabeli gwintów

Wygląda na to, że masz śrubę calową.
tu wierzę na słowo i zgodnie z wyliczeniami z załączonego pliku (mowa o skoku 4 zwoje/cal):

Kod: Zaznacz cały

octave:53> 25.4/4
ans =  6.3500
a także:
BYDGOST pisze:Teraz jeszcze jedna ważna uwaga: z tabliczki wynika, że największe koła na poz. A i B to 80 i 32 a na poz. C i D to 56 i 127. Sumy zębów odpowiednio: A+B = 112 zaś C+D=183. Jeśli teraz uwzględnia się inną kombinację kół to ich sumy powinny być mniejsze lub równe od wyżej podanych chyba, że na gitarze jest jeszcze troszkę zapasu na włożenie kół większych. Musisz to sprawdzić. W przykładzie wyliczyłem koła na poz. C i D = 80 i 127 a to już przekracza sumę 183. Oznacza to, że nie da się ich założyć. Czyli wraz potrzebne jest koło 20 zębów.
Wyszły mi założenia:
1. podana ilość kół zmianowych - w sensie wypisania ilości zębów w każdym w jakimś pliku. Np. w przypadku tokarki z postu wyżej plik tha2.txt o zawartości:

Kod: Zaznacz cały

24 28 32 36 40 44 48 56 60 64 80 84 96 127
2.maksymalna liczba zębów w grupach AB i CD
-----------

załączone pliki:
generuj.m
pick.m
k_zm.m

W pliku generuj.m (uważam, że do własnej tokarki przygotowuje i uruchamia się go raz i wystarczy)

Kod: Zaznacz cały

load tha2.txt

gitara = pick(tha2,4,'o'); 

  for i=1:m
      gitara(i,5) = (gitara(i,1)/gitara(i,2))*(gitara(i,3)/gitara(i,4)); 
  end

save gitara.txt gitara
należy zmienić wyraz tha2 (tu dygresja - nie wiem czemu octave nie przyjmuje nazw macierzy zaczynających się od liczb, stąd przestawienie w nazwie) np na ld550 (załączony aczkolwiek zły przykład)lub nazwę swojego pliku.
Plik k_zm.m, w którym zmienia się
Sp - skok śruby pociągowej w mm- dla podanego wyżej przykładu 6.35 - WAŻNE - jako przecinka należy używać kropki.

Kod: Zaznacz cały

Sp = 6.35; 
ABmax = 112 %maksymalna ilość zębów pary AB
CDmax = 183 %maksymalna ilość zębów pary CD

%ABmax = 500 %bez liczenia zębów
%CDmax = 500 %bez liczenia zębów
ABmax - maksymalna ilość zębów kół AB
CDmax - maksymalna ilość zębów kół CD

i efekt:

Kod: Zaznacz cały

octave:50> k_zm
ABmax =  112
CDmax =  183
Wyliczenia robione dla Sp = 6.35
Podaj skok gwintu nacinanego: 1.5
Dokładność = 0
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d 
1 -  24 32 40 127 
2 -  36 48 40 127 
3 -  40 32 24 127 
4 -  40 48 36 127 
octave:51> 
Czyli można - mieszcząc się w założonych ilościach zębów (nie ma testu na minimum - co należałoby sprawdzić?).

Co robią wpisy ABmax i CDmax = 500 poprzedzone procentami?
W przypadku octave znak "%" jest znakiem komentarza i to co po nim nie bierze udziału w przetwarzaniu skryptu.
Czyli w przypadku jak wyżej dla gwintu 2mm otrzymujemy:

Kod: Zaznacz cały

octave:51> k_zm
ABmax =  112
CDmax =  183
Wyliczenia robione dla Sp = 6.35
Podaj skok gwintu nacinanego: 2
Dokładność = 5.55112e-17
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d
octave:52> 
zmieniamy "procenty":

Kod: Zaznacz cały

Sp = 6.35; 
%ABmax = 112 %maksymalna ilość zębów pary AB
%CDmax = 183 %maksymalna ilość zębów pary CD

ABmax = 500 %bez liczenia zębów
CDmax = 500 %bez liczenia zębów
(tzn z liczeniem, ale raczej sumy równej 500 zębów nie będzie a wizualne skomplikowanie pliku mniejsze.)
i efekt (na zasadzie może się zmieści):

Kod: Zaznacz cały

octave:52> k_zm
ABmax =  500
CDmax =  500
Wyliczenia robione dla Sp = 6.35
Podaj skok gwintu nacinanego: 2
Dokładność = 5.55112e-17
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d
1 -  24 36 60 127
2 -  24 48 80 127
3 -  24 127 60 36
4 -  24 127 80 48
5 -  28 56 80 127
6 -  28 127 80 56
7 -  32 48 60 127
8 -  32 64 80 127
9 -  32 127 60 48
10 -  32 127 80 64
octave:53>
i jeszcze - dokładamy brakujące koło 20 zębów - oto efekt:

Kod: Zaznacz cały

octave:56> k_zm
ABmax =  112
CDmax =  183
Wyliczenia robione dla Sp = 6.35
Podaj skok gwintu nacinanego: 2
Dokładność = 5.55112e-17
Liczba wierszy tabeli gitara: 32760
Nr-  a  b  c  d 
1 -  20 24 48 127 
2 -  20 28 56 127 
3 -  48 24 20 127 
4 -  56 28 20 127 
5 -  60 36 24 127 
6 -  60 48 32 127 
7 -  64 32 20 127 
octave:57> 

Plik pick.m służy do wypisania wszystkich kombinacji kół zmianowych.
plik silnia.m służy do obliczenia silni i nie jest potrzebny do wyliczeń - po prostu - znalazłem, zapisałem - może się przyda.
pliki z rozszerzeniami txt zawierają koła zmianowe tokarek 2tha, ld550 (tu liczy niezgodnie z DTR - albo ja czegoś nie kumam z tabelki [DTR_TOKARKA.pdf]), tryby_all zawiera listę 44 kół zmianowych wg Poradnika Tokarza - celem sprawdzenia szybkości obliczeń - u mnie ok 6 minut.

Jeszcze na koniec:

Kod: Zaznacz cały

Liczba wierszy tabeli gitara: 32760
jest to ilość wszystkich możliwości zmiany kół, przykład dla 14, po dołożeniu koła 20z - 15 i pełnej gitary - 44 kół zmianowych:

Kod: Zaznacz cały

octave:61> silnia(14)/silnia(14-4) 
ans =  24024
octave:62> silnia(15)/silnia(15-4) 
ans =  32760
octave:63> silnia(44)/silnia(44-4) 
ans =  3258024
octave:64>
Uff. ciekawe czy ktoś dotrwał do końca?
P.S. octave stąd: http://sourceforge.net/projects/octave/ ... e/download
lub http://tnij.org/octave_win

Pozdrawiam
Krzysiek

[Dodano: 01.08.2011 20:20]
Zmieniłem pliki w archiwum teraz (chyba) jest OK

[Dodano: 03.08.2011 22:22]
Nowa zmiana w archiwum plik k_zm.m.
Załączniki
gitara.zip
pliki do octave
(3.29 KiB) Pobrany 286 razy
Ostatnio zmieniony 03 sie 2011, 22:27 przez Yogi_, łącznie zmieniany 2 razy.



Tagi:


ilove810T
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 4
Posty: 85
Rejestracja: 01 lip 2011, 12:39
Lokalizacja: Kołobrzeg

#2

Post napisał: ilove810T » 01 sie 2011, 13:04

a co z przelozeniami? Nie sa one zachowane

Awatar użytkownika

Autor tematu
Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#3

Post napisał: Yogi_ » 01 sie 2011, 14:42

ilove810T pisze:a co z przelozeniami? Nie sa one zachowane
W jakim sensie?


ilove810T
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 4
Posty: 85
Rejestracja: 01 lip 2011, 12:39
Lokalizacja: Kołobrzeg

#4

Post napisał: ilove810T » 01 sie 2011, 16:52

sorka zle spojrzalem (uzyles w przykladzie dwoch roznych skokow). Wszystko zie zgadza. Duzo czasu ci napisanie tego skryptu? Mozna tez dodac opcje zapytania podczas wywoloania skryptu czy zrobic obliczenia dla jednego podanego skoku czy odrazu dla wszystkich standarowych.

Awatar użytkownika

Autor tematu
Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#5

Post napisał: Yogi_ » 01 sie 2011, 19:22

W sumie niedużo :-) Jakbym znał Octave to pewnie nic. Najwięcej czasu zeszło na znalezienie pick.m - czyli czegoś co liczy wariacje bez powtórzeń. Niestety Octave jako polecenia nie ma czegoś takiego. Kombinacje jak najbardziej, ale niestety tu się nie nadawały.

Można dodać ale uważałem, że skrypt będzie raczej dla kogoś kto nie ma tabeli kół zmianowych, brakuje kół, ma kilka wiecej czy chce wytoczyć gwint, którego nie ma w tabeli. Zaczęło się właśnie od jakiegoś postu o OUS-ie i (innego) o gwincie 3/8 BSF do szpei wędkarskich. W zestawieniu:

Kod: Zaznacz cały

octave:4> k_zm
ABmax =  124
CDmax =  135
Wyliczenia robione dla Sp = 2
Podaj skok gwintu nacinanego: 1.27
Dokładność = 7.93651e-05
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d 
1 -  40 42 50 75 
2 -  40 75 50 42 
3 -  50 35 40 90 
4 -  50 42 40 75 
5 -  60 42 40 90 
octave:5>
Czy dokładność rzędu 80 mikro jest OK?
UWAGA
to co poniżej to poprawiony plik generuj.m, więc albo go skopiujcie, albo wstawcie wiersze 3 i 5 oraz zmieńcie wiersz 7. SORRY :cry:

Kod: Zaznacz cały

load ous.txt

gitara = [];%na wszelkie "W" czyści macierz "gitara" 
gitara = pick(ous,4,'o'); 
[wiersz,kolumna] = size(gitara); 

  for i=1:wiersz
      gitara(i,5) = (gitara(i,1)/gitara(i,2))*(gitara(i,3)/gitara(i,4)); 
  end

save gitara.txt gitara
%quit
Pozdrawiam
Krzysiek

Awatar użytkownika

BYDGOST
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4264
Rejestracja: 28 wrz 2007, 09:32
Lokalizacja: Bydgoszcz

#6

Post napisał: BYDGOST » 01 sie 2011, 19:31

Dla jednego kolegi z forum, który kupił tokarkę niewiadomego pochodzenia, zrobił rozpiskę i obliczanie kół w Excelu, ale nie uwzględniałem tam badania warunku sumy zębów. Najczęściej liczę na kartce dobierając ilości zębów na wyczucie a potem doprowadzam do postaci a/b*c/d i to jest w zasadzie wszystko. Na koniec wyliczam wartość błędu skoku.
I mam pytanie: w kodzie podajesz "dokładność" - czego ona dotyczy? Czy tak jak wyżej napisałem - skoku nacinanego gwintu?
Pomnik Ikara - Ku pamięci dawnego lotniska w Fordonie.

Awatar użytkownika

Autor tematu
Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#7

Post napisał: Yogi_ » 01 sie 2011, 20:12

BYDGOST pisze:Dla jednego kolegi z forum, który kupił tokarkę niewiadomego pochodzenia, zrobił rozpiskę i obliczanie kół w Excelu, ale nie uwzględniałem tam badania warunku sumy zębów. Najczęściej liczę na kartce dobierając ilości zębów na wyczucie a potem doprowadzam do postaci a/b*c/d i to jest w zasadzie wszystko. Na koniec wyliczam wartość błędu skoku.
Do tego służą wartości po "500" czyli w zasadzie nie uwzględnia.
BYDGOST pisze:I mam pytanie: w kodzie podajesz "dokładność" - czego ona dotyczy? Czy tak jak wyżej napisałem - skoku nacinanego gwintu?
Hm... jakby najprościej? Wychodzę ze wzoru:

(a/b)*(c/d) = Sn/Sp
a,b,c,d - wiadomo
Sp - skok śruby pociągowej
Sn - skok gwintu nacinanego
tak jak w Poradniku Tokarza, Z tym, że (a/b)*(c/d) wyliczam sobie w skrypcie generuj:

Kod: Zaznacz cały

 for i=1:wiersz
      gitara(i,5) = (gitara(i,1)/gitara(i,2))*(gitara(i,3)/gitara(i,4)); 
  end
i plik gitara wygląda tak:

Kod: Zaznacz cały

# Created by Octave 3.2.3, Mon Aug 01 19:05:30 2011 CEST <krzysiek@yogi> 
# name: gitara
# type: matrix
# rows: 24024
# columns: 5
 34 35 36 40 0.8742857142857143
 34 35 36 42 0.8326530612244898
 34 35 36 45 0.7771428571428571
 34 35 36 50 0.6994285714285714
 34 35 36 60 0.5828571428571429
 34 35 36 68 0.5142857142857142
itd...
natomiast Sn/Sp w k_zm:

Kod: Zaznacz cały

l=Sn/Sp; 
tmp = zeros(m,1); 
for i = 1:m
    tmp(i,1)=abs(gitara(i,5)-l); 
end
r =min(tmp); 
printf('Dokładność = %g\n',r) 
Do tmp trafia od razu różnica (a/b)*(c/d) - Sn/Sp nie ważne z której strony, abs() - wartość bezwzględna, z tego wybieramy najmniejszą liczbę i to jest właśnie dokładność wg mnie.
Następnie dodaję 1 nano do "r" i wyświetlam wszystkie, których (wg mnie) dokładność "rz" jest mniejsza od "r" po dodawaniu. Nie mam pojęcia czy dobrze wytłumaczyłem. Jeśli coś pop.... z określeniami czy sposobem liczenia dokładności to proszę o poprawianie - chodzi o dobre wyniki a nie o moje ego :-P

Pozdrawiam
Krzysiek

Dodano 20:11

Jeśli chodzi o max liczę zębów to najlepiej chyba organoleptycznie, wtykać jakie się zmieszczą i stąd brać ilości.
P.P.S
Nic nie stoi na przeszkodzie wstawiania kilku takich samych kół jeśli ktoś ma :-)


ilove810T
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 4
Posty: 85
Rejestracja: 01 lip 2011, 12:39
Lokalizacja: Kołobrzeg

#8

Post napisał: ilove810T » 01 sie 2011, 21:13

Yogi_ pisze: Do tmp trafia od razu różnica (a/b)*(c/d) - Sn/Sp nie ważne z której strony, abs() - wartość bezwzględna, z tego wybieramy najmniejszą liczbę i to jest właśnie dokładność wg mnie.

a czemu nie najwieksza? skoro nie wiadomo dla ktorej kombinacji kol jest podana ta dokladnosc. Nie lepiej podac dokladnosc dla kazdej kombinacji?

Awatar użytkownika

BYDGOST
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4264
Rejestracja: 28 wrz 2007, 09:32
Lokalizacja: Bydgoszcz

#9

Post napisał: BYDGOST » 01 sie 2011, 21:34

Myślę, że można w ten sposób liczyć dokładność bo i tak podstawiasz tam nominalną wartość skoku oraz wyliczoną, ale jest to dokładność przełożenia. Mi wygodniej jest liczyć nie błąd przełożenia, tylko błąd skoku jako różnicę skoku nominalnego i wyliczonego, bo od razu widzę ile setek mam za dużo, czy za mało i czy można to zaakceptować. Gdzieś na forum zamieściłem skan moich wyliczeń.
Pomnik Ikara - Ku pamięci dawnego lotniska w Fordonie.

Awatar użytkownika

Autor tematu
Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#10

Post napisał: Yogi_ » 02 sie 2011, 00:24

ilove810T pisze: a czemu nie najwieksza? skoro nie wiadomo dla ktorej kombinacji kol jest podana ta dokladnosc. Nie lepiej podac dokladnosc dla kazdej kombinacji?
To jest różnica między Sn/Sp wyliczona ze skoku śruby pociągowej i skoku gwintu nacinanego a Sn/Sp liczonego z kół gitary więc powinna być jak najmniejsza. Owszem minimum to jest minimum ale zauważ, że póżniej jest to sprawdzane z każdym wierszem macierzy i tylko pasujace są wyświetlane:

Kod: Zaznacz cały

l=Sn/Sp; 
tmp = zeros(m,1); 
for i = 1:m
    tmp(i,1)=abs(gitara(i,5)-l); 
end
r =min(tmp); 

Kod: Zaznacz cały

for i = 1:m
    rz =  abs(gitara(i,5)-l); 
    if (rz ==  r)
Te dwa kawałki kodu to załatwiają, zmienione po uwagach kolegi BYDGOST.

[ Dodano: 2011-08-02, 00:50 ]
BYDGOST pisze:Myślę, że można w ten sposób liczyć dokładność bo i tak podstawiasz tam nominalną wartość skoku oraz wyliczoną, ale jest to dokładność przełożenia. Mi wygodniej jest liczyć nie błąd przełożenia, tylko błąd skoku jako różnicę skoku nominalnego i wyliczonego, bo od razu widzę ile setek mam za dużo, czy za mało i czy można to zaakceptować. Gdzieś na forum zamieściłem skan moich wyliczeń.
Już wcześniej znalazłem to "gdzieś: i mam wyświetlone ;-)
Tak byłoby OK?
dla 2" - 4.5 skoku

Kod: Zaznacz cały

Wyliczenia robione dla Sp = 2
Podaj skok gwintu nacinanego: 5.644
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d   delta Sn
1 -  42 34 80 35 -0.00305882 
2 -  42 35 80 34 -0.00305882 
3 -  60 34 80 50 -0.00305882 
4 -  60 50 80 34 -0.00305882 
5 -  80 34 42 35 -0.00305882 
6 -  80 34 60 50 -0.00305882 
7 -  80 35 42 34 -0.00305882 
dla gwintu 0.4 mm

Kod: Zaznacz cały

octave:42> k_zm
ABmax =  124
CDmax =  135
Wyliczenia robione dla Sp = 2
Podaj skok gwintu nacinanego: 0.4
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d   delta Sn
1 -  34 68 36 90 0 
2 -  34 90 36 68 0 
3 -  36 68 34 90 0 
4 -  36 80 40 90 0 
5 -  40 68 34 100 0 
6 -  40 75 36 96 0 
7 -  40 80 36 90 0 
octave:43>
1/4"*20 (tak to się pisze?)

Kod: Zaznacz cały

octave:43> k_zm
ABmax =  124
CDmax =  135
Wyliczenia robione dla Sp = 2
Podaj skok gwintu nacinanego: 1.27
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d   delta Sn
1 -  40 42 50 75 0.00015873 
2 -  40 75 50 42 0.00015873 
3 -  50 35 40 90 0.00015873 
4 -  50 42 40 75 0.00015873 
5 -  60 42 40 90 0.00015873 
octave:44>
Wszystko dla OUS-1 lista kół zmianowych z DTR znalezionej na forum.

I dla rzeczonej a wyżej wymienionej 2-THA:

Kod: Zaznacz cały

octave:6> k_zm
ABmax =  112
CDmax =  183
Wyliczenia robione dla Sp = 6.35
Podaj skok gwintu nacinanego: 1.5
Liczba wierszy tabeli gitara: 24024
Nr-  a  b  c  d   delta Sn
1 -  24 32 40 127 0 
2 -  36 48 40 127 0 
3 -  40 32 24 127 0 
4 -  40 48 36 127 0 
5 -  40 64 48 127 0 
6 -  48 64 40 127 0 
7 -  60 48 24 127 0 
octave:7> 
Pozdrawiam
Krzysiek

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Toczenie / Tokarki Konwencjonalne”