Geschichte

From FreeCAD Documentation
Revision as of 18:25, 12 September 2021 by Maker (talk | contribs)

Geschichte

Frühes FreeCAD, Version unbekannt
FreeCAD Version 0.7 von 2009

Wie alles begann

FreeCAD begann im Januar 2001, als Jürgen Riegel mit der Arbeit an dem Cas.CADE Projekt begann. Cas.CADE war ein kommerzielles Softwareentwicklungsrahmenwerk, das einen geometrischen Modellierungskern (oder CAD Kernel) enthielt: Es wurde im Jahr 2000 unter einer Open-Source Lizenz veröffentlicht und in OpenCASCADE umbenannt. Dies ermöglichte die Realisierung eines quelloffenen 3D CAD Programms, da die Programmierung eines CAD Kerns von Grund auf einen enormen Arbeitsaufwand bedeutet hätte.

In Jürgens eigenen Worten:

Ich begann mit dem FreeCAD-Projekt im Jahr 2001, als einem sogenannten GOM (grafischer Objektmodellierer), mit der Idee, Qt, Python und Cas.CADE zu verwenden, einem kommerziellen CAD-Kern, den ich zu der Zeit im Daimler-Projekt benutzte. Cas.CADE wurde kurz vorher Open-Source, so dass es die richtige Zeit schien, den zu der Zeit freien Raum eines Open-Source-CAD zu besetzen. Ich hatte zwei Jahre Erfahrung mit OpenCascade in einem Projekt namens QSpect, in dem ich zum Schluss der Haupt-Software-Designer war. Ich habe eine Menge über 3D und CAD-Programmierung gelernt. Ich war auch beeinflusst von Catia V5 und dessen sehr ungewöhnlichen Benutzer- und Programmieroberfläche. Am 17. März 2002 habe ich während des OpenCasCade-Projektes die Software als FreeCAD registriert. Mir fiel kein besserer Name ein, ich bin sehr schlecht bei Namen. Im April 2003 wechselte Werner Mayer, einer den Kollegen im QSpect-Projekt, zu einer Firma namens Imetric. Der Kontakt zu Imetric war vielversprechend, denn sie suchten nach einer 3D-Software-Plattform für ihre 3D-Sensoren. Imetric spendete im Jahr 2005 das Meiste des Mesh-Moduls an FreeCAD und die Open-Source-Community und verwendeten seitdem FreeCAD als Basis für ihre Sensorsystem-Software. Seit dieser Zeit ist Werner Mayer ein sehr aktiver FreeCAD-Entwickler. Nach einem Jahr Anstrengungen habe ich 2005 entschieden, das OpenCasCade-Dokument-Gerüst herauszutrennen und durch eine Eigenentwicklung zu ersetzen. Schlussendlich benutzen wir nur den CAD-Kern von OpenCasCade und nicht den Rest des Gerüstes. 2007 war ein weiterer interessanter Meilenstein. Wir wechselten zu Qt4 und dadurch zur LGPL. Zu der Zeit haben wir viel Arbeit geleistet, hauptsächlich Werner.

Das Projekt wurde der Öffentlichkeit 2003 im OpenCascade Forum vorgestellt:

Hallo zusammen, mein Name ist Jürgen Riegel und heute möchte ich ein OpenCasCade-Projekt ankündigen, FreeCAD. Es ist ein Open-Source CAx RAD, basierend auf OpenCasCade, Qt und Python. Es bietet einige wichtige Ideen wie Makroaufzeichnung, Arbeitsbereiche, die Möglichkeit als Server zu arbeiten und als eine dynamisch ladbare Anwendungserweiterung, und es soll plattformunabhängig sein. Obwohl es in einer frühen Phase und weder für Anwender noch für Entwickler benutzbar ist - die erste Benutzerausgabe ist für Ende 2003 geplant -, möchte ich gerne etwas Feedback über die Richtung und das Design von FreeCAD haben. Die Benutzeroberfläche ist fast fertig und wir, mein Co-Entwickler Werner Mayer und ich, haben damit angefangen, die ersten CAD-Funktionen hinzufügen. FreeCAD kann als ein Allzweck-CAD-System angesehen werden, aber die erste Zielgruppe, denke ich, werden CAx-Entwickler sein, die eine Grundlage für die eigene Entwicklung benötigen.

Werner Mayer

Werner Mayer trat dem Projekt bei, sobald es als Open Source Projekt angekündigt wurde (vor der Ankündigung war das Projekt ein privates Projekt von Jürgen). Siehe diesen Forumsbeitrag von Werner auf Deutsch: https://forum.freecadweb.org/viewtopic.php?f=13&t=40235&start=10#p342330

Mit der Zeit gewann das Projekt an Zugkraft und es kamen neue wichtige Mitwirkende in der Gemeinschaft hinzu.

  • Linux Anfang

Eine lustige Tatsache ist, dass er eine Open-Source CAD Software hauptsächlich für Linux haben wollte, weil es zu dieser Zeit eigentlich nichts für diese Plattform gab. Von Anfang an entwickelten wir jedoch für die nächsten 1,5 Jahre ausschließlich unter Windows. Dann leistete ein Tscheche einen Beitrag, um den Code des Core Builds auf Linux zu bringen: https://github.com/berndhahnebach/All_FreeCAD/commit/9fd2e27c95ba3dc84778d92e2564cd094793ce2f#diff-480477e89f9b6ddafb30c4383dcdd705

