Piotr Knyziak p.knyziak@il.pw.edu.pl Porównanie najważniejszych kerneli rynku CAD/CAM/CAE. W poprzednim artykule o jądrach modelowania geometrycznego przedstawiłem dwa czołowe kernele ACIS i Parasolid. Teraz czas na próbę porównania. Przedstawiam te elementy, które są najważniejsze dla użytkownika końcowego aplikacji czyli inżyniera, architekta, instalatora i innych, którzy na co dzień pracują wykorzystując aplikacje CAD. Kernel jest sercem aplikacji, napędzającym ją silnikiem, ponieważ w nim tkwią procedury tworzące, modyfikujące i przetwarzające dane projektowe. Wspólny element bazowy w aplikacjach pozwala na łatwą wymianę danych bazujących na jednym formacie plików a dopracowane algorytmy są gwarancją stabilności i szerokich możliwości dla aplikacji. Kernele dostarczane są przez producentów w postaci bibliotek procedur, które mogą być stosowane w systemach CAD/CAM/CAE i innych specjalistycznych aplikacjach wymagajacych zaawansowanych możliwości modelowania bryłowego. Dopiero dodanie do kernela interfejsu użytkownika tworzy z niego program użytkowy. Udział w rynku Rynek jąder modelowania geometrycznego praktycznie został podzielony pomiędzy Parasolid i ACIS. Parasolid wykorzystywany jest w większej liczbie aplikacji (ponad 0.7mln aktywnych użytkowników i ponad 240 aplikacji), natomiast ACIS ma więcej użytkowników końcowych (ponad 1.8 mln użytkowników i ponad 220 aplikacji). Ostatnie doniesienia o nawiązaniu współpracy w zakresie wymiany danych pomiędzy obydwoma kernelami dają podstawę aby sądzić, iż zachowają one swe czołowe pozycje na rynku. Dokładność Dokładność to inaczej rozdzielczość modelera, określa ona najmniejszą i największą odległość jaka może zostać przedstawiona. Zarówno Parasolid jak i ACIS stosują jednostki bezwymiarowe tzn. jedna jednostka programu może odpowiadać dowolnej, przyjętej przez użytkownika inżynierskiej jednostce długości. Jako taką jednostkę można przyjąć 1 metr lub 1 milimetr lub jakąkolwiek inną jednostkę. Takie założenie pozwala następnie na kreślenie z określoną dokładnością. W przypadku jądra ACIS jest to domyślnie rozpiętość od 10-6 do 10 4 a dla jądra Parasolid od 10-8 do 10 3. Ma to jednak wpływ na dalsze możliwości kreślenia. W zależności od przyjętej jednostki bazowej można będzie narysować obiekty różnej wielkości i szczegółowości. Porównanie dla obu jąder zawiera tabela poniżej. 1
Jednostka ACIS Parasolid bazowa min max min max 1 m 10-6 m 10 4 m 10-8 m 10 3 m 1 cm 10-8 m 10 2 m 10-10 m 10 m 1 mm 10-9 m 10 m 10-11 m 1 m Z powyższego wynika, iż przyjęcie za jednostkę podstawową 1 metra rozwiązuje problem dokładności w przeważającej ilości przypadków. Wiele aplikacji bazujących na tych jądrach próbuje radzić sobie z tymi ograniczeniami przy kreśleniu obiektów 2D np. tworzą tzw. linie o zerowej długości jeśli podany zostanie zbyt mały wymiar odcinka, lecz znacznie gorzej jest dla elementów 3D. Można tworzyć obiekty z krawędziami o minimalnej dopuszczalnej długości ale z ich renderingiem a nawet ukrywaniem niewidocznych krawędzi jest znacznie gorzej. Na przykładowych rysunkach widać, iż dla obiektów o krótkich krawędziach ( wymiary zbliżone do minimalnych możliwych do narysowania), ukrywanie krawędzi niewidocznych nie jest zbyt dokładne pozostają elementy linii przy narożach (nie wychwycone przez algorytm ukrywania). Problem ten dotyczy obydwu modelerów ale należy zaznaczyć, iż w normalnej pracy programów raczej nie powinien być zauważalny (należy w projekcie mieć obok naprawdę olbrzymich elementów również bardzo małe) ACIS Parasolid Dla obydwu kerneli wartości domyślne nie są jednak sztywnymi ograniczeniami. Twórcy aplikacji bazujących na tych jądrach mają możliwość zmiany domyślnych wartości tolerancji, jest to jednak odradzane. 2
Tolerancje przy modelowaniu. Oba kernele zawierają w sobie odpowiednie funkcje niezbędne do naprawiania błędów i niedokładności. ACIS wykorzystuje do tego celu technologie, które nazywa tolerant hot i healing husk a Parasolid zawiera Tolerant Modeling. Niedokładności powstają głównie podczas wymiany danych pomiędzy aplikacjami bazującymi na różnych jądrach. Zdarza się, iż nie wszystkie funkcje mają swoje odpowiedniki w drugim kernelu i wtedy pojawia się konieczność zastąpienia oryginalnych obiektów ich przybliżeniem co przy kilkukrotnym przekazywaniu danych w trakcie procesu inwestycyjnego owocuje różnego typu nieprawidłowościami: szczelinami, nieciągłościami, błędami w topologii, niedopasowaniem elementów. Dla wielu użytkowników drobne niedociągnięcia nie mają wpływu na wartość ostatecznego efektu, którym może być rendering lub dokumentacja techniczna, akceptują ich istnienie. Inni użytkownicy mają jednak większe wymagania. Ich modele nie mogą zawierać żadnych szczelin lub niedopasowań. Błędy i niedokładności są naprawiane w większości kerneli w dwu procesach. Pierwszy z nich nazywany healing jest procesem redefiniowania modelu po translacjach między formatami. Ma on na celu zapewnienie ciągłości i szczelności ale pozwala pozbyć się zazwyczaj tylko części błędów z modelu. Dlatego potrzebny jest drugi proces nazywany tolerant modeling, który ciągle monitoruje wykonywane operacje i pozwala właściwie interpretować pozostałe błędy modelu. Oba procesy dopełniają się i pozwalają na automatyczne pozbycie się problemów z błędami. Aplikacje. Stworzenie aplikacji bazującej na komercyjnym kernelu jest zadaniem stosunkowo prostym i pozwala w minimalnym czasie uzyskać gotowy produkt. Podstawą jest stworzenie poprawnego interfejsu: menu rozwijalnych, pasków narzędzi, okien dialogowych, pomocy rysunkowych itp. Jednak na tym nie koniec. Mimo bardzo wielu funkcji zaimplementowanych w kernelach programiści tworzący aplikację często dodają własne procedury. Pozwala to zaspokoić wszelkie potrzeby użytkowników (gdy tworzy się aplikację dla własnej firmy) lub wyodrębnić swój produkt z pośród innych, pokazać iż jest lepszy a w każdym razie inny. Architektura łącząca kernel z aplikacją z zasady jest podobna dla większości rozwiązań. 3
Aplikacje bazujące na dwu kernelach. Okazuje się, że niektórzy developerzy postawili na pełną możliwość wymiany danych i dlatego oparli swoje aplikacje na obu kernelach. Przykładem może być IronCAD. Pracuje on jednocześnie na dwóch jądrach graficznych Parasolid i ACIS. Użytkownik może wybrać dla każdej części z osobna standard opisu, ponadto importowane bryły nie muszą być konwertowane. Ma on możliwość eksportu danych 3D w formatach: IGES, ACIS ver 1.5-5.0,Parasolid ver 7.0-11.0, STEP, 3D Studio, DXF, OBJ, POV, RAW, STL i VRML. Istnieje możliwość importu danych 3D w formatach: IGES, ACIS ver 1.5-5.0,Parasolid ver 7.0-11.0, STEP, 3D Studio, Romulus, TriModel, TrueSpace, Wavefront, Pro/ENGINEER, DXF, OBJ, POV, RAW, STL i VRML. Pozostałe standardy wymiany danych to: 3DS, AVI, BMP, COB, DXF, DWG, EPS, GIF, JPEG, Kodak Photo CD, OBJ, POV, PCX, PNG, TGA, TIFF, Visual Basic Text, WMF. Dla współpracy z siecią internet i skojarzonymi z nią aplikacjami istnieje możliwość importu i eksportu danych w formacie VRML 2.0. Architektura rdzenia Parasolid umożliwia współdziałanie modułów i wymianę danych bez potrzeby ich translacji. Podsumowanie. Czołowe kernele rozwijane są już od dłuższego czasu. Został on wykorzystany na wybranie i zaimplementowanie najlepszych algorytmów matematycznych i optymalizację zarówno poszczególnych procedur jak i jąder jako całości. Obecnie kernele stają się coraz łatwiejsze w użyciu i dodawane są do nich coraz to nowe funkcje, szczególnie jeśli idzie o wizualizację, pracę grupową (z wykorzystaniem Internetu) oraz e-commerce. Możliwości kerneli są podobne a różnice dla ostatecznego użytkownika raczej niezauważalne. Jedyny mankament stanowi jeszcze niedostateczne dobra wymiana danych projektowych pomiędzy samymi kernelami. Są jednak podstawy aby sądzić, iż w tym względzie nastąpi poprawa. Tak naprawdę różnią się między sobą aplikacje bazujące na poszczególnych jądrach. Jedne są bardziej intuicyjne w użytkowaniu inne mają dodatkowe funkcje. Każdy chwali swój produkt uważając, iż jest najlepszy. Ostatecznie jednak my, ostateczni użytkownicy bardziej zwracamy uwagę na to jakiej aplikacji, formatu zapisu (a zarazem kernela) używają nasi kooperanci niż zastanawiamy się nad cechami wyróżniającymi poszczególne produkty. 4
Typy kerneli modelowania geometrycznego [RAMKA] Kernele znajdujące się na rynku można podzielić przyjmując za kryterium sposób w jaki są udostępniane. Pierwszą a zarazem najsilniejszą grupę stanowią kernele licencjonowane. Tworzone są przez jedną firmę, która następnie udziela licencji innym firmom na jego wykorzystanie w aplikacjach CAD. Podstawową ich zaletą jest wspólny, bazowy format danych wprowadzający zgodność pomiędzy aplikacjami różnych firm. Drugą grupę stanowią kernele własne. Tworzone są i wykorzystywane w aplikacjach przez tą samą firmę. Pozwala to na głębszą integrację kernela z interfejsem użytkownika oraz daje większą kontrolę nad operacjami. Ostatnią grupę tworzą kernele open source. Są one podobne do licencjonowanych. Istotną różnicą jest to, iż razem z kernelem udostępniany jest jego kod źródłowy. Kernel Obecna Ostatnia Firma Strona WWW Typ kernela wersja aktualizacja ACIS 3D Toolkit 6.3 26.02.2001 Spatial/ Dassault Systemes www.spatial.com Licencjonowany Open 3.0 1.01.2001 Matra Datavision www.opencascade.org Open source CASCADE Parasolid 12.1 21.12.2000 UGS Unigraphics www.parasolid.com Licencjonowany SMLib 3.0 15.07.2000 Solid Modeling Solutions www.smlib.com Open source thinkdesign 6.0 21.11.2000 think3 Inc. www.think3.com Własny kernel VX Overdrive 4.0 11.2000 VX Corporation www.varimetrix.com Własny Bibliografia [RAMKA] http://www.spatial.com/ http://www.parasolid.com http://www.cadenceweb.com/1999/0999/sup_heal0999.html http://www.cadenceweb.com/1999/1199/issuefocus1199.html http://www.mmsonline.com/articles/020003.html http://www.spatial.com/catalog/press_room/pr/2001/2/983233406/index.html http://www.cadonline.com/features/0500kernel/index.htm http://www.cadalyst.com/solutions/model/0401model/model.htm 5