Wojciech NOWAK, Sławomir HERMA

12
WOJCIECH NOWAK SŁAWOMIR HERMA [email protected] 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 niewidocz- nych narzędzi, które mogą znacznie zwiększyć jego skuteczność i spektrum zastosowań. Artykuł ma na celu zaprezentowanie możliwości tworzenia niety- powych, choć z praktycznego punktu widzenia, niezwykle utylitarnych obiek- tów graficznych, za pomocą plików skryptowych zawierających dwu- i trójwy- miarowe 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 najpopularniej- szych 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 projekto- wania inżynierskiego. Powstało wiele wersji tego oprogramowania, które są stosowane w branżach projektowych takich jak: budownictwo, architektura,

Transcript of Wojciech NOWAK, Sławomir HERMA

Page 1: Wojciech NOWAK, Sławomir HERMA

WOJCIECH NOWAK

SŁAWOMIR HERMA

[email protected]

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 niewidocz-

nych narzędzi, które mogą znacznie zwiększyć jego skuteczność i spektrum

zastosowań. Artykuł ma na celu zaprezentowanie możliwości tworzenia niety-

powych, choć z praktycznego punktu widzenia, niezwykle utylitarnych obiek-

tów graficznych, za pomocą plików skryptowych zawierających dwu- i trójwy-

miarowe 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 najpopularniej-

szych 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 projekto-

wania inżynierskiego. Powstało wiele wersji tego oprogramowania, które są

stosowane w branżach projektowych takich jak: budownictwo, architektura,

Page 2: Wojciech NOWAK, Sławomir HERMA

Wojciech Nowak, Sławomir Herma 88

infrastruktura, inżynieria produkcji, geodezja, projektowanie części maszyn

i wielu innych. Patrząc przez pryzmat łatwości obsługi, AutoCAD znalazł za-

stosowanie w wielu firmach, najczęściej jako system służący do tworzenia pro-

stych 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 nie-

rzadko ściśle matematyczny, nietypowy, sparametryzowany opis, wielu kon-

struktoró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. ewol-

wenta, cykloida itd.), a nie posiadających w środowisku CAD dostatecznie pre-

cyzyjnych narzędzi (tzn. odrębnych poleceń lub kreatorów) do ich odwzorowa-

nia. 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 charaktery-

zują się najwyższą odpornością na obciążenia. Dodatkowo fragment cyklo-

idy zwany brachistochroną wykorzystywany jest w konstrukcji przekładni

zębatych [3, 4].

Rys. 1. Schemat powstawania cykloidy [5]

Page 3: Wojciech NOWAK, Sławomir HERMA

Komputerowo wspomagane generowanie parametrycznych krzywych… 89

Wzory parametryczne cykloidy:

𝑥 = 𝑎(𝑡 − sin 𝑡)

𝑦 = 𝑎(1 − sin 𝑡)

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:

𝑥 = 𝑟(𝑚 + 1) cos 𝑡 − 𝑟 cos(𝑚𝑡 + 𝑡)

𝑥 = 𝑟(𝑚 + 1) sin 𝑡 − 𝑟 sin(𝑚𝑡 + 𝑡)

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:

𝑥 = 𝑎 ln𝑡

𝑦 =𝑎

2(𝑡 +

1

𝑡)

Page 4: Wojciech NOWAK, Sławomir HERMA

Wojciech Nowak, Sławomir Herma 90

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:

𝑥 = 𝑎(cos 𝑡 + 𝑡 sin 𝑡 ) − 𝐶 sin 𝑡

𝑦 = 𝑎(sin 𝑡 − 𝑡 cos 𝑡) + 𝐶 cos 𝑡

Klotoida, która znajduje zastosowanie w projektowaniu dróg i linii kole-

jowych. Pojazd poruszający się po klotoidzie ze stałą prędkością liniową

ma jednostajne przyspieszenie kątowe i jednostajnie rosnącą siłę odśrod-

kową [4, 10].

Rys. 5. Klotoida.[12]

Wzory parametryczne klotoidy (całki Fresnela):

𝑥 = 𝐶(𝑠)

𝑦 = 𝑆(𝑠)

Okazuje się tymczasem, że oprogramowanie AutoCAD posiada wydajne

narzędzie, które może być pomocne przy odwzorowywaniu tego typu krzy-

wych. Dzięki niemu, przez podanie (wprowadzenie) odpowiedniego polecenia

Page 5: Wojciech NOWAK, Sławomir HERMA

Komputerowo wspomagane generowanie parametrycznych krzywych… 91

wraz z szeregiem współrzędnych punktów bazowych, możliwe staje się precy-

zyjne zbudowanie praktycznie dowolnego, żądanego obiektu graficznego

w przestrzeni wektorowej. Jest to narzędzie służące do tworzenia i uruchamia-

nia 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żyt-

kownika. 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 skryp-

tów. Ponieważ jednak większość komend AutoCAD-a posiada listę argumen-

tó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ży-

nierskiego.

Tekstowa zawartość plików skryptowych oraz strukturalna forma zapisu

poszczególnych poleceń sugeruje ponadto możliwość programowego genero-

wania zarówno samego pliku, jak i jego zawartości. Przykładowo, w przypadku

potrzeby stworzenia parametrycznej krzywej lub powierzchni, w pliku skrypto-

wym 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 generowa-

nia (iterowania i obliczania wg formuły jawnej lub parametrycznej) współrzęd-

nych 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.

Page 6: Wojciech NOWAK, Sławomir HERMA

Wojciech Nowak, Sławomir Herma 92

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 archi-

wizacją 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 Micro-

soft. 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, sta-

tystycznych 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ż genero-

wanie wykresów, co może być pomocne przy analizowaniu danej funkcji jesz-

cze przed zaimplementowaniem jej do przestrzeni graficznej AutoCAD-a. Śro-

dowisko 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 wy-

godnym 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)

Page 7: Wojciech NOWAK, Sławomir HERMA

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 cha-

rakteryzujących kształt danej krzywej. Po ich wypełnieniu i naciśnięciu przyci-

sku „Generuj do pliku”, zostaje uruchomiona procedura, której trzon stanowi

sekwencja zmieszczona na rysunku 8

Page 8: Wojciech NOWAK, Sławomir HERMA

Wojciech Nowak, Sławomir Herma 94

Rys. 8. Sekwencja służąca do generowania pliku skryptowego. Opracowanie własne

Dodatkowym ułatwieniem jest okno opisu funkcji gdzie znajdują się podsta-

wowe 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 Mi-

crosoft 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).

Page 9: Wojciech NOWAK, Sławomir HERMA

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 efek-

cie 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:

Page 10: Wojciech NOWAK, Sławomir HERMA

Wojciech Nowak, Sławomir Herma 96

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

Page 11: Wojciech NOWAK, Sławomir HERMA

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 programi-

stycznym, 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 krzy-

wych wystarczy jedna, dobrze przemyślana procedura, aby uwzględniając drob-

ne modyfikacje, wygenerować współrzędne i zapisywać je do pliku skryptowe-

go. 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.

Page 12: Wojciech NOWAK, Sławomir HERMA

Wojciech Nowak, Sławomir Herma 98

Literatura

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 tele-

informatyki tom 8, Politechnika koszalińska, Koszalin 2013.

14. Walkenbach J.: Excel 2003 programowanie w VBA vademecum profesjo-

nalisty, Helion, Warszawa 2003.