HueForge : Filaments et transitions

Comme je l’ai déjà dis, HueForge est avant tout un outil à vocation « artistique ». Il faut donc oublier l’idée de reproduire à l’identique une image, avecles mêmes couleurs, les mêmes contrastes, etc.

HueForge va « estimer » les couleurs de transitions entre les 2 couleurs que vous choisirez . Par exemple, si vous positionnez du noir en couche 1 et du blanc en couche 5, HueForge va progressivement passer du noir au blanc sur les couches 2,3 et 4, non pas en mélangeant physiquement les couleurs, mais en « estimant » le résultat – donc ici différents gris – en fonction du coefficient TD des filaments.

TD : qu’est-ce que c’est ?

HueForge s’appuie sur un principe fondamental : « Chaque filament change la couleur perçue en fonction de l’épaisseur déposée ».

Le TD quantifie précisément à quel point la couleur change quand on augmente l’épaisseur.

Un filament très opaque aura un TD élevé.
Un filament très translucide aura un TD faible.
Un filament très saturé en couleur aura un TD plus marqué.
Un filament pastel aura un TD plus doux.

On comprend donc l’importance du TD dans l’utilisation de HueForge.

Comment le TD est-il déterminé ?

Pour utiliser au mieux un filament dans HueForge, il faut renseigner correctement la valeur TD associée.

Il y a 4 possibilités pour déterminer (ouo connaître) cette valeur

La valeur est déjà connue

C’est le cas le plus simple. HueForge dispose d’une importante bibliothèque de filaments qui évolue au fil des versions, ordonnée par marque et couleur. Il est donc possible que votre filament soit déjà référencé. Dans ce cas, il suffit de l’ajouter à votre liste de filaments.
Il arrive aussi que la valeur soit indiquée par le fabriquant, soit directement sur la bobine, soit au travers de fiches techniques disponibles sur son site.  Là aussi rien de plus simple que de renseigner cette valeur dans HueForge.

Détermination par la méthode SeaShell Test

Hue Forge propose une méthode de détermination : le SeaShell Test. HueForge met a disposition un fichier spécifique à imprimer avec le filament dont vous voulez déterminer le TD.

Les 6 premières couches sont imprimées en noir. Les autres couches avec le filament en test.
Une fois la pièce imprimée, il suffit de comparer le résultat obtenu avec la simulation dans HueForge. L’idée est de retrouver une réprésentation la plus proche de la réalité.

Une impression montrant très peu de détails serait caractéristique d’un TD faible, ici TD = 1.

A l’inverse, si beaucoup de détails apparaissent, le TD sera élevé (ici TD = 10).

Il faut compter environ 40 mn pour imprimer cet étalon.

Vous trouverez toutes les directives pour estimer au mieux votre résultat dans ce document original HueForge

Détermination avec un disque de mesure

Dans la réalité, il n’est pas nécessaire de chercher une précision extrème dans la caractérisation du TD. Je veux dire ici que je résultat d’impression entre un filament de TD = 5.2 et un filament de TD = 5.4 ne sera pas flagrant.
Il est donc possible d’utiliser un simple disque de mesure, comme celui proposé sur Makerworld

L’impression prend moins de 15 mn et nécessite juste 3g de filament.

Il suffit d’imprimer le modèle avec une hauteur de couche de 0.08 mm.
Les 11 premières couches sont imprimées en noir, les couches suivantes avec le filament à tester.

Vous obtenez un disque de ce type.

Il suffit de compter le nombre de zones, dans le sens des aiguilles d’une montre, jusqu’à la première couche qui ne laisse plus apparaître le noir.
On obtiens le TD comme indiqué sur la formule ci-dessus.
Ici, on aurait TD = 5 x 0,08 x 10 soit TD = 4

Détermination automatique

à suivre …

AMS : Quels filaments ?

De nombreuses imprimantes sont maintenant disponibles avec un combo AMS (Automatic Material System), qui permet des impressions multi-couleurs.

Le principe est simple : vous mettez plusieurs bobines et dans le slicer, vous indiquez quel bobine utiliser pour telle ou telle pièce ou partie de pièce.

Je ne parlerais pas ici du processus d’impression couleur, mais plutôt des fonctionnalités offertes par ce type de boitier.

En dehors du fait que ces boitiers intègrent généralement un système de séchage des filaments, certains d’entres-eux permettent l’identification du filament (matière, couleur, températures d’utilisations, quantité restante de filament, …). Ces informations sont directement transmises au slicer, ce qui permet une configuration adaptée à l’impression.
Pour réaliser cette opération, le boitier va être capable de lire les informations stockées sur une puce RFID placée sur la bobine elle-même.

Malheureusement, à ce jour, il n’y a pas eu de normalisation concernant le système de codage. Résultat : une bonine équipée de puces RFID de la marque A ne sera pas nécessairement utilisable sur une imprimante de marque B !

Possesseur d’une Kobra 3 de chez Anycubic, seules les bobines Anycubic sont à ce jour compatibles.  Le prix de ces bobines (compter environ 24 € le kilo pour du PLA+) est largement supérieur à ce que l’on peut trouver (généralement autour de 13€ le kilo).

Heureusement, une alternative existe : programmer ses propres puces RFID et les coller sur n’importe quelle bobine de filament.

De quoi avons-nous besoin ?

Tout d’abord, il faut des tags NFC. Les modèles reconnus par le ACE Anycubic sont les « MIFARE Ultralight C », les « NTAG216 » et les « NTAG215 ». C’est le genre de composant que vous allez facilement trouver sur Amazon par exemple (moins de 10 € les 50 pièces).
Il vous faudra aussi un moyen de les lire et les écrire. Nativement, de nombreux smartphone Android ont cette fonction. Il existe aussi la possibilité de bâtir une solution autour d’un Arduino et d’un module RFID.

Un peu de technique

Dans la mesure où il existe des applications spécifiques pour programmer les puces pour le ACE Anycubic, ce paragraphe n’est pas nécessaire. Mais il est quand même interressant de savoir ce que va contenir la puce RFID.

Une puce RFID ou NFC est une puce informatique couplée à une antenne lui permettant d’être activée à distance par un lecteur et de communiquer avec ce dernier. La grande majorité des puces RFID ou NFC ne disposent pas d’alimentation en énergie. Ce type de puces est alimenté à partir du lecteur par l’intermédiaire de l’antenne de la puce : le lecteur envoie un signal électromagnétique à la puce, ce qui la  » réveille  » et lui fournit assez d’énergie pour communiquer avec le lecteur concerné. La radio-identification, le plus souvent désignée par le sigle RFID , est une méthode pour mémoriser et récupérer des données à distance en utilisant des marqueurs appelés « radio-étiquettes » (« RFID tag » ou « RFID transponder » en anglais).
C’est une technologie d’identification automatique (sans contact) qui utilise le rayonnement radiofréquence pour identifier les objets porteurs d’étiquettes lorsqu’ils passent à proximité d’un interrogateur. Elle permet une détection automatique avec des distances de lecture de 10 à 200 m selon le type de puces.
Dans notre cas, nous utilisons des tags NFC (Near Field Communication).
C’est aussi une technologie de communication sans fil. Le NFC est une version plus évoluée de la RFID. Les puces RFID peuvent juste être lues, les puces NFC
permettent vraiment d’échanger des données. Le NFC est une technologie permettant d’échanger des données à moins de 10cm, entre deux appareils
équipés de ce dispositif. Le NFC est intégré à la plupart de nos terminaux mobiles sous forme de puce, ainsi que sur certaines cartes de transport ou de paiement maintenant.

