Systemy wspomagające procesy projektowania
Transkrypt
Systemy wspomagające procesy projektowania
Piotr Kalinowski Seminarium z historii komputerów: Systemy wspomagania procesów projektowania Proces projektowania Systemy mogą być bardzo złożonymi strukturami. Równie złożony jest proces ich projektowania, przez który tutaj rozumieć będę cały ciąg czynności mających na celu określenie jak zbudowany ma być system. Składa się on oczywiście z różnych etapów: • modelowanie, w szczególności tworzenie modeli matematycznych; • symulacja, mająca na celu zebranie dodatkowych informacji o zachowaniu systemu; • identyfikacja różnych parametrów obiektów wchodzących w skład systemu; • analiza i optymalizacja. Komputery można zastosować na każdym z tych etapów. Najwcześniej były one wykorzystywane do tworzenia modeli matematycznych. Podczas tej czynności nieraz napotyka się równania, których nie potrafimy rozwiązać matematycznie i wówczas trzeba korzystać z metod numerycznych. Tutaj pojawia się komputer, jako programowalny kalkulator automatyzujący obliczenia. Dzięki niemu można przeprowadzić je znacznie szybciej oraz bardziej precyzyjnie, z mniejszą ilością błędów. Za przykład niech posłuży sam ENIAC, który przecież stworzono, aby obliczał tablice balistyczne dla wojska. Owe tablice są niczym innym, jak właśnie modelem matematycznym dział. Później, wraz z rozwojem techniki komputerowej, możliwe stało się zastosowanie komputerów do symulacji. Obiekty wchodzące w skład systemu można symulować za pomocą innych elementów. Dzięki temu można badać ich zachowanie bez faktycznego dostępu do tychże. Najpierw dokonywano symulacji za pomocą układów elektronicznych, które modelowały zależności pomiędzy wyjściem a wejściem obiektu. Sporządzenie odpowiedniego układu było już w miarę proste i być może tanie w porównaniu z wykorzystaniem właściwego obiektu. Symulacja stała się jeszcze bardziej opłacalna, gdy zaczęto jej dokonywać poprzez odpowiedni algorytm realizowany komputerowo. Teraz jedyny koszt to stworzenie odpowiedniego algorytmu, który na dodatek jest bardziej elastyczny. Łatwiej zmieniać różne jego parametry, dzięki czemu można go bez problemy stosować do modelowania różnych obiektów. W przypadku identyfikacji komputery mogą zostać wykorzystane zarówno do zbierania danych pomiarowych, jak i do ich analizy, tworzenia wykresów, bądź obliczania parametrów obiektów. Projektowanie w sensie potocznym Potocznie projektowanie jest głównie utożsamiane z rysowaniem różnego typu schematów – czy to będą rysunki jakiegoś budynku w przypadku architektury, czy też schematy układów elektronicznych bądź urządzeń mechanicznych. Jest to także bardzo ważny element, w którym jednocześnie można wykorzystać precyzję komputera oraz możliwości wiążące się z elektronicznym przetwarzaniem danych. Na historii tych zastosowań właśnie skupię się w tej pracy. Możliwości współczesnych systemów • Wielokrotne używanie gotowych komponentów, dzięki czemu pewnych podstawowych elementów nie trzeba za każdym razem projektować od nowa. Przykładem mogą być różnego typu układu elektroniczne, ale także na przykład okno programu komputerowego – aplikacje działające w trybie graficznym mogą korzystać z biblioteki gotowych komponentów, dzięki czemu wytwórcy oprogramowania nie muszą już tworzyć • • • • • • poszczególnych kontrolek. Zamiast tego mogą zająć się określaniem interakcji pomiędzy nimi. Automatyzacja tworzenia pewnych prostych elementów oraz ich dostosowywania do konkretnego projektu. Weryfikacja zgodności ze specyfikacją. Oprogramowanie może na bieżąco sprawdzać tworzony projekt pod kątem zgodności ze specyfikacją dostarczoną przez klienta, a także zestawem reguł wykorzystywanych w procesie projektowania wewnątrz danej firmy. Oszczędza to czas i pieniądze. Symulacja prototypu, bez konieczności faktycznej jego budowy. Pozwala to szybko i tanio analizować dziesiątki projektów w celu wybrania tego najlepiej spełniającego założenia. Automatyczne generowanie dokumentacji, która może być przekazana do archiwum, klientowi, bądź innym działom firmy, choć w dzisiejszych czasach coraz częściej wewnątrz firmy wykorzystywana jest dokumentacja w postaci elektronicznej. Można więc przesłać bezpośrednio pliki projektu do odpowiedniego działu, który zajmie się na przykład analizą kosztów. Analiza metodą FEM (Finite Elements Method), gdzie geometryczny model obiektu podzielony na mnóstwo małych fragmentów jest używany do przybliżenia jego zachowania i wyliczenia odpowiednich parametrów bądź zbadania zgodności z założeniami projektowymi. Dzięki komputerom można to wykonywać szybko i precyzyjnie. Automatyczne budowanie prototypów, gdzie system CAD podłączony jest bezpośrednio do systemu CAM (Computer Aided Manufacturing), który z kolei na przykład za pomocą technik stereolitografii potrafi konstruować fizyczny model obiektu, bądź nawet sam obiekt. Badania laboratoryjne wskazują, że do budowy można wykorzystać metale przewodzące co pozwoli na całkowite zautomatyzowanie na przykład budowy telefonów komórkowych. Ograniczenia systemów CAD Systemy wspomagania procesów projektowania zawsze borykały się z pewnymi problemami, które można podzielić głównie na ograniczenia sprzętowe i programowe. Do ograniczeń sprzętowych należą możliwości obliczeniowe komputerów, które nie zawsze pozwalały na płynną pracę z obiektami trójwymiarowymi, ale także problem urządzeń wskazujących oraz służących do prezentacji danych. Nie zawsze umożliwiały precyzyjną i interaktywną pracę z komputerem. O ograniczeniach programowych niech świadczy fakt, że w roku 1974, 6 z 10 największych systemów CAD większość kodu poświęcało na ominięcie ograniczeń systemów operacyjnych. W dzisiejszych czasach jest to już może mniej istotne, podobnie jak ograniczenia sprzętowe. Ograniczeniem, które zapewne długo jeszcze, jeśli w ogóle, nie uda się usunąć jest znaczenie czynnika ludzkiego. Projektowanie jest i będzie złożonym procesem decyzyjnym, który wykorzystuje nie tylko ludzką intuicję, ale także kreatywność – zdolność do twórczego myślenia i rozwiązywania problemów. Czy komputery będą kiedykolwiek w stanie samodzielnie myśleć? Numerical Control Termin ten określa proces sterowania maszynami przemysłowymi za pomocą zestawu liczb wraz z pewnymi poleceniami. Prowadzono badania na ten temat w MIT na przełomie lat 40. i 50. Później do wysyłania poleceń do tychże maszyn zaprzęgnięto komputery. Była to swego rodzaju rewolucja przemysłu produkcyjnego. Dzięki takiemu podejściu stało się łatwe cięcie różnego rodzaju krzywych, oprócz prostych, z którymi bez problemu poradzić sobie mógł człowiek.. Teraz można było łatwo i precyzyjnie tworzyć nawet bardziej złożone obiekty trójwymiarowe. Zwiększało to także elastyczność produkcji. Maszyny te można podłączać bezpośrednio do systemów typu CAD, które sterują nimi bez żadnych etapów pośrednich. Graficzny interfejs użytkownika – rys historyczny Aby efektywnie wspomagać proces decyzyjny, komputer musi działać interaktywnie i komunikować się z użytkownikiem w sposób wygodny, aby ten nie tracił większości czasu na przygotowanie danych dla komputera. Po to powstały graficzne interfejsy użytkownika – aby umożliwić wygodną i efektywną pracę z komputerem. Pierwszym prawdziwym interfejsem, choć jeszcze nie graficznym, był NLS – oNLine System, stworzony w latach 60. w Stanford Research Institute przez Douglasa Engelbarta. Prezentował on już dane korzystając z wielu okien oraz umożliwiał interakcję poprzez wynalezioną na tę okoliczność mysz komputerową. Tutaj także pokazały się łącza hipertekstowe. Grafika została dodana w Xerox Palo Alto Research Center (PARC), gdzie powstał paradygmat WIMP – Windows, Icons, Mouse, Pointer. Jest on wykorzystywany powszechnie w dzisiejszym oprogramowaniu – oparta na nim jest większość interfejsów użytkownika stosująca kontrolki – przyciski, menu, ikony. Pomysł został wykorzystany pierwszy raz w 1973 przy tworzeniu eksperymentalnego komputera Xerox Alto. Był to jedynie projekt badawczy posiadający 128 kB pamięci operacyjnej rozszerzalne do 512 kB i ważny krok na drodze do współczesnych komputerów PC. Wiele pomysłów zostało przeniesionych z niego na komputera Xerox 8010 – Star. Tego ostatniego jednak nie uważa się za sukces komercyjny – sprzedano jedynie 25 tys. sztuk. Pierwszym komercyjnym sukcesem GUI był komputer Macintosh z roku 1984. Wykorzystano w nim także „metaforę biurkową” - dane były zorganizowane w pliki, te zaś w foldery. Komputery firmy Apple do dziś są sprzedawane na całym świecie i mają grono wiernych użytkowników. W 1985 roku powstało DESQView – nakładka na system DOS pozwalająca uruchamiać wiele programów jednocześnie. Korzystała z nakładających się okien, ale wyłącznie w trybie tekstowym. W tymże roku ogłoszona zostaje wersja 1.0 systemu Microsoft Windows, choć ten system odniósł prawdziwy sukces dopiero po wydaniu wersji 3.0 w 1990, która zresztą zapożyczyła wiele z Workplace Shell z systemu OS/2 2.0. Jakie były dalsze losy systemu Windows, każdy widzi. Na wzmiankę zasługuje również X Window System – otwarty projekt serwera graficznego dla systemów typu Unix®. Urządzenia wskazujące Z systemami typu CAD nieodłącznie związana była kwestia odpowiednich urządzeń wejściowych. Odpowiednich oznacza precyzyjnych i wygodnych do pracy z grafiką. W roku 1957 powstało pióro świetlne, wykorzystane w komputerze Lincoln TX-0. Pracowało ono z monitorami kineskopowymi i było bodaj pierwszym urządzeniem wskazującym pozwalającym na wygodną pracę z grafiką. Później jednak zmieniono działanie monitorów i powstała mysz komputerowa. Mysz opracował Douglas Engelbart w latach 60. podczas pracy nad systemem NLS. Mierzyła przesunięcie na osiach za pomocą dwóch prostopadłych względem siebie kółek toczących się po nawierzchni. W roku 1970 Bill English wprowadził kulkę. Teraz to ona dotykała powierzchni, po której przesuwana była mysz, a jej obroty były mierzone przez dwie przylegające do niej rolki. Ta zasada jest wykorzystywana w myszach mechanicznych do dzisiaj. Początki systemów typu CAD Pierwszym systemem graficznym był stworzony w latach 50. na użytek sił powietrznych Stanów Zjednoczonych SAGE (Semi Automatic Ground Environment). Analizował on dane radarowe, które potem wyświetlał na kilku monitorach kineskopowych. W roku 1957 powstał natomiast PRONTO – język programowania Numerical Control. Swoistym przełomem w systemach CAD była praca doktorska Ivana Sutherlanda z MIT – Sketchpad. Ten system działający na komputerze Lincoln TX-2, który musiał być do tego celu specjalnie przygotowany, aby mógł działać interaktywnie, wprowadzał wiele innowacji. Zawierał pierwszy graficzny, interaktywny interfejs użytkownika, wykorzystujący pióro świetlne. Umożliwiał także precyzyjne określanie wybranych właściwości obiektów graficznych, takich jak długość linii, czy kąt pomiędzy dwoma liniami. Teraz już nie trzeba było polegać na precyzji rysownika podczas tworzenia szkicu. Można było wykorzystać precyzję komputera. Ponadto istotny jest fakt, że Sketchpad wykorzystywał do przedstawiania obiektów geometrycznych idee obiektów i instancji. Był na przykład główny rysunek i jego duplikaty takie, że zawierały wszystkie zmiany wprowadzone do głównego rysunku. To były początki programowania zorientowanego obiektowo. Nieco później ITEK tworzy The Electronic Drafting Machine wykorzystujący procesor PDP - 1, a w roku 1964 firma MAGI wypuszcza pierwszy komercyjny program do modelowania obiektów – Synthia Vision. W tym czasie używane były proste algorytmy do wyświetlania zbiorów linii na płaszczyźnie, które miały oddawać trójwymiarowość obiektów. Dopiero później opracowano bardziej zaawansowane algorytmy i w ogóle powstała idea modelowania trójwymiarowego z użyciem komputera. Idee te zrodziły się na uniwersytecie w Cambridge, gdzie od roku 1965 prowadzono badania nad systemami CAD za sprawą Donalda Welbourn. Tam też powstał DUCT, który miał to realizować i został zakupiony między innymi przez Volkswagena i Daimler-Benz. Cechą wyróżniającą go spośród innych systemów była także znakomita dokumentacja napisana przez Welbourna, dzięki której łatwo można było rozpocząć pracę z tym systemem. Prace nad nim ukończono w 1974 roku. W roku 1971 powstała firma MCS, w której pracował dr Hanratty nieraz określany jako ojciec systemów CAD. Firma ta ma być, według analityków, twórcą 70% kodu odpowiedzialnego za mechaniką obiektów i obecnego w dzisiejszych systemach. W roku 1972 natomiast po raz pierwszy zaprezentowano system CAD/CAM. Wykonał on bryłę przypominającą kształtem dzbanek. Rok później zostaje ogłoszony AutoDraft – pierwszy system graficzny gotowy od razu do użytku. W latach 70. system typu CAD to był minikomputer, sporych jak na obecne czasy rozmiarów. Miał do 512 kB pamięci operacyjnej i 300 MB przestrzeni dyskowej oraz kosztował 125 000 USD. Dopiero w roku 1982 powstał AutoCAD – pierwszy program tego typu na komputery klasy PC. Jego twórcy chcieli napisać program, który kosztowałby poniżej 1000$ i nie wymagał niezwykle kosztownego sprzętu. Udało im się. W roku 1987 ich program w toku dalszego rozwoju zostanie wzbogacony o bardzo zaawansowane elementy interfejsu użytkownika, jak np. rozwijane menu, a w roku 1992 wyjdzie w wersji dla systemu DOS. Teraz do wykonywania rysunków technicznych nie będą już potrzebne ogromne i kosztowne stacje robocze. Podsumowanie W ciągu ostatniego półwiecza nastąpił ogromny rozwój systemów typu CAD, wspomagających człowieka w pracach projektowych. Ich możliwości są obecnie bardzo duże, jednak kluczowym elementem każdego takiego systemu jest, i jeszcze długo pozostanie, człowiek – jego wyobraźnia oraz kreatywność. Rozwój tych systemów wymagał diametralnej zmiany w sposobie pracy z komputerem, co z kolei wiązało się z rozwojem zarówno sprzętu jak i myśli ludzkiej. Coraz potężniejsze komputery umożliwiały coraz wygodniejszą i bardziej wydajną pracę, w tym także z modelami trójwymiarowymi. Rozwój robotyki umożliwił sprzęgnięcie systemów wspomagających projektowanie bezpośrednio z systemami produkcji. Rozwój urządzeń wskazujących i terminali do prezentacji danych był także niezbędny, aby możliwa była precyzyjna i wygodna praca – aby komputer mógł faktycznie zastąpić deskę kreślarską. Prawdopodobnie najbardziej przełomowa, i to nie tylko dla takich systemów, była zmiana sposobu pracy z komputerem z wsadowego na interaktywny. Wymagało to zwiększenia możliwości obliczeniowych, aby mogły na bieżąco reagować, oraz rozwinięcia (ponownie!) odpowiednich urządzeń wejściowych. Ale istotne też było wprowadzenie idei obiektów do programowania oraz przede wszystkim stworzenie odpowiedniego środowiska pracy na poziomie oprogramowania – mowa tu oczywiście o graficznych interfejsach użytkownika i „metaforze biurkowej”, które czynią komputer bliższy użytkownikowi i umożliwiają tym samym bardziej efektywne wykorzystanie jego możliwości. W efekcie powstały komputery przyjazne dla człowieka – takie, jakimi obserwujemy je dzisiaj. Bibliografia 1. CAD Systems. Proceedings of the IFIP Working Conference on Computer-Aided Design Systems North-Holland Publishing Company, 1977 2. http://en.wikipedia.org, hasła CAD, Numerical Control, Computer Numerical Control Sketchpad, GUI History 3. http://mbinfo.mbdesign.net/CAD-History.htm autorstwa Mariana Bozdoca