Avacam - własny CAD/CAM

Hobbystyczny projekt CAD/CAM dla tokarek.


Autor tematu
Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Avacam - własny CAD/CAM

#1

Post napisał: Avalyah » 17 kwie 2018, 19:21

Witam,

w parze ze sterowniczkiem musi iść program, który sprosta jego niekonwencjonalnym wymaganiom (przyjmuje pliki w postaci bezpośrednich komend dla silników krokowych, a nie gkodów). Projekt jest głównie edukacyjny (uczyłem się na nim programować) i jest napisany w języku C# korzystając z Winformów. Podobnie jak sterownik jest dostosowany do moich potrzeb, tzn. uzyskanie ciekawego efektu estetycznego bardziej, niż funkcjonalnej części w tolerancji do pojedynczych setek.

Założeniem było stworzenie aplikacji z minimalistycznym interfejsem, która pozwoli w szybki sposób tworzyć programy dla sterownika. Aplikacja w pełni 2D, na szczęście przy tokarce nie ma to znaczenia, a cały problem tworzenia brył przestrzennych odpada (wtedy bym się tego nie podejmował).

Obrazek

Funkcje programu
1. Rysowanie kształtu za pomocą linii i krzywych Beziera drugiego i trzeciego stopnia. Tym zestawem można osiągnąć prawie wszystko. Nie ma co prawda zwykłych promieni, ale to głównie dlatego, że nie są mi potrzebne - a tak czy inaczej byłyby aproksymowane za pomocą krzywych Beziera.
2. Automatyczne wymiarowanie. Każda figura posiada automatycznie generowany wymiar, który można zmieniać.
3. Tworzenie powtórzeń. Po zaznaczeniu figur można je skopiować wielokrotnie w określonym kierunku (coś jak rectangular pattern w fusion czy inventorze).
4. Określenie wymiarów materiału bazowego za pomocą długości oraz średnic wewnętrznej i zewnętrznej.
5. Wybór rodzaju obróbki - wewnętrzna lub zewnętrzna.
6. Generowanie ścieżek dla sterownika.
7. Funkcjonalność CTRL-Z/Y.
8. Szybkie menu kontekstowe na prawym przycisku z wyborem podstawowych narzędzi (linia, krzywa, powtórzenie i zaznacz).
9. Skalowanie i manipulacja przestrzenna modelem (2D).

(ehh, brzmi mało imponująco w porównaniu do czasu, jaki to zajęło, ale żeby to wszystko zrealizować pod maską musi się trochę niekoniecznie oczywistych rzeczy dziać.)

Film z działania programu


Na filmie pokazane jest w krótkiej formie większość opcji. Jakość filmu nie do końca oddaje działanie programu - mam wrażenie, że trochę topornie wygląda, w rzeczywistości wszystko śmiga w przysłowiowych 60FPSach.

Realizacja
Pomijając cały interfejs i silnik programu, napiszę tutaj nieco o sposobie, w jaki generowane są ścieżki. Otóż wykorzystałem do tego algorytmy graficzne służące do rysowania linii i krzywych Beziera, a konkretnie algorytmy Bresenhama. W ten sposób uzyskane zestawy punktów wyznaczają kroki dla silników krokowych. Uzyskany w ten sposób plik może być dosyć duży (kilkaset kB do kilku MB) w zależności od ilości kroków na obrót silnika itd, natomiast oddaje on bardzo wiernie narysowany kształt. Ścieżka jest poddawana drobnej optymalizacji, usuwane są elementy znajdujące się poza bazowym materiałem, a ruchy poza materiałem i nawroty wykonywane są z większą prędkością.

Wrażenia
Tak jak ze sterownika, tak i z tego programu jestem zadowolony (dopieszczałem je przez długi czas zanim zdecydowałem się je zaprezentować) - prościej chyba się nie da. Dla moich potrzeb, tj. toczenie uchwytów i innych dziwnych kształtów wszystko sprawuje się jak znalazł. Program jest bardzo "gładki" w działaniu, wszystko, co się tylko da jest zautomatyzowane, nawet udało się nadać temu trochę bardziej techniczny charakter - odrobinę wzorowałem się na rysunku technicznym - główny widok to pół-widok pół-przekrój, wymiary trochę nie tak, ale to najwygodniejsza z kilku implementacji, które próbowałem. Na pewno robienie tego programu nie było optymalnym rozwiązaniem (zwłaszcza biorąc pod uwagę darmowego Fusion360, o którym wtedy nie wiedziałem), natomiast miało sporą wartość edukacyjną dla takiego początkującego programistycznego amatora-hobbysty jak ja. No i było to wszystko bardzo satysfakcjonujące, bo to nieco poważniejszy program niż kalkulator czy liczenie silni :P. Program jest już w takim stanie, że nie wstydziłbym się pokazać kodu źródłowego :mrgreen: i chociaż chodzi mi po głowie jeszcze kilka ewentualnych opcji (i kilka zaległych bugfixów), to póki co wersję 1.0 uznaję za skończoną.

PS. Mam nadzieję, że dział odpowiedni - swojego poddziału jeszcze nie mam :P



Awatar użytkownika

Zienek
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 3730
Rejestracja: 13 gru 2008, 19:32
Lokalizacja: Szczecin
Kontakt:

Re: Avacam - własny CAD/CAM

#2

Post napisał: Zienek » 01 gru 2018, 14:57

Wraz z projektem hardware'owym to jest nie do pobicia.
Powiedz ile miesięcy :)

