freeCad et Raspberry Pi

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
User avatar
-alex-
Posts: 722
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: freeCad et Raspberry Pi

Postby -alex- » Wed Dec 02, 2020 11:32 pm

Pour les curieux, petite démo graphique de la branche FreeCAD Linkstage3 sur le cadran de montre du sujet de @schupin:
https://forum.freecadweb.org/viewtopic.php?f=12&t=52698
FCLink_cadran_montre_gravure_RPI4.gif
FCLink_cadran_montre_gravure_RPI4.gif (614.8 KiB) Viewed 190 times

Ici c'est la capture gif qui saccade, en réalité c'est assez fluide, vous pouvez voir le compteur d'images en bas d'écran: 10 à 15 fps en mode affichage ombré (spécifique à la branche Linkstage3).
Sur la branche classique FC0.19 master en affichage flatlines: parfaitement fluide avec 20 à 30 fps

Cette branche se compile de la même façon que la branche master, il faut juste charger le bon code source. Voir les instructions de compilation du dépot de @realthunder ou le sujet suivant: https://forum.freecadweb.org/viewtopic.php?f=4&t=51831

_______________________________________________________

Pour ceux qui se posent des question sur les performances du RPI4:
Cette même pièce ouverte sur la branche FC 0.19 master:

OS: Debian GNU/Linux 10 (buster) (LXDE/LXDE-pi)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.23069 (Git)
Build type: Unknown
Branch: master
Hash: 20649ec5292a31279f5593eccee2c5cd106bb099
Python version: 3.7.3
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)


Empreinte RAM FreeCAD: 126Mo
Temps d'ouverture de la pièce: 5sec
Empreinte RAM pièce ouverte: 196Mo
Recalcule de la fonction Cut (qui soustrait les 30 gravures circulaires croisées):

Code: Select all

import time
t = time.time() ; App.ActiveDocument.Cut.recompute() ; App.Console.PrintMessage("{:.1f} s\n".format(time.time()-t))
=62 sec


