FreeCAD 1.0 – długo oczekiwana rewolucja w darmowym środowisku CAD
Użytkownicy programu FreeCAD (najlepszego w pełni darmowego środowiska CAD) długo czekali na zapowiadaną od lat rewolucję w postaci „naprawienia” (przynajmniej w większości, więcej o tym w kolejnym akapicie) problemu gubienia odniesień, uważanego za najgorszą przypadłość tego środowiska. W końcu nadszedł czas na te zmiany, ale na tym nie skończyła się rewolucja – udało się bowiem osiągnąć znacznie więcej celów. To jednak złagodzenie problemu gubienia odniesień było głównym kamieniem milowym w rozwoju programu. Drugi taki od dawna planowany cel stanowiło utworzenie oficjalnego modułu do złożeń. Bardzo ważne było też przebudowanie systemu obsługi materiałów.
Osiągnięcie tych zamierzeń, wraz z wieloma innymi zmianami na szeroką skalę, o których będzie mowa w dalszej części artykułu, sprawiło, że zamiast wersji 0.22, wypuszczony został FreeCAD 1.0. Z tej okazji zmieniono nawet logo. Premiera tej stabilnej wersji programu miała miejsce 18.11.2024 r.
Pełna lista zmian znajduje się na stronie Informacje o wydaniu 1.0. Nowości jest wyjątkowo dużo i obejmują bardzo szeroki zakres. Nie sposób wymienić je tu wszystkie, więc ten artykuł ma na celu przedstawienie tylko najważniejszych z nich.
Znaczne złagodzenie problemu gubienia odniesień
Za największą zmianę uważa się znaczne złagodzenie problemu gubienia odniesień – topological naming problem (TNP). W skrócie, polega on na nieprawidłowym przebudowywaniu modeli po wprowadzeniu istotnych zmian w pośrednich operacjach. Wynika ze zmiany wewnętrznych nazw cech geometrii. Łatwo można było wykazać występowanie tego problemu budując trzy proste wyciągnięcia jedno na drugim. Po znacznej zmianie środkowego, górne nie mogło zostać prawidłowo przebudowane. Użytkownikom programu zaleca się unikanie tworzenia szkiców na istniejącej geometrii i korzystania z odniesień do niej, co jest również dobrą praktyką w komercyjnych programach CAD i w nich także ten problem występuje w pewnym zakresie, ale we FreeCAD był on szczególnie poważny i częsty.
Od dłuższego czasu istnieje alternatywna wersja programu – tzw. Link Branch, autorstwa dewelopera o pseudonimie Realthunder, w której ten problem jest w większości rozwiązany. Długo przymierzano się do zaimplementowania tej poprawki w oficjalnej wersji. Było to duże, wieloetapowe przedsięwzięcie, ale w końcu grupa deweloperów je ukończyła i 21 maja 2024 r. aktywowano kod łagodzący problem. Jego działanie w dużym uproszczeniu polega na tym, że każdej modyfikacji w drzewie modelu towarzyszy sprawdzenie zmian nazw elementów geometrii i aktualizacja kolejnych operacji żeby uwzględnić te zmiany. Należy przy tym podkreślić, że problem nie jest całkowicie wyeliminowany, ponieważ, jak wspomniano wyżej, nawet w komercyjnych środowiskach może być nieunikniony w niektórych sytuacjach.
Nadal mogą też występować szczególne przypadki gdzie problem jest obserwowany w pewnym zakresie (zwłaszcza z zaokrągleniami i sfazowaniami, które same w sobie są jedną z najsłabszych stron silnika CAD, z którego korzysta FreeCAD) a niektóre moduły, jak TechDraw, mogą wymagać odrębnych zmian. Dlatego też nazywanie tego kodu naprawą problemu TNP jest jedynie uproszczeniem, tak naprawdę powinno się mówić o (znacznym) złagodzeniu tego problemu. Wciąż więc zaleca się ostrożne korzystanie z odniesień do istniejącej geometrii i zgłaszanie wszelkich napotkanych błędów, nie tylko w tym zakresie. Program nie zawsze jest w stanie zidentyfikować zmienione elementy geometrii, ale trwają prace nad dalszymi ulepszeniami w tym zakresie i kolejne wydania powinny działać jeszcze lepiej. Na tę chwilę, skuteczność algorytmu w założeniach ma odpowiadać wersji Link, ale oczywiście mogą się zdarzać rozbieżności.
Wbudowany moduł do złożeń
Jedną z największych brakujących funkcji programu FreeCAD była od zawsze wbudowana obsługa złożeń. Konieczne było korzystanie z jednego z kilku zewnętrznych modułów tego typu dostępnych do pobrania przy pomocy Menedżera dodatków. W końcu jednak, dzięki firmie Ondsel, powstał nowy solver do złożeń i utworzono moduł z niego korzystający, który stał się oficjalnym, wbudowanym środowiskiem do pracy na złożeniach.
Zostało ono zaimplementowane stosunkowo niedawno, więc nie jest jeszcze kompletne, ale ma już wiele istotnych funkcji, takich jak różne rodzaje połączeń (tzw. joints), widoki rozstrzelone czy lista materiałowa (BOM). Oczywiście zewnętrzne środowiska do pracy na złożeniach są nadal dostępne i pod pewnymi względami bardziej rozbudowane/niezawodne, ze względu na ich znacznie dłuższy rozwój. Jednak z czasem wiele z tych różnic powinno się zatrzeć.
Przebudowana obsługa materiałów
Bardzo istotną z punktu widzenia dalszego rozwoju programu FreeCAD zmianą było całkowite przebudowanie systemu obsługi materiałów, wraz z ich edytorem. Dodano również podgląd tego jak wygląda dany materiał i wsparcie dla właściwości modeli. Planowane są dalsze prace w tym zakresie, między innymi: automatyczne obliczanie i wyświetlanie masy modeli, przypisywanie materiałów ortotropowych, nakładanie tekstur, wyświetlanie informacji o materiałach w drzewie dla modułu Part Design, zwiększenie wygody obsługi edytora materiałów i interfejs bazy materiałów dla łatwiejszego ich udostępniania.
Fundamenty pod to zostały już jednak położone i obsługa materiałów we FreeCAD stała się znacznie bardziej zaawansowana. Wcześniej była to jedna ze słabych stron programu, którą od dłuższego czasu planowano ulepszyć.
Rewolucja w szkicowniku
Największe zmiany spośród wszystkich istniejących modułów programu FreeCAD spotkały szkicownik. Jest to głównie zasługa jednego z nowych deweloperów, twórcy modułu do złożeń.
Po pierwsze, wprowadzone zostało niezwykle wygodne, uniwersalne, kontekstowe narzędzie do wymiarowania, które z łatwością może zastąpić wszystkie dotychczasowe narzędzia tego typu i stały się one zbędne w większości przypadków – stąd domyślnie są pogrupowane pod nim. Zmieniono także sposób tworzenia nowej geometrii w szkicowniku – dzięki domyślnie aktywnej funkcji On-View-Parameters, większość narzędzi do szkicowania posiada pola wyświetlane w przestrzeni roboczej, w których można wprowadzać wymiary w trakcie rysowania i zostaną one od razu nałożone jako wiązania wymiarowe na geometrię. Ponadto, wiele narzędzi zyskało dodatkowe tryby i ustawienia w panelu zadań.
W szkicowniku pojawiły się w końcu prawie wszystkie najważniejsze brakujące narzędzia. Jednym z najbardziej oczekiwanych było odsunięcie (offset). Dodano też nowe tryby do prostokątów, szczeliny po łuku, sfazowania (wcześniej dostępne były tylko zaokrąglenia), skalowanie geometrii i szyki kołowe. Kilka narzędzi do przesunięć/kopii liniowych zastąpiono jednym narzędziem do szyków prostokątnych. Funkcja tworzenia odbić lustrzanych również została usprawniona.
Ulepszenia w szkicowniku obejmują też wsparcie dla kopiowania, wycinania i wklejania przy pomocy standardowych skrótów klawiszowych, automatyczne wiązanie pionowe/poziome, opcjonalnie ujednolicone wiązanie zbieżności i przynależności punktu do krawędzi, automatyczne tworzenie wiązań symetrii przy użyciu przyciągania do punktu środkowego linii, przycinanie poprzez przeciąganie kursora, wymiary długości łuku oraz lepsze wyświetlanie wymiarów kątowych i na łukach. Kolory punktów w szkicowniku oznaczają teraz typ punktu, styl linii można dostosować (konstrukcyjne są liniami przerywanymi) a inny deweloper wprowadził wsparcie dla styczności do splajnów.
Nowości w module MES
Drugim modułem, w którym zaszły największe zmiany jest środowisko do analiz MES. Rozwiązano ponad 80 problemów – błędów i braków w narzędziach. Rozszerzono szczególnie wsparcie dla funkcji solvera CalculiX. Wśród nowości należy podkreślić dodanie symetrii cyklicznej, definiowanej przy pomocy więzów tie i pozwalającej analizować powtarzalny sektor modelu wykazującego ten typ symetrii. Jest to często wykorzystywane w przypadku dysków, wirników, wałów i innych części tego typu.
Wprowadzono również analizy 2D (płaskiego stanu naprężeń/odkształceń i osiowosymetryczne) aktywowane poprzez parametr Model Space obiektu solvera CalculiX. To kolejny sposób zmniejszenia rozmiaru modelu jeśli zagadnienie da się uprościć do takiego przypadku. Inną kluczową zmianą było wprowadzenie wsparcia dla więzu ciała sztywnego (rigid body constraint) znanego z CalculiX. Wprawdzie nie można go jeszcze używać na całych częściach/objętościach, sprawiając, że staną się idealnie sztywne, ale jest to najlepszy sposób przykładania momentów skręcających, wymuszonych obrotów i sił działających na ramieniu do dowolnych powierzchni. Wcześniej symulowanie skręcania było możliwe praktycznie tylko przy pomocy transformacji do lokalnego cylindrycznego układu współrzędnych, ale dało się to zrobić jedynie dla powierzchni cylindrycznych. Dzięki nowemu więzowi, możliwe jest symulowanie skręcania dowolnego rodzaju części.
Ponadto, znacznie usprawniono więzy tie i kontakt, dodając nowe ustawienia. Umożliwiono korzystanie z elementów belkowych o zredukowanym całkowaniu (konieczne dla przekroju rurowego i do uzyskania dokładnych wyników w analizach z plastycznością) i dodano opcje definiowania częstotliwości zapisu wyników oraz minimalnego i maksymalnego rozmiaru przyrostu czasowego w analizach z solverem CalculiX. Z kolei obciążenie grawitacją zyskało możliwość zmiany wartości przyspieszenia a plastyczność da się definiować ze wzmocnieniem kinematycznym, oprócz izotropowego. Pojawiło się także bardzo proste generowanie elementów prostopadłościennych techniką subdivision oferowaną przez Gmsh.
Szereg zmian obejmuje też analizy termomechaniczne. Nowa właściwość Thermo Mech Type pozwala skorzystać z analiz niesprzężonych tego typu i czysto termicznych. Obciążenie strumieniem ciepła zyskało możliwość definiowania promieniowania powierzchni z otoczeniem. Objętościowe źródło ciepła może być teraz użyte z solverem CalculiX i ma dwa tryby wprowadzania wartości, zaś dostępne wyniki rozszerzono o strumień ciepła.
Mniejsze zmiany obejmują m.in. poprawienie nazewnictwa narzędzi w tym środowisku, które w większości niepotrzebnie korzystały z nazwy „wiązanie” (constraint), usunięcie zbędnych narzędzi z interfejsu, ulepszenie wielu ikon, usprawnienie automatycznego doboru rozmiaru symboli cech analizy i umożliwienie ich ręcznego skalowania, wsparcie dla dodatkowych solverów macierzowych dla CalculiX (mogą wymagać odpowiedniej wersji solvera i dodatkowych bibliotek), korzystanie z komponentów tensora naprężeń w narzędziu do ich linearyzacji oraz nowe właściwości związane z wyświetlaniem siatek. Ulepszono też działanie generatorów siatek, szczególnie problematyczną dotychczas integrację z mesherem Netgen.
Warto również wspomnieć o możliwości wygaszania cech analizy i chowania elementów siatki zaznaczonych wielokątem. Naprawiono też wiele poważnych błędów i źle działających funkcji (np. obciążenie ciśnieniem dla powłok). Pozostało jeszcze dużo pracy, głównie ze względu na inne brakujące opcje (jak zaawansowane modele materiałów) czy ograniczenia postprocessingu, ale praca w module MES jest już znacznie przyjemniejsza.
Usprawnienia w TechDraw
Wiele nowości pojawiło się też w module do rysunków technicznych. Jedną z najbardziej oczekiwanych zmian było wprowadzenie narzędzia do tworzenia widoków przerwania, powszechnie stosowanych dla długich części. Dodano także kontekstowe narzędzie do wymiarowania, oparte o to wprowadzone w szkicowniku. Pojawiło się przyciąganie widoków i wymiarów aby łatwiej je pozycjonować względem siebie.
Dodano wymiary długości łuku, okręgi kosmetyczne, punkty definiowane poprzez odsunięcie i nowe narzędzie do tworzenia widoków, które łączy w sobie cechy aż 6 dostępnych dotychczas osobno funkcji. Usprawniono również zaznaczanie, usuwanie obiektów kosmetycznych i edycję właściwości linii. Pozostałe zmiany obejmują m.in. szablony rysunkowe, ikony i style linii nieciągłych.
Zmiany w Part Design
Główny moduł do modelowania bryłowego – Part Design, zyskał kilka nowych możliwości. Wprowadzono dodatkowe tryby dla wyciągnięcia i wycięcia przez obrót, usprawniono panele zadań wyciągnięcia i wycięcia przez wyciągnięcie, dodano nowe tryby dla szyków i opcję wyciągnięcia do kilku powierzchni.
Pojawiła się możliwość wygaszenia operacji i nowy tryb dla wszystkich szyków oraz odbicia lustrzanego, dzięki któremu transformacji może podlegać cały finalny obiekt a nie tylko kształty wskazanych operacji addytywnych/subtraktywnych. Ponadto, dodano eksperymentalne wsparcie dla wielu brył w ramach jednego obiektu Body (wymaga aktywacji w preferencjach).
Ulepszenia w pozostałych modułach
Wiele innych środowisk zyskało szereg nowych opcji. W module Part pojawiło się narzędzie do skalowania a odbicie lustrzane umożliwia wykorzystywanie dowolnych odniesień jako płaszczyzn symetrii.
Draft ma sporo ulepszeń, w tym zmiany w działaniu płaszczyzny roboczej i jej siatki (teraz chowa się ona automatycznie po opuszczeniu modułu) oraz w preferencjach.
Arch został połączony z dodatkowym środowiskiem BIM tworząc nowy wbudowany moduł BIM. Z kolei Path, służący do generowania ścieżek obrabiarek CNC, przemianowano na CAM dla czytelności. Wprowadzono też nowy, znacznie ulepszony symulator obróbki.
Ogólne zmiany w interfejsie
W nowej wersji programu FreeCAD pojawiło się wiele zmian w interfejsie użytkownika niezależnych od konkretnych modułów. Są one tak liczne, że nawet najważniejsze z nich najlepiej wymienić w punktach:
- wskaźnik środka obrotu,
- proste filtry wyboru (dla wierzchołków, krawędzi i ścian),
- opcjonalne wyświetlanie drzewa modelu i panelu zadań bez tła,
- ustawianie pozycji oświetlenia,
- ulepszony układ okna preferencji i możliwość resetowania ich na różnych poziomach,
- opcjonalna lista modułów w postaci paska z przyciskami,
- nowe narzędzie do pomiarów – zastępuje kilka starych narzędzi tego typu, posiada wiele trybów i działa we wszystkich modułach,
- widok normalny do ściany,
- układ jednostek na poziomie projektu i jednostki z samymi metrami,
- przełączanie przezroczystości,
- lepszy domyślny kolor modeli,
- ikony widoczności,
- zamrażanie obiektów (wyłączanie ich parametrycznego zachowania),
- lepsze wsparcie dla manipulatorów 3D,
- opcja szybkiego pomiaru – wartość dla aktywnego wskazania wyświetla się na pasku statusu,
- ulepszenie wbudowanych motywów – obecnie domyślnie dostępne są 3 – klasyczny, jasny i ciemny,
- poprawa wielu ikon,
- zmiana strony startowej z modułu na aplikację, dodanie przycisków z szablonami i prostego konfiguratora pierwszego uruchomienia,
- tryb bezpieczny wyłączający tymczasowo wszystkie dodatki i konfiguracje użytkownika.
Co dalej?
Jak wynika z powyższego podsumowania nowości, wersja 1.0 programu FreeCAD faktycznie stanowi największą rewolucję w jego współczesnej historii. Liczba zmian i ich zakres są ogromne. W większości zlikwidowano problem gubienia odniesień, wprowadzono moduł do złożeń i nowy system obsługi materiałów. Sposób pracy w szkicowniku zmienił się praktycznie nie do poznania, chociaż wiele z tych zmian można wyłączyć w preferencjach jeśli komuś nie odpowiadają. Moduł MES stał się o wiele bardziej przystępny i niezawodny a inne środowiska oraz cały interfejs zyskały wiele przydatnych opcji.
Ze względu na rozległość zmian, pomimo intensywnej pracy nad naprawą błędów, możliwe jest napotkanie różnych niedociągnięć w działaniu nowych i dotychczasowych funkcji (w tym drugim przypadku głównie ze względu na kod dotyczący TNP i szkicownika). Dlatego też szczególnie istotne dla rozwoju programu jest teraz zgłaszanie wszelkich błędów napotkanych przez użytkowników na forum (w razie potrzeby skonsultowania problemu) lub bezpośrednio w repozytorium GitHub (w przypadku oczywistych błędów, które nie zostały jeszcze zgłoszone). Kolejna wersja z poprawkami błędów prawdopodobnie zostanie wydana szybciej niż zwykle.
Intensywne prace nad programem będą dalej trwały. Planowane jest m.in. usprawnienie i unowocześnienie interfejsu graficznego, które rozpoczęło się już w tej wersji, zwiększenie jego intuicyjności (między innymi poprzez redukcję nadmiarowości narzędzi i środowisk) oraz uzupełnienie dostępnych funkcji o brakujące możliwości znane z innych programów CAD i będące standardami w branży.
Wśród trwających już prac warto wymienić chociażby znaczne ulepszenie geometrii konstrukcyjnych i uniezależnienie ich od modułu Part Design, usprawnienia manipulatora do przesuwania/obracania obiektów, wprowadzenie półprzezroczystych wizualizacji operacji 3D, łatwiejsze korzystanie z rzutowanej geometrii w szkicowniku czy rozbudowanie renderowania o cienie i okluzję otoczenia. Nadal też oferowane są granty na rozwój tego oprogramowania, planowane są nowe wydarzenia i dołączają kolejni ochotnicy pomagający z różnymi aspektami.
Warto przy tym podkreślić, że wprowadzanie drobnych poprawek nie wymaga dogłębnej znajomości kodu źródłowego a też może być cenne. Wielu doświadczonych deweloperów służy swoją pomocą. Dzięki temu autorowi artykułu udało się wziąć udział w rozwoju modułu MES. Pozostaje zachęcić czytelników do zainteresowania się programem, możliwie również od strony deweloperskiej.