Jak wyciąć taki kształt. To chyba ewolwenta

Dyskusje dotyczące programowania G-Code
Awatar użytkownika

pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4654
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

#11

Post napisał: pitsa » 05 paź 2014, 09:47

PiRo_man pisze:Minus jest taki, że jeżeli chcesz stworzyć dokładną krzywą ewolwentową, to nie stworzysz jej za pomocą łuków
Ale jaki to problem zmontować tą ewolwentę z łuków?
Jak daje się zrobić ewolwentę to może ona służyć jako wzorcowa linia pomocnicza.
Można użyć nawet więcej łuków niż te zaznaczone na rysunku.
Z rysunku nie wiadomo przecież jakiej długości mają być kolejne łuki.

Obrazek


zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

Tagi:

Awatar użytkownika

Autor tematu
Segitarius
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 6
Posty: 390
Rejestracja: 15 lut 2011, 19:07
Lokalizacja: Zielona Góra

#12

Post napisał: Segitarius » 05 paź 2014, 09:56

No a to by mi nawet pomogło gdyby te łuki miały narzucone długości. Cały problem w tym jak je połączyć tak, żeby się tak ładnie zgrywały. Jak próbuję to gołym okiem widać gdzie było łączenie. A jak już coś mi wyjdzie to nie grają wymiary 55 i 77 mm. Jest jakiś patent na to, żeby te łuki tak ładnie zgrać. Te punkty muszą być ściśle określone chyba...


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 4
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#13

Post napisał: PiRo_man » 05 paź 2014, 13:00

Segitarius nawet w przypadku, można powiedzieć, nałożenia się na siebie dwóch okręgów o różnych średnicach mają tylko jeden punkt styczny. Przykład poniżej:
Obrazek
Więc punkty przechodzenia z jednego promienia do drugiego będą punktami styczności (inaczej - koniec pierwszego z początkiem drugiego).
Tam gdzie jest napisane "Przecięcie" znajduje się punkt (jeden jedyny!) w którym oba okręgi mają wspólny punkt. W ten właśnie sposób przechodzi się stycznie (płynnie) z mniejszego promienia do większego.

pitsa oczywiście żaden problem zbudować krzywą ewolwentową z łuków. Moim zdaniem jest to nawet wskazane. Tak jak pisałem traci się wtedy na dokładności krzywej, ale ta utrata nie jest na tyle duża żeby rezygnować z takiego rozwiązania. To wygląda tak jak z kompresją bitmapy do jpg. W skompresowanym obrazie różnicy gołym okiem nie zauważymy, a rozmiar pliku jest znacznie mniejszy.

Poniżej masz przykład zastąpienia ewolwenty zbudowanej z krzywej Beziera (po prawej) na łuki (po lewej):
Obrazek
Widać że łuków jest więcej niż punktów z krzywej Beziera, powodem jest pociągnięcie ewolwenty od jej środka, co przy tolerancji do 0.01 mm łuki stają się bardzo krótkie, aby w jak najlepszym stopniu odwzorować oryginalną krzywą. Jak pewnie zauważyłeś przy większych promieniach już tego problemu nie ma, dlatego właśnie twierdzę, że jest to wskazane, aby taką krzywą przybliżyć łukami.

inż. Mateusz

Awatar użytkownika

pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4654
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

#14

Post napisał: pitsa » 05 paź 2014, 15:03

PiRo_man pisze:dlatego właśnie twierdzę, że jest to wskazane
Możesz sobie twierdzić i w czymś tam rysować tylko wróćmy do tematu jak to elegancko matematycznie "zaprogramować w iso. Programuję w mazatrolu.".
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 4
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#15

Post napisał: PiRo_man » 05 paź 2014, 19:32

pitsa coś Cię boli? Rozumiem po Twojej wypowiedzi, że mam podać gotowy kod. Wykonać usługę za darmo? Żeby ktoś na tym zarobił? :D Żartujesz... I tak już dużo podpowiedziałem.

Oczywiście że będę sobie rysował, jak również twierdził. Twoje marne docinki tego nie zmienią.

Tak na marginesie częścią tematu było również podejście autora do problemu, który chciał utworzyć ewolwentę, zamiast oprzeć się na bardziej optymalnych łukach. Tego właśnie dotyczyły moje posty, aby w pełni wyczerpać temat, oraz aby nie pozostało nic niezrozumiałego.

Poza tym podałem gotowe wzory wraz z dowodami twierdzeń. Teraz wystarczy tylko poprawny zapis tego wzoru na maszynie. Skoro znasz G-kody, to po prostu wprowadź moje wypociny do programu i problem rozwiązany. Ja nie mam na to czasu aby komuś za darmo tworzyć programy. Inne projekty (płatne) czekają w kolejce więc wybacz, ale zrezygnuję z Twojego zlecenia. :)

inż. Mateusz

Awatar użytkownika

pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4654
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

#16

Post napisał: pitsa » 06 paź 2014, 13:42

