Avez-vous déjà lu quelque chose et pensé : « Bon sang ! Pourquoi n’y ai-je jamais pensé ? C'était ma réaction en lisant une fonctionnalité communément associée à Klipper appelée nivellement adaptatif du lit ou nivellement adaptatif du maillage. Dommage que je n'utilise généralement pas Klipper, mais tout a fonctionné et je vais vous montrer comment cela pourrait fonctionner pour vous.
Qu'est-ce que c'est?
Autrefois un luxe, la plupart des imprimantes 3D sont désormais équipées d'une sorte de capteur de niveau du lit. L'idée est que l'imprimante puisse sonder le lit pour déterminer la forme de la plaque de construction, puis ajuster la plaque de construction en conséquence. Ainsi, si un endroit particulier du lit est trop haut de 0,5 mm, la buse peut monter de 0,5 mm lorsqu'elle se trouve dans cette zone. Il existe plusieurs techniques utilisées par le firmware Marlin, dont celle que j'utilise habituellement : UBL. Certaines personnes scannent le lit une fois et espèrent que cela ne changera pas grand-chose. D'autres effectueront une numérisation fastidieuse avant chaque impression.
Cependant, le nivellement adaptatif du lit est un peu différent. L’idée est que l’imprimante sonde uniquement la zone où la pièce va être imprimée. Si votre lit d'impression mesure 235 mm x 235 mm mais que votre pièce mesure 50 mm de côté, vous pouvez simplement sonder les points situés sous le carré de 50 mm.
Cela fait plusieurs choses. Pour un nombre de points donné, il y a moins de mouvement, donc cela devrait être plus rapide. De plus, pour le même nombre de points, vous aurez un maillage beaucoup plus dense et, ainsi, une meilleure idée de ce qu'est le lit en un point donné. Vous pouvez même réduire le nombre de points en fonction de la taille de la pièce que vous imprimez.
Quand on y pense, c’est une idée très simple. Qu'est-ce qu'il n'y a pas à aimer? Pour la plupart des travaux d'impression, vous aurez moins de travail pour l'imprimante, des impressions plus rapides et un maillage plus dense. Mais comment fais-tu ça?
Comment faites-vous?
Pouvez-vous faire en sorte que cela fonctionne avec votre imprimante ? Peut être. L'astuce est que vous avez besoin d'un moyen d'indiquer au micrologiciel de votre imprimante de restreindre la zone de maillage. Vous avez également besoin d'un moyen pour que le slicer génère un cadre de délimitation pour la pièce, mais ce n'est généralement pas difficile. Si vous le deviez, vous pourriez même post-traiter votre Gcode et le comprendre, mais vous n'aurez probablement pas à le faire.
je
Si vous utilisez un nivellement linéaire ou bilinéaire, vous êtes en affaires. En effet, la commande G29 pour bilinéaire accepte un paramètre L, R, F et B qui vous permet de définir les mesures gauche, droite, avant et arrière de la grille de sondage. Vous pouvez également définir le nombre de points de sonde avec H. En fait, H définit un côté du carré, donc si H=5, vous sonderez 25 points dans la zone.
Cependant, j'utilise UBL, et sur une de mes imprimantes, je pense que je n'ai pas de chance sans changer quelque chose dans le firmware. Bien qu'il existe un paramètre d'encart de maillage, il est défini lorsque vous créez le micrologiciel, il ne sera donc pas pratique de le modifier à la volée.
Cependant, deux de mes imprimantes sont des machines Ender 3 v2 Neo. À eux seuls, ils utilisent une variante étrange du nivellement normal, mais je les ai flashés il y a longtemps avec l'excellent firmware « professionnel » de [mriscoc]. Il s'agit de Marlin configuré pour ces machines et – du moins la version que j'utilise – a défini UBL. Mais il y a un piège.
Le micrologiciel contient des Gcodes personnalisés commençant par C. C29 définit la taille et l'emplacement du maillage de manière très similaire aux autres versions. Pour une raison quelconque, il règle également la température. Voici la documentation :
C29 Ln Rn Fn Bn Tn Nn Xn Ym : réglage de l'insertion du maillage de palpage (Gauche, Droite, Avant, Arrière) en mm. T est la température de sondage (T0 ne change pas la température actuelle du lit) et N est la densité ou la quantité de points de grille NxN, il est possible de définir une densité NxM en utilisant X et Y. Dans UBL, utilisez G29 S# pour enregistrer à un numéro d'emplacement de maillage #.
Essayez-le !
À titre expérimental, j'ai envoyé ce qui suit à l'imprimeur via un terminal :
C29 L100 R150 F100 B150 T0 N5
Rien ne s'est passé. Mais lorsque j'ai effectué un G29 P1 pour sonder le lit, il a obéi à la nouvelle restriction. Il ne restait plus qu'à faire en sorte que le slicer génère le code de démarrage correct. Bien sûr, si vous utilisez le nivellement bilinéaire, vous utiliserez plutôt G29 et devrez modifier quelques arguments.
Engager la séquence de démarrage
La plupart des slicers vous permettent de placer des variables d'espace réservé dans vos scripts Gcode. Vous devrez peut-être le rechercher pour votre slicer. Il existe également des plugins qui peuvent faire le travail, mais vous devrez changer leur G29 en C29 (dans mon cas). J'utilise principalement SuperSlicer, qui est dérivé de PrusaSlicer, qui est dérivé de Slic3r.
Voici une partie de mon code de démarrage :
G28 ; home all C29 L{first_layer_print_min[0]} R{min(190,first_layer_print_max[0])} F{first_layer_print_min[1]} B{min(180,first_layer_print_ max[1])} T0 N5 G29 P1 ; probe G29 A ; activate (may not be needed?) G29 F2 ; Fade height 2mm (or whatever you want)
C'est ça. Si vous avez une ligne qui purge votre buse, vous souhaiterez peut-être la corriger en utilisant une logique similaire ou simplement ajouter quelques boucles de jupe dans la trancheuse et oublier cela. A noter que je sonde 25 points, ce qui peut être un peu trop pour une petite partie. Ce serait bien d'écrire un script pour détecter la taille d'une pièce et ajuster les choses. Notez que Prusa a suffisamment de puissance pour faire cela totalement dans le code de démarrage, mais ce serait différent dans Slic3r ou Cura. Si vous regardez autour de vous, il existe quelques exemples différents de cette opération, à la fois pour les slicers et pour divers micrologiciels, que vous devrez – sans aucun doute – adapter à votre situation.
Je dois pirater le micrologiciel de mon autre imprimante pour voir s'il est possible d'ajouter une commande C similaire. Mais c'est pour un autre jour, d'autant plus que la commande C29 est fournie uniquement sous forme de code objet, je vais donc devoir repartir de zéro. Heureusement, je suis habitué à construire (et reconstruire) Marlin pour toutes les machines, en particulier celle-là, car il s'agit d'un mélange personnalisé de nombreuses pièces. Je pourrais passer au nivellement bilinéaire. Ou bien, je pourrais m'effondrer et aller voir Klipper, je suppose.
Nous voulons essayer la numérisation rapide ensuite. Bien sûr, les choses sont simples si vous faites tourner votre plateau une fois et que vous l'oubliez. C'est-à-dire jusqu'à ce que quelque chose change.