Recalcul du document complet (avec des montées à 100% sur les 4 coeurs puisqu'il y a des opérations booléennes multi-thread):

Code: Select all

import time
t = time.time() ; App.ActiveDocument.recompute() ; App.Console.PrintMessage("{:.1f} s\n".format(time.time()-t))
=850 sec ... 14min ça fait mal oui :?

Le point faible c'est que FreeCAD n'est pas ou peu multi-thread et que l'on ne tire pas pleinement partie des 4 coeurs du RPI4.
Graphiquement en revanche c'est fluide en 1920x1080, aucun problème à part quelques crashs de temps en temps. Assez peu avec la branche FC 0.19 master, beaucoup plus fréquents avec la branche Linkstage3 et ses réglages graphiques spécifiques.

Ci-joint le fichier si vous voulez comparer avec votre machine pour vous faire une idée. J'ai passé la fonction Array de 30 à 5 répétitions polaires pour que le fichier passe à une taille résonnable. A vous de remettre 30 pour une comparaison à équipérimètre.
cadran_montre.FCStd
(66.68 KiB) Downloaded 12 times
2cv001
Posts: 124
Joined: Wed Jan 01, 2020 9:30 am

Re: freeCad et Raspberry Pi

Postby 2cv001 » Thu Dec 03, 2020 11:18 am

38.6 s

pour l'autre
1037.1 s
soit 17 mn, Je le referai après reboot car c'est vraiment beaucoup et pas mal de choses étaient ouvertes .
Edit après reboot : 813s soit 13.6 mn donc en gros comme un pi4. Je vais m'en faire (enfin faire une carte SD) dès que je trouve un tuto récent.

C'est un portable ASUS avec un intel core i3-5005U et 8Go de RAM

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22894 (Git)
Build type: Release
Branch: master
Hash: 9eb080488d970d313c538473e7272117ea0a7cd1
Python version: 3.8.6
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: French/France (fr_FR)
User avatar
-alex-
Posts: 722
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: freeCad et Raspberry Pi

Postby -alex- » Thu Dec 03, 2020 9:19 pm

Bon le modèle du poste précédent était particulièrement gourmand en calcul, pas très flateur pour le RPI4, mais comme fichier pour comparaison c'était pas mal je pense.
Pour le récompenser de ses efforts et ne pas rester sur cette note un peu lente, voici une autre petite demo des performances graphiques sous la branche Linkstage3, avec un modèle nettement plus léger en recalcul, mais plus visuel pour l'ombrage ;)
Linkstage3_RPI4_shadows_demo.gif
Linkstage3_RPI4_shadows_demo.gif (940.97 KiB) Viewed 106 times

Cette scène à 209 solides est rendue à 7fps pour les mouvements de la source lumineuse, est 10fps pour la rotation du modèle avec source fixe.
Et je m'arrète là, à coup de gif à 1Mo je plombe le forum :roll:
2cv001
Posts: 124
Joined: Wed Jan 01, 2020 9:30 am

Re: freeCad et Raspberry Pi

Postby 2cv001 » Sun Dec 06, 2020 5:00 pm

Et voilà, ça tourne !
Image

Bon, ça n'a pas été facile. Mais ça tourne. Je vais tester maintenant.

Principal problème : quand on fait le sudo apt install pour les dépendances, si on fait tout à la fois, il suffit qu'il y en ait un qui fait une erreur et la suite n'est pas faite ou pas faite correctement. Il faut donc couper en une dizaine d'apt install
J'ai fait comme ci-dessous.
Il y en a deux qui ne marchent pas (je l'ai mis en commentaire ci-dessous) et ça correspond à ce que tu as eu. On doit pouvoir les retirer. Un autre n'avait pas marché mais en le relançant, ça a marché.

Code: Select all

sudo apt install build-essential libtool lsb-release cmake cmake-gui cmake-curses-gui libboost-date-time-dev libboost-dev libboost-filesystem-dev 

sudo apt install libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev 

sudo apt install libboost-signals-dev # ne marche pas

sudo apt install libboost-thread-dev 

sudo apt install libcoin-dev libeigen3-dev libgts-bin libgts-dev

sudo apt install libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev 

sudo apt install libocct-visualization-dev libopencv-dev libproj-dev 

sudo apt install libpyside2-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev 

sudo apt install libqt5x11extras5-dev libqt5xmlpatterns5-dev libshiboken2-dev libspnav-dev libvtk7-dev libx11-dev libxerces-c-dev libzipios++-dev 

sudo apt install occt-draw pyside2-tools python3-dev python3-matplotlib python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui

sudo apt install python3-pyside2.qtsvg python3-pyside2.qtwidgets

sudo apt install python3-pyside2uic # ne marche pas

sudo apt install qtbase5-dev qttools5-dev swig

Autre chose : j'avais une carte SD 16Go et au bout de plusieurs heures de compil, il me dit bravement que je n'ai pas assez de place. J'ai recopiè l'image de là où j'en était sur une carte 64 Go et c'est bon.

Sinon, j'ai fait l'erreur de ne pas être dans le bon dossier pour faire des manip.

Par exemple, dans cette séquence

Code: Select all

sudo apt install git
cd ~ # pour que le dossier freecad-source de la ligne suivante se place bien ou il faut changer la ligne suivante
git clone https://github.com/FreeCAD/FreeCAD.git freecad-source
il n'y avait pas le cd ~ et du coup, mon freecad-source n'était pas au bon endroit.

Enfin bref, BRAVO, ça marche ! Merci pour ton tuto Alex !

PS : je suis en UBUNTU 64 b version Desktop sur PI4 4 Go
Edit : j'ai fait des essais comparatifs de recompute sur un de mes fichiers : en gros le pi et deux fois plus lent que sur mon ordinateur portable mais ça reste acceptable par rapport à ce que je fais.