Tutorial: Générer carte de niveau d'après une image

Ce tutorial décrit l'utilisation du complément (plugin) Générer carte de niveau pour générer des pseudo profils 3D à partir d'images bitmaps. La même fonction peut également être utilisée pour générer des photogravures à partir d'images à deux tons et des lithopanes. Le code source de ce complément est également fourni avec CamBam pour les plus aventureux.

NDTR : Le complément Carte de niveau n'est pas traduit actuellement, utilisez Dessiner – Surface – Depuis une image bitmap de préférence.
ATTENTION! Le complément Générer carte de niveau produit un Gcode qui plonge dans toute la profondeur de votre carte de niveau en une seule passe. L'opération de gravure supportant les passes multiples, la propriété Incrément de passe peut être utilisée pour usiner les cartes de niveau avec une forte profondeur.

Etape 1 – Ouvrir le complément Générer carte de niveau (Heightmap)

Le complément de génération de carte de niveau est accessible depuis le menu principal  Compléments – Générer carte de niveau.

Les compléments de CamBam sont des bibliothèques DLL de classe .NET et sont situées dans le sous-dossier plugins du dossier d'installation de CamBam.

C:\Program Files\CamBam plus 1.0\plugins

Le code source de ce complément se trouve également dans le fichier HeightMapPlugin-Src.zip de ce dossier.

Heightmap toolpath

Etape 2 – Sélectionner un fichier Bitmap

La réussite d'une carte de niveau dépend en grande partie de la qualité de l'image source. Des objets éclairés de face, même avec un ombrage donnent les meilleurs résultats.

Inspirée par les expériences vues sur ce post de cnczone 3D for Crazies, j'ai photographié un objet immergé dans un bac contenant de l'eau et du colorant alimentaire bleu. J'ai ensuite utilisé un programme de dessin pour filtrer l'image bitmap afin de n'avoir que le canal rouge affiché en niveaux de gris. En théorie, plus la surface de l'objet est loin de la surface du liquide, plus il apparaîtra bleu,. Cela a bien fonctionné, beaucoup mieux que je m'y attendais mais il faut prendre des précautions pour éviter les réflexions de surface et les bulles d'air. Ce n'est peut-être pas une si bonne idée pour faire des cartes de niveau de personnes.

Object in blue food colouring Object with Red Filter

Avec la fenêtre du générateur carte de niveau ouverte, sélectionnez File – Open (Fichier – Ouvrir) dans le menu principal et sélectionnez l'image source.

Etape 3 – Les options de Générer carte de niveau

Modifier les options du générateur de carte de niveau via le menu Tools – Options de la fenêtre Heightmap.

ClearPrevious

L'option de menu Tools - Generate Heightmap peut être appelée plusieurs fois. Si cette option est à true, le heightmap précédemment créé sera supprimé avant génération d'un nouveau heightmap.

Invert

Si à true alors les couleurs sombres indiqueront une élévation plus importante (de plus grandes valeurs Z), si à false, ce seront les couleurs claires qui indiqueront la hauteur la plus importante.

XSize / YSize

Largeur (X) et hauteur (Y) du heightmap dans les mêmes unités que le projet courant.

Ces valeurs contrôlent la taille physique du heightmap résultant. Si le YSize = 0, l'aspect ratio de l'image sera appliqué à la valeur de Xsize pour déterminer la hauteur Y.

Exemples:

Xsize = 100 (mm), YSize = 0

Xsize = 4 (pouces), YSize = 0

XStep / YStep

Un heightmap crée une série de lignes de balayage, sensiblement de la même façon qu'une image de télévision est créée. La valeur de YStep contrôle la distance entre les lignes de balayage horizontal et la valeur de XStep détermine à quelle distance se trouve chaque point de la ligne dans la direction X.

Si l'un est mis à 0, la hauteur sera calculée pour chaque pixel de l'image.

Exemples

XStep = 0, YStep = 0

