MegaCAD i maszyny CNC - eksport g-code
TEST - Ten artykuł jest na razie tylko testem i nie ma gwarancji, że w przyszłości pozostanie częścią serwisu.
MegaCAD i maszyny CNC - eksport g-code
Dlaczego?
Wiele lat temu powstał u mnie moduł służący do eksportu rysunków z MegaCAD'a do kodu akceptowanego przez obrabiarki CNC (g-code). Od długiego czasu nie korzystamy z tych rozwiązań, ale biorąc pod uwagę, że komuś może się to jeszcze przydać, to go tu zamieszczamy...
Jednakowoż zastrzegamy, że mimo iż dołożyliśmy wszelkich starań aby to oprogramowanie było jak najlepsze, nie możemy gwarantować jego poprawnego działania, ani brać odpowiedzialności za ewentualne straty wywołane jego użyciem. Niniejsze oprogramowanie udostępniamy bez żadnej gwarancji; nawet bez domniemanej gwarancji handlowej lub przydatności do określonego celu.
Utworzony kod (g-code) musi być zawsze sprawdzony przez operatora maszyny, a przed jego wykonaniem musi być przeprowadzona symulacja jego działania. Użytek wyłącznie na własną odpowiedzialność. Również nie oferujemy i nie prowadzimy wsparcia technicznego przedstawionego tu oprogramowania. Jednocześnie zastrzegamy wszelkie prawa dotyczące praw autorskich i rozpowszechniania tego oprogramowania. Oprogramowanie jest bezpłatne i wolne w użytkowaniu. Jednak nie dopuszczamy możliwości rozpowszechniania tego oprogramowania we własnym zakresie przez użytkowników i/lub osoby postronne ze szczególnym uwzględnieniem rozpowszechniania jego wersji samodzielnie zmodyfikowanych przez użytkowników i/lub osoby postronne. W niniejszym tekście użyliśmy wielu zastrzeżonych nazw i znaków towarowych - uczyniliśmy to wyłącznie w celach informacyjnych. |
Co?
Moduł potrafi eksportować obiekty, czyli elementy rysunkowe, jako rozkazy dla obrabiarki CNC. Dokładnie to dla trójosiowej frezarki XYZ użytej w celu wycinania lub grawerowania płaskich kształtów (potrzebne jest pełne sterowanie osią Z).
Moduł jest typu CIP. Czyli jest to plugin napisany w języku C i skompilowany we własnym kompilatorze icpp dołączanym do MegaCAD'a. Moduł oryginalnie powstał dla wersji 4.5, ale na potrzeby niniejszego artykułu został także dostosowany do wersji "2012 2D".
Wspierane obiekty:
- Punkty (E_POINT);
- Linie (E_LINE);
- Okręgi (E_CIRCLE);
- Łuki - fragmenty okręgu (E_C_ARC);
- Polilinie - łącznie z łukami i fragmentami niewidocznymi (E_POLYLN).
Teksty/czcionki są o tyle wspierane, że przed wyeksportowaniem rysunku muszą być "obrysowane", co spowoduje powstanie obiektów typu polilinia o kształcie obrysowywanego napisu.
Niewspierane obiekty:
- Elipsy (E_ELLIPS);
- Łuki będące fragmentami elipsy (E_E_ARC).
Należy zwrócić uwagę, że moduł był testowany z wersją 4.5 MegaCAD'a. Dla wersji 2012 został dostosowany kod źródłowy modułu, skompilowany, ale nie testowany (kod generuje, ale nikt w to nie wnikał...).
Moduł ma też swoje ograniczenia. Odgórnie jest ograniczona ilość obiektów, które można wyeksportować za jednym razem. W wypadku wersji 4.5 jest to 5000 obiektów, a w wersji 2012 10000 obiektów.
Oryginalnie kod (g-code) tworzony przez moduł był wykonywany na maszynie sterowanej za pomocą oprogramowania LinuxCNC 2.0.x. Powinien pracować również na maszynach sterowanych przy pomocy innego oprogramowania i/lub sterowników. Kod nie zawiera odwołań do rejestrów sprzętowych maszyny, wyboru narzędzia itp. Jedynymi dodatkowymi parametrami przekazywanymi maszynie oprócz przesunięć wrzeciona jest prędkość posuwu podczas ruchu roboczego Fxx i włączenie trybu pozycjonowania absolutnego G90 (na początku programu).
Gdzie?
Moduł można pobrać tutaj:
- Wersja dla MegaCAD'a 4.5 (kompilowana w tej wersji, która była przez wiele lat dostępna w "nieustającej promocji" u Polskiego dystrybutora);
- Wersja dla MegaCAD'a 2D 2012 (kompilowana w wersji "2D 2012 demo" - dostępnej na stronie Polskiego dystrybutora - może nie działać z wersją komercyjną!).
Moduł po pobraniu należy przenieść/przekopiować do katalogu "CIP" instalacji MegaCAD'a, zależnie od wersji i miejsca instalacji (np.: c:\Megatech\MegaCAD_2D_2012\CIP\ czy też c:\MegaCAD\CIP\ ).
Jak?
Uruchamiamy MegaCAD'a. Tworzymy/ładujemy rysunek. Aby uruchomić moduł w wersji 4.5, wybieramy menu Funkcje i opcję Interpreter C. W wypadku wersji 2012 będzie to menu Konfiguracja i opcja .CIP.
Pojawi się okno wyboru modułu do uruchomienia. Wybieramy nazwę i klikamy OK.
Najpierw pokaże się winietka. Klikamy Next.
Następnie pojawi się okno wyboru nazwy pliku do wyeksportowania. Należy wybrać katalog i podać nazwę tworzonego pliku. Domyślne rozszerzenie to ngc. Jak już się z tym uporamy, klikamy OK.
Po tym pojawi się okno z podstawowymi parametrami tworzonego kodu.
Te parametry to:
- Safe Z - odległość wrzeciona od powierzchni przedmiotu (obrabianej/ciętej powierzchni) przy przesuwaniu nad nią wrzeciona na pozycję pracy. Ta odległość powinna wynosić co najmniej tyle, aby wrzeciono nie zawadzało o ew. wióry, które mogą zalegać na powierzchni obrabianego przedmiotu i jego wystające fragmenty. Odjazd wrzeciona na bezpieczną odległość i przejazd na nową pozycję pracy jest realizowany szybkim posuwem. Z uwagi na trajektorię wrzeciona ustalaną przez oprogramowanie sterujące pracą maszyny, powinno się sprawdzić na symulatorze, czy wycofywane i przesuwane narzędzie nie będzie zawadzać o krawędź przedmiotu i ew. odpowiednio tą odległość powiększyć. Doświadczenie z użytkowania LinuxCNC 2.0.x mnie uczy, że dla małych wymiarów rzędu 5-10mm ta odległość powinna być równa lub większa od głębokości roboczej (patrz niżej - Cut deep) - ale to będzie się zmieniać zależnie od użytego oprogramowania sterującego i konfiguracji maszyny.
- Cut deep (Z) - głębokość na jaką ma się zagłębić wrzeciono podczas pracy (wiercenia i/lub wycinania).
- Feed rate - prędkość posuwu podczas pracy.
- Comments - opcja/flaga dla developerów... "0" oznacza brak komentarzy, "1" pojawienie się komentarzy w kodzie (chodzi o identyfikację, m.in. które fragmenty tworzonego g-kodu były utworzone przez jakie funkcje w programie). Bezpiecznie jest pozostawić tą wartość równą "0".
- Internal round - tworzony kod zawsze ma dokładność trzech miejsc po przecinku. Ta opcja tego nie zmienia, ale umożliwia zmianę zaokrąglenia wyników obliczeń dokonywanych wewnątrz modułu. Bezpieczne jest pozostawienie sześciu miejsc po przecinku - chyba, że użytkownikowi coś się będzie rozjeżdżać, to wtedy można spróbować tą wartością tu pokręcić...
Trzeba pamiętać o tym, że wszystkie eksportowane współrzędne X i Y są wartościami globalnymi wg układu współrzędnych MegaCAD'a. Eksportowany rysunek powinien być odpowiednio ustawiony w programie, aby jego współrzędne pozostawały w zakresie pracy maszyny!
Eksportowane współrzędne Z są ustawiane w powyższym oknie dialogowym i nie podlegają w trakcie eksportu żadnym przeliczeniom - są tylko ciągami znaków. Przyjąłem domyślnie, że ruch wrzeciona w dół (w głąb materiału) jest współrzędną ujemną, a w górę dodatnią. Wartości związane ze współrzędną Z można w powyższym oknie dialogowym dowolnie zmieniać (także ich znak) w zależności od konfiguracji i możliwości maszyny. Wszystkie współrzędne są domyślnie podawane w milimetrach, a prędkość posuwu w milimetrach na minutę. |
Po ustawieniu parametrów klikamy OK.
Okna dialogowe znikają, a MegaCAD przestawia się w tryb wyboru obiektów. Tzn. możemy tu wybrać obiekty, które chcemy wyeksportować. Działają wszystkie opcje/możliwości wyboru łącznie z warstwami itp. Tryb wyboru obiektów kończymy klikając prawym przyciskiem myszy.
Moduł nie sprawdza, czy rzeczywiście wybrano jakiś obiekt lub obiekty do wyeksportowania. Zakończenie trybu wyboru obiektów bez wybrania jakiegokolwiek obiektu spowoduje utworzenie pliku zawierającego tylko rozpoczęcie i zakończenie programu. |
Jeżeli wszystko pójdzie zgodnie z planem, pojawi się okienko potwierdzające zakończenie działania modułu.
dr inż. Szymon Dowkontt