History/pl

Jak to się wszystko zaczęło
Początki programu FreeCAD sięgają stycznia 2001 roku, kiedy Jürgen Riegel rozpoczął pracę nad projektem Cas.CADE. Cas.CADE był komercyjnym szkieletem programistycznym, który zawierał jądro modelowania geometrycznego (lub jądro CAD): został on wydany na licencji open source w 2000 roku i przemianowany na OpenCASCADE. Umożliwiło to realizację otwartego programu CAD 3D, ponieważ zaprogramowanie jądra CAD od podstaw wymagałoby ogromnego nakładu pracy.

Jak mówi Jürgen:

"Projekt FreeCAD został rozpoczęty przeze mnie w styczniu 2001, jako tak zwany GOM (Graphical Object Modeler), z pomysłem użycia Qt, Pythona i Cas.CADE, komercyjnego CAD-Kernel, którego używałem w projektach Daimlera. Cas.CADE stał się open source krótko przed tym, więc wydawało się, że nadszedł właściwy czas, aby spróbować poruszyć się w pustej wówczas przestrzeni open source CAD. Miałem dwuletnie doświadczenie z OpenCascade w projekcie o nazwie QSpect, w którym, pod koniec, byłem głównym projektantem oprogramowania. Nauczyłem się wiele o programowaniu 3D i CAD. Byłem również pod wpływem Catia V5 i jej bardzo specjalnego interfejsu użytkownika i programowania... W marcu 2002, w ramach projektu OpenCascade, zarejestrowałem oprogramowanie jako FreeCAD. Nie mogłem wymyślić lepszej nazwy, jestem bardzo kiepski w nazewnictwie... W kwietniu 2003, Werner Meyer, jeden z kolegów w projekcie QSpect, przeszedł do firmy o nazwie Imetric. Kontakt z Imetric był bardzo obiecujący, ponieważ poszukiwali oni nowej platformy oprogramowania 3D dla swoich czujników 3D. W 2005 roku Imetric przekazał większość swojego modułu Mesh Module do FreeCAD i społeczności Open Source, i od tego czasu używają FreeCAD jako podstawy dla swojego oprogramowania systemu czujników. Od tego czasu Werner Meyer jest bardzo aktywnym deweloperem FreeCAD. W 2005 roku, po roku zmagań, zdecydowałem się pozbyć się szkieletu dokumentów OpenCascade i zastąpić go własną implementacją. Tak więc, ostatecznie używamy tylko jądra CAD OpenCascade, a nie reszty jego frameworka. Rok 2007 był kolejnym interesującym kamieniem milowym. Przeszliśmy na QT4 i, co za tym idzie, na licencję LGPL. W tym czasie wykonaliśmy wiele pracy, głównie Werner."

Projekt został ogłoszony publicznie na Forum OpenCascade w 2003 roku:

"Cześć wszystkim, nazywam się Juergen Riegel i dzisiaj chcę ogłosić projekt OpenCasCade, FreeCAD. Jest to Open Source CAx RAD oparty na OpenCasCade, QT i Pythonie. Posiada kilka kluczowych koncepcji, takich jak nagrywanie makr, środowiska pracy, możliwość działania jako serwer i jako dynamicznie ładowane rozszerzenie aplikacji, i jest zaprojektowany jako niezależny od platformy... Mimo, że jest we wczesnej fazie i nie nadaje się do użytku dla użytkowników ani programistów - pierwsze wydanie dla użytkowników jest planowane na koniec 2003 roku - chciałbym uzyskać kilka opinii na temat kierunku i projektowania FreeCAD. GUI jest prawie skończone i teraz my, mój współtwórca Werner Mayer i ja, zaczęliśmy dodawać pierwsze funkcje CAD. FreeCAD może być postrzegany jako mechaniczny system CAD ogólnego przeznaczenia, ale myślę, że jego pierwszymi odbiorcami będą programiści CAx, którzy potrzebują podstaw do własnego rozwoju."

Werner Mayer
Werner Mayer dołączył do projektu jak tylko został on ogłoszony jako projekt open source (przed ogłoszeniem projekt był prywatnym projektem Jürgena). Zobacz ten post na forum od Wernera w języku niemieckim: https://forum.freecadweb.org/viewtopic.php?f=13&t=40235&start=10#p342330

Z czasem projekt nabrał rozmachu i dołączyli do niego nowi kluczowi współpracownicy.


 * Początki Linuksa

"Zabawnym faktem jest to, że chciał mieć oprogramowanie CAD typu otwartoźródłowego głównie dla Linuksa, ponieważ w tamtym czasie nie istniało właściwie nic na tę platformę. Jednakże, od samego początku, przez następne 1,5 roku pracowaliśmy wyłącznie na Windowsie. Potem pewien czeski gość przyczynił się do tego, że kod rdzenia został zbudowany dla Linuksa.: https://github.com/berndhahnebach/All_FreeCAD/commit/9fd2e27c95ba3dc84778d92e2564cd094793ce2f#diff-480477e89f9b6ddafb30c4383dcdd705"

"Pół roku później kontynuowałem tworzenie wersji dla Linuxa: https://github.com/berndhahnebach/All_FreeCAD/commit/35b962d7d751dd80f7c7781df60f93bc9a3da992"