(Calculer la hauteur à chaque pixel de l'image)

XStep = 0, YStep = 0,75 (mm)

(Calculer la hauteur à chaque pixel dans une ligne de balayage, avec chaque ligne de balayage horizontal à 0,75 mm d'intervalle)

XStep = 0, YStep = 0,001 (pouces)

(Calculer la hauteur à chaque pixel dans une ligne de balayage, avec chaque ligne de balayage horizontal à 0.001" d'intervalle).

Zmax

Il s'agit de la plus grande hauteur en Z. Si la surface du brut est au niveau zéro de l'axe Z, alors typiquement Zmax serait également à zéro.

Zmin

Il s'agit de la plus grande profondeur atteinte en Z dans le heightmap.

Exemples

Zmax = 0, Zmin = -10 (mm)

Les hauteurs vont donc de -10mm au plus profond du Heightmap à 0mm pour le point le plus haut.

Zmax = 0,125 (pouces) Zmin =- 0,125 (pouces)

Les hauteurs vont de -0.125" au plus profond à 0.125" au point le plus haut.

Etape 4 – Générer la carte de niveau

Fermer la fenêtre des options et sélectionnez Tools – Generate Heightmap (Outils - Générer heightmap).

Vous devriez voir des lignes qui apparaissent dans la zone de dessin de CamBam. Laissez la fenêtre du générateur ouverte, effectuez des rotations et modifiez le zoom dans la fenêtre de dessin de CamBam pour avoir une meilleure idée des dimensions du dessin.

Vous pouvez trouver plus d'informations sur les fonctions de rotation, panoramique et zoom ici.

Voici une capture d'écran de la carte de niveau résultante.

Heightmap toolpath

En plus de générer un objet composé de lignes 3D représentant la carte de niveau, le complément crée également une opération de gravure liée à cet objet. Une opération de gravure est utilisée car ces opérations sont conçues pour «suivre» la géométrie associée. En effet, la fonction de gravure utilise les lignes 3D comme un parcours d'outil.

Modifiez les paramètres de l'opération de gravure telles que la vitesse d'avance.

Note : Ne modifiez pas la valeur de Profondeur finale, la profondeur d'usinage sera tirée de l'objet source.
Pour convertir la carte de niveau en Gcode, cliquez du bouton de droite sur le dossier Usinage puis sélectionnez Créer le fichier Gcode dans le menu contextuel.

Gravure de photos

Le processus Carte de niveau peut également générer des gravures ombrées.

Une fraise en V (à graver) est utilisée pour cela, généralement pour une gravure à 2 tons dans du stratifié. Plus l'usinage est profond, plus il apparaîtra sombre (si vous utilisez une lumière sur le stratifié noir). Une faible profondeur en Z est suffisante (~ 0,5 mm, 0.02"). La valeur de YStep doit être réglée de sorte que les lignes de balayage ne se chevauchent pas ce qui gâcherai l'effet d'ombrage. Cette distance varie en fonction de l'angle de l'outil de gravure et de la profondeur de passe. Pour une fraise à 60° et 0.5mm de profondeur de passe, j'utilise une valeur de 0.7mm pour YStep.

Photo Engraving

Un lithophane est une autre variation sur ce thème, où une image est gravée dans un matériau mince et translucide est vue avec rétro-éclairage. Les lithopanes sont généralement inversés car d'une profondeur d'usinage importante résulte un matériau plus mince et qui laisse donc passer plus de lumière.

Photo Lithopane Engraving

Créer un nuage de points depuis une Carte de niveau

Voici une méthode pour générer un nuage de points au format DXF

Générer une carte de niveau comme d'habitude et sélectionnez l'objet composé de lignes si ce n'est pas déjà fait.

Maintenant, utilisez le menu contextuel de la zone de dessin Dessiner – Points – Contour géométrie par pas.

Cela va insérer un point le long de chaque ligne avec un pas N.
Par défaut, une carte de niveau fera 1 pixel de l'image = 1 unité de dessin (Ceci peut être modifié dans les options).

Entrez 1 pour Ecartement des points, puis appuyez sur OK.

CamBam affiche actuellement des points en utilisant des gros carrés. Ca donne une impression de fouillis, mais ne vous inquiétez pas à ce sujet. L'objet ligne peut maintenant être supprimé.

Le dessin peut maintenant être exporté vers un fichier DXF. Voici un nuage de points affiché dans AutoCad.

Heightmap Pointcloud

Copyright (c) 2011 HexRay Ltd