sudo useradd plm --create-home
Purpose
Manage FreeCAD model sharing and linear versioning. This app shows the framework capabilities. Very few line of code describe the user interface and manage persistent data. We can view this application as a small PLM (Product Lifecycle Management) for FreeCAD.
Roles
-
ROLE_ADMIN -
ROLE_PLM_USER
See configure roles in Crew to add the role into your Intranet
Server Installation
Install everything in a new user (optional)
It is better to isolate Freecad in a specific user, in order to not override your Freecad configuration for your user.
To do so:
-
create a new user:
-
Add current
plmgroup to current usersudo usermod -a -G plm <current user> -
Eventually change right of
plmto allow grouprxw -
Restart logout / login cycle or restart to apply group change to your user
Prepare FreeCAD to be used by the server
On a Linux server, it is better to install the following packages from your distribution:
-
Weston Wayland server
-
FreeCAD >1.0
Freecad must use Qt6 for Weston and Wayland. The PLM module will launch FreeCAD in a Weston desktop using the Framebuffer, so nothing is chown.
ldd /bin/freecad | grep Qt
libQt6Widgets.so.6 => /usr/lib/libQt6Widgets.so.6 (0x00007f5b0dc00000)
libQt6Gui.so.6 => /usr/lib/libQt6Gui.so.6 (0x00007f5b0d200000)
libQt6Core.so.6 => /usr/lib/libQt6Core.so.6 (0x00007f5b0ca00000)
libQt6PrintSupport.so.6 => /usr/lib/libQt6PrintSupport.so.6 (0x00007f5b12595000)
libQt6SvgWidgets.so.6 => /usr/lib/libQt6SvgWidgets.so.6 (0x00007f5b12589000)
libQt6Network.so.6 => /usr/lib/libQt6Network.so.6 (0x00007f5b0b609000)
libQt6UiTools.so.6 => /usr/lib/libQt6UiTools.so.6 (0x00007f5b0f96c000)
libQt6Xml.so.6 => /usr/lib/libQt6Xml.so.6 (0x00007f5b0efd8000)
libQt6Svg.so.6 => /usr/lib/libQt6Svg.so.6 (0x00007f5b0eb57000)
libQt6OpenGLWidgets.so.6 => /usr/lib/libQt6OpenGLWidgets.so.6 (0x00007f5b0efca000)
libQt6OpenGL.so.6 => /usr/lib/libQt6OpenGL.so.6 (0x00007f5b0d157000)
libQt6DBus.so.6 => /usr/lib/libQt6DBus.so.6 (0x00007f5b0c933000)
Configure the PLM Server
If you want just an overview, you can download the demo server, with default configuration, go directly in Launch Server Binaries.
Here are the step by step commands:
git clone https://github.com/Taack/intranet.git
OR
git clone git@github.com:Taack/intranet.git
app foldercd intranet/app
git clone https://github.com/Taack/plm.git
OR
git clone git@github.com:Taack/plm.git
server/grails-app/conf/application.yml adding the following variables:# PLM
plm.freecadPath: ${HOME}/freecad-app-link
cd
cp plm/freecad-app-link-distrib.sh freecad-app-link
From here, you can build the server or run it. Change current directory to the intranet folder and either:
./gradlew bootJar
./gradlew bootRun
Launch Server Binaries
Demo version is available here: Taack PLM releases, download server-0.6.jar
If you choose to build the server binaries, go to :
java -jar server/build/libs/server-0.6.jar
Server Arguments
See server/grails-app/conf/application.yml for a list of available options
Options to the server can be passed this way:
java -DOption1=Value1 -DOption2=Value2 ... -jar server-0.3.jar
Options
-
Path the Intranet store its files:
-Dintranet.root=/home/test/someDir -
Server port:
-Dserver.port=9444 -
Database url:
-DdataSource.url='jdbc:h2./prodDb2;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE' -
Freecad path:
-Dplm.freecadPath=/somePath… -
Dot exe path:
-Dexe.dot.path=/somePath…
server/grails-app/conf/application.ymlplm:
freecadPath: ${HOME}/freecad-app-link
Install from Source
Clone the plm repository:
git clone https://github.com/Taack/plm.git
Then copy the content of the plm folder into your intranet app folder (see intranet installation)
Set the FreeCAD path in the server/conf/application.yml file.
In the plm folder, you have 2 scripts you can use : freecad-app-link-distrib.sh if you use your distribution version of FreeCAD or freecad-app-link-flatpak.sh if you choose to install FreeCAD using Flatpak
Create a symlink in your home folder pointing to one of those scripts ln -s <path-to-plm-folder>/freecad-app-link-distrib.sh freecad-app-link.
Start your intranet issuing under the intranet folder:
./gradlew server:bootRun
You can produce a Jar file:
./gradlew server:assemble
The server will be located under server/build/libs
FreeCAD Workbench Installation
Go into Tools > Addon Manager then refresh local cache and search for Taack.
Click on installation button.
Usage
| 1 | Taack PLM Workbench |
| 2 | Main Action |
| 3 | Enter server URL (with a trailing '/') |
| 4 | Enter User Credentials |
| 5 | Enter Password Credentials |
| 6 | Connect to the server |
| 7 | Choose Duplicate Mode |
| 8 | Duplicate History |
Clicking on OK button will upload the file into your Intranet. The Intranet will create a preview, this process might take time.
| 1 | File Preview |
| 2 | Links Hierarchy |
| 3 | Tags |
| If you have many links, import them from the same computer. From other computers, download the zip file from your intranet. |
That’s it; I will record some videos demonstrating this app capabilities.