Le tag est généralement organisé en « pages » contenant chacune un certain nombre de « bytes ». Dans le cas du ACE Anycubic, chaque page est constituée de 4 bytes, structurées de la manière suivante :

Page Content Format
4 Version marker [0x7B, 0x00, 0x65, 0x00] (0x65 = v2)
5-7 SKU 12 bytes, null-padded ASCII
8 Unused [0x00, 0x00, 0x00, 0x00]
10 Manufacturer 4 bytes ASCII (e.g., « AC » for Anycubic)
15 Material type 4 bytes ASCII (e.g., « PLA », « PETG »)
20 Color ARGB format [Alpha, Red, Green, Blue]
24 Extruder temps [min_lo, min_hi, max_lo, max_hi] (16-bit LE)
29 Bed temps [min_lo, min_hi, max_lo, max_hi] (16-bit LE)
30 Diameter & length [diam_lo, diam_hi, len_lo, len_hi]
31 Weight [weight_lo, weight_hi, 0x00, 0x00] (grams)

La principale difficulté reste que ces informations ne sont pas documentées « officiellement » par Anycubic. Le tableau ci-dessous est donc une compilation d’informations trouvées sur différents Forum.

En pratique, voici ce que l’on peut obtenir en lisant une puce officielle Anycubic placée sur une bobine de la marque (PLA Tropical Turquoise) :

Page Content Format En clair
4 Version marker [0x7B, 0x00, 0x64, 0x00] (0x64 = v1)
5-7 SKU [0x48, 0x50, 0x4C, 0x31]
[0x38, 0x2D, 0x31, 0x30]
[0x32, 0x00, 0x00, 0x00]
8 Unused [0x00, 0x00, 0x00, 0x00]
10 Manufacturer [0x00, 0x00, 0x00, 0x00] Non renseigné
15 Material type [0x50, 0x4C, 0x41, 0x00] PLA
20 Color [0xFF, 0xBD, 0x9C, 0x00]
24 Extruder temps [0xC8, 0x00, 0xD2, 0x00] min : 200°C
max : 210°C
29 Bed temps [0x32, 0x00, 0x3C, 0x00] min : 50°C
max : 60 °C
30 Diameter & length [0xAF, 0x00, 0x4A, 0x01] Diametre : 175
Longueur : 330
31 Weight [0xE8, 0x03, 0x00, 0x00] Poids : 1000

Les informations lues sont donc cohérentes avec le descriptif donné dans le premier tableau.

Remarque :

A l’usage, je n’ai pas l’impression que les informations de températures et suivantes soient traitées par le slicer ou même l’imprimante.

Dans la pratique

Maintenant que nous maitrisons les données et leur emplacement, il suffit de les écrire dans le NTAG. Et plutôt que de me lanceer dans la programmation, je suis d’abord aller faire une petite recherche sur la toile, et je suis tombé sur exactement ce qu’il me fallait sur ce github :

https://github.com/DnG-Crafts/ACE-RFID?tab=readme-ov-file

Vous y trouverez une application Androïd, une application Arduino et une application Windows.

L’applicaion Androïd va par exemple se présenter de la façon suivante.

Il suffit de sélectionner la type de filament, le poids, la couleur, de détection le NTAG et décrire dedans. A noter que les couleurs peuvent être séelctionnées de différentes manière, ce qui est très pratique.
Pour les autres paramètres, il s’agit des valeurs standard visiblement déjà présentes dans le slicer Anycubic.

Il est aussi possible de formater un NTAG, d’afficher les valeurs par page et de paramétrer les valeurs par défaut :

Un outil donc utilisable clé en main, afin de programmer les NTAG et ainsi identifier n’importe quelle bobine.

La mise en place

Il suffit de coller les NTag programmés sur les 2 côtés de la bobine, environ à 1 cm du bord extérieur, et si possible face à face.
Il est bien important de coller un NTag sur chaque face. En effet, les lecteurs sont positionnés dans les 2 séparation bobines qui se trouvent à l’intérieur du boitier. Selon l’emplacement de la bobine, la lecture sera donc réalisée à gauche ou à droite de la bobine.

En conclusion

Même si l’absence de puce sur les bobines n’est pas bloquant car il est possible de définir manuellement les caractéristiques principales depuis l’écran de l’imprimante, c’est un grand confort d’avoir cette information automatiquement.

C’est tout !

 

 

 

HueForge : Impression depuis des photos ?

Dans un article précédent, j’avais présenté HueForge en prenant comme exemple des images de dessins animés, par définition très contrasté et avec lesquelles il n’était pas nécessairement obligatoire de restituer les couleurs exactes. ll faut bien garder à l’esprit que HueForge est avant tout un outl « artistique » et pas un outil destiné à « reproduire » un existant à l’identique.

Mais est-il possible d’imprimer une photographie couleur en noir et blanc (ou en nuances de gris) ?

Alors sur le papier OUI ! Et en voici un exemple.

Voici ce que « nativement » HueForge me propose. J’ai testé cette impression et le constat est assez mitigé : temps d’impression relativement long (environ 5h pour une image de 20 cm de haut) et rendu assez terne. Il est vrai que cette image est assez « difficile » car il y a énormément de zone sans détails contrastés (toute la zone sous le cou de l’animal par exemple). On se retrouve avec de grandes surfaces lisses à l’impression, ce qui ne donne pas un résultat très beau.

Certains paramètres de HueForge vont nous permettre d’améliorer beaucoup cette image : « Base Layer », « Base Thickness », « Blend Depth » et « Layer Height ».

Avant d’aller plus loin, il faut bien garder à l’esprit que votre imprimante va traiter des couches en Z . Elle imprimera les reliefs de la couche Zmin à la couche Zmax, avec un incrément entre couches de « Layer Height ».

Regardons maintenant le rôle de chaque paramètre.

Base Layer

Ce paramètre détermine l’épaisseur minimale imprimée. Elle va correspondre à la zone plus claire de l’image. Si cette valeur est trop faible, l’impression sera fragile (mécaniquement). Si elle est trop importante, le contraste sera perdu.

Base Thickness

Ce paramètre détermine l’épaisseur maximale qui sera imprimée. Elle correspond à la zone la plus sombre. Plus elle est grande, plus le contraste sera élevé.

Blend Depth

Ce paramètre détermine la transition entre couches de couleurs. On va pouvoir ainsi contrôler la douceur ou la brutalité des transistions.

Layer Height

Ce paramètre représente la hauteur de couche réelle utilisée sur l’imprimante. Il est important que ce paramètre soit égal au paramétrage du slicer. Plus la hauteur de couche sera fine, plus il y aura de niveaux de gris. Al’inverse, des couches épaisses donneront une image plus pixelisée verticalement.

