BlocksCAD : la CAO “façon Scratch” pour des projets EPI avec imprimante 3D

Avec la réforme du collège, les projets impliquant la fabrication de maquettes et autres dispositifs expérimentaux devraient se multiplier, notamment dans le cadre des EPI (Enseignements Pratiques Interdisciplinaires). Comment parvenir à concevoir et réaliser rapidement et simplement avec les élèves des pièces pour ces maquettes ?

Les professeurs de Technologie au collège utilisent depuis des années divers logiciels de modélisation 3D suivant le thème abordé. En 6è la modélisation 3D permet aux élèves de visualiser des mécanismes, comme une transmission par chaîne. Dans ce cas l’élève se contentera d’exploiter une modélisation 3D avec SolidWorks par exemple, ou un logiciel comme edrawing. En 5è, les élèves commencent à faire de la modélisation 3D en rapport avec le thème Habitat et ouvrages. Des logiciels comme Sketchup ou Sweet Home 3D sont souvent utilisés. En 4e et 3e, SolidWorks est à nouveau très utilisé, mais la modélisation avec ce logiciel nécessite une phase d’apprentissage délicate pour de nombreux élèves.

Logo du logiciel BlocksCAD (source : blockscad.einsteinsworkshop.com)

J’ai découvert très récemment le logiciel BlocksCAD qui me semble très intéressant pour concevoir de nombreuses activités pédagogiques. 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, avec différents types de liaisons, différents types de motorisations …  Mais attention, pour imprimer toutes les pièces d’un petit mécanisme, il faut de 2h à 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 en moyenne (soit au moins 330 m), cela revient à quelques dizaines de centimes pour un petit mécanisme comportant quelques pièces, et moins de 2 euros pour un mécanisme comportant une vingtaine de pièces.

Même si BlocksCAD est simple, la conception des pièces d’un mécanisme n’est pas forcément simple. Mais un des intérêts de BlocksCAD est la possibilité pour l’enseignant de pouvoir donner aux élèves des modèles 3D de briques élémentaires : une sorte de bibliothèque de pièces mécaniques constituant une boîte de mécano virtuelle. On donnerait ainsi la possibilité pour les élèves de choisir les pièces correspondant à leur besoin, de les modifier pour tenir compte de leurs contraintes (parfois simplement en changeant des paramètres du modèle), de les assembler dans BlocksCAD, éventuellement de les animer (avec OpenSCAD), de les imprimer, de les assembler physiquement en les intégrant dans un système (avec une chaîne d’énergie et une chaîne d’informations), de valider des solutions techniques, …, que ce soit au collège ou au lycée. Il serait intéressant que les enseignants puissnet mutualiser les modèles 3D faits sous BlocksCAD pour constituer cette “boîte de mécano virtuelle”.

Voici quelques 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.

Barre 4 trous V14

Exemple de pièce conçue avec BlocksCAD. Les couleurs ont été ajoutées à des fins pédagogiques (Source : LP2I)

Barre_190416_V19_Top

L’ensemble est facilement paramétrable (Source LP2I)

Barres_assemblees_180616

Assemblage de deux barres, selon un angle que l’on peut facilement faire varier (voire animer avec OpenSCAD).

Essai_Barres_assemblees_180616

On peut très simplement imaginer et concevoir un tas de choses à imprimer en 3D. Ici les barres rouges sont imprimées sous la forme d’une seule pièce. Les liaisons cylindriques entre les pièces se clipsent et tournent bien.

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.

Bielle_manivelle_190416_V19_Top2

Système bielle-manivelle motorisé, conçu avec BlocksCad (Source : LP2I)

Bielle_manivelle_190416_V19_Bot2

Arrière du système bielle-manivelle motorisé, conçu avec BlocksCad. Le moteur peut se fixer sur la partie orange. (Source : LP2I)

Bielle_manivelle_190416_V19_Bot3

On peut aussi allonger la pièce verte en translation pour pouvoir y connecter un autre mécanisme. Il suffit de changer la valeur du nombre de trous pour cette pièce. (Source LP2I)

Pour plus d’informations sur ce système bielle-manivelle, voir cet article .

 

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.

Pignon_Cremaillere_210416_V2_Top2

Mécanisme pignon-crémaillère modélisé avec BlocksCad, à partir de la modélisation d’un pignon et d’une crémaillère modélisés par Leemon Baird (Sources : LP2I et Thingiverse.com)

Pignon_Cremaillere_210416_V2_Bot

Vue de l’arrière du mécanisme pignon-crémaillère modélisé avec BlocksCad, à partir de la modélisation d’un pignon et d’une crémaillère modélisés par Leemon Baird (Sources : LP2I et Thingiverse.com)

 

 

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.

Bras_2servos_240416

Bras avec 2 axes motorisés avec des servomoteurs de type SG90 (Source : LP2I)

Bras_2servos_240416_Back

Vue de dessous (Source : LP2I)

Pour ce système les fichiers .xml pour BlocksCAD et .stl pour l’impression 3D sont disponibles dans le fichier compressé ci-dessous :

Epaule_bras_2servo_240416V3

