Ajouter du texte sur une surface (FreeCAD 0.9)

Depuis la version 0.19 de FreeCad, une nouvelle fonctionnalité permet de vraiment simplifier le dépot d’un texte sur une surface, en particulier si celle-ci est complexe.

Dans la version précédente de FreeCAD (0.18), ajouter du texte sur une surface était déjà possible, lorsque la surface était « plane ». Dès que l’on se trouvait en présence d’une surface plus complexe, il devenait vite fastidieux d’obtenir le résultat que l’on souhaitait.

Avec la version 0.19, une fonction assez magique est apparue dans l’atelier Part : « Create projection on surface ».

Prenons un premier exemple : projeter un texte sur une surface plane comme nous aurions pu le faire assez facilement dans la version 0.18.

J’ai créé une simple boite dans l’atelier Part Design, et un simple texte depuis l’atelier Draft. Dans l’atelier Part, on remarque une nouvelle icone (ici surlignée en jaune). Il suffit de cliquer dessus pour ouvrir la boite de dialogue qui va nous permettre la projection.

La méthode est simple une fois que l’on a compris le truc :

a) on commence par sélectionner la surface sur laquelle on veut projeter le texte, en cliquant sur le bouton « Select projection surface » et en sélectionnant la surface,
b) on détermine la direction de projection soit en rentrant les bonnes valeurs pour X,Y et Z, soit en positionnant correctement la vue dans l’écran et en cliquant sur le bouton « Get current camera direction »,
c) on ajoute les surfaces à projeter, en cliquant sur le bouton « Add face » et en sélectionnant les unes après les autres les éléments.

Le résultat est directement visible. On peut jouer sur la hauteur d’extrusion mais aussi avec la profondeur dans l’objet.

Où l’outil devient intéressant, c’est lorsque l’on va avoir des surfaces un peu plus complexes .

Reprenons le cube précédent, et arrondissons la surface de projection.

En gardant les même réglages, la projection donne maintenant le résultat suivant :

Le texte épouse épouse parfaitement la surface courbe . La hauteur d’extrusion choisie est respectée sur l’ensemble de la projection.

Je me suis posé la question de l’utilité du paramètre profondeur évoqué précédemment (Solid depth). Et j’ai trouvé 2 usages utiles.

Reprenons notre modèle mais appliquons maintenant une profondeur de 2 et une extrusion de 2. On obtiens le résultat suivant :

J’ai donc généré la projection à l’intérieur de la pièce. Rien de plus simple .