A la vue de ces paramètres, on aurait tendance à penser qu’un nombre élevé de couches fines donnera de meilleurs résultats. Hélas non, car il faut tenir compte d’autres paramètres, à commencer par l’imprimante elle-même.

Influence de l’imprimante

Pour les imprimantes Bowden, il est conseillé de garder un layer height > 0.12. Pour les imprimantes Direct Drive, on pourra descendre à un layer height de 0.08, voir moins.

Certaines imprimantes seront plus ou moins précises à reproduire les détails.
Pour une Kobra 3 par exemple, le nombre de niveaux de gris ne devrait pas dépasser 80.

Le nombre de niveaux est calculé par :

N = ( Base Thickness – Base Layer ) / Layer Height

On arrive vite à la conclusion que les valeurs à choisir ne seront pas le fruit du hasard.

Influence de l’image

Et nous ne sommes pas au bout de nos peines. La nature même de l’image va influencer la manière dont HueForge la traite. Un animal, un paysage, un visage auront besoin de réglages différents pour arriver à un même résultat.

A noter aussi que HueForge va mieux travailler sur des images d’au moins 2000 pixels sur la plus petite dimension !

Un outil de pré-traitement

Après avoir passé pas mal de temps à adapter les réglages pour imprimer quelques photos, j’ai décidé de développer un petit outils pour pré-traiter les photographies.

  • Les étapes appliquées par cet outil sont les suivantes :
    redimensionnement automatiques à l’ouverture de l’image. La plus petite dimension est portée à 25600 pixels.
  • L’image est analysée pour optimiser la dynamique lumineuse.
  • J’essaie de déterminer la nature de l’image pour appliquer un preset de tonalité et de contraste.
  • Je transforme l’image en carte Z compatible HueForge.
  • J’exporte en png .

L’image obtenue respecte une échelle de gris linéaire. Le nombre de couches optimal est obtenu (donc le temps minimum d’impression pour le meilleur résultat). Et surtout j’obtiens les valeurs Base Layer et Base Thickness à reporter dans HueForge.

Voici ce que j’obtiens avec l’image du chien.

En partant sur une impression avec une hauteur de couche de 0.08, la dynamique obtenue me permet de n’avoir que 20 niveaux de gris « utiles » (moins je perds en détails, plus n’apporte rien et ralonge la durée d’impression). Il suffit d’exporter l’image en png et de l’ouvrir dans HueForge, en reportant les 3 paramètres de Base obtenus.

J’ai sur cette image choisis de n’utiliser que 3 couleurs : noir, gris, blanc.

Le résultat, après 2h10 d’impression est plus que satisfaisant.

Comparativement à la même impression sans traitement, brute de HueForge.

En conclusion

Il est donc possible d’exploiter des photo avec HueForge, pour obtenir un rendu très sympathique. Même s’il n’est pas parfait, mon petit outil de pré-traitement m’a permis d’obtenir des résultats très cohérents sur différentes photo, certainement plus rapidement que en testant différentes configurations dans HueForge. Vous le retrouverez très prochainement sur ma boutique à un prix très raisonnable.

Bon courage pour vos impressions HueForge.

 

 

FreeCAD : Les répétitions

FreeCAD met à notre disposition des outils utiles pour effectuer des répétitions de sketch. Ces outils de l’atelier Part Design permettent de réaliser des opérations de répétition linéaire et de répétition circulaire.

Répétition linéaire par l’exemple

Partons d’une simple plaque que j’extrude de 5 mm.

Sur cette plaque, de pratique une découpe hexagonale.

Le résultat est le suivant :

Si je souhaite réaliser une plaque totalement perforée avec ce même hexagone, je vais pouvoir utiliser la fonction de répétition linéraire.

En appliquant une répétition linéaire sur le pocket généré (1), on arrive sur la fenêtre ci-dessous :

Il faudra configurer les éléments de la zone 2 pour obtenir les résultats souhaités : la direction (ici l’axe horizontal), le mode de répétition (soit la distance totale, soit la distance entre répétitions), et en fin le nombre de répétitions souhaité.

Cette fonction ne fonctionne qu’avec un élément élémentaire (protusion ou extraction). Il n’est donc pas possible d’utiliser le résultat pour de nouveau faire une répétition linéaire sur l’axe verticale et obtenir la plaque totalement percée.

Répétition multiple

Pour obtenir le résultat souhaité, nous allons devoir utiliser l’outi de répétition multiple. Le principe est exactement le même, sauf que nous allons pouvoir définir plusieurs transformations en une seule étape.

Il suffit de sélectionner – comme précédement – le pocket et de cliquer sur l’icone « répétition multiple ».

L’outil présente une zone de paramétrage (2) , dans laquelle on va pouvoir ajouter différentes transformations (3). Je vais donc juste ajouter une transformation linéaire selon une direction horizontale, et une deuxième transformation linéaire selon un axe verticale de l’esquisse. Pour chacune de ces transformations, je vais indiquer la distance d’application et le nombre de répétitions souhaitées.

Remarque : J’ai constaté que dans certains cas, il ne se passe rien. Il faut dans ce cas « jouer » avec les cases à cocher « Inverser la direction » et « Mettre à jour la vue ».

Répétition circulaire

Le principe est le même, mais cette fois avec une répétition autour d’un axe.

Répétition non géométrique

Et si le besoin de répétition n’est pas aussi géométrique q’une ligne ou un cercle ? Il va falloir aborder le problème différement !

Imaginons le problème suivant : nous avons créé un tuyau suivant une courbe. Ceci est facile à faire sous FreeCAD : on commence par créer une trajectoire et un profil (sur un plan perpendiculaire à une extrémité de la trajectoire) .

On effectue ensuite la projection du profil sur la trajectoire !

Je souhaite maintenant percer ce tuyau de manière répéter.

Je commence par dessiner sur un sketch la forme de mon perçage (ici un simple cercle). Ce sketch est dans le même plan que le profil.

Je passe ensuite dans l’atelier Draft. Après avoir sélectionné le perçage et la trajectoire, je génère un « Réseau lié selon une courbe ».

Cette opération produit un composant PathArray (1).

Ce composant contient par défaut 4 occurences de l’objet de base sélectionné à la création (2).

Par défaut, la première et la dernière occurence sont positionnées aux extrémités du chemin (3).

Il est donc – en théorie – possible de jouer sutr le nombre de trous (dans mon cas) et sur leur positionnement. Je choisis donc de placer en tout 8 perçages, répartis sur toute la longueur, et situés à 10 mm des extrémités.

Revenons dans l’atelier Part Design.

A ce stade, nous avons un corps représentant le tuyau, et un PathArray.

Nous ne pouvons pas utiliser en l’état le composant, car il ne peut pas être positionné dans le corps actif. Nous allons donc d’abord devoir générer un objet lié.

C’est très simple : il suffit de sélectionner le PathArray (1) , de cliquer sur l’icone (2). On obtiens dans le corps actif un objet Binder (3) qui est parfaitement manipulable.

On réalise ensuite une cavité avec le Binder. Si l’on veut un perçage traversant, bien penser à sélectionner une cavité symétrique.

Le résultat est bien le résultat souhaité.

A noter aussi que, puisque les différents objets sont liés, il est toujours possible de modifier le nombre d’occurence et même la forme …..

