FreeCAD – w pełni darmowa alternatywa dla komercyjnych programów do projektowania
Programy CAD stanowią podstawę współczesnego procesu projektowania w każdej dziedzinie inżynierii. Narzędzia te zwykle oferują też znacznie więcej niż samo modelowanie 3D – pozwalają generować ścieżki dla maszyn CNC, analizować kinematykę złożeń czy przeprowadzać proste symulacje numeryczne.
Obecnie na rynku dostępnych jest wiele programów tego typu. Pojawia się jednak problem związany z kwestią ich dostępności. Licencje stają się czasowe, koszty subskrypcji rosną a wersje darmowe do ograniczonych zastosowań są wycofywane. To, w połączeniu z faktem, iż coraz więcej niewielkich firm, freelancerów, hobbystów i studentów poszukuje rozwiązań bezpłatnych lub niskokosztowych, stanowi pole do rozwoju dla niezależnych programów o korzystnym licencjonowaniu. Niestety, szukając środowiska CAD 3D całkowicie darmowego do wszystkich zastosowań trafimy na tylko jedno warte uwagi rozwiązanie – FreeCAD. Jest to program typu open-source, czyli z otwartym kodem źródłowym, który przez lata od powstania (w 2002 r.) pozostawał w dużej mierze niezauważony. Do dzisiaj wiele osób uważa to środowisko za nieintuicyjne, trudne do opanowania i nienadające się do codziennej pracy. Jak jest w rzeczywistości? W tym artykule, przygotowanym przy okazji wydania nowej wersji FreeCAD 0.20 (które nastąpiło 14.06.2022 r.), postaram się odpowiedzieć na to pytanie.
Co potrafi FreeCAD i jakie są jego słabe strony?
FreeCAD nie jest oczywiście pozbawiony wad, jak każde oprogramowanie, szczególnie z grupy open-source. Jego szybki rozwój i ogromny wkład coraz większej społeczności sprawiają jednak, że program ten jest obecnie wart uwagi i nadaje się do bardzo wielu zastosowań. Śledząc dyskusje na forum programu, nietrudno zauważyć, iż FreeCAD jest bardzo często wykorzystywany do przygotowywania modeli do powszechnego już obecnie druku 3D. Nie jest to jednak jedyne zastosowanie tego środowiska. Nadaje się on bowiem również do celów bardziej komercyjnych lub związanych z projektami naukowymi. Nie sposób tu wymienić wszystkie interesujące przykłady użycia FreeCAD’a, o których mowa na jego forum, ale warto wspomnieć chociażby o narzędziu opracowanym przez jedno z najważniejszych światowych laboratoriów naukowych – Oak Ridge National Laboratory, gdzie powstał pierwszy w historii reaktor jądrowy przeznaczony do ciągłej pracy i odgrywający kluczową rolę w opracowaniu bomby atomowej. Oprogramowanie to nazywa się HEAT, jest również typu open-source, służy do obliczeń termicznych komponentów reaktorów tokamak i wykorzystuje FreeCAD do przygotowania geometrii.
Wracając jednak do bardziej standardowych zastosowań, FreeCAD posiada obecnie kilka wbudowanych modułów służących nie tylko do modelowania 3D, ale także analiz MES czy projektowania ścieżek dla obrabiarek. Moduły te zostaną bliżej przedstawione w dalszej części artykułu. Przechodząc do konkretnego opisu możliwości programu, należy pamiętać, iż jest on nadal intensywnie rozwijany i nie posiada jeszcze wszystkich funkcjonalności znanych z komercyjnych środowisk. Dla praktycznie wszystkich braków istnieją jednak obejścia. Zostały one niedawno spisane na stronie Workarounds w dokumentacji wiki programu. Braki te dotyczą głównie niektórych funkcji szkicownika (nie ma w nim m.in. szyku kołowego, sfazowań czy odsunięć) oraz w mniejszym stopniu operacji służących do modelowania 3D (brak narzędzi do tworzenia żeber czy gwintów kosmetycznych). Trwają jednak prace nad znacznym ulepszeniem szkicownika i wszystkie wymienione narzędzia (oraz wiele innych) powinny zostać do niego dodane w przyszłości. Do tego czasu wystarczy korzystać ze wspomnianych wcześniej obejść.
Innym problemem FreeCAD’a jest fakt, iż niektóre z istniejących narzędzi nie zawsze działają prawidłowo i mają nieco ograniczone możliwości. Dotyczy to przede wszystkim zaokrągleń i sfazowań, których w pewnych przypadkach nie udaje się utworzyć i które nie mogą pochłaniać przyległych powierzchni. Częste problemy występują również w przypadku narzędzia do tworzenia skorup. Także odsunięcia 2D i 3D nie zawsze działają prawidłowo. Wymienione niedoskonałości nie są jednak winą samego FreeCAD’a – wynikają bowiem z błędów w silniku OpenCASCADE, z którego korzysta ten program. Jest to jedyny silnik CAD typu open-source i pozostaje liczyć na to, iż jego twórcy w końcu całkowicie naprawią znane od dawna problemy wymienione w tym akapicie.
Ostatnim problemem, uważanym za największy (choć zależy to od tego, do czego wykorzystuje się program) jest tzw. TNP – topological naming problem. W uproszczeniu oznacza on psucie się modeli po wprowadzeniu w nich istotnych zmian jeśli cechy takie jak szkice są oparte na elementach istniejącej już geometrii (np. szkice tworzone na ścianach modelu). Występuje wtedy gubienie odniesień spowodowane zmianą wewnętrznej nazwy danego elementu geometrii. Problem ten został jednak prawie całkowicie rozwiązany przez użytkownika o pseudonimie Realthunder, który utworzył własną wersję FreeCAD’a znaną jako Link Branch i również udostępnia ją na tych samych zasadach. Ponadto, planowane jest przeniesienie kodu naprawiającego TNP do oryginalnej wersji FreeCAD’a tak, by i w niej problem ten praktycznie zniknął. Ma to mieć miejsce już w kolejnej wersji, która ze względu na rozwiązanie tak istotnego błędu, zyska numer 1.0. Zanim to się stanie, należy zachować ostrożność modelując z wykorzystaniem odniesień do istniejącej geometrii i np. opierać szkice na odpowiednio ustawionych płaszczyznach konstrukcyjnych zamiast na ściankach modelu. Można również skorzystać ze wspomnianej odrębnej wersji FreeCAD’a tworzonej przez Realthunder’a. Jest to dobre rozwiązanie, ponieważ ta wersja poprawia znacznie więcej niż tylko niesławne TNP. Ma ona nowocześniejszy, możliwy do większego spersonalizowania interfejs, pozwala tworzyć wiele brył w ramach jednego obiektu Body (co obecnie nie jest możliwe w wersji oficjalnej – należy tworzyć osobne Body dla poszczególnych brył lub korzystać z operacji szyków/luster w innym module, o czym będzie mowa później), łatwiej rzutować geometrię do szkicu czy korzystać z bardziej zaawansowanego cieniowania modeli. Wersja Link Branch jest przedstawiana na bardzo ciekawych przykładach przez kanał OficineRobotica na YouTube, skąd pochodzi zrzut ekranu zaprezentowany poniżej.
Moduły we FreeCAD
Jak to zostało wcześniej wspomniane, FreeCAD jest programem modułowym. Niektóre moduły są wbudowane a inne, rzadziej używane i tworzone przez różnych użytkowników, należy dodatkowo pobrać i zainstalować. Odbywa się to przy pomocy wbudowanego narzędzia, które dba też o aktualizacje modułów pobieranych z GitHub’a. Narzędzie to pozwala również pobierać makra, które często pomagają w przypadku braku określonych narzędzi lub usprawniają pewne etapy modelowania.
Podkreślana przez wiele osób niemających większego doświadczenia z FreeCAD’em nieintuicyjność wynika w dużej mierze z faktu, iż po uruchomieniu programu nie jest oczywiste z jakiego modułu należy skorzystać. Można to jednak bardzo krótko wyjaśnić – do modelowania 3D należy korzystać z modułu PartDesign, bez konieczności przechodzenia do osobnego modułu szkicownika (Sketcher). Przejście między tymi dwoma modułami odbywa się bowiem automatycznie przy tworzeniu i wychodzeniu ze szkicu. Do pewnego typu operacji 3D, takich jak odsunięcia, tworzenie powierzchni ze szkicu czy operacje boolowskie, służy moduł Part, w którym niektóre narzędzia odpowiadają tym z PartDesign, ale mają odmienne nazwy. Wynika to z innego sposobu działania tego modułu. Środowisko pracy Part wykorzystuje znaną z początków modelowania CAD technikę CSG (Constructive Solid Geometry), opartą na prymitywach geometrycznych i operacjach boolowskich. Zwykle zalecane jest unikanie łączenia modułów PartDesign i Part ze sobą, ale w bardziej złożonych przypadkach może zajść konieczność użycia narzędzi dostępnych w tym drugim module – gdy ich odpowiedniki z PartDesign zawodzą lub gdy trzeba przeprowadzić analogiczną operację uzyskując w efekcie model powierzchniowy zamiast bryły. Istotny w modelowaniu jest jeszcze moduł Draft. W teorii służy on głównie do tworzenia geometrii 2D, ale pozwala też operować na obiektach trójwymiarowych. Możliwość przechodzenia między szkicami z modułu Sketch a obiektami Draft pozwala uzupełniać pewne braki podstawowego szkicownika i np. tworzyć szkice 3D lub odsunięcia. Ponadto, w module Draft znajdują się narzędzia do zaawansowanych szyków, pozwalające też tworzyć kopie obiektów poza jednym Body, operacje skalowania i przesuwania/obrotu geometrii czy ciekawe opcje Upgrade i Downgrade, które przekształcają geometrię na odpowiednio wyższy i niższy poziom (np. z bryły na pojedyncze ścianki, dalej na krawędzie i w drugą stronę).
Poza wymienionymi modułami do modelowania, FreeCAD posiada kilka innych ciekawych wbudowanych środowisk pracy. Należy do nich m.in. TechDraw, służący do tworzenia dokumentacji 2D w oparciu o przygotowane modele. Moduł ten szybko się rozwija i obecnie niewiele brakuje mu do jego odpowiedników w komercyjnych programach CAD. Innym wartym uwagi modułem jest FEM, pozwalający przeprowadzać analizy MES. Wykorzystuje on kilka darmowych solverów, ale głównie opiera się na CalculiX. Daleko mu do wygody i możliwości programu PrePoMax, przedstawionego w artykułach PrePoMax. Najlepszy darmowy program do analiz MES? [O programie + TEST] oraz PrePoMax – kluczowe zmiany i nowe funkcjonalności w darmowym programie do analiz MES, ale nadaje się do w miarę prostych analiz. Wspiera też elementy belkowe, obecnie niedostępne w PrePoMax. Kolejnym głównym modułem z tych wbudowanych jest Path, który służy do projektowania ścieżek dla obrabiarek, póki co 3-osiowych, ale trwają pracę nad dodaniem wsparcia dla dodatkowych osi i wielu innych funkcjonalności. Warto też wspomnieć o środowiskach pracy Arch (tzw. BIM – modelowanie informacji o budynku), Mesh Design (narzędzia do modeli w formie siatek trójkątów), Surface (kilka narzędzi do prostych operacji na powierzchniach NURBS) i Spreadsheet (tworzenie arkuszy kalkulacyjnych służących do parametryzacji modeli).
Istotną zaletą FreeCAD’a jest dostępność wielu dodatkowych modułów. Zdaniem autora, najciekawsze z nich to:
– A2plus – złożenia – FreeCAD nie ma póki co oficjalnego modułu do nich, ale oprócz A2plus dostępne są jeszcze Assembly3 i Assembly4, ten pierwszy można uznać za najbardziej intuicyjny i najbliższy temu co dostępne jest w komercyjnych programach, ale pozostałe dwa pozwalają na bardziej zaawansowane operacje,
– Curves – modelowanie krzywych i powierzchni,
– Curved Shapes – powierzchnie rozpięte na krzywych,
– Dodo – kształtowniki,
– Sheetmetal – konstrukcje blaszane,
– Fasteners – gotowe elementy złączne,
– Exploded Assembly – widoki rozstrzelone,
– freecad.gears – generator kół zębatych,
– Manipulator – manipulowanie bryłami w przestrzeni (uproszczone podejście do złożeń),
– Lattice2 – złożone szyki i struktury kratowe,
– CfdOF – analizy CFD (przepływu płynów) z użyciem solvera OpenFOAM – nie dla wszystkich użytkowników istotne, ale to jedyne darmowe środowisko graficzne dla tego solvera i bardzo dobrze działa, stale zyskując nowe możliwości.
Trwają też prace nad dodatkowymi modułami, które jeszcze nie są dostępne z poziomu menedżera dodatków i wymagają ręcznej instalacji. Należy do nich m.in. moduł Dynamics pozwalający na analizy kinematyczne z użyciem otwartego solvera MBDyn. Istnieją również dość specyficzne moduły służące do takich zadań jak projektowanie statków, turbin czy nawet gitar.
Nauka obsługi programu FreeCAD
FreeCAD wciąż zyskuje na popularności i można znaleźć coraz więcej materiałów ułatwiających rozpoczęcie pracy z programem. Nie da się ukryć, że jest to specyficzne środowisko i jego opanowanie może z początku być nieco utrudnione przez pewne przyzwyczajenia z komercyjnych rozwiązań. Warto jednak dać szansę temu programowi i nie zniechęcać się napotkanymi trudnościami. Na YouTube można znaleźć wiele przydatnych filmików instruktażowych, od pewnego czasu również na znanym wielu polskim inżynierom kanale Inżynier Programista. Istnieją też bardzo dobre kanały anglojęzyczne poświęcone temu środowisku.
Kluczowym źródłem informacji o programie jest jego dokumentacja, w tym przypadku w formie artykułów na wiki. W razie napotkania trudności warto zwrócić się z prośbą o pomoc na forum FreeCAD’a, gdzie funkcjonuje stale aktywna społeczność. Odpowiedź na pytanie uzyskuje się tam z reguły bardzo szybko. Forum służy też zgłaszaniu błędów, pomysłów na nowe funkcjonalności czy dyskutowaniu o różnych aspektach rozwoju programu. Istnieje również polska sekcja forum, ale aktywność tam jest oczywiście mniejsza niż w działach globalnych. Przy okazji warto wspomnieć o tym, iż FreeCAD jest przetłumaczony na język polski. To tłumaczenie jest stale aktualizowane przez grupę ochotników, którzy dbają o utrzymanie 100% przetłumaczonych tekstów co jest nadal jednym z niewielu tak wysokich wyników wśród wszystkich lokalizacji programu. Polska wersja językowa nie jest jeszcze idealna, ale może już stanowić dobre rozwiązanie dla użytkowników mniej zaznajomionych z angielską nomenklaturą techniczną.
Podsumowanie
FreeCAD jest programem, który wymaga pewnej dozy cierpliwości i zrezygnowania z niektórych przyzwyczajeń z komercyjnych środowisk. Rozwija przy tym kreatywność i umiejętności modelowania 3D. Jest niezwykle rozbudowany jak na program w pełni darmowy i oferuje tyle możliwości, że zakres jego zastosowań nie odbiega znacząco od komercyjnych odpowiedników. Wbrew pozorom, możliwe jest tworzenie w nim naprawdę dużych złożeń. Zdarzają się oczywiście problemy z płynnością działania przy skomplikowanych modelach, ale są one też spotykane w płatnych programach, które również bywają niestabilne. Braki w dostępnych narzędziach i opcjach są uzupełniane i nie stanowią zwykle istotnego problemu, ponieważ praktycznie zawsze można je obejść. Istotną dla wielu użytkowników zaletą FreeCAD’a są szerokie możliwości związane z nagrywaniem makr (przy pomocy specjalnego narzędzia) oraz pisaniem skryptów w języku Python. Można w ten sposób zautomatyzować i ułatwić sobie wiele żmudnych procesów związanych z modelowaniem. Innym ułatwieniem pracy może być użycie manipulatorów 3D, które są wspierane przez FreeCAD.
Sięgając po FreeCAD warto też w jakimś stopniu przysłużyć się jego rozwojowi. Wystarczy chociaż zgłaszanie błędów na forum, ale mając nieco wolnego czasu można wesprzeć społeczność programu w większym stopniu. Zawsze mile widziane są osoby, które mogą przygotować kod do zaimplementowania chociaż jakichś drobnych nowych funkcjonalności. Często wymaga to tylko skopiowania i modyfikacji istniejącego kodu, ale ktoś musi to zrobić a stali developerzy są często zajęci większymi pracami nad usprawnianiem programu.
Warto jeszcze wspomnieć o wersjach FreeCAD’a. Zawsze dostępna jest tzw. wersja developerska, czyli aktualnie rozwijana postać programu, która nie wymaga instalacji. Jest ona regularnie aktualizowana w oparciu o kod źródłowy na stronie GitHub. Można ją znaleźć tutaj. Z kolei tzw. wersja stabilna jest wydawana z reguły raz w roku, zwykle w pierwszej połowie roku. Można ją pobrać z głównej strony programu – zakładka Downloads. Wymaga ona instalacji i, podobnie jak wersja rozwojowa, jest dostępna na platformy Windows, Linux oraz Mac. Zasadniczo zaleca się korzystać z wersji rozwojowej, która chociaż teoretycznie nie jest tą stabilną, poprawia wiele błędów i wprowadza nowe funkcjonalności. Lista nowości w kolejnych wydaniach FreeCAD’a jest stale aktualizowana i dla wersji 0.20 dostępna pod tym adresem: Release Notes.
Na koniec pozostaje zachęcić czytelników do pobrania i przetestowania świeżo wydanej wersji 0.20 programu FreeCAD. Przy odpowiednim podejściu może się on stać niezwykle przydatnym narzędziem nie tylko dla hobbystów, ale również dla osób wykorzystujących CAD w różnym stopniu do celów zawodowych.