P: Czy możesz podzielić się tym, jak minęło pierwsze 1,5 roku? Czy spotykaliście się osobiście czy online?

"Cóż, w tamtym czasie byliśmy kolegami (do 2005 roku), więc mogliśmy omawiać sprawy twarzą w twarz. Po tym czasie nadal mieliśmy kilka osobistych spotkań, ale większość rzeczy omawialiśmy przez e-mail lub telefon."

"Jako trzeci deweloper dołączył Yorik  pod koniec 2007 roku, ale minęły kolejne 3 lub 4 lata zanim społeczność i liczba współtwórców zaczęła znacząco rosnąć."

P: Czy dzieliliście zadania lub pracowaliście nad konkurencyjnymi implementacjami?

"Tak. Jürgen projektował i implementował większość logiki aplikacji i dokumentów, a ja zajmowałem się podstawami GUI."

"However, this wasn't a gradual process but we have experimented with many things at the beginning. For example, in the initial version we used OCC's document framework OCAF and its viewer but after a year or two we got into a dead end because documentation about OCC was very poor and we couldn't get it to work to extend OCAF with our own feature types. So, we decided to only use OCC's modeling capacities but develop our own application/document framework."

Q: At the time did you think FreeCAD would be where it is today?

"We didn't know but we hoped. Of course we couldn't anticipate how exactly FreeCAD will look today. The most important design decisions were to make it available on all major platforms and make the whole SW as accessible as possible, i.e. to impose all important functions to Python so that (power) users are able to extend FreeCAD with own functions. This way we hoped to get a broad audience."

(See this forum post from Werner Re: FreeCAD History)

Yorik joins the project
Yorik van Havre joined the project in 2008 and started work on the Draft Module. Before that point, there was no way to create 2D geometry through the GUI. This module was programmed entirely in Python rather than in C++ (the core programming language used in FreeCAD). The new Draft workbench proved that Python integration was a success and could be used to extend or customize FreeCAD's capabilities. In addition to his work on the Draft module, Yorik worked on expanding the FreeCAD documentation, and became FreeCAD's de facto "Art director", creating many icons for FreeCAD's GUI and defining its style.

Version 0.7 of FreeCAD released in April 2009 was the first to include the Draft module. The Part module provided a simple CSG workflow with creation of primitive shapes and boolean operations accessible through the Part menu. Extrusion of 2D profiles and filleting was also possible.

Version 0.8 released in July 2009 saw some more work in the Draft module, including a new Dimension tool. The Part module benefited from a new toolbar along with new tools, Revolve and Section.

By the end of 2009, FreeCAD was accepted as a Debian package in the Debian repositories. FreeCAD was added to the Ubuntu 10.04 repositories in 2010.

The project goes on
Version 0.10 was released in July 2010 and introduced the Sketcher Workbench, based on Sketchsolve, a constraint-based solver to create 2D geometry. The first version was limited to creation of rectangles and lines.

In early 2011, taking the opportunity given by the Launchpad online platform, the FreeCAD Maintainers team was created to provide fresh stable releases along with daily build packages of FreeCAD to users of the Ubuntu operating system.

Version 0.11 as released in May 2011 and introduced the new Part Design workbench which included tools such as Pad, Pocket, Fillet and Chamfer. The Draft workbench received enhancements and new tools, like BSpline. The Robot workbench featured more GUI tools.

Version 0.12 was released in January 2012 and featured a more complete Sketcher workbench. It included a totally rewritten solver, FreeGCS. It was the result of months of work by the main FreeCAD developers along with newcomers logari81 (who programmed the solver) and mrlukeparry. More tools were added to the PartDesign workbench.

Enlargement of core developer team
In April 2019 the team of core developers was expanded: Jürgen, Werner and Yorik were joined by Abdullah, Bernd, sliptonic and WandererFan

Interesting Posts on the forum

 * about PartDesignNext and other design decisions: https://forum.freecadweb.org/viewtopic.php?f=8&t=34923&start=130#p297074
 * about Forum history: https://forum.freecadweb.org/viewtopic.php?f=8&t=7448&start=200#p287106
 * about Project history: https://forum.freecadweb.org/viewtopic.php?f=8&t=47703
 * about Code history: https://forum.freecadweb.org/viewtopic.php?f=10&t=46733&start=10#p405068 BTW: initial code checkin was on March 18th in 2002 (may be the birthday?)
 * about Project to be OpenSource: https://forum.freecadweb.org/viewtopic.php?f=13&t=40235&start=10#p342330
 * about The release commit history: https://forum.freecadweb.org/viewtopic.php?f=8&t=23695#p184940
 * about Who is behind FreeCAD: http://forum.freecadweb.org/viewtopic.php?f=8&t=295
 * about FEM history: https://forum.freecadweb.org/viewtopic.php?f=18&t=48646#p416389
 * about FEM mesher history: https://forum.freecadweb.org/viewtopic.php?f=18&t=48733#p417627

Linki zewnętrzne

 * Sekcja plików SourceForge
 * Sekcja starych plików SourceForge
 * Ogłoszenie projektu FreeCAD na forum OpenCascade