Le premier usage est de pouvoir imprimer cet insert d’une autre couleur (pour les heureux possesseurs d’une imprimante bi-couleur.

L’autre possibilité : faire une soustraction booléenne entre la pièce et la projection pour obtenir … une intrusion !

Une fonction bien pratique, car elle ne se limite pas à la projection de texte. Toute forme que vous aurez dessiné pourra être utilisée …

Analyse d’un GCode

La principale question que je me pose face aux différents slicer est la suivante :

« Comment correctement configurer un Slicer pour obtenir le meilleur résultat avec mon imprimante ? ».

Il y a énormément de solutions proposées sur les forums. Mais j’ai décidé de tenter une autre approche : partir du GCode généré depuis CuraByDagoma (qui est censé être parfaitement adapté à mon imprimante) , l’analyser et faire en sorte de le reproduire à l’identique avec les autres slicers.

La pièce de référence

L’objectif est de partir d’un fichier GCode le plus simple possible. Je vais tester avec une pièce rectangulaire de 10 mm x 10 mm, d’épaisseur 1 mm soit 5 couches de 0.2.

Elle sera à imprimer dans un premier temps dans une seule couleur, donc avec un seul extrudeur déclaré.

Je découpe le fichier avec CuraByDagoma, sans support, sans palpeur.

Le fichier généré est un fichier de 436 lignes. En comparant ce fichier avec le contenu du fichier de paramétrage de curaByDagoma (discoeasy200.xml), on devrait normalement pouvoir extraire ce qui concerne l’impression de la pièce et les information de configuration de l(imprimante, informations qui devront être renseignées quelque part dans un autre slicer. Il sera aussi utile d’avoir en tête le standard GCode afin d’avoir une idée des opérations programmées dans le code ( par exemple : https://reprap.org/wiki/G-code/fr).

Début et fin du code :

;Gcode by Cura by Dagoma 2.1.0 for DiscoEasy200
;Filament: PLA Chromatik / Temperature: 220°C / Retraction: 5.0mm
D131 E1 ; => désactivation filrunout 2, utile si l’imprimante a 2 extrudeurs
G90; => passage en positio absolue
M106 S255 => ventilateur max de la tête
G28 X Y => reset position machine en X et Y
G1 X50 => déplacement en 50 sur X
M109 R90 => on attend que l’extrudeur soit à 90°
G28 => reprise position 0
;Sensor activation
;No Sensor
M104 S220 => consigne de chauffage à 220°
M107 ; => arrêt des ventilateurs
G1 X100 Y20 Z0.5 F3000 => déplacement en 100,20,0.5 à 3000 mm/mn
M109 S220 => on attend que l’extrudeur soit à 220°
M82 ; => passage déplacement extruder en mode absolu
G92 E0 ; => déplacement de l’extrudeur en position 0
G1 F200 E10 ; => extrusion de 10mm à la vitesse de 200 mm/mn
G92 E0 ; => déplacement de l’extrudeur en position 0
G1 E-5.0 F5000 ; => retrait de 5 mm à la vitesse de 5000 mm/mn
G1 F240 Z3 => montée de la tête de 3 mm à la vitesse de 240 mm/mn
G1 F6000 => configuration vitesse à 6000 mm/mn

Dans le fichier de configuration de CuraByDagome, on retrouve ce code (ou presque) dans la partie Gstart :

;Gcode by Cura by Dagoma {app_version} for DiscoEasy200
;Filament: {filament_name} / Temperature: {print_temperature}°C / Retraction: {retraction_amount}mm
D131 E1 ;Disable filrunout 2, just in case the user has a bicolor printer
G90 ;absolute positioning
M106 S255 ;fan on for the sensor
G28 X Y
G1 X50
M109 R90 ;wait for cool down
G28
;Sensor activation
;{sensor}
M104 S{print_temperature} ;start the heater
M107 ;start with the fan off
G1 X100 Y20 Z0.5 F3000
M109 S{print_temperature}
M82 ;set extruder to absolute mode
G92 E0 ;zero the extruded length
G1 F200 E10 ;extrude 10mm of feed stock
G92 E0 ;zero the extruded length again
G1 E-{retraction_amount} F5000 ;filament retract length
G1 F240 Z3
G1 F{travel_speed}

La différence réside dans la présence de paramètres liés visiblement au filament utilisé (print_temperature, retractation_amount), ainsi que du paramètre (sensor) lié sans doute à la procédure de détection de niveau du plateau.

Si l’on regarde le Gstart renseigné dans Cura 4.2.0 pour la DiscoEasy 200 (configuration fournie avec cura) :

;Gcode by Cura
G90
M106 S255
G28 X Y
G1 X50
M109 R90
G28
M104 S{material_print_temperature_layer_0}
G29
M107
G1 X100 Y20 F3000
G1 Z0.5
M109 S{material_print_temperature_layer_0}
M82
G92 E0
G1 F200 E10
G92 E0
G1 Z3
G1 F6000

On retrouve dans les grandes lignes la même procédure de démarrage. Même constat pour la procédure de fin. On ne devrait donc pas avoir de problème pour imprimer avec Cura 4.2.0.

Les slicers – Cura by Dagoma – Bi-couleur

Avec l’arrivée du pack bi-couleur, Dagoma a mis à disposition une nouvelle version du slicer Cura by Dagoma.

Après installation, au premier lancement, il suffit de sélectionner le modèle DiscoEasy200, et d’activer l’option Double extrusion.

Une nouvelle interface est maintenant disponible. Elle contient 3 zones supplémentaires, spécifiques à l’utilisation de 2 extrudeurs.

A : Deux extrudeurs = 2 réglages ! Mais aussi 2 fichiers .stl qui devront être correctement positionnés.

B : Il faudra aussi  choisir  le ou les filaments utilisés pour le support.  Le choix aura un impact sur l’impression.

C : La technologie employée ( une seule tête avec 2 entrées et une sortie unique) nécessite d’effectuer une opération de purge à chaque changement de couleur. Nous verrons l’influence du réglage.

Mode opératoire

Il faut charger deux fichiers stl complémentaires, avec la même référence de positionnement.

Exemple ci-dessous avec 2 fichiers stl issus d’un modèle bi-couleur trouvé sur Thingiverse.

Effectuer un clic droit sur l’un des fichiers, et choisir l’option « Assemblage pour la double extrusion ». On obtient une image reconstituée de la pièce d’origine.

On peut noter que les informations d’impression prennent bien en compte 2 filaments, avec un temps d’impression beaucoup plus important qu’habituellement.

Pour se rendre bien compte du rendu final, il suffit de configurer correctement les paramètres des Filaments 1 & 2. En positionnant un filament 1 de couleur noire et un filament de couleur orange, nous obtenons cette pièce dans son rendu bi-couleur.

A noter la possibilité par un simple clic droit d’inverser les couleurs (et donc d’inverser l’affectation des fichiers stl aux extrudeurs).

Choix du filament pour le support

Lorsque les supports sont activés, il est possible de choisir comment ils seront générés : soit en utilisant les 2 filaments, soit en utilisant uniquement l’un ou l’autre. A ce stade, je ne vois pas de raison particulière de privilégier un mode ou l’autre (sauf à vouloir équilibrer la consommation de filament des 2 couleurs).

Par contre, il est possible, en cas d’impression monochrome, de préciser que le support sera généré à partir du deuxième extrudeur. On peut facilement imaginer mettre des supports solubles, qui seront plus facile à faire disparaitre sans laisser de trace (dans des zones intérieures par exemple).

Volume de purge

Pour passer d’un filament à l’autre il est nécessaire de purger le restant de couleur présent dans la buse. Ce volume est généralement réglé sur standard.

Pour des couleurs proches (blanc et beige par exemple), on pourra choisir l’option “Petit (30 mm3)”. Les pertes de matière seront réduites, sans pour antant perdre en qualité.

Pour des couleurs très contrastées (beige et noir par exemple), il sera conseillé de choisir l’option “Grand (125 mm3)” afin de conserver la qualité. Dans ce cas les pertes de matière seront plus importantes.

Dans tous les autres cas (couleurs proches), l’option  “Standard (90 mm3)” suffira.

FreeCad – Assemblage V2

Je vous ai rapidement présenté rapidement l’atelier Part Design qui est l’atelier que j’utilise le plus pour concevoir les pièces que j’imprime. Je vais ici tenter de vous présenter un autre atelier : l’atelier Assemblage V2.

Sa principale utilisation pour moi va être de vérifier que la conception de mes pièces correspond bien à mon besoin et que je ne rencontrerais pas de problème lors de leur assemblage.

Je vais utiliser comme exemple la modification de la partie arrière mon caisson. Je souhaite remplacer la face plexiglas fixe, par 2 demi-faces mobiles, en m’appuyant sur le système de fixation actuel.

Pour réaliser mon assemblage, j’ai déjà dessiné les différentes pièces dans l’atelier Part Design. J’ai donc :

  • La représentation du montant et du système de fixation actuel :

  • La représentation de la porte modifiée pour s’adapter à la charnière supérieure :

  • Un axe :

  • La charnière inférieure :

  • La charnière supérieure :

Présentation de l’atelier

Lorsque l’atelier d’assemblage est activé, la barre de menu regroupe les principaux éléments à maîtriser.

Ce menu comporte plusieurs types de fonctionnalités. Je détaille ci-dessous les principales.

manipulation des objets
 

On va pouvoir Ajouter les objets à assembler entres eux, et les déplacer dans l’espace de travail. On pourra aussi rafraîchir  les objets déjà en place s’ils ont été modifiés dans l’atelier Part Design.

Mise en place des contraintes

Il faut avant toute chose bien avoir à l’esprit ce qui se cache derrière la notion d’assemblage.

D’un point de vue mécanique, un Assemblage consiste à mettre en relation plusieurs composants élémentaires qui formeront des sous-ensembles, formant eux-même un ensemble terminé.

Chaque élément doit respecter au sein de son sous-ensemble des règles d’isostatisme, qui vont permettre de définir des libertés de mouvement en translation et en rotation entre les éléments constituants.

Un bon assemblage sera un assemblage sur lequel tous les mouvements possibles auront été maîtrisés, à savoir 3 mouvements de translation et 3 mouvements de rotation.

FreeCAD met en oeuvre le principe de Lord Kelvin qui gère l’immobilisation de deux pièces par la mise en place de contraintes « trou – trait – plan ».

Ce sont les 5 icônes du menu, qui vont permettre de définir, dans l’ordre :

  • la mise en contact de 2 cercles,
  • la mise en contact de 2 plans,
  • l’alignement selon un axe,
  • le positionnement selon un angle donné,
  • le positionnement d’une sphère.
Groupes de contraintes

Une fois les contraintes posées entre un groupe d’objets, il est possible de créer un sous-ensemble figé. C’est ensuite ce sous-ensemble qui pourra être manipulé pour gérer des déplacements ou de nouvelles contraintes. Les contraintes internes seront alors toujours respectées.

Cas pratique

Pied – Charnière inférieure

On commence par ajouter les 2 éléments

On commence par appliquer une contrainte planaire entre les 2 surfaces colorées.

Le résultat n’est pas celui réellement attendu. Les surface sont certes bien contraintes, mais pas dans la bonne direction .

Le menu offre la possibilité d’inverser la dernière contrainte posée. Il s’agit de la première icone : .

Nous avons contraint une translation (selon Y) et une rotation (selon Z).

Il suffit de répéter les opérations pour contraindre totalement les 2 pièces (qui doivent bien être fixes l’une par rapport à l’autre).

Voici le résultat. La nouvelle pièce s’intègre parfaitement.

Charnière inférieure – AXE

On répète les mêmes opérations pour insérer l’axe dans la charnière.

2 contraintes à mettre en place : une contrainte coaxiale entre les axes et une contrainte de surface pour positionner en vertical l’axe lui-même.

AXE – Charnière supérieure

Mêmes principes …

Premiers contrôles

L’objectif est de vérifier que mon assemblage correspond bien à mon besoin, et qu’aucun point de blocage par exemple n’apparaît. Il existe une fonction dans l’atelier, qui permet de vérifier l’assemblage en lui-même. Ici aucun problème n’est remonté.
Il est aussi possible de déplacer en rotation la charnière pour regarder visuellement que tout semble correct.

Les contrôles peuvent aussi remonter des problèmes esthétiques. Ici par exemple, la forme de la charnière supérieure ne s’intègre pas totalement à l’ensemble.

Je vais donc reprendre la pièce supérieure dans l’atelier Part Design. Il me suffira de rafraîchir l’assemblage, pour que les modifications soient prise en compte, sans impacter les contraintes de placement déjà mise en place.

C’est quand même beaucoup mieux !!!

Charnière supérieure – Porte

Dernier élément à mettre en place : la porte.

Groupe -Derniers contrôles

Si on essaye maintenant de faire tourner la charnière, on s’aperçoit que les contraintes mises en place sur la porte ne sont pas respectées.

Ceci se produit parce que l’on n’a pas respecté la base de l’assemblage : on créer d’abord les sous-ensembles. Puis ensuite on créer l’assemblage.

L’idée est donc de d’abord créer un sous-ensemble « charnière haute + porte », avec les contraintes nécessaires, et on sauvegarde le fichier.

Il est ensuite importé comme un élément standard, avec les contraintes posées sur l’axe. Cette fois, lorsque l’on applique une rotation, c’est bien l’ensemble qui se déplace.

CQFD !

Translate »