Ein halbes Jahr später habe ich den Linux Build weitergeführt: 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 trat dem Projekt bei

Yorik van Havre trat dem Projekt 2008 bei und begann mit der Arbeit am Entwurfsmodul. Vor diesem Zeitpunkt gab es keine Möglichkeit, 2D Geometrie mit dem GUI zu erstellen. Dieses Modul wurde vollständig in Python programmiert und nicht in C++, der in FreeCAD verwendeten Kernprogrammiersprache. Der neue Entwurf Arbeitsbereich bewies, dass die Python Integration ein Erfolg war und dazu genutzt werden konnte, die Fähigkeiten von FreeCAD zu erweitern oder anzupassen. Zusätzlich zu seiner Arbeit am Entwurfsmodul arbeitete Yorik an der Erweiterung der FreeCAD Dokumentation und wurde zum de facto"Artdirektor" von FreeCAD, der viele Symbole für die FreeCAD GUI und ihren Stil definieren erstellte.

FreeCAD Version 0.7 wurde im April 2009 veröffentlicht und war die erste mit dem Draft-Modul. Das Part-Modul enthielt einen einfachen CSG-Arbeitsablauf mit der Erstellung von primitiven Formen und Booleschen Operationen über das Part-Menu. Extrusion von 2D-Profiles und Verrundung was ebenfalls möglich.

Version 0.8 wurde im Juli 2009 veröffentlicht und enthielt weitere Arbeit am Draft-Modul, darunter ein neues Bemaßungswerkzeug. Das Part-Modul profitierte von einer neuen Werkzeugleiste zusammen mit neuen Werkzeugen, Drehen und Schnitt.

Gegen Ende 2009 wurde FreeCAD als Debian-Paket in den Debian-Repositories akzeptiert. FreeCAD wurde 2010 in den Ubuntu 10.04-Repositories hinzugefügt.

Das Projekt geht weiter

Version 0.10 wurde im Juli 2010 veröffentlicht und führte die Arbeitsbereich Skizzierer ein, die auf Sketchsolve basiert, einem beschränkungsbasierten Löser zur Erstellung von 2D Geometrie. Die erste Version war begrenzt auf die Erstellung von Rechtecken und Linien.

Anfang 2011, die Gelegenheit nutzend, die die Launchpad Online Plattform gibt, wurde das FreeCAD Instandhalter Team ins Leben gerufen, um den Benutzern des Ubuntu Betriebssystems frische stabile Ausgaben zusammen mit täglichen Build Paketen von FreeCAD bereitzustellen.

Version 0.11 wurde im Mai 2011 veröffentlicht und führte den Part Design Arbeitsbereich ein, der Werkzeuge wie Tasche, Verrundung und Fase umfasste. Der Draft Arbeitsbereich erhielt Verbesserungen und neue Werkzeuge, wie BSpline. Der Roboter Arbeitsbereich bekam weitere GUI Werkzeuge.

Version 0.12 wurde im Januar 2012 veröffentlicht und enthielt einen vollständigeren Skizzierer Arbeitsbereich. Sie enthielt einen völlig neu geschriebenen Löser, FreeGCS. Es war das Ergebnis monatelanger Arbeit der FreeCAD Hauptentwickler zusammen mit den Neueinsteigern logari81 (der den Löser programmiert hat) und mrlukeparry. Weitere Werkzeuge wurden dem PartDesign PartDesign-Arbeitsbereich hinzugefügt.

Vergrößerung des Kern Entwickler Teams

Im April 2019 wurde das Team der Kernentwickler erweitert: Zu Jürgen, Werner und Yorik gesellten sich Abdullah, Bernd, sliptonic und WandererFan

Interessante Beiträge im Forum =

Veröffentlichungshistorie

Überblick

Version Veröffentlichungsname Veröffentlichungsdatum Veröffentlichungsverpflichtung Veröffentlichungszweig
0.20 ? in Entwicklung Versionshinweise 0.20 head master
0.19 - 2021-03-20 Versionshinweise 0.19 release commit 0.19 branch bugfixes 0.19
0.18 - 2019-03-12 Versionshinweise 0.18 release commit 0.18 branch bugfixes 0.18
0.17 Roland 2018-04-06 Versionshinweise 0.17 release commit 0.17 branch bugfixes 0.17
0.16 - 2016-04-18 Versionshinweise 0.16 release commit 0.16 branch bugfixes 0.16
0.15 - 2015-04-08 Versionshinweise 0.15 release commit 0.15 branch bugfixes 0.15
0.14 - 2014-07-01 Versionshinweise 0.14 release commit 0.14 branch bugfixes 0.14
0.13 - 2013-01-29 Versionshinweise 0.13 release commit 0.13 branch bugfixes 0.13
0.12 - 2011-12-20 Versionshinweise 0.12
0.11 - 2011-05-03 Versionshinweise 0.11
0.10 - 2010-07-24
0.9 - 2010-01-16
0.8 - 2009-07-10
0.7 - 2009-04-24
0.6 - 2007-02-27
0.5 - 2006-10-05
0.4 - 2006-01-15
0.3 - 2005-10-31
0.2 - 2005-08-09
0.1 - 2003-01-27
0.0.1 - 2002-10-29 Initial Upload of a version

Legende

Farbe Versionstyp
Zukünftige Veröffentlichung
Letzte Vorschauversion
Letzte Version
Ältere Version, noch unterstützt
Alte Version

Externe Verweise