Créez une géométrie 3D impressionnante en programmant le code CNC: 8 étapes (avec images)

Créez une géométrie 3D impressionnante en programmant le code CNC: 8 étapes (avec images)

Table des matières:

Anonim

L'usinage CNC facilite la découpe de formes très précises et cohérentes. Mais souvent, il reste limité à la découpe de formes 2D, pour des raisons évidentes. Tout en apprenant à utiliser la CNC moi-même il y a quelque temps, j'ai approfondi la création de géométries 3D inspirantes à l'aide de la programmation. Cela m'a donné les connaissances nécessaires pour créer des parcours d'outil personnalisés plus rapides et plus efficaces qu'il aurait été difficile ou impossible de configurer avec un logiciel de FAO standard.

Dans cet instructable, je vais vous guider dans le processus de création d'une géométrie mathématique avancée en utilisant la programmation en combinaison avec l'usinage cnc. Les connaissances que vous en tirerez vous permettront d’établir des parcours d’outils plus sophistiqués et plus efficaces et vous éviteront d’être restreints par les limites de votre logiciel de FAO.

Une partie des connaissances contenues dans cette instruction est basée sur les recherches de Jens Dyvik. La plupart des exemples qui vont être donnés ont été réalisés avec le Colinbus de Fablab Genk, mais certains ont également été fabriqués avec un Shopbot. Les machines que j'ai utilisées ont été configurées dans le système métrique, ne vous trompez donc pas si vous travaillez normalement dans des unités impériales.

S'il y a quelque chose qui n'est pas clair ou faux, faites le moi savoir afin que je puisse éditer l'instructable.

Provisions:

Étape 1: Familiarisez-vous avec la CNC

Si vous n'avez jamais utilisé de CNC auparavant, certains des termes utilisés dans cette instruction peuvent sembler étranges. Je recommande donc de se familiariser avec un cnc avant d'essayer des choses similaires à celles décrites dans cet instructable. Utilisez le logiciel de FAO fourni avec la machine à laquelle vous avez accès, car il vous donnera une idée du flux de travail pour démarrer un travail de fraisage.

Le logiciel de FAO n'est malheureusement pas une solution prête à l'emploi. Vous devez connaître les vitesses d'alimentation, le nombre de tours par minute, les bits de fraisage, etc. Et même si le logiciel facilite la configuration des parcours d’outils, vous devez toujours utiliser les capacités de ce que le programme est capable de faire. Avoir un contrôle total sur ce que la machine va faire, comme nous le verrons dans une étape ultérieure, nous donne l’occasion de modifier chaque partie de la configuration du parcours d’outil, ce qui n’est pas toujours possible dans le logiciel de FAO.

Étape 2: Qu'est-ce que le code G?

G-code est la langue qui permet à votre ordinateur de communiquer avec la machine CNC. Dans votre logiciel de FAO, vous convertissez vos fichiers de CAO (3D ou 2D) avec le post-processeur en un fichier que votre machine comprendra. Il s'agit d'un code créé ou utilisé par le fabricant de la machine pour leurs machines. C'est un ensemble de commandes qui indique à la machine où aller et quoi faire. De manière simplifiée, elle dit quelque chose comme ceci:

- Vitesse de rotation de la broche à 18 000 rotations par minute

- Réglez la vitesse de déplacement à 35 mm par seconde

- Déplacer pour coordonner x100, y100 au-dessus du matériau

- Déplacement de 25 mm dans la direction z vers le bas et la sauvegarde

- éteindre la broche

- Aller à l'origine / 0 point sur la machine

Les différences entre ces codes g sont, par exemple, la manière dont ils définissent la commande à déplacer, ou dans quelles unités ils travaillent, ou si les nombres négatifs dans la direction z sont au-dessus ou au-dessous du point 0, etc. Jetons un coup d'oeil à la dissection de ce code pour pouvoir écrire votre propre code pour la machine que vous utilisez.

Étape 3: Comprendre le code de la machine à laquelle vous avez accès

