Dans le cadre d’une étude de cas ou d’un mini-projet, il peut être utile pour les élèves de Sciences de l’Ingénieur de concevoir et réaliser rapidement des pièces avec une imprimante 3D. Le logiciel BlocksCAD peut être utile dans ce cas.
Aujourd’hui le logiciel SolidWorks est très utilisé au lycée mais pour pour de nombreux élèves, concevoir une pièce avec ce logiciel demande beaucoup de temps si on ne les guide pas de manière très directive. Et comme ce logiciel est payant, il ne peuvent pas poursuivre leur travail de conception en dehors des salles SI.
J’ai découvert récemment le logiciel BlocksCAD qui me semble très intéressant. C’est un logiciel développé par Einstein’s Workshop, un centre de formation pour enfants dans la région de Boston aux Etats Unis. Le développement a été financé sous-licence libre grâce à une campagne de crowdfunding (financement participatif) en 2013 et 2014. BlocksCAD est basé sur Blockly qui est une brique logicielle conçue en 2013 par Google pour permettre le développement de logiciels pédagogiques d’apprentissage de la programmation. Blockly permet de concevoir simplement un logiciel où la conception se fait graphiquement en assemblant des blocs, comme avec Scratch ou AppInventor. Blockly permet de générer du code à partir de cet assemblage de blocs. Ici BlocksCAD génère une modélisation en 3D en utilisant le code du logiciel OpenSCAD qui est un logiciel libre de modélisation en 3D (à partir de scripts). Les modèles créés avec BlocksCAD peuvent être exportés au format OpenSCAD, mais ce n’est pas sa fonction principale. Par défaut BlocksCAD travaille avec des fichiers au format XML et génère un fichier au format STL (STereoLythography) qui est devenu le format le plus courant pour les logiciels d’impression 3D (comme RepetierHost qui est un logiciel libre).
BlocksCad m’a permis de concevoir et fabriquer des mécanismes à usage pédagogiques. Il s’agit de vrais mécanismes entièrement imprimables en 3D, constitués de pièces mobiles en rotation et en translation, avec des liaisons pivots et glissières, avec l’utilisation d’une roue dentée, d’une crémaillère, … avec un entrainement motorisé, … Mais attention, pour imprimer toutes les pièces d’un petit mécanisme, il faut près de 3h en moyenne. Cela nécessite généralement de l’ordre de 10 m de fil en PLA de 1,75 mm. A raison de 25 € la bobine de 1kg (soit 330 m), cela revient à moins de 1 euro le mécanisme.
Voici trois exemples que j’ai mis au point. Je les ais fabriqués et ils fonctionnent. Je publie ici des images et des vidéos issus des modèles 3D. Des photos et des vidéos des systèmes imprimés seront publiées prochainement.
1) Une pièce de base pour la construction de mécanismes : une barre avec des trous et un connecteur intégré à une extrémité
J’ai essayé de faire une conception paramétrique d’une pièce de base constituée d’une barre avec des trous (comme les jeux Mécano) avec un connecteur intégré pour obtenir des liaisons pivot : on peut choisir notamment le nombre de trous (n), la largeur de la pièce (b), la hauteur des deux premiers cylindres constituant les connecteurs (h1 et h2), … J’ai ajouté aussi un trou avec un méplat pour le moteur.
2) Mécanisme bielle-manivelle
A partir de cette pièce de base j’ai conçu et imprimé en 3D un système bielle-manivelle à usage pédagogique. On peut notamment changer la course en connectant la bielle (en rouge) sur deux trous de la manivelle (en bleu). On peut allonger chacune des pièces pour y connecter d’autres pièces.
Extraits de la modélisation avec BlocksCad de ce système bielle-manivelle (d’une ancienne version en fait. La nouvelle sera bientôt publiée).
Attention il s’agit ci-dessous de la version anglaise car je n’ai découvert que récemment la version française.
Mise à jour du 07/06/2016 : Depuis le mois d’avril j’ai continué à consacrer beaucoup de temps à la mise au point de solutions utilisant BlocksCAD avec l’imprimante 3D. Cela fonctionne de manière très satisfaisante même pour des pièces que je ne pensais pas pouvoir imprimer de manière satisfaisante. Je n’ai pas encore eu le temps de mettre à jour cet article notamment car je travaille sur la mise au point d’un robot low-cost que je commence à présenter plus loin dans cet article. Je rédigerai très prochainement un nouvel article sur ce sujet. En attendant il ne faut pas hésiter à me solliciter en laissant un commentaire.
Pour ce système bielle-manivelle, les fichiers .xml pour BlocksCAD et .stl pour l’impression 3D sont disponibles dans le fichier compressé ci-dessous :
Pour la motorisation j’utilise un motoréducteur de ce genre qu’on trouve à 2,75 € chez Gotronic :
3) Mécanisme Pignon-crémaillère
A partir de ce mécanisme, j’ai assez facilement obtenu un mécanisme de type pignon-crémaillère.
Je suis parti d’un modèle paramétrique de roues dentées et crémaillère réalisé avec OpenScad par Leemon Baird et publié sur thingiverse.com.
OpenScad est le logiciel libre et gratuit qui a permis la conception de BlocksCad.
Avec Openscad et ce modèle paramétrique j’ai donc facilement obtenu une roue dentée et une crémaillère que j’ai exportés en .stl depuis OpenScad (très simplement).
Je les ai ensuite importés dans BlocksCad pour créer le modèle d’un mécanisme pignon-crémaillère motorisé. Le pignon est la roue dentée en rouge, entraînée par le moteur qui se connecte derrière. La crémaillère est la pièce rouge fixée à la pièce verte. Pour le moment la fixation se fait simplement avec de l’adhésif double face). Pareil pour la pièce gris clair qui guide la crémaillère contre le pignon.
Pour ce système pignon crémaillère, les fichiers .xml pour BlocksCAD et .stl pour l’impression 3D sont disponibles dans le fichier compressé ci-dessous :
4) Bras avec 2 servomoteurs
Avec BlocksCad j’ai conçu un bras avec les barres conçues précédemment auxquelles j’ai intégré 2 supports pour des servomoteurs. La particularité ici c’est que pour chaque axe motorisé je conserve la liaison pivot apportée par les deux barres emboîtées. Je conserve également un débattement de 120 ° dans les deux sens. La mise au point actuellement consiste à mieux gérer le jeux entre les barres qui engendre des rotations perpendiculaires à l’axe moteur.
Pour ce système les fichiers .xml pour BlocksCAD et .stl pour l’impression 3D sont disponibles dans le fichier compressé ci-dessous :
5) Robot avec 4 servomoteurs
Je pense qu’on peut aller beaucoup plus loin en associant impression 3D et programmation. Je travaille depuis les vacances de Pâques sur la conception et la fabrication d’un petit robot “humanoïde”. Il “parle” grâce à un module mp3, une carte Arduino micro et un HP 3W, le tout alimenté en USB. Le corps est constitué essentiellement de deux plaques usinées. J’ai ajouté des pièces imprimées en 3D pour obtenir des bras avec deux articulations motorisées pour chacun (mais je ne monte les deux servomoteurs que sur un seul bras par soucis d’économie), et une tête avec également deux axes motorisés (soit 4 servomoteurs montés sur chaque robot). Le visage est également usiné et équipé de deux LEDs RGB dans les yeux. Le corps est fixe : pas de jambes ni de roues. Il mesure environ 26 cm de haut. Il y a 17 pièces imprimées en 3D par robot, conçues entièrement avec Blockscad (libre et gratuit) : durée d’impression = 6h40 pour un robot (impression des 17 pièces en une passe, soit une nuit) avec 70 g de PLA soit 1.70 € environ.
Pour ce système les fichiers .xml pour BlocksCAD et .stl pour l’impression 3D sont disponibles dans le fichier compressé ci-dessous :
6) Boitier pour des piles R6 ou R3
Cette modélisation 3D n’est qu’un exercice de style. Il s’agit de modéliser de manière paramétrique un boîtier de piles avec la possibilité de choisir le nombre de piles et le type de piles (R6 ou R3 ici). Bien sûr il ne s’agit que de la base d’un tel boîtier, l’objectif étant seulement de montrer un exemple de conception paramétrique et hiérarchisée.
Fichier modélisation 3D boîtier de piles disponible ici.
7) Ogive pour un projet de fusée
Pour un projet avec des élèves qui voulaient construire deux fusées (uen grande et une petite), j’ai fait une modélisation 3D paramétrique d’une ogive avec BlocksCAD. Il me semble que cela devrait aussi intéresser des profs de math (en tant qu’exemple possible).
Pour ma modélisation 3D paramétrique d’une ogive, j’ai choisi 3 paramètres (en mm) :
Ho = hauteur de l’ogive
Ro = rayon à la base (avec tangente de l’ogive à 90°)
Ep = épaisseur (constante) de l’ogive
J’en déduis par calcul l’angle Alpha de la pointe (par rapport à l’axe de l’ogive) : Alpha = 2 atan(Ro/Ho)
J’en déduis aussi le rayon de courbure de l’ogive : R = Ho / sin(Alpha)
Le cercle primitif (avant l’extrusion autour de l’axe) est tronqué à l’abscisse R.cos(Alpha).
Une fois cette modélisation géométrique faite, l’utilisation des fonctions trigonométriques avec BlocksCAD permet d’obtenir très facilement la modélisation 3D paramétrique souhaitée.
Vous trouverez ma modélisation 3D de cette ogive dans mon Google Drive.
Il faut charger ce fichier xml depuis l’application web BlocksCAD disponible ici.
On peut facilement supprimer l’extrusion pour voir la modélisation en 2D.
6) Autres exemples trouvés sur Internet
5) Principes de la modélisation avec BlocksCad
La conception d’une pièce avec BlocksCAD se fait en assemblant des volumes primitifs que sont les sphères, les cubes, les cylindres (transformables en cônes) et les tores, à l’aide d’opérateurs (union, différence, intersection, …). Les volumes peuvent être transformés par des translations, des rotations, des symétries, des extrusions, … On peut paramétrer les volumes avec des variables, des équations, … On peut concevoir des choses complexes avec un véritable algorithme exactement comme on le ferait avec Scratch ou Blockly Arduino, avec des boucles, des tests, … BlocksCAD peut même être utilisé en Mathématiques pour faire des exercices d’algorithmie ou le résultat de l’exécution de l’algorithme est une modélisation en 3D !
Aujourd’hui BlocksCAD se présente sous la forme d’une application Web accessible ici :
https://blockscad.einsteinsworkshop.com/
Attention il s’agit ci-dessus de la version anglaise car la version française n’est disponible que depuis peu de temps :
https://blockscad.einsteinsworkshop.com/?lang=fr
BlocksCAD est donc un logiciel de conception de modèles en 3D, avec pour principal objectif la fabrication avec une imprimante 3D. Ce logiciel possède de nombreux atouts :
- BlocksCAD est un logiciel conçu pour un usage pédagogique par des débutants. Il est donc très simple d’utilisation. Aucun tutoriel n’est nécessaire pour utiliser les fonctions de base.
- BlocksCAD est basé sur Blockly qui est une brique logicielle conçue par Google pour permettre le développement de nombreux logiciels pédagogiques d’apprentissage de la programmation. BlocksCAD utilise donc une interface graphique inspirée de Scratch, en passe de devenir un standard dans l’enseignement de l’algorithmie dès le collège. L’élève retrouve le principe de la modélisation à partir de blocs qu’il assemble avec la possibilité de voir directement le résultat de sa modélisation. Avec BlocksCAD l’élève reste en terrain connu dès le classe de seconde : ça diminue le temps nécessaire pour son apprentissage, ça aide certains élèves à se lancer sans appréhension, …
- BlocksCAD est un logiciel libre et gratuit : il est possible d’adapter le logiciel à son besoin en créant de nouveaux blocs, en traduisant certains textes, … Pour concevoir rapidement des pièces simples à imprimer lors d’un projet. L’avantage aussi pour l’élève c’est qu’il peut l’utiliser facilement sur n’importe quel ordinateur du lycée, y compris chez lui.
- BlocksCAD est une application Web qui ne nécessite aucune installation. Elle peut être utilisée sur n’importe quel ordinateur, tablette, ou smartphone Androïd, …
- BlocksCAD ne nécessite pas des ressources matérielles importantes (ce qui n’est pas le cas de SolidWorks).
- BlocksCAD permet de générer directement un fichier .stl compatible avec les logiciels d’impression 3D.
- BlocksCAD pourrait facilement être utilisé pour un travail interdisciplinaire entre les Sciences de l’Ingénieur et les Mathématiques, l’Art Plastique, …
- BlocksCAD permet de générer un fichier compatible Openscad, qui est un modeleur 3D, utilisable dans un cadre professionnel.
- BlocksCAD permet d’importer facilement des pièces au format STL (que l’on trouve par milliers sur Internet) et de les intégrer à sa propre modélisation en lui appliquant toutes les modifications souhaitées. C’est intéressant pour intégrer des pièces complexes comme des roues dentées par exemple.
- BlocksCad permet une conception paramétrique avec des modules imbriqués très pratiques.
- BlocksCad est enfin traduit en français.
J’ai toutefois identifié des inconvénients de BlocksCAD lors de mes premiers essais :
- Pas de modélisation des aspects cinématiques (mouvements), l‘animation d’un modèle est cependant possible de manière simple à partir d’OpensScad (voir les vidéos précédentes).
- Pas de véritable mise en plan ni de cotation, ni de nomenclature.
- La gestion des variables est un peu particulière (les considérer comme des constantes : voir ce lien).
- Comme tous les modeleurs 3D utilisés, j’ai constaté que les modélisations un peu complexes nécessitent généralement d’être “réparées” pour être compatible avec le trancheur slic3r utilisé par Reptier Host (voir cura sinon). Le site modelrepair.azurewebsites.net est très utile pour réparer un modèle.
J’envisage d’utiliser BlocksCAD avec mes élèves au lycée pour qu’ils conçoivent et fabriquent des pièces pour leurs projets. A suivre donc.
Un autre logiciel de modélisation 3D par l’intermédiaire de blocs est en cours de développement. Il s’agit de Beetleblocks qui est basé sur Scratch (et non sur Blockly comme BlocksCAD). Il est plus orienté Art Plastique. Il a l’avantage d’être en partie traduit en français.
J’ai présenté dans un autre article un autre logiciel de CAO basé sur Blockly pour programmer des cartes Arduino, le logiciel Blockly Arduino que j’utilise avec mes élèves.