Frontend Addon for FreeCad to communicate with the PLM
Find a file
2026-07-13 14:02:34 +02:00
docs Use proper German characters in text 2026-07-13 13:26:36 +02:00
freecad_plm_addon Polish Addon Manager metadata and overview 2026-07-13 14:02:34 +02:00
Resources Polish Addon Manager metadata and overview 2026-07-13 14:02:34 +02:00
tests Use proper German characters in text 2026-07-13 13:26:36 +02:00
.gitignore add session to ignore 2026-07-09 11:42:19 +02:00
IMPLEMENTATION_PLAN.md Use proper German characters in text 2026-07-13 13:26:36 +02:00
Init.py Initial FreeCAD PLM addon scaffold 2026-07-06 11:23:05 +02:00
InitGui.py Prepare addon manager metadata 2026-07-12 22:52:40 +02:00
LICENSE Polish Addon Manager metadata and overview 2026-07-13 14:02:34 +02:00
package.xml Polish Addon Manager metadata and overview 2026-07-13 14:02:34 +02:00
README.md Polish Addon Manager metadata and overview 2026-07-13 14:02:34 +02:00
SERVER_API_REQUIREMENTS.md Use proper German characters in text 2026-07-13 13:26:36 +02:00

FreeCAD-PLM Addon

FreeCAD Workbench für das Django-basierte FreeCAD-PLM.

Die nutzerorientierte Darstellung für den Addon Manager steht in Resources/Documents/Overview.md.

Status

Arbeitsfähige FreeCAD-Workbench für den aktuellen PLM-Addon-Workflow. Die HTTP- und Workspace-Schicht ist so angelegt, dass sie ohne FreeCAD getestet werden kann.

Aktuell umgesetzt:

  • Server verbinden und Projekte, Teile/Baugruppen, Revisionen und aktive Checkouts laden.
  • Revisionen read-only über ein Server-Manifest öffnen.
  • Revisionen auschecken, Manifest-Dateien mit SHA-256 prüfen und Root-Datei in FreeCAD öffnen.
  • Check-in für Root- und referenzierte Dateien; unveränderte Dateien und technische FreeCAD-Speicherartefakte werden nicht als neue Revision eingecheckt.
  • Checkout abbrechen.
  • Projektmetadaten im Addon bearbeiten: Code, Name, Status, Datum und Beschreibung.
  • Neue Teile/Baugruppen als PLM-Metadatensatz anlegen.
  • Revisionsnotizen bearbeiten.
  • Anmerkungen lesen, anlegen, bearbeiten, erledigen/wieder öffnen und löschen.
  • Lokale FreeCAD-Ordner als Projektstand oder neues Projekt importieren.

Konfiguration

Server-URL:

https://plm.lan.schumbi.de

Der Server erwartet Bearer Token:

Authorization: Bearer plm_pat_...

Für den vollständigen Addon-Workflow werden typischerweise diese Scopes benötigt:

read write checkout admin

Ohne admin funktionieren Lesen, Checkout/Check-in, Notizen, Anmerkungen und Import in ein vorhandenes Projekt. admin ist nötig für Projektanlage, Projektmetadaten und den Kombiflow "neues Projekt plus Import".

Projekt importieren packt alle .FCStd-Dateien unterhalb eines gewählten lokalen Ordners in ein ZIP mit relativen Pfaden. Das Addon kann damit entweder einen Projektstand in ein vorhandenes Projekt importieren oder ein neues Projekt mit Code, Name, Status, Datum und Beschreibung anlegen und direkt befüllen. Nach erfolgreichem Import kann ein importiertes Teil/Baugruppe als Root ausgewählt und sofort über den normalen Checkout-Workflow geöffnet werden. Der ursprüngliche Importordner wird auf Wunsch erst danach nach ~/FreeCAD-PLM/imported/... verschoben.

Tests

python3 -m unittest discover -s tests

Installation über den FreeCAD Addon Manager

Das Repo enthält ein package.xml für den FreeCAD Addon Manager. In FreeCAD kann das Addon als benutzerdefiniertes Repository installiert werden.

Repository-URL:

https://git.home.schumbi.de/ralf/freecad-plm-addon

Branch:

main

Danach FreeCAD neu starten und die Workbench FreeCAD-PLM aktivieren. Für die Nutzung muss anschließend im Addon unter Verbindungseinstellungen die Server-URL, ein API-Token und der lokale Workspace gesetzt werden.

Die serverseitige Forgejo- und Reverse-Proxy-Konfiguration für eine Installation mit einem unveränderten FreeCAD ist in docs/ADDON_MANAGER_HOSTING.md dokumentiert.

FreeCAD-Installation für die Entwicklung

FreeCAD lädt externe Workbenches aus seinem Benutzer-Mod-Verzeichnis. Der robusteste Weg ist, den Pfad in der jeweiligen FreeCAD-Installation direkt abzufragen:

import FreeCAD as App
App.getUserAppDataDir()

Das Addon muss dann als Ordner Mod/freecad-plm-addon unter diesem Pfad liegen.

Linux: Flatpak

Auf diesem Rechner wird FreeCAD per Flatpak gestartet:

/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=FreeCAD --file-forwarding org.freecad.FreeCAD - --single-instance @@ %F @@

Der lokale FreeCAD-1.1-User-AppData-Pfad ist:

~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/

Für die Entwicklung kann das Repo dorthin verlinkt werden:

mkdir -p ~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod
ln -s /home/ralf/devel/freecad-plm-addon \
  ~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod/freecad-plm-addon

Falls der Link schon existiert:

ls -l ~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod/freecad-plm-addon

Linux: klassische Installation

Bei einer nicht-Flatpak-Installation ist der Pfad typischerweise:

mkdir -p ~/.local/share/FreeCAD/Mod
ln -s /home/ralf/devel/freecad-plm-addon \
  ~/.local/share/FreeCAD/Mod/freecad-plm-addon

Windows: FreeCAD .exe

In FreeCADs Python-Konsole zuerst den Benutzerpfad abfragen:

import FreeCAD as App
App.getUserAppDataDir()

Dann das Addon als Ordner in dessen Mod-Unterordner kopieren, zum Beispiel:

%APPDATA%\FreeCAD\Mod\freecad-plm-addon

oder bei versionierten FreeCAD-Profilen:

%APPDATA%\FreeCAD\v1-1\Mod\freecad-plm-addon