Pour comprendre quelles parties du code font quoi, vous pouvez créer un exemple de fichier simple à l’aide de votre logiciel cam. Le post-processeur convertit les informations dans le bon code pour la machine. Nous pouvons ensuite analyser ce fichier et procéder à un reverse engineering. Vous pouvez simplement l'ouvrir dans le bloc-notes et lire les lignes de code. Si vous jetez un coup d'œil à l'exemple du code de shopbot, vous verrez qu'une grande partie du code est juste coordonnée, ce qui indique à la machine où déplacer la broche.

Et puis, en fonction de la machine que vous utilisez, le reste du code peut être assez simple (par exemple, dans l'exemple du code de shopbot, M3 signifie: Move à un coördinate spécifique 3 dimensions). Parfois, vous pouvez également trouver des informations en ligne pour une explication claire. Certains fabricants pourraient donner les détails eux-mêmes, comme Shopbot par exemple:

http: //www.opensbp.com/files/QuickReference_bothpa …

Nous devons savoir ce que font ces différentes commandes, car nous créerons nous-mêmes ce type de code à l’aide d’une programmation ultérieure.

Étape 4: Programmation - Sauterelle

Nous avons donc maintenant une meilleure idée du fonctionnement du code de la machine. Nous pouvons utiliser ces informations pour créer notre propre post-processeur. J'utilise Rhino avec son plugin polyvalent Grasshopper pour cela. Rhino est un logiciel de CAO qui combine un environnement de dessin 2D et de modélisation 3D. Grasshopper est un plug-in permettant d'effectuer une programmation basée sur les nœuds dans Rhino. Il étend largement ses capacités. Je pense qu’il existe d’autres langages de programmation ou logiciels susceptibles de permettre des opérations similaires, mais j’estime que cette combinaison de programmation et d’un environnement 3D est la méthode la plus simple pour effectuer ce type de travail, car vous obtenez une représentation visuelle de ce qui se passe dans votre code.

Ce que nous allons faire dans cette instruction nous permettra de tracer des lignes en 3D et de créer un fichier de parcours qui indiquera à la machine de suivre ces lignes. Dans l’étape précédente, nous avons vu que le parcours d’outil consistait en coördinates. Cela signifie que nous devons convertir nos lignes en points, extraire les coordonnées de ces points et les convertir au bon format. Nous devons également garder à l'esprit qu'entre les lignes, nous voulons passer au-dessus du matériau, car nous ne voulons pas couper le matériau lorsqu'il passe d'une ligne à une autre. Cela signifie donc que nous devons copier le premier et le dernier point de chaque ligne et insérer une hauteur z au-dessus de notre matériau.

Ou si je simplifiais le processus, il deviendrait comme ceci:

- lignes d'entrée

- Facultatif: triez les lignes pour vous assurer que celles-ci sont fraisées dans le bon ordre, si nécessaire. (peut également être utilisé pour accélérer les choses beaucoup)

- Convertir des lignes en une liste de points

- Copiez le premier point et le dernier point d’une courbe, extrayez les coordonnées, remplacez la valeur z par celle qui se trouve au-dessus du matériau, créez un nouveau point à partir de celles-ci et insérez ce point dans la liste au bon endroit (avant le point de départ). derrière le dernier point de chaque ligne à l'intérieur du matériau).

- Extrait coördinates de chaque point

- Convertissez ces coördinates à la bonne syntaxe (le g-code qui fonctionne spécifiquement sur votre machine)

- Combinez ceci avec les codes de début et de fin du fichier

- Transformez le fichier en gcode.

Étape 5: Générer des parcours d'outil et tester

J'ai créé une définition de base de sauterelle que j'ai ajoutée à titre d'exemple. Il effectue les étapes décrites précédemment et convertit les lignes 3D en code shopbot ou colinbus. Je pense qu'il peut être très utile de mieux comprendre comment cela se passe.

Pour enregistrer le fichier gcode à partir du fichier de la sauterelle, cliquez avec le bouton droit de la souris sur le panneau jaune avec le code (à droite dans le fichier) et choisissez une destination de flux, ce qui signifie l'emplacement où vous enregistrerez le fichier. Lorsque vous nommez le fichier, assurez-vous de choisir l’extension utilisée par votre gcode. Pour Shopbot, il s'agit de.sbp, pour colinbus, de.c3d, etc. Vous pouvez le découvrir en consultant le fichier de trajectoire d'outil exporté à partir du logiciel de caméra, comme nous l'avons vu à l'étape 3.

Avant d’essayer pour la première fois votre code créé par vous-même, assurez-vous de lire le code et de voir si tout semble comme il se doit. Ensuite, exécutez le fichier en l'air et regardez ce que fait la machine. Si tout vous semble approprié, insérez le fichier dans le fichier et ressentez la satisfaction de fraiser votre code auto-programmé.

De là, l'exploration à Grasshopper peut commencer. Les possibilités de combiner Grasshopper avec l'usinage cnc sont infinies. Dans les étapes suivantes, je vais décrire comment j'ai créé des exemples à l'aide de ces outils.

Étape 6: Exemple 1: convertir une image en fraisage 3D à l'aide d'un bit V

À l’intérieur de la sauterelle se trouve un échantillonneur d’images qui peut lire la valeur en noir et blanc d’une image et l’affecter à un nombre compris entre 0 et 1. Avec 0 pour noir et 1 pour blanc. Donc, ce que nous pouvons faire est de remapper cette valeur vers un domaine différent qui contrôlera la profondeur de notre v-bit. De cette manière, nous pouvons créer différentes épaisseurs de lignes à l'intérieur du matériau, comme si nous poussions plus fort et plus doucement avec un crayon sur du papier.

Étant donné que l'échantillonneur d'images a besoin de points en entrée, nous pouvons les déplacer rapidement vers la profondeur z souhaitée. Si nous trions ensuite nos points en groupes, nous ne pouvons pas créer de polylignes 3D à partir de ces points et nous utilisons un post-processeur, comme dans l'une des étapes précédentes, pour le transformer en gcode. Lorsque vous la fraisez, il est conseillé de peindre la surface supérieure pour obtenir un bon contraste de couleurs.

J'ai ajouté le fichier original que j'ai utilisé pour pouvoir en tirer des leçons. Sachez que le post-processeur utilisé dans cet exemple de fichier est destiné à un Colinbus et non à un Shopbot.

Vous pouvez également convertir le post-processeur en points en entrée et explorer chaque fois à une profondeur différente avec le v-bit. De cette façon, vous pouvez créer des images en demi-teintes sur la CNC, comme je l'avais fait la première fois que j'ai essayé mon propre code (voir les images de l'étape précédente).

Étape 7: Exemple 2: lignes courbes

Cet exemple est en partie un dessin manuel et en partie une sauterelle. J'ai donc créé 4 lignes, dont les plus hautes et les plus basses sont les arcs de base d'un cercle et les deux lignes du milieu sont des ondes bouclées aléatoires que j'ai dessinées. J'ai ensuite utilisé des sauterelles pour créer des lignes de transition entre elles; soi-disant "courbes Tween". Je voulais créer une surface linéaire où ces courbes d’interpolation constituent le sommet de la surface. Donc, ce que j’ai alors fait, c’était de tracer des lignes entre ces courbes de transition que le v-bit suivra.

Nous nous retrouvons maintenant avec les courbes en 2D, mais nous voulons les rendre en 3D afin que les arêtes se retrouvent au même niveau. Donc, ce que j'ai fait était de diviser les courbes v-bits en points et pour chaque point, je calcule la distance à la courbe la plus proche. Étant donné que j'utilise un bit de 90 degrés, je sais que la distance à la courbe de transition la plus proche correspond également à notre profondeur v-bit (voir l'image v-bit). Si vous ne comprenez pas pourquoi vous pouvez effectuer une recherche sur la trigonométrie. En déplaçant les points de division dans la direction z vers le bas en utilisant la distance jusqu'à la courbe la plus proche, nous obtenons une courbe 3D que nous pouvons utiliser à nouveau avec le post-processeur.

J'ai également trié les courbes et inversé toutes les autres courbes. Cela augmente le temps d'usinage car cela permet de s'assurer que la machine ne se déplace pas de l'autre côté au-dessus du matériau à chaque courbe.

J'ai ajouté le fichier rhino et sauterelle afin que vous puissiez disséquer comment il est fabriqué. C'est une ancienne définition, donc je suis presque sûr qu'il y a des choses qui peuvent être faites plus rapidement ou différemment.

Étape 8: Exemple 3: Bol de sinus

Celui-ci que j'ai fait pendant que je faisais des exercices d'apprentissage de Python dans Grasshopper. Avant le broyage final, il y a pas mal d’étapes à suivre et je suis sûr qu’il existe des moyens plus rapides de procéder ainsi que je l’ai fait à l’époque, mais voilà.

À l'intérieur du composant python, j'ai créé le code afin de générer des points permettant de créer une surface d'onde sinusienne carrée de 100 x 100 mm. (Je pense que j'ai appris cela grâce à un tutoriel, mais je ne me souviens plus d'où. Si quelqu'un le sait, dites-le-moi pour que je puisse l'ajouter)

Pour créer une transition en douceur allant d'une surface plane à cette surface d'onde sinusoïdale, je remappe les nombres à l'aide d'un mappeur de graphe. Ceux-ci vont générer le facteur d'échelle que nous allons utiliser. Ce n'est pas le moyen le plus propre de générer cette surface, mais cela fonctionne pour cette application. Donc, j'échelle chaque point dans la direction z à partir du point le plus haut de notre surface sin et les morceaux qui seront plats seront mis à l'échelle avec une valeur de 0,001 créant une surface d'aspect plat (même si ce n'est pas parfaitement plat).

J'ai ensuite calculé la distance entre le centre du carré et chacun des points de la surface du péché que nous avons créée. Je trie la liste des points en fonction de cette distance et déplace un nombre facultatif de la liste des points réduits pour créer la forme en dôme. (Parce que nous avons calculé la distance du centre, cela crée cette forme circulaire).

J'ordonne ensuite ces points en listes de points pour former des polylignes. J'ai créé ces polylignes pour ajouter différentes hauteurs afin de pouvoir effectuer une ébauche par étapes. Je les ai donc utilisées avec le post-processeur que nous avons utilisé auparavant pour effectuer l'ébauche sur le chêne. Mais pour le chemin de finition, je voulais utiliser un parcours en spirale et je devais faire une solution de contournement pour y parvenir:

Ainsi, à partir des polylignes finales, je crée une surface 3D. Ensuite, j'ai cuit la surface 3D dans Rhino et dessiné une spirale 2D au-dessus de la surface. J'ai ensuite fait un décalage (avec le rayon du trépan) sur la surface et j'ai projeté la spirale sur cette surface, pour faire correspondre le bord du joint avec la surface que je veux réellement créer. Ensuite, lors du réglage de la hauteur z sur la machine, je déplace le point zéro vers le bas avec une distance qui correspond au rayon du bit. Donc, le 0 dans la direction z est maintenant au centre du bit. J'utilise ensuite le post-processeur sur cette courbe en spirale projetée et c'est tout!

Maintenant, beaucoup de choses seront difficiles à suivre en lisant mon texte, je vous suggère donc de consulter mes fichiers pour mieux comprendre. Vous aurez besoin du composant python que vous pouvez trouver sur le site web de food4rhino: Ici

Et ensuite, à vous de jouer! J'espère que vous avez appris quelque chose de cet instructable et au cas où vous l'utiliseriez pour faire quelque chose, j'aimerais voir les résultats!

Runner Up dans le

Concours CNC 2016