Mise à jour du 07/06/2016 : Il s’agit ici d’une modélisation datant du 24 avril. Depuis 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 des fichiers et cet article notamment car je travaille sur la mise au point d’un robot low-cost. Je commence à présenter ce robot dans le chapitre suivant où je donne une version beaucoup plus récente de la modélisation de ce bras robotisé. 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.

 

5) Robot low-cost avec 4 (ou 6) 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, disponibles chez Gotronic à 4,40 € pièce, ou près de 8 € les 4 chez Bangood). Le visage est également usiné et équipé de deux LEDs RGB dans les yeux (à près de 6 € les 5 chez Gotronic, ou près de 2 € les 10 chez Bangood). 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. Sur l’image ci-dessous, le visage ne comporte que deux trous pour fixer l’entraxe des yeux. Le reste du visage est modélisé par les élèves.

Robot_170616

Voici une première image de la modélisation actuelle du robot obtenue avec Blockscad, sans les 2 cartes électroniques, une à l’avant, l’autre à l’arrière (Source : collège Jean Macé).

Robot_170616_Arr

Arrière de la tête du robot avec le servomoteur de son axe horizontal (permettant de basculer le visage vers l’avant)

Robot_170616_Arr2

Haut du corps avec le servomoteur de l’épaule et le servomoteur de l’axe vertical de la tête (permettant de tourner la tête de gauche à droite)

Robot_servo_epaule_et_tete_310516

Haut du corps avec le servomoteur de l’épaule et le servomoteur de l’axe vertical de la tête (permettant de tourner la tête de gauche à droite)

Robot_Bras_170616

Articulation du bras (coude)

Pour ce système les fichiers .xml pour BlocksCAD et .stl pour l’impression 3D sont disponibles dans le fichier compressé ci-dessous :

Robot_170616

 

6) Autres exemples trouvés sur Internet

Pièces conçues avec OpenSCAD par Hugo et imprimées en 3D (Source : digitalspirit.org)

Charnière de porte de douche modélisée avec OpenSCDAD par Franck Fleurey (Source : fleurey.com/weblogs/franck)

Pièce d’origine (cassée) et pièce de remplacement dessinée et imprimée par Franck Fleurey (Source : fleurey.com/weblogs/franck)

Charniere douche Blockscad V2

La même charnière de porte de douche dessinée par Franck Fleurey, puis importée dans BlocksCAD à partir du fichier STL fourni (Source : collège Jean Macé)

7) Présentation de l’interface graphique de 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, 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 !

Attention certaines images sont issues d’anciennes versions de BlocksCAD. La version française n’est disponible que depuis le mois de mai.

Formes

Formes 3D de BlocksCAD (source : collège Jean Macé)

Transformations

Principales transformations de formes avec BlocksCAD (source : collège Jean Macé)

Operations

Opérations sur les formes avec BlocksCAD (source : collège Jean Macé)

 

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

 

Interface BlocksCAD

Interface de BlocksCAD permettant de concevoir une pièce en 3D en assemblant des blocs de description des formes (source : Collège Jean Macé)

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, à partir de l’école primaire. 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 en cours de Math au 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 : ça diminue le temps nécessaire pour son apprentissage, ça aide certains élèves à se lancer sans appréhension, ça permet d’avoir un lien supplémentaire clair avec l’enseignement des mathématiques, …
  • 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, BlocksCAD peut remplacer avantageusement SolidWorks qui est un logiciel assez complexe et cher (et propriétaire). L’avantage aussi pour l’élève c’est qu’il peut l’utiliser facilement chez lui.
  • BlocksCAD est une application Web qui ne nécessite aucune installation. Elle peut être utilisée sur n’importe quel ordinateur, tablette (y compris les ipads achetés par le département), ou smartphone Androïd, … Il peut donc être utilisé dans n’importe quelle salle du collège, lors d’un EPI dans une salle banalisée avec un ordinateur portable quelconque par exemple.
  • 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 la Technologie 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.
  • 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 de 4è pour qu’ils conçoivent et fabriquent des pièces pour notre projet de robotique.

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.

Pour ceux qui cherchent un logiciel de CAO en 3D gratuit comparable à SolidWorks, avec lequel il est compatible, je conseille le logiciel Onshape pour lequel je consacrerai prochainement un article. Voici quelques informations de base sur Onshape :

Onshape est un nouveau logiciel professionnel de CAO 3D, sorti en décembre 2015 qui a pour objectif de concurrencer directement SolidWorks avec une approche originale et innovante. Onshape est compatible en import et en export avec de nombreux logiciels dont SolidWorks. C’est une application Web dont l’usage est gratuit pour un usage pédagogique, sans aucune limitation. Des applications multi-plateforme existent pour tablettes et smartphones (y compris pour éditer des modèles 3D). Onshape me semble complémentaire de BlocksCAD pour un fablab équipé d’une imprimante 3D, que ce soit au lycée ou au collège.
Je pense qu’Onshape marquera probablement un tournant dans la CAO 3D, notamment dans l’enseignement et dans les fablabs où les moyens manquent pour acheter des licences ou des ordinateurs performants.
Lien vers l’application web Onshape.
Lien vers l’application Onshape pour Androïd.

J’ai présenté par ailleurs, 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.