WOJCIECH NOWAK SŁAWOMIR HERMA slawomir.herma@gmail.com Akademia Techniczno-Humanistyczna w Bielsku-Białej KOMPUTEROWO WSPOMAGANE GENEROWANIE PARAMETRYCZNYCH KRZYWYCH WYŻSZYCH STOPNI W ŚRODOWISKU AUTOCAD, Z WYKORZYSTANIEM JĘZYKA VBA Streszczenie: Pakiet Autocad poprzez przystępność i łatwość użytkowania jest jednym z najpopularniejszych narzędzi projektowych na rynku. Oprócz łatwej obsługi i przystępności oprogramowanie to zawiera wiele z pozoru niewidocznych narzędzi, które mogą znacznie zwiększyć jego skuteczność i spektrum zastosowań. Artykuł ma na celu zaprezentowanie możliwości tworzenia nietypowych, choć z praktycznego punktu widzenia, niezwykle utylitarnych obiektów graficznych, za pomocą plików skryptowych zawierających dwu- i trójwymiarowe chmury punktów wygenerowanych za pomocą dedykowanych aplikacji VBA Słowa kluczowe: VBA, krzywe wyższych stopni, AutoCAD 1. Wprowadzenie Oprogramowanie Autodesk AutoCAD jest obecnie jednym z najpopularniejszych narzędzi CAD. Jego historia sięga 1982 roku, kiedy to zostało po raz pierwszy zaprezentowane oraz wprowadzone do sprzedaży [1]. Operowanie w środowisku wektorowym oraz wyjątkowa precyzja tworzonych odwzorowań, stały się głównym powodem jego zastosowania w wielu dziedzinach projektowania inżynierskiego. Powstało wiele wersji tego oprogramowania, które są stosowane w branżach projektowych takich jak: budownictwo, architektura,
88 Wojciech Nowak, Sławomir Herma infrastruktura, inżynieria produkcji, geodezja, projektowanie części maszyn i wielu innych. Patrząc przez pryzmat łatwości obsługi, AutoCAD znalazł zastosowanie w wielu firmach, najczęściej jako system służący do tworzenia prostych rysunków konstrukcyjnych lub kart technologicznych, ale również do projektowania wielkogabarytowych konstrukcji [2]. 2. Opis deficytu badawczego Interfejs programu AutoCAD zawiera wiele łatwych w obsłudze narzędzi służących do tworzenia różnorodnych kształtów o charakterze podstawowym. Takie modelowanie sprawdza się w wielu zastosowaniach. I choć AutoCAD zawiera szereg narzędzi do tworzenia łuków, polilinii, helis itp. (przeznaczonych do wykorzystania zarówno w środowisku 2D jak i 3D), to często w przypadku potrzeby stworzenia kształtów o wiele bardziej złożonych, posiadających nierzadko ściśle matematyczny, nietypowy, sparametryzowany opis, wielu konstruktorów, nie dostrzegając innych możliwości, szuka alternatywy w postaci odrębnego oprogramowania. Dobrym przykładem jest tu konieczność tworzenia różnorodnych krzywych lub powierzchni, wykazujących szerokie praktyczne zastosowanie (np. ewolwenta, cykloida itd.), a nie posiadających w środowisku CAD dostatecznie precyzyjnych narzędzi (tzn. odrębnych poleceń lub kreatorów) do ich odwzorowania. Posiłkowanie się w takich sytuacjach metodami przybliżonymi, niejednokrotnie okazuje się niewystarczające. W artykule skupiono się zatem na następujących rodzajach krzywych, przedstawiając ich krótkie charakterystyki wraz z opisem matematycznym Cykloida krzywa, która znajduje zastosowanie w projektowaniu mostów. Konstrukcje mostów, których arkady mają cykloidalny kształt charakteryzują się najwyższą odpornością na obciążenia. Dodatkowo fragment cykloidy zwany brachistochroną wykorzystywany jest w konstrukcji przekładni zębatych [3, 4]. Rys. 1. Schemat powstawania cykloidy [5]
Komputerowo wspomagane generowanie parametrycznych krzywych 89 Wzory parametryczne cykloidy: x = a(t sin t) y = a(1 sin t) Epitrochoida, na podstawie której jest skonstruowany cylinder silnika Wankla. Silnik tego typu pomimo specyficznej budowy, często znajduje zastosowanie w samochodach sportowych. Do jego zalet należą: małe rozmiary, mały ciężar oraz spokojny bieg [4, 6]. Rys. 2. Schemat powstawania epitrochoidy [7]. Wzory parametryczne epitrochoidy: x = r(m + 1) cos t r cos(mt + t) x = r(m + 1) sin t r sin(mt + t) Krzywa łańcuchowa, która znajduje zastosowanie przy badaniu wiszących lin lub przewodów elektrycznych [4, 8]. Rys. 3. Krzywa łańcuchowa [9] Wzory parametryczne krzywej łańcuchowej: x = a lnt y = a 2 (t + 1 t )
90 Wojciech Nowak, Sławomir Herma Ewolwenta okręgu. Odcinek ewolwenty jest bardzo często z powodzeniem wykorzystywany przy projektowaniu kół zębatych (zarys boku zęba) [4]. Rys. 4. Ewolwenta koła zębatego [11} Wzory parametryczne ewolwenty okręgu: x = a(cos t + t sin t ) C sin t y = a(sin t t cos t) + C cos t Klotoida, która znajduje zastosowanie w projektowaniu dróg i linii kolejowych. Pojazd poruszający się po klotoidzie ze stałą prędkością liniową ma jednostajne przyspieszenie kątowe i jednostajnie rosnącą siłę odśrodkową [4, 10]. Rys. 5. Klotoida.[12] Wzory parametryczne klotoidy (całki Fresnela): x = C(s) y = S(s) Okazuje się tymczasem, że oprogramowanie AutoCAD posiada wydajne narzędzie, które może być pomocne przy odwzorowywaniu tego typu krzywych. Dzięki niemu, przez podanie (wprowadzenie) odpowiedniego polecenia
Komputerowo wspomagane generowanie parametrycznych krzywych 91 wraz z szeregiem współrzędnych punktów bazowych, możliwe staje się precyzyjne zbudowanie praktycznie dowolnego, żądanego obiektu graficznego w przestrzeni wektorowej. Jest to narzędzie służące do tworzenia i uruchamiania skryptów [2]. 3. Analiza możliwości rozwiązania zagadnienia Skrypt jest plikiem tekstowym (*.scr) zawierającym pewną sekwencję poleceń AutoCAD-a, która może być uruchomiona w każdej chwili, na żądanie użytkownika. Wystarczy uruchomić dany skrypt aby wykonane zostały wszystkie umieszczone w nim polecenia, które nie różnią się niczym od tych, podawanych przez użytkownika bezpośrednio w trakcie normalnej pracy z systemem. Auto- CAD może bowiem przyjmować i realizować polecenia wydawane zarówno z klawiatury (uwzględniając wskazywane za pomocą myszy lub innych urządzeń współrzędne punktów), jak również ze źródeł zewnętrznych czyli skryptów. Ponieważ jednak większość komend AutoCAD-a posiada listę argumentów (których wartości muszą być podane w odpowiedniej kolejności by zapewnić poprawność działania), warunkiem ich użycia w plikach skryptowych jest zachowanie analogicznej formy. Same skrypty mogą być tworzone albo bezpośrednio w systemie, albo w dowolnym edytorze pozwalającym na zapis treści w układzie.txt. Raz stworzonych skryptów można użyć wielokrotnie celem powtarzania określonych sekwencji poleceń, wyświetlania slajdów, kreślenia wsadowego oraz wszelkich innych działań o charakterze cyklicznym, których automatyzacja zmierza do ograniczenia czasu tworzenia projektu inżynierskiego. Tekstowa zawartość plików skryptowych oraz strukturalna forma zapisu poszczególnych poleceń sugeruje ponadto możliwość programowego generowania zarówno samego pliku, jak i jego zawartości. Przykładowo, w przypadku potrzeby stworzenia parametrycznej krzywej lub powierzchni, w pliku skryptowym musi się znajdować odpowiednie polecenie systemu AutoCAD oraz lista współrzędnych kartezjańskich, będących podstawą utworzenia danego obiektu graficznego (2D lub 3D) [2]. Ściśle matematyczny charakter procesu generowania (iterowania i obliczania wg formuły jawnej lub parametrycznej) współrzędnych punktów węzłowych, skłania do wykorzystania praktycznie dowolnego języka programowania, dzięki czemu na pozór żmudny proces budowy skryptu ulega już całkowitej automatyzacji.
92 Wojciech Nowak, Sławomir Herma Idealnym do tych zastosowań wydaje się być środowisko programistyczne Visual Basic for Applications zaimplementowane w pakiecie MsExcel. Choć w moduł VBA jest wyposażony również sam AutoCAD, to skorzystanie mimo wszystko ze środowiska MsExcel, zapewni dodatkowe możliwości, związane podglądem generowanych krzywych, korektą ewentualnych błędów czy archiwizacją danych. Visual Basic jest bardzo popularnym językiem programowania wysokiego poziomu. Jako uproszczona wersja czyli moduł VBA jest nieodłącznym narzędziem programistycznym związanym z wieloma aplikacjami tworzonymi przez takie firmy jak na przykład Dassault Systems, Autodesk, Bentley oraz Microsoft. Jedną z najpopularniejszych wersji edytora VBA jest ta zaimplementowana w arkuszu kalkulacyjnym Microsoft Excel. Olbrzymią zaletą tego środowiska programowania jest dostęp do predefiniowanych formuł matematycznych, statystycznych i innych. W sytuacji tworzenia skryptu dla programu AutoCAD, komórki arkusza kalkulacyjnego mogą służyć za tymczasową bazę danych, służącą do przechowywania współrzędnych. Excel umożliwia również generowanie wykresów, co może być pomocne przy analizowaniu danej funkcji jeszcze przed zaimplementowaniem jej do przestrzeni graficznej AutoCAD-a. Środowisko programistyczne Visual Basic for Applications jest ponadto bardzo proste w użyciu, co stwarza możliwości tworzenia oprogramowania przez osoby nie posiadające szerokiej wiedzy programistycznej [13, 14] 4. Projekt i implementacja oprogramowania Z punktu widzenia implementacji rozwiązań informatycznych, najbardziej wygodnym sposobem opisu wspomnianych krzywych matematycznych wydają się wzory parametryczne lub biegunowe. Dają one bowiem możliwość łatwego i niemal natychmiastowego uzyskania współrzędnych kartezjańskich punktów tworzących, na drodze iteracyjnej. Niektóre formuły definiujące nie posiadają postaci parametrycznej, co oczywiście nie wyklucza ich ze zbioru możliwych do wygenerowania obiektów graficznych. W celu wykonania aplikacji realizującej opisywane w artykule zagadnienie, został zaprojektowany formularz głównego okna aplikacji (patrz rysunek 7)
Komputerowo wspomagane generowanie parametrycznych krzywych 93 Ogólny proces generowania krzywej przedstawia poniższy schemat. Rys. 6. Schemat generowania danej krzywej. Opracowanie własne. Rys. 7. Okno aplikacji generującej współrzędne epitrochoidy. Opracowanie własne. W aplikacji zostały wykorzystane komponenty Edit, które z powodzeniem służą do wprowadzania danych numerycznych, PageControl - do zagęszczania informacyjnego formularza, Frame dla lepszego wizualnego zagospodarowania obszaru aplikacji a także Image służące jako element wizualny. Taka architektura aplikacji jest funkcjonalna, łatwa w obsłudze i przejrzysta dla użytkownika. Formularz został zaprojektowany tak, aby ułatwić użytkownikowi proces generowania współrzędnych. Zostały przewidziane konieczne do wypełnienia pola edycyjne odpowiadające poszczególnym parametrom i wielkościom charakteryzujących kształt danej krzywej. Po ich wypełnieniu i naciśnięciu przycisku Generuj do pliku, zostaje uruchomiona procedura, której trzon stanowi sekwencja zmieszczona na rysunku 8
94 Wojciech Nowak, Sławomir Herma Rys. 8. Sekwencja służąca do generowania pliku skryptowego. Opracowanie własne Dodatkowym ułatwieniem jest okno opisu funkcji gdzie znajdują się podstawowe informacje dotyczące danej funkcji, na podstawie której krzywa będzie generowana. Program umożliwia również generowanie współrzędnych do komórek arkusza kalkulacyjnego i wygenerowanie wykresu funkcji w programie Microsoft Excel. Takie działanie jest to istotne w sytuacjach gdy występuje potrzeba wygenerowania dużej liczby współrzędnych na podstawie skomplikowanych wzorów. Na poniższym wykresie programu Microsoft Excel jest przedstawiona funkcja, wygenerowana na podstawie parametrów z poprzedniego rysunku. Rys. 9. Wygenerowana funkcja w programie Microsoft Excel Należy pamiętać o odpowiedniej budowie pliku skryptowego. W pierwszej linijce powinno znajdować się polecenie programu AutoCAD a w kolejnych wygenerowane współrzędne. Istotne jest również rozszerzenie pliku (*.scr).
Komputerowo wspomagane generowanie parametrycznych krzywych 95 Rys. 10. Wygenerowany plik skryptowy dla przykładowej trochoidy Po stworzeniu pliku skryptowego, należy go uruchomić w programie Auto- CAD, wykorzystują opcję Uruchom skrypt na zakładce Zarządzaj. W efekcie otrzymywany jest obraz przedstawiony na rysunku 11 Rys. 11. Wygenerowana Epitrochoida w programie AutoCAD Kolejnym przykładem jest procedura generowania cykloidy ukośnej, która przedstawia się dość podobnie. Jednak istotny okazuje się fakt, że jest to krzywa 3D, co wymusza pewne zmiany w strukturze procedury generującej:
96 Wojciech Nowak, Sławomir Herma zastosowanie nieco innego polecenia systemu AutoCAD konieczność uwzględnienia dodatkowej współrzędnej Z Rys. 12. Formularz generujący współrzędne cykloidy skośnej. Opracowanie własne. Fragment kodu dla cykloidy skośnej przedstawiono na rysunku 13 Rys. 13 Sekwencja służąca do generowania pliku skryptowego. Opracowanie własne
Komputerowo wspomagane generowanie parametrycznych krzywych 97 Wygenerowana krzywa prezentuje się następująco: Rys. 14 Wygenerowana cykloida skośna w programie AutoCAD 5. Podsumowanie Artykuł wskazał, że Visual Basic for Applications jest środowiskiem programistycznym, które z powodzeniem może być wykorzystywane do tworzenia skryptów dla programu AutoCAD. Środowisko VBA zaimplementowane w arkuszu kalkulacyjnym Microsoft Excel jest szybkie, intuicyjne, łatwe w obsłudze i przede wszystkim ogólnodostępne. W przypadku tworzenia krzywych wystarczy jedna, dobrze przemyślana procedura, aby uwzględniając drobne modyfikacje, wygenerować współrzędne i zapisywać je do pliku skryptowego. Stworzona aplikacja stwarza dalsze perspektywy związane z na przykład możliwością generowania powierzchni, na podstawie której można by stworzyć bryłę. Ta sama sytuacja dotyczy innych obiektów w programie AutoCAD, które można generować parametrycznie za pomocą skryptów. Możliwe jest również przeniesienie powyższych przykładów na inne oprogramowanie typu CAD, na przykład Autodesk Inventor lub Solid Works, co dodatkowo zwiększyłoby komfort użytkowania oraz interakcję użytkownika z programem.
98 Literatura Wojciech Nowak, Sławomir Herma 1. http://autodesk.blogs.com/between_the_lines/autocad-release-history.html 2. Andrzej Jaskulski AutoCAD 2014/LT2014/360. Wydawnictwo Naukowe PWN, Warszawa 2014 3. Centrum Kopernika Cykloida www.kopernik.org.pl 4. Tablice matematyczne 5. www.fizyka.net/image 6. http://moto.pl/motopl/1,88571,7209012,historia_kolem_sie_toczy Ma zda.html 7. www.2000clicks.com/image01 8. http://whistleralley.com/hanging/hanging.htm 9. www.swiatmatematyki.pl/krzywalancuchowa 10. http://mathworld.wolfram.com/cornuspiral.html 11. www.zmt.mt.put.poznan.pl/ewolwenta_kola_zebatego 12. http://mathworld.wolfram.com/cornuspiral.html 13. Wojciech Nowak Implementacja metod wartościowania stanowisk pracy do arkusza kalkulacyjnego z wykorzystaniem VBA. Modele inżynierii teleinformatyki tom 8, Politechnika koszalińska, Koszalin 2013. 14. Walkenbach J.: Excel 2003 programowanie w VBA vademecum profesjonalisty, Helion, Warszawa 2003.