2019-03-04 : CampOsv : CadRacks & IoT
From Communauté de la Fabrique des Mobilités
Evénement lié : Formation Py OSV Logiciel CAO Open Source
Organisations impliquées : Université Rennes 1
Tags : cardracks, IoT
Thème : Open HardWare, Logiciel Libre
Défi lié à l'Atelier : Abaisser les barrières pour innover sur le véhicule
Commun(s) impliqué(s) : CadRacks (ex PyOSV) logiciel Modélisation libre d'objets complexes
Communauté(s) d'intérêt impliquée(s) : Communauté des Hackers / Makers, Communauté du Logiciel Libre, Communauté de l'Open Hardware
Espace d'échange CHAT : https://chat.fabmob.io/channel/open_logiciel
Autres informations :
CadRacks[edit | edit source]
Sous projets:[edit | edit source]
- plugin freecad pour créer des ancres sur des pièces (workbench)
- idée pour définir des pièces paramétriques à partir de scripts python
- hub git (gitea) avec viewer basé sur three.js
- à venir: résolution de contraintes (solvspace)
Librairies utilisées:[edit | edit source]
- OpenCascade: que de la géométrie
- tpaviot/PythonOCC: Wrapper python d’OpenCascade (demos, official site)
- CCAD: API simple en python reposant sur OCC, plus de sémantique pour les opérations (fusions, difference, répétitions…)
Contribs[edit | edit source]
- Concept d’ancres pour définir les relations entre les pièces:
- 1 point + 2 vecteurs (l’utilsiateur ne manipule pas de quaternions)
- expression des liaisons mécaniques (rotule, linéaire…)
- StepZip: description json de la géométrie des piècs, assemblages et ancres
- Proposition Nomenclature des pièces et instances: https://github.com/osv-team/osvcad/blob/master/doc/nomenclature/nomenclature_des_pieces.v0.3.pdf
Limites actuelles[edit | edit source]
- Code publié, mais pas encore les instructions pour lancer le service (utilisation d’une VM préconfigurée durant l’OSV Camp)
- Workflow unidirectionel : Freecad et/ou script python -> serveur git -> Browser On ne peut pas recharger un asssemblage CadRacks dans Freecad Pas de mécanisme d’interaction avec le modèle web
- 4 sous projets: attention à la maintenance ! Peut être faudrait il se découpler de gitea (webhooks, repo de liens vers les builds faits par d’autres serveurs ?)
- Pas de niveau de détail automatique (auto LOD demo, example doc)
Suggestions pour la roadmap / hackathons :[edit | edit source]
- Dockerfile pour le serveur
- Affichage 2D simplifé pour aperçus et machines limitées (click to intreact)
- API (REST?) pour interagir avec les Entités (pièces / assemblages / ancres) dans le viewer web (ex: afficher la structure de l’assemblage, changer la couleur d’une lampe / taille d’une boite / ajouter un indicateur visuel)
- support glTF : https://www.khronos.org/gltf/
- interaction clic browser -> raycast -> code highlight
- permettre l’utilisation de pièces venant d’un autre projet ou une autre instance de cadracks (avec gestion des versions/tags)
- Rebuild model from code within the browser
- Support des assemblages 3D de découpes planes (découpe laser), autolayout export fichier de découpes
- rendu: fonctions vue éclatée, fil de fer: http://dev.chimeraprime.com/jetengine/
- export photoréaliste
Projets qui ressemblent:[edit | edit source]
- Jupyter notebook + PythonOCC :
docker run --rm -it -p 8888:8888 -v /..absolute_path_to_your_workspace.../:/opt/notebooks henryc/pythonocc-notebook:0.1.2
- CoffeSCAD (dead: https://github.com/kaosat-dev/CoffeeSCad ), works on chromium
- OpenJSCAD: https://www.openjscad.org/
- https://github.com/OpenWebCAD/node-occ
- CadQuery QT editor (PythonOCC): https://github.com/CadQuery/CQ-editor