wykorzystanie programu autocad do ......na aplikację umożliwiającą m.in. wygenerowanie ścieżek...
TRANSCRIPT
MECHANIK 7/2014 XVIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji
713
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Stanisław GRZYWIŃSKI Wojskowa Akademia Techniczna
WYKORZYSTANIE PROGRAMU AUTOCAD DO GENEROWANIA PUNKTÓW WĘZŁOWYCH POLILINII
Streszczenie: W referacie zaprezentowano możliwości wykorzystania programu AutoCAD do generowania punktów węzłowych polilinii. Przedstawiono możliwość wykorzystania języka programowania AutoLISP w procesie automatyzacji zadań grafiki.
USE OF AUTOCAD SOFTWARE TO GENERATE NODAL POINT OF
THE POLYLINE
Abstract: The paper presents the the possibility of using AutoCAD to generate the nodal points of the polyline. Possibility of using AutoLISP programming language in the process of automating tasks graphics was presented. Słowa kluczowe: AutoCAD, punkt węzłowy, AutoLISP, polilinia Keywords: AutoCAD, nodal point, AutoLISP, polyline
1. WPROWADZENIE Obecnie na rynku dostępnych jest wiele środowisk i aplikacji, które wspomagają wszelkie prace związane z rozwojem produktu, poczynając od projektu geometrii, poprzez cyfrową analizę i weryfikację, aż do jego wytworzenia. Etapy projektowania koncepcyjnego, konstrukcyjnego oraz produkcji dają możliwości nie tylko wirtualnego badania kompletnego produktu zanim zostanie on fizycznie wykonany, ale przede wszystkim możliwości uzyskania dokładnej dokumentacji, na podstawie której uzyskuje się znaczną powtarzalność i dokładność wykonania produktu końcowego. Wobec szybkiego postępu technologii oprogramowania oraz produkcji, praktycznie wszystkie kręgi produkcyjne pozostają stale pod działaniem nacisku zmierzającego do osiągnięcia coraz doskonalszych produktów w coraz krótszym czasie. Aby był możliwy wzrost wydajności obróbki przy jednoczesnym spełnieniu wymagań odnośnie do dokładności wymiarowo- -kształtowej, niezbędny jest rozwój obrabiarek pod względem konstrukcyjnym, ale także rozwój systemów sterowania ich pracą. Lista obrabiarek, które pozwalają realizować proces obróbki materiałów, jest bardzo długa, a same maszyny posiadają różny stopień złożoności i możliwości, który jest ściśle związany z ich kosztem. Obecnie dostrzega się wiele branż przemysłu, w których możliwość zastosowania taniego odpowiednika dla drogich urządzeń CNC (z ang. Computerized Numerical Control) stanowiłaby istotny atut i pozwoliłaby podnieść efektywność oraz potencjał dotychczasowych rozwiązań produkcji. Należy podkreślić, że w ogromnej większości działów przemysłu złożoność oraz duże możliwości obecnych urządzeń CNC (rys. 1a) są zbędne. Postępujący rozwój elementów wykonawczych,
MECHANIK 7/2014 XVIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji
714
mikroprocesorów oraz w efekcie robotów kartezjańskich umożliwił zastosowanie ich w mniej wymagających branżach przemysłu (rys. 1 b). Ponadto możliwości sterowania programowego w oparciu o samą ścieżkę posuwu narzędzia dają pole rozwoju dla nowego, nieskomplikowanego i taniego oprogramowania.
Rys. 1. Obrabiarki sterowane numerycznie: a) zaawansowana maszyna CNC, b) robot kartezjański przystosowany do nieskomplikowanych zastosowań
Możliwość zainstalowania powszechnie dostępnych narzędzi obróbki materiału na robotach kartezjańskich stwarza duże możliwość ich wykorzystania w szeroko pojętym przemyśle (rys. 2). Zalety precyzyjnej i przede wszystkim powtarzalnej pracy robotów kartezjańskich są z powodzeniem wykorzystywane np. w przemyśle stolarskim oraz kamieniarskim, gdzie bardzo często ręczna obróbka elementów nie daje wymaganych rezultatów – powtarzalności i szybkości pracy. Nie zmienia to jednak faktu, że w większości przypadków mamy do czynienia z bardzo drogim oprogramowaniem, które często skutecznie blokuje rozwój produkcyjny firmy.
Rys. 2. Zastosowanie zintegrowanego robota kartezjańskiego z ręczną frezarką w przemyśle stolarskim
W polskich realiach wydatek rzędu kilkudziesięciu, czy nawet kilku tysięcy euro za licencję na aplikację umożliwiającą m.in. wygenerowanie ścieżek posuwu dla narzędzia, może okazać się niełatwy do realizacji. Na przykład oprogramowanie NX CAM dostarcza obszerny i łatwy w użyciu zestaw narzędzi do tworzenia ścieżek NC oraz do przeprowadzania symulacji i ich weryfikacji. NX CAM zapewnia efektywną obróbkę dowolnych kształtów od otworów do profili lotniczych. Jego modułowa budowa zapewnia skalowalność i dostosowanie do konkretnych potrzeb klientów. Oprogramowanie to mimo niewątpliwych zalet, ze względu na cenę jest często rozwiązaniem nieosiągalnym dla wielu przedsiębiorców. Obecnie sterowanie numeryczne obrabiarek rozwija się bardzo intensywnie, a zastosowanie
MECHANIK 7/2014 XVIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji
715
jako układu sterującego minikomputera umożliwia znaczne zwiększenie zakresu i jakości sterowania, które często sprowadza się wyłącznie do wprowadzenia listy punktów, które stanowią ścieżki posuwu narzędzia. Tam, gdzie nie jest wymagana znacząca złożoność operacji obróbki materiału, wykorzystanie możliwości, jakie dają stosunkowo niedrogie roboty kartezjańskie oraz nowoczesne oprogramowanie CAM może przyczynić się do projektowania coraz bardziej skomplikowanych kształtów. Ze względu na dostępność oraz cenę oprogramowania CAD zdecydowano się na wykonanie aplikacji, która umożliwiłaby generowanie ścieżki narzędzia wykorzystując geometrię modelu wykonaną w oprogramowaniu AutoCAD. Rozwiązanie to ma na celu radykalną poprawę efektywności i zyskowności przeprowadzanych operacji, np. w przedsiębiorstwie stolarskim (rys. 3c).
Rys. 3. Modele robotów kartezjańskich: a) możliwości posuwu narzędzia, b) przykładowa konfiguracja robota kartezjańskiego,
c) przykład wykorzystania robota kartezjańskiego w przemyśle
Celem artykułu jest opis generowania punktów węzłowych polilinii zaprojektowanej geometrii. Pozwoli to na przeprowadzenie w dalszym etapie np. procesu frezowania regionów płaskich, z uwzględnieniem liczby dodatkowych ścieżek generowanych w osi Z. W kolejnym artykule zostaną przedstawione sprzętowe rozwiązania robotów kartezjańskich zaadaptowanych na potrzeby obróbki stolarskiej. 2. PRZYKŁAD PRAKTYCZNY Zasada działania prezentowanej w niniejszej pracy aplikacji jest następująca: wskazanie w obszarze modelu programu AutoCAD pojedynczego obiektu typu polilinia skutkuje wygenerowaniem współrzędnych jej punktów węzłowych i zapisaniem ich w pliku tekstowym. Po uruchomieniu programu AutoCAD i otworzeniu projektu zawierającego krzywiznę, która ma być analizowana, w pierwszej kolejności należy uruchomić polecenie punkty_polilinii. Następnie należy wskazać do bufora edycji analizowany element oraz określić format zapisu danych (wykładniczy lub dziesiętny) i ich dokładność (patrz rys. 4).
MECHANIK 7/2014 XVIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji
716
Rys. 4. Zasada działania polecenia punkty_polilinii Kolejne współrzędne punktów węzłowych analizowanej krzywej mogą być odczytane z wykorzystaniem kodów DXF obiektu typu polilinia lub dzięki zastosowaniu funkcji umożliwiających dostęp do obiektów OLE (z wykorzystaniem funkcji vla). Do opracowania polecenia punkty_polilinii wykorzystano język AutoLISP i środowisko Visual LISP, które jest zintegrowane z „pełną” wersją programu AutoCAD. Fragment pliku tekstowego przedstawiający punkty węzłowe polilinii w zapisie dziesiętnym i wykładniczym przedstawiono poniżej.
54.1824 7.3110 0
54.6646 7.0256 0
54.9624 6.8686 0
55.4478 6.6358 0
55.9533 6.4206 0
56.4814 6.2244 0
56.9237 6.0850 0
5.4182E+01 7.3110E+00 0.0000E+00
5.4665E+01 7.0256E+00 0.0000E+00
5.4962E+01 6.8686E+00 0.0000E+00
5.5448E+01 6.6358E+00 0.0000E+00
5.5953E+01 6.4206E+00 0.0000E+00
5.6481E+01 6.2244E+00 0.0000E+00
5.6924E+01 6.0850E+00 0.0000E+00
MECHANIK 7/2014 XVIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji
717
57.4246 5.9291 0
57.9477 5.7922 0
58.4775 5.6696 0
58.9436 5.5853 0
59.5116 5.4971 0
5.7425E+01 5.9291E+00 0.0000E+00
5.7948E+01 5.7922E+00 0.0000E+00
5.8477E+01 5.6696E+00 0.0000E+00
5.8944E+01 5.5853E+00 0.0000E+00
5.9512E+01 5.4971E+00 0.0000E+00
Przykład, który zostanie szczegółowo omówiony, dotyczy generowania ścieżki punktów węzłowych polilinii przedstawiającej dużą literę „S” (dla czcionki Consolas). Edycja (zdegradowanie klasy) wprowadzonego w obszarze modelu programu AutoCAD dowolnego tekstu możliwa jest za pomocą polecenia explode narzędzia Express Tools. Polecenie to zmienia obiekt tekstowy na obiekt typu polilinia. Aby wygenerować źródłową ścieżkę dla narzędzia frezującego, należy zdefiniować obwiednię przesuniętą o połowę szerokości wcześniej zdefiniowanego tekstu (np. za pomocą polecenia odsuń).
Rys. 5. Czcionka True Type, jej obwiednia (po operacji Explode) oraz ścieżka narzędzia (polilinia) zdefiniowana w programie AutoCAD
Realizacja zadań programowania zadań grafiki możliwa jest w oparciu o interfejs automatyzacji OLE oraz języki programowania wbudowane w systemy CAx [1-3]. Do zdefiniowania narzędzia wspomagania projektowania (w naszym przykładzie nowego polecenia systemu CAx), które wykona w sposób automatyczny sformułowane wcześniej zadanie, można wykorzystać język AutoLISP i środowisko Visual LISP. Kod programu odczytującego punkty węzłowe obiektu typu polilinia powinien składać się z elementów:
a) definiujących dostęp do składników rysunkowych aktualnego projektu
(defun c:punkty_polilinii()
(vl‐load‐com)
(setq _acad_ (vlax‐get‐acad‐object)
_model_ (vla‐get‐ModelSpace (vla‐get‐ActiveDocument _acad_)))
(setq PL (entsel "\nWskaż polilinię: "))
(if (= PL nil)
(prong
(alert "Musisz wskazac polilinię!")
(vl‐exit‐with‐value 0)
))
MECHANIK 7/2014 XVIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji
718
(setq PL (car PL))
(setq ilość_wierzchołków 0)
(setq vla_PL (vlax‐ename‐>vla‐object PL)
ilość_wierzchołków (vlax‐curve‐getEndParam vla_PL))
Działanie powyższego kodu jest następujące:
‒ wykorzystanie polecenia defun pozwala na utworzenie nowego polecenia „punkty_polilinii”, które nie posiada żadnych parametrów wejściowych,
‒ funkcja vl-load-com pozwala na wywołanie poleceń pozwalających na programowanie obiektowe, do zmiennej globalnej _acad_ przypisywany jest dokument programu AutoCAD, natomiast do zmiennej _model_ przestrzeń modelu aktywnego rysunku,
‒ do zmiennej „PL” przywiązywany jest zbiór wskazań (następuje także sprawdzenie, czy nie jest on zbiorem pustym, jeśli tak – to następuje automatyczne zakończenie działania programu),
‒ zmienna „ilość_wierzchołków” jest na początku zerowana, a później definiowana na wartość odczytywaną z obiektu, który jest zbiorem wskazań (przez wykorzystanie funkcji vlax-ename->vla-object oraz vlax-curve-getEndParam).
b) odczytujących punkty węzłowe analizowanego obiektu
(setq i 0)
(setq Pętla (fix ilość_wierzchołków))
(setq Dane_i (list))
(repeat (+ Pętla 1)
(setq Punkt (vlax‐curve‐getpointAtParam vla_PL i))
(setq P1_x (car Punkt))
(setq P1_y (cadr Punkt))
(setq P1_z (caddr Punkt))
(setq Dane_i (cons i Dane_i))
(setq Dane_i (cons P1_x Dane_i))
(setq Dane_i (cons P1_y Dane_i))
(setq Dane_i (cons P1_z Dane_i))
(setq i (1+ i))
);repeat
(setq Dane_i (reverse Dane_i))
Działanie powyższego kodu jest następujące: ‒ funkcja setq definiuje zmienne pomocnicze „i”, „Pętla” oraz „Dane_i,” które służą
do inkrementacji numeracji wierzchołków polilinii, określania ilości powtórzeń odczytu wierzchołków (rzutowanie typu zmiennej Double na Integer za pomocą funkcji fix) oraz tworzą pustą listę (macierz danych) odpowiadającą za przechowywanie danych,
‒ funkcja repeat pozwala na wyodrębnienie poszczególnych parametrów punktów węzłowych polilinii i zapisanie ich w macierzy „Dane_i” (wykorzystywane są tu funkcje vlax-curve-getpointAtParam, car, cadr, caddr, cons i reverse, które to odpowiednio wybierają punkty do analizy, wybierają ich współrzędne w układzie kartezjańskim oraz tworzą obiekt tekstowy je przedstawiający),
MECHANIK 7/2014 XVIII Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacji
719
‒ w związku z tym, że funkcja cons dodaje elementy do początku listy, następuje też odwrócenie danych w liście „Dane_i” za pomocą funkcji reverse.
c) definiujących format i dokładność zapisywanych danych
(princ "\n")
(princ "Wybierz typ zapisu danych: 1‐zapis wykładniczy, 2‐zapis dziesiętny \n")
(setq N (getint "Wybierz 1 lub 2 i naciśnij ENTER: "))
(princ "\n")
(princ "Wybierz dokładność zapisu danych (ilść miejsc po przecinku) \n")
(setq IMPP (getint "Wybierz dokładność: 0..12 i naciśnij ENTER: "))
(setq K 0)
(setq plik_nazwa (getfiled "Wskaż nazwę plików z danymi:" "C:\\" "txt" 1))
(setq plik (open plik_nazwa "w"))
(setq wiersz (list))
(repeat (+ Petla 1)
(progn
(setq Nr (nth K Dane_i)) (setq Nr_ (rtos Nr N 0))
(setq X (nth (+ K 1) Dane_i)) (setq X_ (rtos X N IMPP))
(setq Y (nth (+ K 2) Dane_i)) (setq Y_ (rtos Y N IMPP))
(setq Z (nth (+ K 3) Dane_i)) (setq Z_ (rtos Z N IMPP))
(setq wiersz (strcat X_ (chr 9) Y_ (chr 9) Z_))
(write‐line wiersz plik)
(setq K (+ K 4))
);progn
);repeat
(close plik)
);defun
Działanie powyższego kodu jest następujące: ‒ wykorzystanie polecenia princ pozwala na wyświetlenie w linii poleceń tekstu
stanowiącego argument tego polecenia (składnia „\n” powoduje przejście do następnego wiersza),
‒ funkcja getint pozwala na wprowadzenie zmiennych pomocniczych odpowiedzialnych za wprowadzenie typu zapisu danych oraz dokładności ich zapisu,
‒ następnie definiowana jest ścieżka dostępu do zapisu pliku tekstowego, który jest otwierany w trybie zapisu danych (przez użycie funkcji open),
‒ wypełnienie pliku tekstowego danymi punktów węzłowych polilinii następuje z wykorzystaniem funkcji nth, rtos, strcat i write-line, które to pozwalają na wybór n-tego elementu macierzy danych, przekształcają współrzędną punktu węzłowego do wybranego formatu zapisu danych, łączą łańcuchy tekstowe w procesie wprowadzania danych do pliku (separatorem wprowadzanych współrzędnych jest w tym procesie znak tabulatora – chr 9) oraz zapisują pojedynczy wiersz w pliku,
‒ wykorzystanie funkcji close powoduje zamknięcie możliwości edycji pliku i jego zapis.
XVIII
3. POD Zaprezejęzykówinżynierwęzłow
W takii stworzprogram„podziawzdłuż Przedstawiele prskomplistanowiwęzłowmożliwowykorzy LITER [1] Czy
Gliw[2] Dud[3] War
AutoWyts. 51
[4] WarAka
Międzynarod
DSUMOWA
entowany ww programorskiego. Pr
wych dla pol
R
im przypazyć nowe pomu AutoCAał” dowolneścieżek za p
awione proroblemów, kikowanych ią program
wych poliliność transfoystane jako
RATURA
yżycki W., wice, 2002. dek M.: Autorchulski J., WoCAD, XIVtwarzania 15-522. rchulski J., Wademia Tech
dowa Szkoła K
ANIE
w artykule powania wburoblemem wlilinii o niew
Rys. 6. Punk
dku należyolecenia rea
AD w niestego obiektu pomocą pol
ocedury orazktórych rozobiektów. N
mową podsnii zaprojekormacji cyfr ścieżka do
Lisowski E
oLISP. PrakWarchulski
V Międzynai Eksploat
Warchulskihniczna, Wa
MEKomputeroweg
przykład użyudowanychw tym prowielkiej licz
kty węzłow
y wykorzyalizujące takandardowymna zdefinio
leceń podzie
z metodykazwiązanie poNiemniej jestawę dla ktowanej gefrowego mo
sterowania
E.: Automa
ktyczny kursi M.: Przykarodowa Sztacji, Jurat
i M., Grzywarszawa, 20
ECHANIK 7/2go Wspomaga
720
ycia językah w systemocesie możezbie segmen
we polilinii (
ystać możlkie zadanie m zastosowowaną liczbel lub zmier
a nie wyczozwoli na gednak zapro
aplikacji eometrii. Wodelu do pa robotem ka
atyzacja za
rs, Helion, Gkłady auto
zkoła Kompta, 10-14
wiński S.: Pr014.
2014 ania Projektow
a AutoLISPmy CAx poe być natontów (patrz
(10, 20 i 30
liwości prolub skorzys
waniu (przybę segmentórz).
erpują podjgenerowanieojektowane
umożliwiaW wyniku p
ostaci zbioartezjańskim
dań grafik
Gliwice, 199omatyzacji puterowego
maja 201
rogram „pu
wania, Wytwa
udowadniaozwala na rmiast odczrysunek 6).
segmentów
ogramistyczstać ze stanykładowo mów lub odm
jętego temae ścieżek poprocedury w
ającej genepodjętego tru punktów
m.
i za pomoc
97. zadań graWspomaga
10, materia
unkty_polili
arzania i Eksp
a, że wykorrozwiązaniezytywanie p
w)
zne systemndardowychmożna wykmierzanie od
atu. Istniejeosuwu narzęw języku Aerowanie ptematu zapw, które m
cą Delphi,
afiki w prania Projekały konfer
inii.lsp”, W
ploatacji
rzystanie e zdania punktów
mu CAx h poleceń korzystać dległości
e jeszcze ędzia dla
AutoLISP punktów ewniono
mogą być
Helion,
rogramie towania,
rencyjne,
Wojskowa