CAD cz.1: wspomnienia i podstawy
CAD 1
Spis treści
Wstęp
Zaczynamy pewien przegląd oprogramowania ułatwiającego pracę, nazwijmy ich, projektantom. Tzn. osobom, które coś chcą zaprojektować, a niekoniecznie są inżynierami.
Oczywiście, na naszej stronie nie może się to odbyć bez biadolenia, czy też sentymentalnych wspomnień. Niektórzy nazywają to „kontekstem historycznym”.
Pierwszy komputer dostałem już w , 1986?, jeszcze w szkole podstawowej. Gumowe spektrum.
Wcześniej byłem już dość zapalonym modelarzem kartonowym, nastawionym na tworzenie własnych modeli. Jako fotoamator, byłem wyposażony w powiększalnik (Krokus Mini), więc drobne powtarzalne detale kopiowałem metodą fotograficzną. Kopiarki ksero nie były powszechne. Kopie były drogie. A w komercyjnych punktach ksero zwykle pracowały totalnie zajeżdżone maszyny sprowadzone z zachodnich złomowisk. Także wyposażenie komputera w drukarkę, nawet igłową, stwarzało zupełnie nowe możliwości.
Z perspektywy czasu, Spectrum było bardziej programowalnym kalkulatorem. W programach typu „The Artist” lub później „Art Studio” trudno było narysować coś użytecznego, z punktu widzenia projektowania.
Oczywiście były takie próby. Drukarka do Spectrum nijak nie była dla mnie dostępna, więc pozostawały eksperymenty z fotografowaniem ekranu. Mój telewizor spełniający funkcję monitora, Silelis 401, miał ekran mały, ale za to prawie zupełnie płaski. Z bardzo ostrym obrazem. Jednak były to próby, średnio udane.
O 3D w ogóle nie było mowy. Chyba jedynym programem, czy raczej zabawką, która w ogóle robiła coś w 3D był program VU-3D firmy Psion.
Jednak już jesienią 1989 r. rozpocząłem swoją przygodę z komputerami PC. Jeszcze jako nastolatek uczący się w LO. Mało tego, do dość luksusowego zestawu (EGA, monitor kolorowy, 2xFDD), udało mi się pożyczyć ze szkolnej pracowni komputerowej drukarkę.
Drukarka, Seikosha 1200 S, jak pamiętam, z interfejsem RS-232, w szkole nie bardzo miała z czym współpracować (Timexy i Meritum). Razem z drukarką pobrałem też kabel łączący którąś wersję Meritum z FDD, a w zasadzie wtyczki od niego, co mi potem długo wypominano… Cóż, drukarka potrzebowała kabla szeregowego, który sam wykonałem… Takie życie. Niniejszym pozdrawiam pana K. K. od informatyki i fizyki zarazem :)
Ale do skorzystania z takiego zestawu było potrzebne oprogramowanie.
AutoCAD cz. 1
Ówczesna prasa komputerowa raczej skupiała się właśnie na AutoCADzie. A w zasadzie bardziej na zdjęciach ekranu z demonstracyjnym rysunkiem promu kosmicznego. Chyba żadne, z dostępnych w kioskach czasopism, nie podjęło na poważnie tematu wprowadzenia do tego programu. Dużym nakładem sił i środków nawet go zdobyłem… ale nie udało mi się go uruchomić…
AutoCAD do pracy wymagał koprocesora matematycznego, a ja go nie miałem. Moja znajomość angielskiego była krytycznie mała, a w polskiej prasie komputerowej jakoś nie doczytałem, a może nikt nie napisał, że koprocesor można emulować programowo.
Tak. Co prawda zastępowanie koprocesora emulatorem powodowało, że walory użytkowe oprogramowania drastycznie spadały (koprocesor przyspieszał działanie funkcji obliczeniowych nawet ponad 20 krotnie). Ale jak się nie ma co się lubi, to się lubi co się ma.
Problem musiał być rozwiązany (tzn. ambicja musiała być zaspokojona) przy użyciu innego programu.
ProDesign 2
W roku 1990 wybór nie był duży.
Co prawda w roku 1987, w 3 zeszycie Mikroklanu opisano program „Caddy”, jako najprostszy system CAD, jednak nie był on dostępny ani legalnie, ani na giełdzie.
Na giełdzie, oprócz AutoCADa dostępny był za to program ProDesign2. Aktualnie nikt o nim nie pamięta, a większość ludzi nawet nie słyszała. Ale w tamtych czasach to był strzał w dziesiątkę.
To był dość dobry, DOSowy, program CAD 2D. Tzn. zamieniał komputer w deskę kreślarską i umożliwiał sprawne tworzenie rysunków dwuwymiarowych. Wektorowych.
Posiadał podstawowe funkcje graficzne (rysowanie linii, łuków itd.), a także opcje konstrukcyjne (czyli np. rysowanie linii równoległych, prostopadłych, pod zadanym kątem, stycznych, przecinających się itd.). Rysunki dawało się również łatwo modyfikować, linie skracać i przedłużać, zmieniać grubość, rodzaj…
Obecnie to standard, ale jak ktoś się przesiadał z linijki i ekierki, to było prawdziwe odkrycie.
Dzięki narzędziu do eksportu i importu plików DXF, rysunki dawało się też wymieniać z AutoCADem.
Ale to nie wszystko. Program potrafił również drukować rysunki. W podanych rozmiarach (także 1:1) i w dobrych proporcjach. Jakość zależała od cierpliwości. Przy szybkim wydruku rysunki były szare i kanciaste, ale przy wydruku w trybie „fine”… wydruki nie ustępowały tym, wykonanym przez profesjonalnego kreślarza.
W trybie „fine” można było uzyskać absolutnie nienaganny wydruk rysunku technicznego nawet na najprostszej drukarce 9-cio igłowej. Cała tajemnica polegała na mikro-przesunięciach głowicy (a na „IBM Graphics printer” było ich do dyspozycji co najmniej 4 różne, jak pamiętam). Każda linijka była drukowana wielokrotnie, przesunięta o trudno dostrzegalny kawałeczek za każdym razem. Miało to swoją cenę. Wydrukowanie kartki A4 z taką jakością, zależnie od stopnia komplikacji rysunku, zajmowało od 20 do 40 minut (PC XT 10MHz).
Z tym programem zaprzyjaźniłem się na dobrych parę lat.
W tym miejscu można jeszcze zrobić dygresję na temat drukarek igłowych. W latach ‘80, w systemie MS-DOS, kosztem czasu drukowania, programiści wyciskali z tych maszyn bardzo dużo.
Można wspomnieć np. o programie Pizazz+. To był program głównie służący do drukowania plików graficznych, znaczy obrazków. Dysponował sporą ilością formatów wejściowych. Potrafił również pracować jako program rezydentny, wywoływany z tła kombinacją klawiszy, i w tym trybie umożliwiał pobieranie i drukowania kopii ekranu (tzn. screenshotów).
Pizazz+, kosztem, jak pamiętam, 8-mio krotnego drukowania każdej linii, potrafił uzyskać na czarno-białej drukarce 9-cio igłowej co najmniej 6 odcieni szarości. Tak, że wydruki czarno-białe, niewiele różniły się jakościowo od zdjęć zamieszczanych w parsie. A porównując do popularnych dzienników były po prostu lepsze. Jednak wydrukowanie zdjęcia w najwyższej jakości na połowie formatu A4 (czyli A5 poziomo), zajmowało ponad 2 godziny (i 2x dłużej na całym formacie A4).
Na tym tle trudno było ukrywać rozczarowanie złą, zupełnie podstawową jakością wydruków grafiki na drukarkach igłowych w pierwszych wersjach MS Windows (2.x i 3.x)...
AutoCAD cz. 2
Wprowadzenie
Do AutoCADa wróciłem parę lat później. A w zasadzie zostałem do tego zmuszony. Tzn. nauka obsługi tego programu była obowiązkowa na pierwszym roku większości uczelni technicznych. Wydaje mi się, że początkowo poznałem wersję 8, a potem 10 (a może 10 i 12? już nie pamiętam).
Jednak powrót do AutoCADa odbywał się to bardziej cywilizowanie, niż w pierwszym podejściu.
Do nauki mieliśmy na wydziale SiMR PW do dyspozycji komputery 386SX 16MHz, z koprocesorami, z SVGA (800x600), i ogromnymi, 19” monitorami (pamiętam, zestawy miały logo „ProSystem”). Do tego całe 4MB pamięci. To był już rok 1993, ale uwierzcie mi, to był nadal luksusowy zestaw. Co prawda w domu miałem już 286 12MHz (bez koprocesora), ale na rynku, wśród studentów, nadal królowały Xtki z Herculesami. 386DX kupiłem dopiero rok później, a na monitor kolorowy VGA to oszczędzałem jeszcze ze dwa lata :D
Tak, wiem, w tym samym roku 1993, na rynku pokazał się pierwszy Doom, dla którego 386DX 33MHz było minimalnym wymaganiem, ale w Polsce, dla przeciętnego studenta, a nawet inżyniera, taka konfiguracja była po prostu kosmiczna.
Wracając do tematu, cywilizowany był nie tylko sprzęt, ale również wykładowcy (pozdrawiam panów J. B. i S. S.) i sposób oraz dogłębność przekazania wiedzy.
Wnętrzności
Niestety. Należy zacząć, od „bebechów” systemu.
A więc. System CAD składa się przede wszystkim z bazy danych. Ta baza danych zawiera informacje o „obiektach”. Te obiekty, to linie, łuki, punkty, okręgi itd., a w wersji 3D także podstawowe bryły (o 3D później, powiem kiedy). Te obiekty często są określane angielskim słowem „entity”.
Tutaj dygresja, że niepoprawnie używam słowa „obiekt”. W programowaniu, czy też informatyce, oznacza ono zupełnie coś innego. Robię to, aby opis był bardziej zrozumiały dla nie-programistów. Mógłbym używać zamiast słowa „obiekt” np. zlepku słów „element rysunkowy”, ale za chwilę, przy grafice 3D, wpadlibyśmy w kolejną pułapkę nieprecyzyjności języka opisu, gdzie „element rysunku” to już nie jest linia, łuk itp., ale najczęściej cała bryła...
Do bazy danych jest dołączony zestaw narzędzi umożliwiających tworzenie, modyfikację lub interakcję pomiędzy tymi obiektami. Można je też grupować lub tworzyć między nimi więzy i zależności.
Podstawowym sposobem interakcji z systemem jest wiersz poleceń(!). Część popularnych funkcji jest dostępna z menu (cokolwiek to oznacza) dostępnego gdzieś dookoła graficznego podglądu naszej kreacji lub rysunku.
Taka architektura systemu CAD, implementowana na różnorakie sposoby, była stosowana co najmniej od lat 60-tych XX w. i jest stosowana do dziś. Będziemy o tym pisać w kolejnych częściach niniejszego cyklu.
Implementacja
Zgodnie z poprzednim podrozdziałem, w AutoCADzie komendy wydawało się w wierszu poleceń umieszczonym na dole ekranu. Najpopularniejsze komendy dostępne były również w górnym menu (głównie systemowe) i na bocznym pasku (głównie rysunkowe).
Jednak pozycje wybierane z menu były raczej skrótami do uproszczonych wersji poleceń. Aby uzyskać dostęp do wszystkich komend i ich opcji trzeba było się zaprzyjaźnić z wierszem poleceń. Umożliwiał on bardziej precyzyjne i powtarzalne wykonywanie skomplikowanych operacji.
Wiersz poleceń ówczesnych wersji AutoCADa tak naprawdę był wierszem poleceń specjalizowanego interpretera języka LISP, a baza danych obiektów („entity”), ustrukturyzowaną listą owych obiektów. Dlatego listą, że w języku LISP nie było „tabel”, tylko „listy”.
Każde polecenie w systemie AutoCAD było funkcją napisaną w języku LISP.
Umożliwiało to oczywiście tworzenie przez użytkowników własnych funkcji, wykorzystujących funkcje już zdefiniowane zarówno przez autorów systemu jak i przez użytkownika.
Dzięki temu uzyskano bardzo wysoką elastyczność systemu CAD. Umożliwiającą pisanie całych specjalizowanych aplikacji w tym środowisku.
Podobne rozwiązania były standardem np. w systemach CAD na Unixowych stacjach roboczych. Ale w świecie PCtów nie było to normą i dawało sporą przewagę nad konkurencją.
Wykorzystanie wiersza poleceń nie przeszkadzało również w interakcyjności pracy z AutoCADem.
Po prostu takie pojęcie jak „interakcyjność” w zasadzie nie istniało. Nawet na poważniejszych komputerach niż miałem do dyspozycji w 1993 r., przerysowanie (odtwarzanie) skomplikowanego rysunku na ekranie zajmowało sekundy, a nawet dziesiątki sekund. Polecenia wydawało się ostrożnie i po głębokim przemyśleniu jaki będą miały skutek. Co z tego, że niefortunne polecenie można było cofnąć, kiedy zajmowało to czasem parę minut.
Do dziś pamiętam, że nieprawidłowe zaokrąglenie ostrych krawędzi we współcześnie nie-bardzo skomplikowanej bryle 3D (coś na kształt karbowanej butelki od wody mineralnej) trwało ponad 5 minut, a cofnięcie tej operacji niewiele krócej…
Pomijając same obliczenia 3D, trzeba pamiętać, że dostępne komputery nie miały żadnej akceleracji sprzętowej tworzenia grafiki. Pozycja każdego pojedynczego piksela z którego składały się linie, łuki itd. musiała być wyliczona przez oprogramowanie „na piechotę”. Np. odtworzenie na ekranie całego demonstracyjnego rysunku rzutu piętra projektu budynku zajmowało około minuty…
Podsumowanie
Proste systemy CAD, jak np. ProDesign 2, przyzwyczajały do pewnej sprawności tworzenia rysunku. Oczywiście, zapewniały tylko grafikę 2D, ale pomimo wszystkich ograniczeń, praca z nimi była po prostu dużo łatwiejsza. Oczywiście nie wszystko dało się w nich osiągnąć. Nie było mowy o tworzeniu własnych funkcji. Jednak AutoCAD był pewnym wyzwaniem. I dla projektanta i dla komputera.
Szczęśliwie technologia szła szybko naprzód i… co się działo dalej zobaczymy w kolejnej części tej serii artykułów.
Tekst i zdjęcia: Szymon Dowkontt