Dla mnie forum daje możliwość rozwijania swoich umiejętności w różnych kierunkach. Tu ewolwenta jest ciekawą łamigłówką matematyczno-programową do pracy zespołowej. Nie wiem jak miałeś na studiach inżynierskich ale w moim technikum (jeszcze za komuny) wiele rzeczy robiliśmy zespołowo. Każdy w czymś był lepszy od pozostałych i wzajemnie uzupełnialiśmy się i uczyliśmy od siebie. Zabrałem głos - pokazując, że jest to ewolwenta i da się dobrać odpowiednie współczynniki do parametryzacji. Ty podałeś rozwiązanie z łączeniem łuków. Nie podałeś jednak w czym to rysujesz i czy z tego masz prostą drogę do cama. Czy to są rysunki parametryczne pozwalające wygodnie dopasować kształt do zadanego czy tylko teoretycznie wydaje ci się że poskładanie jest takie proste.

Ciekawym pytaniem jest to co autor rysunku miał na myśli. Rysował to w jakimś cadzie za pomocą dostępnej opcji tworzącej ewolwentę i zaznaczył sobie parę promieni zapominając o innych danych? Pewnych wymiarów w tym rysunku brakuje. Gdyby to miało być zrobione na łukach przydałyby się kąty odcinków łukowych wskazujące przejścia między promieniami i z nich można wyliczyć współrzędne kolejnych łuków. Są jednak tylko same promienie. Brak jednoznacznych danych skłania do przemyślenia metody tworzenia tej krzywej.

Autor wątku może narysować to w swoim programie, i wykonać robotę zgodnie z pierwszą podpowiedzią. Wątek można jednak doprowadzić do końca. Im więcej wątków dopiętych od A do Z tym forum ciekawsze i bardziej przydatne. Czyż nie byłoby warto zająć się tym razem?
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ


cube000
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 199
Rejestracja: 18 gru 2010, 00:31
Lokalizacja: okolice wwa

#17

Post napisał: cube000 » 11 paź 2014, 23:08

Trochę późno, pewnie autor już znalazł rozwiązanie, ale że temat interesujący, chciałem sprawdzić jak sobie solid poradzi z taką krzywką. Stwierdziłem że nakreślenie kilku łuków + nadanie relacji styczności między nimi powinno szybko załatwić sprawę.

Nakreśliłem prostokątną obwiednię 140x77mm (chociaż nawiasy przy wymiarze 77mm może być tylko wymiarem podglądowym, zaokrąglonym). Ustawiłem dwa koła fi 10mm z prawej oraz fi25 z lewej. Lewe koło jest styczne do dwóch krawędzi obwiedni. Prawe koło jest styczne do obwiedni oraz do linii równoległej do podstawy odległej o 10mm.
Przyjąłem że aby krzywka była krzywką, łuki muszą być styczne. Podane są tylko 4 promienie łuków, więc przyjąłem że tylko 4 łuki się tam znajdują. Narysowałem je, nadając im promień oraz relację styczności z sąsiadami. Łuk R65 jest styczny do okręgu fi 25, łuk R90 jest styczny do okręgu fi10. Na rysunku z pierwszego posta, wygląda jakby któryś z łuków R78 Lub R81 był styczny do obwiedni. Nadając taką relację cały rysunek się rozjeżdżał, zamiast krótkich łuków powstawały odcinki 3/4 okręgu czy inne dziwy. Próbowałem przestawiać środki, długości łuków ale to nic nie dawało, zarówno dla stycznego R78 jak i stycznego R81. Dopiero jak zrobiłem styczny do górnej krawędzi obwiedni promień R65 rysunek się ułożył podobnie do oczekiwanego. Czy tak samo - nie wiem.
Obrazek
Małe okręgi na krawędzi krzywki zaznaczają krańce łuków.
Pozostaje odczytać współrzędne punktów środków i końców łuków z dużą dokładnością i napisać kod wykorzystując kod na ruch po łukach. Lub eksport do cama.

Podejrzewam że sama krzywka powstała w jakimś generatorze z programu cad, gdzie wystarczy wstawić parę parametrów, takich jak skok, kąt obrotu krzywki i odległość położenia spoczynkowego od osi obrotu. Wtedy program już sam kreśli przybliżony zarys krzywki. Chętnie bym zobaczył jak wygląda wykres przemieszczenia w funkcji kąta obrotu, jak bardzo jest zbliżony do liniowego. Być może solidworks umie coś takiego zrobić, ja nie a przynajmniej nie o 23 ;)

Awatar użytkownika

pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4654
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

#18

Post napisał: pitsa » 12 paź 2014, 09:54

Z tego rysunku który dopasował się za pomocą relacji wystarczy wyciągnąć kąty poszczególnych łuków. Resztę da się policzyć z tego:
cube000 pisze:łuki muszą być styczne
Ta styczność jest łatwa do zastosowania do obliczeniowego znajdowania współrzędnych kolejnych łuków - potrzebnych do użycia w kodzie. Rysunkowo wygląda to tak, że mamy kawałki z różnych tortów R12.5, R65, R78, R81, R90 i R5. Ciasteczka przykładamy punktami styku łuków i krawędziami. Tu poglądowy rysunek z czterema kawałkami tortu dla kątów 90°, 40°, 55°, 25°:

Obrazek

W pierwszym kawałku 1: R12.5 90° przedłużamy krawędź styku z następnym o 65-12.5 i rysujemy kawałek 2. W kawałku 3 wydłużamy krawędź o 78-65 itd..
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”