BlocksCAD : un logiciel de CAO pour concevoir rapidement des pièces à imprimer en 3D

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.

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

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.

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)

 

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_Top

Le même mécanisme avec la pièce rouge rallongée (5 trous au lieu de 3). Il suffit de changer la valeur du nombre de trous pour cette pièce dans la modélisation BlocksCad (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)

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.

Code Barre 4 trous V14

Modélisation paramétrique avec BlocksCAD de la pièce précédente (une ancienne version en fait. La nouvelle sera bientôt publiée) : voir détails ci-dessous (Source : LP2I).

Detail 1 Code Barre 4 trous V14

Détails du code de la modélisation paramétrique de la barre (une ancienne version en fait. La nouvelle sera bientôt publiée) (source : LP2I)

Detail 2 Code Barre 4 trous V14

Détails du code de la modélisation paramétrique de la barre (source : LP2I)

Code Connecteur et trou V14

Modélisation paramétrique des connecteurs de la pièce précédente (une ancienne version en fait. La nouvelle sera bientôt publiée) (Source : LP2I)

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 :

Bielle_Manivelle_190416_V19d

Pour la motorisation j’utilise un motoréducteur de ce genre qu’on trouve à 2,75 € chez Gotronic :

Motoréducteur utilisé pour le système bielle-manivelle (source : gotronic.fr)

 

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)

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 :

Pignon_Cremaillère_210416_V2c

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.

Bras_2servos_240416_V4

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

Bras_2servos_240416_V4_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_240416_V4

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.

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 : LP2I).

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_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) 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.

Pach_de_piles_050516_V4_part1

Dans cette partie de la modélisation on définit les paramètres, en fonction du type de piles choisies (Source : LP2I)

Pach_de_piles_050516_V4_part2

La modélisation 3D du boîtier de piles est hiérarchisé : le pack contient n slots dont la taille dépend du type de piles (source : LP2I)

Pach_de_piles_050516_V4_part3

La modélisation des éléments (piles) qui constituent le pack, a été ajouté à titre d’exemple, mais aussi pour mieux comprendre le principe du pack de piles (source : LP2I)

Pach_de_piles_050516_V4_R6

Rendu obtenu si on choisit 4 piles R6 (source : LP2I).

Pach_de_piles_050516_V4_R3

Rendu obtenu si on choisit 4 piles R3 (source : LP2I).

 

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.

Ogive_040516_V2

Modélisation 3D paramétrique avec BlocksCAD d’une ogive (Source : LP2I)

Ogive_040516_V2_100_20_1

Rendu de cette modélisation 3D d’une ogive avec BlocksCAD (source : LP2I)

 

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 : LP2I)

 

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 !

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

Formes 3D de BlocksCAD (source : LP2I)

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

Principales transformations de formes avec BlocksCAD (source : LP2I)

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

Opérations sur les formes avec BlocksCAD (source : LP2I)

 

Aujourd’hui BlocksCAD se présente sous la forme d’une application Web accessible ici :

https://blockscad.einsteinsworkshop.com/

 

Interface BlocksCAD

Interface de BlocksCAD permettant de concevoir une pièce en 3D en assemblant des blocs de description des formes (source : LP2I)

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.