Cher Journal,
Tout d'abord, je te souhaite une bonne et heureuse année 2016. Ensuite, je voudrais te parler du logiciel libre Openmeca, dont une nouvelle version majeure (la 2.0
) vient juste de paraître sur gitlab.
Un bref historique
Openmeca est un projet personnel. Pour être honnête avec toi, cher Journal, la première version était un peu brouillonne, voir même carrément cracra. Tu comprendras qu'à cette époque, il y a 8 ans, j'étais jeune, fougueux et surtout très ignorant des bonnes pratiques élémentaires de programmation.
Alors, j'ai tout recommencé depuis le début, en espérant que, cette fois, le code serait un peu moins moche. C'est donc une version 2.0
qui fait (pour l'instant) moins de chose que la version 1.x
mais qui le fait avec plus de classe et de panache et ça, c'est déjà pas mal.
Openmeca… c'est quoi ?
Openmeca, c'est un logiciel de simulation sans prétention de système mécanique. Il permet de simuler des mécanismes avec des engrenages, des courroies, des liaisons pivots, des glissières, des ressorts… bref, tout ces petits mécanismes qui, mis bout à bout, permettent à une voiture d'avancer, à une fusée de décoller, un compresseur de compresser ou bien à un tire-bouchon de faire plop !
Attention, Openmeca n'est pas un modeleur volumique comme freecad, catia ou bien solidworks. Le but d'Openmeca est de pouvoir prototyper et simuler rapidement un système mécanique sans s'embarrasser de la définition complète du mécanisme : géométrie, assemblage, etc. Comme une image vaut mieux qu'un grand discours, tu verras un aperçu d'openmeca ci-dessous.
Openmeca permet donc de dessiner des schémas cinématiques en 3D et de les animer en appliquant des forces ou en imposant des déplacements. Il est également possible de placer des capteurs numériques afin de récupérer des données au cours d'une simulation. Enfin, et c'est une nouveauté par rapport à la version précédente, la gestion des contacts entre des géométries simples est disponible.
Architecture
Openmeca est écrit en C++ 98 et utilise les bibliothèques suivantes :
- qt4 pour l'interface graphique,
- qwt6 pour faire des graphiques sympas,
- qglviewer pour gérer la scène 3D,
- boost pour la sauvegarde (sérialisation) ainsi que tout un tas de trucs et
- chronoengine pour le moteur physique.
Et maintenant ?
Openmeca est loin d'être achevé. Il reste tout un tas de fonctionnalités rigolotes à ajouter : nouvelles liaisons mécaniques, nouvelles géométries de contact, amélioration de l'ergonomie de l'interface, rédaction d'une aide, traduction, etc. Mais, avant de réaliser toutes ces belles choses, ce qu'il serait bien, c'est de tester l'architecture déjà existante. Car comme dit le maçon : avant de construire la charpente il faut commencer par les fondations. Je t'écris donc aussi avec ce secret espoir, cher Journal, celui de susciter l’intérêt de quelques barbus (ou pas) pour m'aider à améliorer/participer à ce projet !
contact: openmeca (at) yakuru.fr
Bien à toi,
omc.
# genial !!
Posté par Anonyme . Évalué à 10.
m'en vais l'essayer.
sinon pour faire mon lourdingue, c'est quoi la licence ?
[^] # Re: genial !!
Posté par omc . Évalué à 10.
C'est la GPL v3
# Super !!!
Posté par harlock974 . Évalué à 5.
Bravo !
J'adore "The one minute install & compile guide". Tout a fonctionné du premier coup.
Petite correction à faire : dans le menu Liaison, il y a écrit "engrenange" au lieu de "engrenage".
[^] # Re: Super !!!
Posté par omc . Évalué à 3.
Corrigé, merci !
[^] # Re: Super !!!
Posté par Le Gab . Évalué à 2.
Je me joins à mes comparses libristes pour te féliciter!
Belle présentation, bonne esprit et honnête quant à l'état actuel du logiciel.
Alors certes, l'idée de le lier à FreeCAD nous a tous effleuré l'esprit mais après, il n'est pas nécessaire d'avoir recours à un logiciel de CAD pour juste prototyper une cinématique.
Le C++ n'est malheureusement pas dans mes cordes.
Je te souhaite bonne chance, sincèrement.
# Comment que je suis trop déçu!
Posté par Renaud Guezennec (site web personnel) . Évalué à 3.
Avec un nom pareil, je m'attendais à un Gundam libre. Tant pis! Sinon bonne chance pour le reste.
# lien pas bon…
Posté par Rozé Étienne . Évalué à 1. Dernière modification le 07 janvier 2016 à 10:40.
Bonjour,
Le lien vers catia est mal formé…
Et celui vers chronoengine marche pas non plus…
Bonne journée,
[^] # Re: lien pas bon…
Posté par palm123 (site web personnel) . Évalué à 2.
corrigé, merci
ウィズコロナ
[^] # Re: lien pas bon…
Posté par omc . Évalué à 1.
Merci !
# Quelle est ta méthode ?
Posté par freejeff . Évalué à 5.
Salut,
Ça pourrait être sympa que tu expliques les équations que tu résous et les limites. J'imagine que cela se limite au mouvements de corps rigides.
Tu pourrais aussi bosser un peu avec freecad, ça pourrait être sympa d'avoir un module mise en mouvement sur des assemblages !!
[^] # Re: Quelle est ta méthode ?
Posté par omc . Évalué à 2. Dernière modification le 24 août 2019 à 15:31.
Oui, le logiciel est limité au corps rigide. Les équations sont celles de la dynamique. Sinon, OpenMeca utilise chronoengine comme moteur physique. Si tu souhaites te documenter sur les algorithmes utilisés, tu peux jeter un oeil sur les cours de David Barraff… mais c'est du balèze !
Pour freecad, j'y ai déjà pensé mais j'ai déjà beaucoup de choses sur le feu.
# The incredible machine!
Posté par Ryzz . Évalué à 8.
Désolé, mais en lisant ce passage:
je n’ai pu m’empêcher de penser à The incredible machine.
[^] # Re: The incredible machine!
Posté par max22 . Évalué à 1.
ah mais oui, le professeur Tim, j'ai eu ce jeu avec mon premier ordinateur… que de souvenirs !
# Un remarque.
Posté par thor_tue . Évalué à 9.
Franchement, j'aurais à développer un projet de ce type, je regarderais très sérieusement s'il est possible de l'intégrer dans FreeCAD, il y a déjà des modules spécialisés qui sont développés. C'est totalement en rapport avec FreeCAD, logiciel qui devient de plus en plus intéressant. Un module de cinématique pour corps solides, c'est quelque chose dont on a rapidement besoin dans un logiciel CAO.
[^] # Re: Un remarque.
Posté par freejeff . Évalué à 4.
J'avais déjà fait cette réflexion dans le journal donc je ne peux qu'être d'accord avec toi. Pour en dire un peu plus, ce qui peut être complexe c'est de calculer quantité mécaniques telles que le centre de masse et le moment d'inertie, c'est déjà fait dans FeeCAD sous la forme d'un module (Macro ObjectInfo). Il faut ensuite être capable de calculer les torseurs des efforts aux points de contacte ainsi que résoudre les équations de la dynamique ce qui peut se faire via chrono::engine (qui dispose d'un module python), le seul problème est donc de savoir comment passer les info mécaniques que l'on peut calculer avec FreeCAD vers chrono::engine et réciproquement. Il faudrait également pouvoir détecter les collisions, pour les systèmes de type engrenage et autres système mécaniques. Je ne connais pas chrono::engine mais j'imagine qu'il dispose de ces outils vu ce qu'il est capable de faire.
Donc ce module est déjà un énorme pas en avant pour avoir une conception prenant en compte la cinématiques dans FreeCAD.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.