Modification de la forme de la découpe et du nombre de trous.
Modification de la trajectoire

HueForge : qu’est-ce que c’est ?

L’impression 3D est un domaine qui – par définition – est utilisée pour imprimer des objets en volume.

Cet usage avait déjà été détourné pour réaliser des lythographies. Le principe était simple : on prenait une photographie, et l’on l’imprimait en monochrome. Plus la zone était sombre, plus on mettait de couches à cet endroit. Il suffisait ensuite d’éclairer l’impression « par derrière » et l’on avait une représentation plutot fidèle de la photo initiale. Le miracle était que sans éclairage, l’image n’était pas visible. Et en imprimant sur un papier assez fin la photo initiale en couleur, il suffisait de poser ce papier entre la source lumineuse et l’impression pour avoir un effet coloré.

Nous allons maintenant plus loin avec le logiciel HueForge. L’idée est ici basée sur le même principe que la lythographie, mais en utilisant des filaments de différentes couleurs, et en jouant sur leur « transparence » pour obtenir des couleurs de transition. Le résultat est visible sans rétro-éclairage.

Attention : HueForge est à considérer comme un logiciel de création « artistique » et non comme un logiciel permettant de convertir une photographie en un objet imprimable, en tout point identique à l’original.
Vous découvrirez ,si vous décidez de l’acheter (et oui, c’est un logiciel payant, on le verra plus loin), combien il n’est pas simple d’utilisation au départ car sa logique de fonctionnement n’est pas évidente.

Achat du logiciel

Il existe plusieurs types de licenses, en fonction de vos besoins, de la license personnelle à vie ( environ 22 €) à la license professionnelle à vie ( environ 310 €). Il n’y aura pas de différences fonctionnelles entre les différentes licenses, mais simplement des limitations légales à niveau commercial. La license personnelle ne vous donnera pas le droit de vendre vos réalisations. C’est aussi simple que celà.

Une fois le logiciel acheté et installé

Au lancement, vous allez arriver sur une interface qui devrait ressembler à cela (dans la version 0.9.2.3) :

Nous sommes d’accord : il y a des informations partout et il est assez difficle de s’y retrouver, et quasi impossible d’expliquer toutes les éléments. Alors, le mieux pour vous donner une idée de la logique de l’outil est de partir d’un exemple simple à partir de l’image suivante :

C’est une image « simple » : du blanc, du noir, du rouge, sans doute du gris.

Première étape : on charge l’image dans HueForge

Par défaut, le logiciel analyse la luminosité de l’image et génère une première représentation en noir et blanc. A noter (entre les 2 images), la présence d’une barre verticale qui représente les couches. Les changements de filaments sont représentés par un petit symbole qui indique le numéro de couche et la couleur du filament (noir jusqu’à la couche 8, blanc en couche 27, etc).

Remarque : le nombre de couche est défini par l’épaisseur max du modèle + l’épaisseur du socle, le tout divisé par la hauteur de couche. Ceci donne ici : (1.76 + 0.48) / 0.08 = 28 couches.

Il sera donc possible de jouer sur ces paramètres pour obtenir un nombre de couches plus important par exemple.

Deuxième étape : Modification du Mesh Mode

La meilleure approiche que j’ai trouvé pour essayer de se rapprocher du modèle initiale est de sélection le mode Color Match.

Nous disposons maintenant de 2 barres graduelles : Color Core et Mesh Core.
Passons sur la barre Mesh Core (en utilisant la dernière icone en bas).

En promenant la souris sur l’image, nous remarquons le déplacement d’un curseur sur la barre. Ceci permet d’identifier une relation entre couleur et couche imprimée.

Toute la complexité d’utilisation va être ici. Le logiciel va s’appuyer sur la « transparence optique » des filaments afin de créer des couleurs intermédiaires (je résume beaucoup). Ce paramètre TD (comme Transmission Distance) est identifié dans HueForge, en plus de la couleur.

Plus la valeur est élévée, plus le filament sera « transparent ». Le logiciel est fourni avec une importante bibliothèque de filaments de marques partenaires, qui s’enrichie de version en version. Mais il existe aussi un appareil pour mesure cette information, qui est commercialé par la même société, et qui s’interface directement avec HueForge : le TD1.

Je me suis pour ma part inspiré d’une version Free pour redévelopper mon propre outil, le TD1 n’étant plus disponible en France au moment où j’ai effectué mes premiers tests.

Troisième étape : la mise en couleur

L’idée est donc maintenant de positionner les couleurs souhaitées au bon endroit, en s’aidant des curseurs en place, et des filaments à notre disposition.

C’est un bon début, mais nous constatons la présence de zones rosées sur le personnage. Ceci est une conséquence directe du mode de fonctionnement du logiciel. En posant en couche 13 du gris et en couche 20 du rouge, toutes les couches intermédiaires vont progressivement passer du gris au rouge, ce qui donne cet effet.

En simplement modiufiant l’ordre des couleurs, on arrive à un résultat plutôt satisfaisant.

Une fois que le résultat vous convient, on peux reporter dans la barre Color core les réglage (soit manuellement, soit à l’aide du petit bouton prévu pour).

Pour bien comprendre comment l’impression va se dérouler, il suffit de regarder de plus près le visuel généré.

Nous voyons bien que nous allons avoir une successivement l’impression de couches de couleur différente. Il est donc possible d’imprimer ce type de réalisation sans combo, en réalisant manuellement au bon moment le changement de filament. C’est ce que nous allons voir maintenant.

Quatrième étape : La préparation de l’impression

On commence par exporter le fichier stl depuis HueForge, puis on ouvre ce fichier dans le slicer, comme n’importe quel stl.

Lors de l’export en stl, HueForge génère un fichier xxx_describe.txt.
Dans ce fichier, vous retrouvez les caractéristiques des filaments sélectionnés, mais aussi les informations de changement de couleur.

Pour trancher correctement, il va donc falloir tenir compte de ces consignes :

  • hauteur de la première couche : 0.16 mm
  • hauteurs des couche suivantes : 0.08 mm
  • remplissage à 100 % mode rectiligne
  • couche 0 en noir
  • couche 10 passage en gris
  • couche 13 passage en blanc
  • couche 20 passage en rouge

Si vous disposez d’un AMS (comme dans mon cas), on va pouvoir directement associer la couche à une couleur. Il faudra aussi bien activer la tour de purge.
Dans le cas contraire, il faudra positionner des pauses afin de manuellement changer de couleur et purger la tête.

Il reste maintenant à lancer l’impression pour juger du résultat !

Le résultat est plutôt bluffant et vraiment très proche du rendu affiché dans HueForge.

Un autres exemple

Il n’est pas non plus nécessaire d’imprimer en couleur.  Avec une image très contrastée, on arrive à un chouette résultat, avec simplement du filament noir et du filament blanc.

Dernier exemple : avec une image plus complexe en couleur

On m’a demandé s’il était possible d’imprimer cette image.

Avec un peu de patience, j’arrive à un résultat qui me convient .

7 couleurs à utiliser, avec ma Kobra 3 ACE et son chargeur 4 couleurs !
Ceci est un autre sujet que je vais aborder dans un autre article.

Place à l’impression et au résultat.

En conclusion

