History/ru

С чего всё начиналось
История FreeCAD началась в январе 2001 года, когда Jürgen Riegel начал работать над проектом Cas.CADE. Cas.CADE был коммерческой платформой для разработки программного обеспечения, которая включала ядро геометрического моделирования (или ядро САПР): он был выпущен под лицензией с открытым исходным кодом в 2000 году и переименован OpenCASCADE. Это сделало возможным создание 3D-САПР с открытым исходным кодом, поскольку для программирования ядра САПР с нуля потребовался бы огромный объем работы.

По собственным словам Jürgen:

"Проект FreeCAD был начат мной в январе 2001 года как так называемый GOM (Graphical Object Modeler) с идеей использовать Qt, Python и Cas.CADE (коммерческое ядро CAD, которое я тогда использовал в проектах Daimler). Cas.CADE стал открытым исходным кодом незадолго до этого, поэтому казалось подходящим моментом, чтобы попробовать двигаться в пустующем в то время пространстве САПР с открытым исходным кодом. У меня был двухлетний опыт работы с OpenCascade в проекте под названием QSpect, в котором в конце концов я стал главным разработчиком программного обеспечения. Я многое узнал о 3D и программировании САПР. На меня также повлияла Catia V5 и её особый пользовательский и программный интерфейс… 17 марта 2002 года в рамках проекта OpenCascade я зарегистрировал программное обеспечение как FreeCAD. Я не мог придумать лучшего имени, т.к. я очень плохо разбираюсь в именах… В апреле 2003 года Вернер Мейер, один из коллег по проекту QSpect, перешел в компанию Imetric. Контакт с Imetric оказался многообещающим, так как они искали новую программную 3D платформу для своих 3D-датчиков. В 2005 году Imetric пожертвовала FreeCAD и сообществу Open Source, большую часть своего Mesh-модуля и с тех пор они использовали FreeCAD в качестве основы для своего программного обеспечения сенсорной системы. С того времени Вернер Мейер стал очень активным разработчиком FreeCAD. В 2005 году, после года борьбы, я решил изъять структуру документа OpenCascade и заменить ее собственной реализацией. Итак, в конце концов, мы использовали только ядро САПР OpenCascade, без его фреймворка. 2007 год стал еще одной интересной вехой. Мы перешли на QT4 и, следовательно, на LGPL. В то время мы много работали, в основном Вернер."

Проект был публично анонсирован на форуме OpenCascade в 2003 году:

"Hi together, my name is Juergen Riegel and today I want announce an OpenCasCade project, FreeCAD. It is an Open Source CAx RAD based on OpenCasCade, QT and Python. It features some key concepts like Macro Recording, Workbenches, ability to run as a server and as a dynamically loadable applications' extension, and it is designed to be platform independent… Although it is in an early stage and not usable for users nor developers—the first user release is planned for the end of 2003—, I would like to get some feedback on the direction and design of FreeCAD. The GUI is nearly finished and now we, my co-developer Werner Mayer and me, have started adding the first CAD functions. FreeCAD can be seen as a general purpose mechanical CAD system, but its first audience, I think, will be CAx developers which need groundwork for own development."

Werner Mayer
Werner Mayer joined the project as soon as it was announced as an open source project (prior to the announcement the project was a private project of Jürgen). See this forum post from Werner in German: https://forum.freecadweb.org/viewtopic.php?f=13&t=40235&start=10#p342330

Со временем проект набрал обороты и дождался прибавки новых ключевых участников в сообществе.


 * Linux beginning

"A fun fact is that he wanted to have an open-source CAD software mainly for Linux because at that time there existed actually nothing for this platform. However, from the beginning on we exclusively developed on Windows for the next 1.5 years. Then a Czech guy made a contribution to make the code of the core build on Linux: https://github.com/berndhahnebach/All_FreeCAD/commit/9fd2e27c95ba3dc84778d92e2564cd094793ce2f#diff-480477e89f9b6ddafb30c4383dcdd705"

"Half a year later I continued the Linux build: https://github.com/berndhahnebach/All_FreeCAD/commit/35b962d7d751dd80f7c7781df60f93bc9a3da992"

Q: Could you share how that first 1.5 years went? Were you meeting in person or online?

"Well, at that time we were colleagues (until 2005) so we could discuss things face to face. After that time we still had some personal meetings but discussed most things by email or phone."

"As third core developer Yorik joined around end of 2007 but it took another 3 or 4 years until the community and number of contributors started to grow significantly."

Q: Did you divide the tasks or work on competing implementations?

"Yes. Jürgen was designing and implementing most of the application and document logic and I was doing the basics of the 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

Обзор
Условные обозначения

Внешние ссылки

 * Раздел файлов SourceForge
 * Раздел Старых файлов SourceForge
 * Announcing FreeCAD Project на форуме OpenCascade