Kamar! Kamar! Zawołajcie Kamara! Tu się dzieje!


Autor tematu
Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: Avacam - własny CAD/CAM

#3

Post napisał: Avalyah » 01 gru 2018, 15:44

Dzięki :)
Zienek pisze:Powiedz ile miesięcy

Teraz już nie pamiętam, ale kilka ich było. Przy czym w sumie traktowałem to jako rozrywkę (zwłaszcza póki szło gładko :mrgreen:), więc nie było tak źle.

Od tego czasu ruszałem niewiele, ale kilka opcji generatora ścieżek uległo zmianie:
1. Dodałem rozróżnienie na ruch szybki i normalny z poziomu generowanej ścieżki (wcześniej sterownik sam się "domyślał" kiedy jest powrót i jechał wtedy ruchem szybkim). Przy okazji program uwzględnia teraz ruch wykonywany poza materiałem i automatycznie zamienia go na ruch szybki.
2. Rozpoznawanie przetoczonego materiału. Do tej pory po wykonaniu przejścia ścieżka była generowana zawsze poza kontur materiału, niezależenie od tego, co zostało już przetoczone. W przypadku np. przetaczania z fi50 na fi30 powodowało to, że generowane było dużo niepotrzebnych ruchów. Teraz program uwzględnia już to, co jest przetoczone.
Przed i po (prefabrykat ma tutaj fi20, różnicę widać w zielonych ścieżkach - w tym wypadku jest to powrót noża - które w wersji po znajdują się wewnątrz konturu i znacznie skracają ścieżkę zamiast za każdym razem wyjeżdżać poza).
ObrazekObrazek
3. Uproszczenie krzywych Beziera w obróbce zgrubnej. Jak się okazuje pocięcie krzywej Beziera na mniejsze elementy nie jest wcale takie proste i wymagałoby albo dość skomplikowanych operacji matematycznych, albo nieeleganckiego obejścia. W przypadku niektórych kształtów powodowało to, że ścieżki były prowadzone daleko poza kontur obrabianego detalu, a w przypadku obróbki wewnętrznej prowadziłoby wręcz do kolizji noża z detalem. Dlatego teraz jest opcja aproksymowania krzywych za pomocą linii (krok aproksymacji można zmieniać na mniejszy, lub większy) i nieruszane zostaje tylko ostatnie przejście zgrubne (i przejście wykańczające, jeżeli jest zaznaczone). Dzięki temu można je po aproksymacji ładnie przycinać.
Przed i po (prefabrykat wałek pełny fi50):
Obrazek
Obrazek
Przed i po (prefabrykat rura fi50x10, przed po prawej stronie mogłaby być kolizja noża z detalem, bo jest za bardzo "wycofany")
Obrazek
Obrazek


dance1
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 3094
Rejestracja: 11 mar 2007, 22:42
Lokalizacja: G-G

Re: Avacam - własny CAD/CAM

#4

Post napisał: dance1 » 01 gru 2018, 15:47

prosto i funkcjonalnie, tak jak powinno być, widzę ten program w zastosowaniach "architektura wnętrz", tralki, uchwyty itp, świetna sprawa.
Brawo.
I don't like principles, I prefer prejudices

Awatar użytkownika

Zienek
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 3730
Rejestracja: 13 gru 2008, 19:32
Lokalizacja: Szczecin
Kontakt:

Re: Avacam - własny CAD/CAM

#5

Post napisał: Zienek » 01 gru 2018, 16:26

Pociągnę wątek Dance'a. Napewno miałeś jakąś potrzebę, która skłoniła Cię do porzucenia korbek. Bardziej drewno? Bardziej stal? Bo program, sterownik - ładnie pięknie, ale tokarkę pewnie wszyscy by chętnie w akcji zobaczyli :)


Autor tematu
Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: Avacam - własny CAD/CAM

#6

Post napisał: Avalyah » 01 gru 2018, 19:20

Aluminium akurat, no ale materiał nie ma znaczenia, jak tokarka pozwoli. Postaram się w nadchodzącym tygodniu nakręcić film w takim razie, skoro się podoba :) jakiś kawałek złomu przetoczę.


Autor tematu
Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: Avacam - własny CAD/CAM

#7

Post napisał: Avalyah » 04 gru 2018, 17:54

Zienek pisze:tokarkę pewnie wszyscy by chętnie w akcji zobaczyli


Proszę bardzo :D :


Film poglądowy, ze względu na to, że ustawienie telefonu praktycznie odebrało mi dostęp do tokarki popełniłem błąd opisany w filmie. Starałem się wszystko skrócić jak najbardziej i pokazać zarówno program, sterownik w wersji półautomatycznej i na koniec zaprojektowany na początku kształt.


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 16237
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

Re: Avacam - własny CAD/CAM

#8

Post napisał: kamar » 05 gru 2018, 21:44

Zienek pisze:
01 gru 2018, 14:57
Kamar! Kamar! Zawołajcie Kamara! Tu się dzieje!
Co się drze ? :)
Sprytne ale mało dla mnie. Jak na razie tralkę zrobiłem jedną za to bolszą i w/g projektu klienta.
Ale to nie zmienia faktu , że kolega super zdolny.
A teraz łyżeczka dziegciu :) Nie jest dobrym pomysłem prowadzenie noża po ścieżce zaczynającej się w X0.
Zemści się to niedługo przy bardziej złożonej obróbce.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Ogólne dyskusje na temat oprogramowania CAD/CAM”