La prise en main du logiciel n’est pas simple. Mais avec de la patience et de la persévérance – je ne compte plus les fois où j’ai préféré recommencer à zéro – on est récompensé par le résultat !

2 choses sont à bien prendre en compte que :

  • le logiciel calcule et génère les couleurs intermédiaires. Il est donc important de connaître à minima quelles couleurs primaires utiliser et comment les mélanger. C’est ce qui nous guidera dans l’ordre d’utilisation des filaments,
  • le logiciel se base sur le coéfficient TD des filaments. Il conviendra donc de renseigner au mieux cette valeur pour les différents filaments que l’on possèdera. Ceci fera aussi l’objet d’un autre tuto.

Il ne vous reste plus qu’à vous procurer ce logiciel et à vous lancer !

 

 

Réussir un assemblage avec FreeCAD

On a parfois besoin de réaliser l’assemblage fixe de plusieurs pièces. Si cela peux paraitre simple, il y a un minimum de règles à respecter si l’on veut un assemblage qui soit résistant.

Quel est l’objectif d’un assemblage ?

Une pièce possède nativement 6 degrés de liberté : 3 translations (selon les directions X,Y et Z) et 3 rotations (selon les axes X, Y et Z).

X en rouge, Y en violet, Z en bleu

Pour lier 2 pièces entre elles et les immobiliser correctement, il va falloir supprimer les 6 degrés de liberté.

Test pour vérifier que vous avez compris !

Dans le montage ci-dessus, 2 pièces sont simplement positionnées l’un au dessus de l’autre.

Question : Est-ce que ce simple montage permet la suppression de libertés ?

Réponse : Dans cette simple situation, nous avons éliminé 2 rotations (selon les axes X et Y, et une demi-translation (direction Z vers le bas).

Assemblage par système vis-écrou

Si le système le permet, c’est à dire qu’il est possible d’accéder aux faces supérieure et inférieur du montage, c’est une solution rapide .

On a ici amélioré l’assemblage précédent (celui du test).
Nous avons ici éliminé toutes les translations et presque toutes les rotations. Je dis toute car dans ce montage basique, la rotation selon Z est contrainte par la force de frottement entre surface, force qui résulte du serrage vis-écrou.
Si le système se désserre, ou qu’une force trop importante est appliquée en rotation, le montage ne sera pas résistant.

Une solution pourrait être de rajouter un obstacle à cette rotation : une goupille, mettre 2 vis-écrou répartis sur la longueur, …

Alternatives en fonction des efforts nécessaires

Si le système « vis-écrou » reste celui le plus simple à mettre en oeuvre pour l’assemblage de pièces imprimées – il n’est en effet pas toujours simple de maitriser d’autres type d’assemblage en raison des tolérances d’impression – il ne sera pas toujours nécessaire d’utiliser une vis et un écrou « métal ». Tout va en effet dépendre de l’effort à gérer.

Si l’effort est très faible – je pense par exemple à la fixation d’un couvercle sur un boitier – on pourra imaginer « imprimer » directement le filetage dans la pièce.

Pour réaliser cette opération, je vous conseille l’atelier « Fasteners Workbench », qui permet de réaliser des taraudages.

Si l’effort est moyen (ou qu’il n’est pas possible de réaliser un filetage assez long) , il est possible d’utiliser des inserts.

Les inserts sont généralement vendus avec un embout qui s’adapte sur un fer à souder.

Le principe est simple : il suffit de prévoir dans la pièce un trou adapté à l’insert. Puis on positionne l’insert sur l’embout du fer à souder, et on positionne à chaud l’insert. En refroisissant, il est emprisonné dans la pièce.

C’est une solution parfaitement adaptée aux assemblages qui vont devoir être régulièrement démontés.

En conclusion

Cet article ne montre qu’une toute petite partie des solutions pour réaliser un assemblage entre pièces imprimées. Et il n’existe pas une solution unique et polyvalente !

S’il fallait retenir une seule chose, c’est de bien garder à l’esprit la présence des 6 degrés de libertés et qu’il faut systématiquement se poser la question suivante : « Est-ce que ma solution d’assemblage supprime bien ces 6 degrés ? »

 

L’animation avec Bottango ?

On trouve dans le commerce de nombreux équipements « robotisés ». Sous ce terme, je vais volontairement regrouper tout un ensemble d’objets, allant de la voiture télécommandée avec votre smartphone, à la grue meccano ou aux légo technic qui vont pouvoir réaliser seuls ou en semi-autonomie différentes actions.

Pour apprendre la robotique, il existe de nombreux kits à monter, à tous les prix.

Mais n’avez-vous jamais eu envie de réaliser votre propre robot ?

Il ne vous faudra finalement pas grand chose :

– un peu de mécanique,
– un peu d’électronique,
– et un peu de programmation.

Le plus difficile est de trouver l’idée qui donnera à votre robot une touche personnelle.

Pour ce projet « découverte », je vous propose de réaliser des yeux animatroniques tels que ceux présentés ci-dessous.

Ce type de produit se trouve tout fait, mais vous pouvez aussi trouver des fichiers stl à imprimer, voire concevoir vous même.

Côté mécanique

Le principe de fonctionnement mécanique est généralement le même : les yeux peuvent se déplacer de gauche à droite et de haut en bas grâce à des servos-moteurs (2 par oeil). Les paupières peuvent s’ouvrir et se fermer (1 servo par paupière dans mon cas). Nous aurons donc 6 servos-moteurs à piloter.

Côté électronique

Piloter des servos-moteurs est une chose qu’une carte arduino (ou de la même famille) sait parfaitement faire à moindre coût. Pour simplifier au maximum la connectique, nous pouvons même utiliser une carte spécialisée pouvant piloter jusqu’à 16 servo moteurs. Nous verrons cela plus en détail par la suite.

Côté programmation

Nous pourrions programmer directement notre controleur Arduino. Mais j’ai découvert un outil dédié à ce type de tâche (et open-source) : Bottango. Il fonctionne exactement comme un logiciel de montage vidéo, avec une timeline, mais orienté servo-moteur. Ceci permet d’obtenir rapidement un résultat, avec en plus un mode simulation qui permet d’arriver rapidement au résultat souhaité.

Le décor étant maintenant fixé, êtes-vous prêt à vous lancer dans ce mini-projet ? C’est parti !

Chapitre 1 : L’expression du besoin

Pour ce premier projet, le besoin va être très simple :

« je souhaite animer les yeux de la manière suivante :
– ouvrir et fermer les paupières régulièrement (un clignement toutes les 10 secondes)
– regarder à gauche, puis à droite et revenir au centre régulièrement.

Le cycle se répète en permanence.

Chapitre 2 : La programmation de l’animation

Avant d’aborder la réalisation, il est utile d’avoir une idée de la façon dont on va réaliser la programmation de l’animation.
J’ai découvert un logiciel plutôt sympathique pour obtenir rapidement un résultat : « BOTTANGO ».

Cet outil est un logiciel open-source que vous pouver télécharger à cette adresse : https://www.bottango.com/

A noter que si le logiciel est gratuit, le site propose aussi d’acheter des kits tout fait.

Une fois le logiciel installé, il se présente de la façon suivante :

Trois grandes zones sur l’écran :
– à gauche, la gestion des projets (celle qui va nous interresser),
– au centre, de la pub pour les kits,
– à droite, des accès à la communauté.

La première chose à faire est de créer un nouveau projet.

Ce nouvel écran représente l’environnement « physique » de votre futur robot. Le principe de Bottango est assez simple :
– on positionne les éléments mécaniques (par exemple un oeil),
– on ajoute les actionneurs ( les 2 servos moteurs),
– on ajoute les liaisons ( 1 servo fait bouger l’oeil de gauche à droite),
– on définit la timeline de l’animation,
– on simule l’animation.

Si le résultat est correct, on peut transférer l’animation sur notre carte Arduino.

étape 1 : ajout de l’oeil

Bottango permet d’importer des modèles, issus par exemple de FreeCAD, ou toout simplement téléchargés. Il suffit d’aller dans l’onglet « Import » et d’importer le modèle.

Une fois tous les éléments mécaniques importés (pour l’exemple, je ne vais importer qu’un seul oeil), on retourne dans l’onglet « Build » et on clique sur « Create Part ». Ceci ouvre un bandeau qui sera utilisé pour ajouter tous les éléments de notre animation, en particulier les objets et les servos-moteurs.

Voici ce que cela doit donner :

La pièce oeil est liée à un élément Joint, lui même associé au servo moteur.

On peut ainsi voir une simulation des déplacements, à gauche, au centre et à droite.

Nous verrons plus loin que cette simulation peut-être reproduite en live si toute l’électronique est connectée.

étape 2 : l’animation

Une fois les composants positionnés associés aux différentes servos-moteurs, il reste à mettre en place l’animation.

On passe dans l’onglet « Animation » de Bottango.

Pour gérer l’animation, il suffit d’ajouter dans la time line les différents éléments qui l’on souhaite animer. Ici, pour l’exemple, je vais rajouter le « joint ».

Il suffit ensuite de rajouter des « points clés » – comme les images clés dans les logiciels de montage vidéo – et d’affecter une valeur entre 0 et 1 (0.5 étant la position médiane de l’objet).

On arrive assez facilement au résultat souhaité.

en conclusion

Il est très simple de « programmer » ainsi une animation complète. Voici le montage complet, avec les 2 yeux, les paupières et les 6 servos-moteurs de commande.

On ajoute de la même manière les différentes pistes et les points clés de l’animation.

Pour arriver à l’animation suivante finale.

Chapitre 3 : le matériel physique

Pour simplifier au maximum les cablages, et parce que Bottango est nativement capable de la prendre en charge, je vias utiliser une carte PCA9685. Cette carte est capable de prendre en charge jusqu’à 16 servos-moteurs, pour un prix très modique.

Dans le même esprit, plutôt que d’utiliser une carte arduino Uno, je vais utiliser une carte ESP32. Celle-ci est plus puissance et va permettre d’exploiter totalement les 16 sorties de la carte PCA9685 (ll y a une limitation pour le moment avec Bottango et Arduino en nombre de servos pilotables).

Le cablage devient donc très simple : la carte PCA9685 est simplement pilotée en I2C, les broches SCL et SDA simplement connectées aux broches SCL et SDA de l’ESP32.

Le schéma de cablâge se résume donc à celui-ci :

Les 6 servos-moteurs seront connectés sur les sorties de la carte PCA9685, par exemple 1 à 6.

Chapitre 4 : La connexion entre Bottango et le matériel

La connexion entre Bottango et le matériel permet principalement la mise au point des animations. Tout ce que vous effectuez comme action sur l’interface de Bottango se trouve reproduit sur le matériel. On peut ainsi vérifier les vitesses, les limites de position, etc.

Pour effectuer celà, Bottango va utiliser la carte micro-contrôleur (Arduino ou ESP) comme une passerelle. Il est nécessaire pour celà d’installer sur la carte un driver spécifique, fourni avec la distribution de Bottango.

Pour que ceci fonctionne, il faut donc, en préalable, s’assurer que la carte est bien reconnue sur le PC, et connaitre sont adresse. La solution la plus simple est d’utiliser, avant de lancer Bottango, le logiciel Arduino IDE.

On voit ici que la carte ESP32-xxx est bien identifiée, et quelle est connectée sur le port COM14.

C’est un pré-requis indispensable. Si la carte n’est pas identifée à ce stade, Bottango sera incapable de la piloter.

Autre point important à noter : Arduino IDE et Bottango ne peuvent être lancés en même temps. C’est une erreur classique de laisser Arduino IDE en tâche de fond, mais ceci va « bloquer » le port COM, car Arduino IDE n’est pas partageur …

Lorsque l’on exécute Bottango à partir de maintenant, et que l’on ouvre un projet (ou que l’on créé un nouveau projet), nous pouvons accéder à cette page.

Si tout est OK, nous devons retrouver le bon port, et un statut OK sur le driver.

Remarque : Si le statut du driver n’est pas correct, Bottango propose de recharger le driver dans la carte. Mais seuls les drivers pour les cartes Arduino sont actuellement proposés. Pour les cartes ESP, il faudra recharger le driver depuis Arduino IDE.

A partir de ce moment, toute action effectuée dans Bottango, sera répercutée sur le matériel physique. Ci-dessous un exemple avec la paupière droite.

Chapitre 5 : Exportation de l’animation

Maintenant que votre animation est prête et que vous l’avez testée en live, il va falloir l’exporter dans la carte contrôleur afin d’obtenir un système autonome.

Dans l’onglet « Animation », vous trouvez un bouton « Export animations ».

Il suffit de suivre ensuite les différentes étapes.

Etape 1

Dans Bottango, vous pouvez créer plusieurs animations différentes, qui pourront être exécutées séquentiellement ou conditionnellement (nous verrons celà plus loin). La première étape consiste donc à sélectionner les animations à exporter.

Etape 2

Bottango propose aussi de sélectionner les composants concernés par l’animation. On pourrait en effet imaginer créer une animation complexe, et déployer cette animation sur plusieurs controleurs synchronisés.

Etape 3

C’est une étape importante ! Elle conditionne en effet le mode d’exécution de l’animation :

  • l’animation doit-elle démarrer à la mise sous tension de la carte ?
  • l’animation s’exécute-t-elle en boucle ?
  • par quelle animation commence-t-on (si plusieurs animations exportées) ?
  • existe-t-il des conditions d’exécution ?

Bottango est correctement documenté, je ne rentrerais pas ici dans les détails des conditionnements.

Etape 4 (et dernière)

Il faut choisir dans cette étape le format d’exportation.

Comme expliqué, le choix va dépendre principalement du type de contrôleur utilisé et de la taille de l’export. Un autre critère de choix peut-être lié à la fréquence de changement de l’animation. Il sera en effet plus simple de remplacer une carte SD que de re-flasher le contrôleur.

En ce qui concerne la génération en fichier JSON, je ne connais pas l’usage.

Si l’on conserve le choix par défaut, à savoir la génération d’un script « Driver Code », Bottango va générer, dans le répertoire de votre choix, 3 fichiers :

  • GeneratedCodeAnimations.cpp
  • GeneratedCodeAnimations.h
  • HowToUseThisCode.txt

Le mode opératoire est décrit dans le fichier .txt, avec de nombreuses autres informations.

En résumé, il suffit de copier/coller les 2 fichiers (.cpp et .h) dans le répertoire BottangoArduinoDriver (créé lors de l’installation de Bottango) , d’ouvrir avec Arduino IDE le fichier .ino contenu dans ce répertoire, et de le téléverser dans la carte.  Les fichiers générés pour l’animation seront automatiquement pris en charge.

En conclusion

Avec ce premier article DIY, je voulais vous montrer la facilité (relative) à imaginer votre futur robot. La documentation de Bottango, très complète, pourra vous guider pour aller plus loin, en particulier en personnalisant le fichier du driver fourni, afin d’étendre les possiblités.

Dans le prochain article DIY, je vais vous proposer la réalisation d’une carte plus polyvalente, qui intégrera – en plus du pilotage des servo-moteurs – la prise en compte d’évênements extérieurs, la génération d’effets lumineux et sonores, ainsi que des sorties de puissance.

Bonne découverte de Bottango !

 

Tips numérisation Creality CR-scan Ferret Pro

Après une découverte rapide du scanner et de son logiciel dédié, je vous propose de tester la numérisation de différents objets. Ceci sera aussi de regarder de plus près les possibilités du logiciel.

Objet 1 : Arrosoir en faïence blanche et brillante.

Taille max de l’ordre de 25 cm.

Numérisation sans problème, l’objet étant placé sur un plateau tournant.

Après nettoyage et traitements, le scan est plutôt bien réussi, et donnera « presque » une impression conforme à l’objet initial.

Je dis presque, car un problème subsiste : à la base, l’objet est creux. Il n’est pas possible de faire le scan de l’intérieur. On se retrouve donc avec un objet un peu « étrange » intérieurement.

La numérisation d’objet creux demandera donc, en fonction du besoin soit une préparation avant scan pour fermer l’objet, soit un post-traitement pour le creuser. A ce stade, je n’ai pas exploré les solutions.

Objet_2 : une lampe à pétrole

Taille en hauteur : 52 cm

L’original

Avec cet objet, je rencontre très rapidement des problèmes. Tout d’abord, le verre n’est pas détecté correctement. Ensuite, la pièce est une vraie surface de révolution, à l’exception de la petite molette de réglage, visiblement trop petite pour être considérée comme une zone de référence. Conséquence : après un début de scan correct du corps de la lampe, le logiciel part en boucle et tente de rechercher un point de départ imaginaire. Ci-dessous le résultat :

Après traitement, on se retrouve avec une pièce un peu étrange.

Pour ce type de pièce, des solutions existent visiblement. Pour le corps, il va falloir coller des pastilles de repère (comme sur le plateau) afin de permettre au logiciel de se retrouver dans l’espace. Pour le verre, il existe des spray en bombe, comme par exemple le AESUB Blue. L’utilisation d’un spray permet non seulement d’augmenter le niveau des détails visibles par le scanner,  mais aussi de rendre possible le scan de pièces transparente ou brillante.
L’avantage de ce spray en particulier est qu’il disparaîtra totalement de votre pièce sous 4 heures. Sans nettoyage ou lavage, la pièce retrouvera son aspect d’origine après 4 heures.

Objet 3 : Une chouette en pierre blanche poreuse

Hauteur : 12 cm. Beaucoup de détails liés à la représentation des plumes dans la pierre.

L’original

J’ai pris cette fois un peu plus de temps pour numériser les différentes zones. Le logiciel permet en effet de reprendre un scan si on s’aperçoit qu’une zone n’a pas été correctement couverte.

Le résultat après traitement est parfait.

Les détails sont correctement représentés.

Objet 5 : une voiture miniature

Cette fois, je suis en dehors des spécifications du scanner. Il est en effet indiqué dans les spécifications du scanner que celui-ci ne peux scanner que des objets d’une taille minimale de 15 cm. Le précédent test avec la chouette de 12 cm était concluant. Que se passe-t-il avec un objet plus petit ?

La réponse en image avec une voiture miniature de tout juste 5 cm .

L’original

Tout d’abord, impossible de numériser l’objet seul. Il est nécessaire de passer par une reconnaissance de marqueurs (qui sont nativement sur mon plateau).

Ils se retrouvent affichés en vert dans le logiciel, lorsque celui-ci les identifie correctement.

Le résultat de la numérisation est le suivant :

Le résultat est très décevant. L’objet étant trop petit, les détails se retrouvent totalement écrasés. L’utilisation d’un spray pourrait peut-être améliorer les choses. Mais il faudrait une grosse amélioration pour obtenir une pièce imprimable.

La numérisation finale

Objet 6 : une statue

Un essai maintenant sur une statue en bronze, partiellement peinte.

Encore une fois, en prenant son temps, la numérisation ne pose ici aucun problème.

La texture est correctement identifée.L

Après traitement, l’objet pourra être simplement imprimé.

Il me restera à tester sur de « grands objets », le scanner étant annoncé comme pouvant numériser des pièces jusqu’à 2 mètres (en plusieurs passes), ainsi que le test de numérisation d’un modèle humain, afin de réaliser des bustes.

Ceci fera peut-être l’objet d’un autre article.

 

 

 

Numérisation avec le Creality CR-scan Ferret Pro

Après vous avoir présenté ce qu’il était possible de faire avec une Kinect, je vais tester un scanner un « peu plus » pro. Il s’agit ici d’un scanner d’entrée de gamme, sous la gamme des 400 €. Vous trouverez de nombreuses présentations de ce modèle, et je ne reviendrais pas ici sur l’aspect qualitatif du produit (belle sacoche, belle finition, etc).

En dehors de son prix abordable, ce qui est séduisant avec ce modèle est qu’il est équipé d’un module Wifi 6, ce qui permet de ne pas avoir de « fil à la patte ». Lorsque l’on va réaliser un scan, celui-ci sera directement visible en Live sur l’écran de votre PC. Il est aussi possible de directement connecter un smartophone, cette fois en filaire, pour être totalement nomade.

Je vais refaire appel à mon assistant « Gros Mickey », qui c’était déjà prêté au test de la kinect, pour faire quelques premiers essais.

La numérisation

Comme pour le test de la Kinect, mon assistant est confortablement installé sur son tabouret, ce qui va me permettre de tourner autour sans problème.
Je réalise le scan en ayant connecté mon smartphone, avec l’application Creality Scan fournie avec le scanner.

Le principe est le même que ce que j’avais réalisé avec la Kinect, sauf que l’on dispose d’une représentation en temps réel du scan. Avec de la patience et de la rigueur, on arrive à réaliser un scan très propre. Comme avec la kinect, si l’on va trop vite, le logiciel a tendance à perdre ses repères. Mais ce qui est impressionnant, c’est que dans ce cas, il suffit de ne plus bouger pour que le système se repositionne pratiquement seul.

Après une dizaine de minutes, je décide que mon scan est correct et je décide de le valider. Le logiciel me propose alors de commencer le traitement du scan. Je le lance et j’obtiens, après quelques minutes, un message d’erreur m’indiquant que le traitement demande trop de ressources pour mon téléphone. Mais le message est très clair : il m’indique la procédure à suivre sur un PC pour effectuer le traitement.

L’importation du scan

Sur le PC, on dispose du même logiciel Creality Scan. Une option permet l’import direct d’un scan réalisé depuis un téléphone. Il suffit que le PC et le téléphone soient sur le même réseau wifi. Sur le PC, vous scanner avec votre téléphone le datamatrix proposé, et le transfert est automatique.

Après quelques minutes, le scan de « gros mickey » est disponible.

C’est quand même pas mal !

Pour mémoire, ci-dessous, ce que j’avais obtenu avec la Kinect. On observe beaucoup plus de détails.

Le traitement

Je peux maintenant lancer le traitement proposé.

Le logiciel va effectuer un remaillage du scan, et appliquer la texture qui a été capturée pendant le scan. Pour un résultat très réaliste.

(OK noir sur noir n’est pas le meilleur choix pour bien voir).

Le post-traitement

J’ai eu faire très attention et tenter de bien scanner partout, il y a des zones oubliées. Pour me donner bonne conscience, je vais dire que ces zones n’étaient pas accessibles (ou si je suis de mauvaise foi, que j’ai oublié volontairement d’y passer). C’est le cas par exemple autour de la bouche.

Le logiciel propose un outil automatique (ou manuel) pour combler les manques de scan.

En prenant les options par défaut, le résultat :

Creality Scan propose aussi un lissage du modèle, pour diminuer les irrégularités .

Sur ce scan, honnêtement, le résultat n’est pas flagrant.

Par contre, une option importante est la possibilité de simplifier le scan.
En sortie de traitement, le modèle comporte plus de 3 millions de faces.

Une telle quantité de faces ne vas pas être utile pour une impression 3D. Pire, le traitement du slicer va être très long et risque de ne pas aboutir !

Si je simplifie à l’extrême, j’arrive avec un modèle qui ne comporte plus que 350 000 faces, ce qui donne un résultat très peu dégradé à l’oeil, et sera beaucoup plus facile à imprimer.

Au-delà (car il est toujours possible de simplifier encore), les facettes vont commencer à être visibles sur ce modèle. Mais là encore, tout sera affaire de goût. Peut-être voulez-vous un Mickey en low-poly ?

Il restera ensuite à exporter le résultat, en obj, stl ou ply, en fonction de votre besoin.

En conclusion

En une quinzaine de minutes, il m’a été possible d’obtenir une numérisation très correcte, imprimable sans grandes retouches.

Reste maintenant à approfondir avec d’autres objets, afin de voir quelles sont les limitations de ce scanner et les éventuelles solutions de contournement.

Je vous propose de poursuivre l’expérience dans cet autre article, qui sera enrichi au fur et à mesure de mon utilisation du scanner et de son logiciel associé.

Numérisation par photogrammétrie

Dans un précédent article, je vous avais parlé de la numérisation d’un objet avec une Kinect (l’article est ici). C’est une technique peu couteuse qui reste efficace pour des objets sans trop de détails.

Il existe une autre technique, basée sur le traitement de photographies. Si ce procédé était hier plutôt réservé aux professionnels dans le cadre de prises de vues aériennes pour l’urbanisme, il se démocratise. Nos smartphones sont en effet maintenant capables de prendre des photos en haute résolution, et certains éditeurs proposent des solutions open source ou limitées de leurs produits, qui restent utilisables pour un usage privé.

Contraintes et mise en garde

Avant de regarder les solutions disponibles aujourd’hui, il faut avoir en tête certains points sur cette technique. Le principe est « relativement » simple : on prend une série de photos en se déplaçant autour de la zone (ou en faisant tourner l’objet). Chacune des photographies sera traitée pour identifier les relations entre 2 prises de vue successives et en « déduire » le positionnement de l’appareil de prise de vue. A partir de ce moment, chaque prise de vue pourra être positionnée dans l’espace et restituer ainsi une représentation 3D de l’espace. De ceci, il en découle que :

  • trop peu d’images va rendre la reconstitution aléatoire,
  • trop d’images va rendre le temps de traitement très long,
  • trop de variation de lumière, de contraste, d’échelle dans les prises de vues risque de générer un rejet de certaines images,
  • les objets brillants ou translucides ne pourront pas être numérisés correctement.

Une fois ces éléments pris en considération, nous allons pouvoir commencer.

Pour cet article, j’ai choisi de « tenter » la numérisation d’un simple galet, d’environ 10 cm dans sa plus grande dimension.

Afin de capturer les images dans les meilleurs conditions possible, je vais positionner mon galet dans une boite à lumière, sur un plateau tournant, et positionner mon téléphone sur un pied. L’intérêt est de maitriser l’éclairage, d’éviter les zones d’ombre et de toujours avoir une même distance par rapport au centre de rotation.

Regardons maintenant les solutions logicielles disponibles.

Il existe des solutions gratuites et payantes, faciles ou non d’utilisation. Je vous propose de rester sur « le gratuit ». Je vais donc tester la version Free de 3D Zéphyr (https://www.3dflow.net/3df-zephyr-free/) et MeshRoom qui est totalement open-source (https://meshroom.fr.uptodown.com/windows/telecharger)

3D Zéphyr

La version gratuite limite le traitement de 50 photos avec un seul processeur graphique. Il y aura aussi des limitations dans les formats d’export et l’absence de certains outils. Mais cette version reste parfaitement utilisable pour numériser de petites objets en vue de leur impression 3D.

Même si l’interface utilisateur est très riche, le processus de découverte reste simple et classique :

  • on importe les photos,
  • on applique optionnellement un masque afin de réduire la zone de traitement,
  • le logiciel aligne les photos,
  • le logiciel créé un nuage de points, qui va permettre de créer un maillage,
  • on repose la texture sur le maillage,
  • on exporte le fichier pour traitement d’impression 3D par exemple.

Ci-dessous le résultat avec mon galet.

Avec 14 photos, le logiciel a identifié un nuage de 184 841 points, et à généré un maillage de 369 843 triangles. Une fois exporté en format .obj (très peu de choix sur cette version free), je peux sans problème l’importer dans mon slicer.

Meshroom

Même mode opératoire avec MeshRoom, mais encore en plus simple .

On colle les images dans la partie prévue. Et on clique sur le bouton Start.

Il est toujours possible de modifier l’ensemble des paramètres et des fonctions réalisées, le logiciel présentant les opérations sous forme de graphe.

A noter que le logiciel ne propose aucune option d’exportation de fichier. Il faut accéder au répertoire de travail de MeshRoom pour récupérer directement le fichier .obj nativement créé.

Remarque importante :

Le logiciel est prévu pour fonctionner avec une carte NVidia. Pénalisant pour les possesseurs de matériel à base de carte AMD Radéon par exemple.
Heureusement, il existe une option qui permet de se passer de carte NVidia, mais avec une qualité obtenue un peu dégradée.

Il faut passer par le menu fichier et choisir un pipeline différent du pipeline par défaut.

En conclusion

Des solutions qui fonctionnent pour numériser des pièces, mais qui restent difficiles à mettre en place en raison des contraintes liées aux prises de vues : lumière constante et diffuse pour éviter les ombres, pas de reflet, pas de pièces transparentes, etc.

Translate »