Numérisation 3D avec Mach3

  • Auteur de la discussion dh42
  • Date de début
dh42
dh42
Compagnon
Bonjour à tous,

Depuis quelque temps, je me suis intéressé à une fonction bien utile de Mach3, c'est la possibilité de scanner en 3D avec la CN ; c'est l'assistant Digitise Wizard qui permet cela (+ quelques bidouilles perso ..)

Scanner avec Mach3

01_dig10.jpg


Cet assistant ouvre un écran permettant de paramétrer un palpage vertical sur une zone rectangulaire.

02_dig10.jpg


Après avoir renseigné la largeur et la hauteur (sur le plan XY) de la zone à "scanner", ici 10 x 10 mm, on défini les positions min et max du déplacement en Z ; ici le palpeur descendra au maximum à la coordonnée –2 s'il ne détecte rien avant. Il remontera à la coordonnée +4 en rapide avant de passer au point de mesure suivant.

Le bouton "Check file size" peut être utilisé pour calculer le nombre de lignes de code qui seront produites en fonction des réglages effectués.

Vous devez également déterminer la vitesse d'avance de palpage, ici réglée à 300mm/min.

Une fois tous les réglages faits, cliquez sur "Create and load G-Code" afin de générer le Gcode qui sera directement transféré dans l'interface de Mach3.

03_gco10.jpg


Il ne reste plus qu'à lancer le programme.

Le M40 appelle une routine en Visual Basic (un fichier .m1s) se trouvant dans le dossier des macros de Mach3, et qui contient simplement la fonction "OpenDigFile()" qui a pour effet d'ouvrir une requête de fichier dans laquelle vous devrez indiquer le nom de fichier sous lequel les coordonnées scannées devront être sauvées.

Il est important pour la suite que vous n'oubliez pas de mettre l'extension .txt à la fin du nom de fichier (Mach ne le fait pas automatiquement) sinon il ne sera pas accessible pour la seconde partie de l'opération qui sera de le transformer en un fichier 3D au format STL.

05_fil10.jpg


La deuxième ligne de Gcode, G92X0Y0Z0 a pour effet de mettre tous les axes à 0 à l'endroit ou se trouve le palpeur ; donc avant de lancer le programme, amenez votre pointe de touche au point que vous considérez comme le 0,0,0 en XYZ.

Les G31 déclenchent la descente du Z ; des que l'entrée "digit" est activée par un contact avec l'objet, les coordonnées sont sauvées dans le fichier texte.

Voici un extrait de ce fichier texte, présentant les coordonnées X, Y et Z de chaque point scanné sur une ligne.

0.00000,0.00000,0.00259
4.99917,0.00000,0.00259
10.00458,0.00000,0.00259
15.00375,0.00000,0.00259
20.00292,0.00000,0.00259
…………………


Le scan est effectué en zigzag comme le montre l'image ci dessous.

04_too10.jpg


Le montage pour palper

Dans mon cas, j'ai tout simplement utilisé mon palpeur d'outil, monté à l'envers ; il est actionné par l'arrière de la tige d'un comparateur qui, dans ce cas, ne sert que de "tige mobile précise". Ce montage peut bien sur aussi être utilisé uniquement avec le comparateur pour d'autres usages.

Voici le montage en images 3D

07_p3d10.jpg


06_p3d10.jpg


08_p3d10.jpg


.... et les vraies pièces ....

09_usi10.jpg


10_usi10.jpg


11_mon10.jpg


le montage sur la machine....

12_mon10.jpg


13_mon10.jpg


14_mon10.jpg


et c'est parti pour un test sur une souris.


Puis sur une pièce de monnaie


et enfin une capture de profil en utilisant un pas en Y supérieur à la taille de la zone à scanner, ce qui permet d'avoir une seule ligne.



Conversion du fichier de points.

J'ai du développer une petite application en Visual Basic .Net afin de transformer ce "nuage de points" en une forme 3D pleine, et dans un format lisible par la majorité des softs de 3D.

Cette application, Mach3Digit2STL.exe est en pièce jointe et convertis le fichier .txt créé par Mach3 en un fichier .STL

le fichier .STL résultant est sauvé dans le même dossier et avec le même nom que le fichier texte d'origine, à part son extension de fichier qui devient .stl

Voici en vidéo la manière de faire cette opération.


et le résultat pour la pièce, ouvert sous 3Dsmax. La différence de hauteur de la gravure est de l'ordre de 0.25mm

visage10.jpg


Notez que si vous ne démontez pas la pièce scannée de la machine, et que vous mettez le STL dans Cambam, toutes les coordonnées sont en correspondance entre la "vraie" pièce et la pièce 3D ouverte dans Cambam ; il ne vous reste qu'à remplacer le palpeur par un outil et refaire le 0 en Z pour être en mesure d'usiner à l'endroit voulu sur la pièce.

++
David Voir la pièce jointe Mach3Digit2STL.zip [div=initial][arrow]Mise à jour du 28/4/2012
Version 1.1.[/arrow]
[/div]
 
Dernière édition:
dh42
dh42
Compagnon
Salut,

Et un petit addendum :wink:

Il s'agit d'un système de mesure de hauteur utilisant le même palpeur et un écran perso créé pour Mach3 à l'aide de MachScreen (et bien sur de programmation en Visual Basic)

Je peux palper à 3 positions différentes ; la position de contact (en coordonnées courantes) est affichée dans la visu correspondante.

Les boutons Ref=0 permettent de modifier l'affichage de façon à ce que la position en question devienne le point 0 en Z, et les 2 autres visus affichent donc la différence de hauteur par rapport à cette référence.

Une petite vidéo de l'utilisation de mon interface de mesure. (je pense y ajouter plus de points de mesure et en faire un "Wizard" plus tard)


Cela peut être utile par exemple lorsque je veux utiliser mon palpeur mais que je ne peux pas le poser sur la surface de la pièce ; soit parce qu'il n'y à pas de place sur la pièce, ou qu'il n'y a plus de surface pièce de référence (enlevée par la passe d'ébauche), ou tout simplement parce que le Z ne monte pas assez haut pour passer le palpeur (pièce haute + fraise longue).

Dans ce cas je dois connaitre la différence de hauteur entre la surface de ref ou je pose le palpeur et la surface de ref de la pièce. Cette différence de hauteur peut alors être soustraite ou ajoutée au décalage du palpage d'outil suivant que le palpeur est posé sous la surface pièce ou au contraire au dessus.

Sur cette image par exemple, on suppose que la surface de ma pièce à été mesurée à + 10.25 mm par rapport à la surface sur laquelle est posée le palpeur.

J'entre cette valeur dans "Offset courant" ("Haut. Palpeur" contient la hauteur du palpeur, qui ne change pas en principe)

m3_pal10.jpg


Le programme qui gère le palpage en tiendra compte et le 0 sera fait 10.25 mm plus haut que la surface de ref du palpeur.

Bien sur, ça non plus ça ne fait pas non plus partie de l'interface "standard" de Mach3 ; c'est un ajout perso :wink:

++
David
 
Dernière édition par un modérateur:
L
ludovic-80700
Apprenti
Bonjour,j'ai télécharger ton programme pour convertir le fichier txt mais ne veut pas fonctionner.(Fichier: I:\Digitize.txt
Fichier illisible !
L'index se trouve en dehors des limites du tableau.)
autrement a tu une idée de comment exploiter le fichier Tap créer ,pour pouvoir l'utiliser avec rhinoceros v4 ou catia.
je vous remercie d'avance pour vaux réponse.
a+
 
dh42
dh42
Compagnon
salut,

peux tu mettre ton fichier digitize.txt en pièce jointe que je vois ce qui se passe ?

++
David
 
L
ludovic-80700
Apprenti
ludovic-80700 a dit:
Bonsoir,voila mon fichier s'est juste un teste [attachment=0]Digitize.txt[/attachment] j'ai tester ton programme sous seven 64 bit.merci pour ton tuto est ton aide .
a+
 
dh42
dh42
Compagnon
Ah oui ! ça ne peut pas marcher ... ton fichier texte c'est du Gcode !!

(Digitize File)
M40
G92X0Y0Z0
F100
G0X0Y0Z5
G31 Z-6.2774385622042e+066
G0 Z5
G0X1Y0Z5
G31 Z-6.2774385622042e+066
G0 Z5
G0X2Y0Z5
G31 Z-6.2774385622042e+066
G0 Z5 .....
.....

C'est le fichiers de points généré par ce Gcode qui est transformé en STL , pas le Gcode lui même. tu dois lancer le Gcode sous mach3 pour qu'il produise le fichier de points et c'est ce fichier de points que tu passe à la moulinette pour en tirer un STL :wink:

note aussi que tu n'a pas renseigné la valeur de Z min dans le "Wizard", ce qui te donne une descente à Z -6.27... E+66 :shock:

++
David
 
Dardar88
Dardar88
Compagnon
Bonjour

D'abord merci pour ce tuto tres bien expliqué !ainsi que la belle mecanique :roll:

Quelques questions qui me turlupinent.. As tu essayé d'accelerer le processus d'aquisition jusqu'aux limites de ton systeme ,
et combien de "coups" par seconde obtiens tu ?
As tu remarqué une certaine latence entre l'aquisition en Z , c'est a dire entre le moment ou la bille touche l'objet et
la remonté , ce qui fait plonger le Z au dela du point acquit proportionnellement a la vitess d'execution ? (de 0.1 a 1mm et plus)

Quelle est ta valeur d'anti-rebond ?

As tu essayé les plugins qu'avait fait Brian Barker car j'ai l'impression qu'il ne fonctionnent plus sous la version Mach3 ..??

Connais tu l'application (en free) qui s'appelle Razordance et l'aurais tu essayé ?

Humm , ça fait deja pas mal de questions d'un coup ... :oops:

t.
 
L
ludovic-80700
Apprenti
dh42 a dit:
Ah oui ! ça ne peut pas marcher ... ton fichier texte c'est du Gcode !!

C'est le fichiers de points généré par ce Gcode qui est transformé en STL , pas le Gcode lui même. tu dois lancer le Gcode sous mach3 pour qu'il produise le fichier de points et c'est ce fichier de points que tu passe à la moulinette pour en tirer un STL :wink:

note aussi que tu n'a pas renseigné la valeur de Z min dans le "Wizard", ce qui te donne une descente à Z -6.27... E+66 :shock:

++
David
Bonjour David ,merci pour ton aide c’était bien sa mon problème sa fonctionne :supz: .
nouveau problème,quand j'essayer d’ouvrir le fichier STL dans rhinoceros sa me dit
mon fichier.STL ne contient pas d'objets conformes a la norme STL.
dans cambam je vois bien le fichier scanner ,donc si je n'abuse pas de trop
aurait tu une idée de mon problème.
vraiment désoler de te déranger,mais sa m'intéresse se sujet.
je te remercie d'avance si tu peu m'aider,je débute dans la cnc,
a+ est merci :smt003
 
dh42
dh42
Compagnon
Dardar88 a dit:
Bonjour

D'abord merci pour ce tuto tres bien expliqué !ainsi que la belle mecanique :roll:

Quelques questions qui me turlupinent.. As tu essayé d'accelerer le processus d'aquisition jusqu'aux limites de ton systeme ,
et combien de "coups" par seconde obtiens tu ?
As tu remarqué une certaine latence entre l'aquisition en Z , c'est a dire entre le moment ou la bille touche l'objet et
la remonté , ce qui fait plonger le Z au dela du point acquit proportionnellement a la vitess d'execution ? (de 0.1 a 1mm et plus)

Alors la remontée et le changement de position se fonts en G0 dans mon cas maxi 2000 mm/min en Z et 8000 en XY, mais vue la courte distance en XY, et même en Z dans le cas de la pièce de monnaie elle n'a pas le temps de les atteindre. Pour la descente, il y a forcement un temps de freinage entre le moment ou le contact s’établit et le moment ou le Z s'arrête effectivement avant de remonter mais je n'ai pas pu l'évaluer, c'est trop court ; c'est directement lié à la vitesse de descente et au réglage d'accélération de la machine. Avec mes réglages, je ne peux pas utiliser une vitesse de palpage de plus de 500 mm/min, sinon c'est vraiment brutal.

Dans tous les cas ça n'a pas d'incidence sur la précision de mesure.

Il est impossible de parler de coups / seconde ; regarde la vidéo de la cuillère, au départ il y a une grande course en Z à faire pour descendre jusqu'à la pièce, mais vers la fin, le palpeur n'a qu'une faible course à faire et ça vas bien plus vite.

Le plus rapide c'est la digit de la pièce, car tout est à peut près à la même hauteur (0.25mm max entre le min et le max) et je n'ai qu'une course de 1.5 mm environ en Z.

Quelle est ta valeur d'anti-rebond ?

J'ignore totalement ce que peut être l'anti-rebond ... :shock:

As tu essayé les plugins qu'avait fait Brian Barker car j'ai l'impression qu'il ne fonctionnent plus sous la version Mach3 ..??
Connais tu l'application (en free) qui s'appelle Razordance et l'aurais tu essayé ?

Non aux deux questions.

++ :wink:
David
 
dh42
dh42
Compagnon
re

quand j'essayer d’ouvrir le fichier STL dans rhinoceros sa me dit
mon fichier.STL ne contient pas d'objets conformes a la norme STL.

Je sais que mes fichiers STL ne peuvent pas s'ouvrir sous SolidWorks par exemple, il s'agit effectivement d'une norme concernant l'orientation des facettes ; la plupart des softs 3D s'en passent habituellement. Il est possible que ce soit du à ça dans Rhino si ton fichier fonctionne normalement dans Cambam. Chez moi ça fonctionne aussi sous 3DSmax, tu peux éventuellement essayer de l'ouvrir sous max si tu à et de le re-sauver.

Pour l'instant je ne suis pas en mesure de respecter cette norme lors de la création du STL, (problème de math :roll: ) ... c'est d'ailleurs la même chose avec l'apli qui sert à convertir un fichier Cambam contenant un objet STL en fichier STL. Je les mettrais à jours quand j'aurais trouvé la solution ... mais ce n'est pas pour tout de suite :oops:

++
David
 
L
ludovic-80700
Apprenti
Bonsoir,merci a toi dh 42 pour toute t'est info s'est vraiment sympas de ta part,
alors je le redit grand merci a toi. :supz:
a+ est bonne chance pour la suite.
 
ewidance
ewidance
Ouvrier
Super ton projet, idée très intéressant et très belle mise en oeuvre!

Merci pour avoir pris le temps de partager.
 
dh42
dh42
Compagnon
ewidance a dit:
Super ton projet, idée très intéressant et très belle mise en oeuvre!

Merci pour avoir pris le temps de partager.

Salut,

Le plus grave dans l'histoire, c'est que je n'en ai pas besoin, c'était juste par curiosité :oops: ... :lol:

Aujourd'hui j'ai fini par mettre la main sur un moteur qui me convient, et je vais pouvoir me remettre à mon projet d'adaptation tournage pour la CN :-D ... et ça j'en ai besoin par contre !!

++
David
 
F
fabrice c
Compagnon
super reportage, très interessant et novateur

petite précision sur les fichiers STL
tu peux utiliser netfabb (gratuit) pour conformer tes fichiers stl, il s'importe ensuite bien dans solidworks
 
Y
yoregolf
Nouveau
Bonjour,
D'abord bravo pour ce tutoriel très bien fait et utile !!
J'ai fait un petit montage avec un palpeur d'outils et utilisé le wizard "creates digitizing Program" de Mach3.
La numérisation a très bien fonctionné, j'obtiens bien un fichier .txt des valeurs x,y, z qui me semble correct et qui correspond aux valeurs affichées pendant la numérisation par MACH 3, (j'en joins un petit extrait):
0.000000,0.000000,-0.200000
0.050000,0.000000,-0.200000
0.100000,0.000000,-0.200000
0.150000,0.000000,-0.134757
0.200000,0.000000,-0.128420
0.250000,0.000000,-0.130052
0.300000,0.000000,-0.085586
0.350000,0.000000,-0.074980
0.400000,0.000000,-0.072342
0.450000,0.000000,-0.074137
0.500000,0.000000,-0.079712
0.550000,0.000000,-0.080228
0.600000,0.000000,-0.080582
0.650000,0.000000,-0.081697 .....

mais la conversion avec votre application Mach3Digit2STL.exe n'est pas "utilisable" avec Cambam qui m'affiche un message d'erreurs : "line 1 incorrect parameter
idem pour line 2 " "
et line 2 Unexpected token ' + '

Avez vous une idée du problème ?
Merci d'avance et encore bravo.
Yves
 
dh42
dh42
Compagnon
Bonjour,

Pouvez vous mettre votre fichier .txt (le fichier de points) ainsi que le fichier .stl résultant en PJ que je regarde ?

++
David
 
Y
yoregolf
Nouveau
Merci de votre réponse,
je vous joins les deux fichiers: "piece digit"

J'espère que ça vous "éclairera"
Amicalement.

Yves

bon visiblement je n'arrive pas à joindre le .stl...j'ai un message qui m'indique que l'extension .stl n'est pas autorisée.

je vous mets donc un extrait du fichier en clair "lu" avec notepad:

solid Mach3Digit
facet normal 0.000000e+000 0.000000e+000 -1.000000e+010
outer loop
vertex 0,000000e+000 0,000000e+000 -2,363300e-002
vertex 1,000000e-001 0,000000e+000 -1,903700e-002
vertex 0,000000e+000 1,000000e-001 -2,404100e-002
endloop
endfacet
facet normal 0.000000e+000 0.000000e+000 -1.000000e+010
outer loop
vertex 1,000000e-001 0,000000e+000 -1,903700e-002
vertex 2,000000e-001 0,000000e+000 -2,292600e-002
vertex 1,000000e-001 1,000000e-001 -2,132200e-002
endloop
endfacet
facet normal 0.000000e+000 0.000000e+000 -1.000000e+010
outer loop
vertex 2,000000e-001 0,000000e+000 -2,292600e-002
vertex 3,000000e-001 0,000000e+000 -2,338900e-002
vertex 2,000000e-001 1,000000e-001 -2,385100e-002
endloop ...... Voir la pièce jointe piece digit.txt
 
dh42
dh42
Compagnon
salut,

Je te met le fichier STL qui marche en PJ (compressé en ZIP pour que ça passe)

Au vu de l'extrait de STL dans ton message, le problème semble venir de la gestion du format des nombre "régional" de Windows.

le format STL reconnais le point (.) comme séparateur décimal, et la il y a des virgules à la place dans les coordonnées des "vertex"

Il te faut changer la config des "options régionales" par le point à la place de la virgule dans le panneau de config de Windows.

Sans titre-1.jpg


Encore un truc à améliorer pour la prochaine version de mon soft, merci d'avoir mis le doigt sur ce problème.

++
David Voir la pièce jointe piece digit.zip
 
Y
yoregolf
Nouveau
Merci beaucoup de te donner tout ce mal;
j'ai fait la modif des paramètres régionaux, mon fichier a bien des points décimaux maintenant, mais j'ai les mêmes messages d'erreur dans Cambam.
comme il est fait état de signe + dans ce message, je me demande si ce n'est pas la notation e+ , e- qui n'est pas acceptée ??
En tout cas ça avance ...
 
dh42
dh42
Compagnon
Salut,

Il faudrait que tu puisse mettre le STL en pièce jointe, (en le compressant en .zip pour que le forum l'accepte) que je puisse voir.

Si tu n'y arrive pas, essais de comparer les textes de ton fichier STL et de celui que je t'ai mis en PJ dans le message précédant ... car la je ne vois pas ; la notation exponentielle (e+, e-) est bien acceptée (et même nécessaire au format STL) ... il doit rester un bug de syntaxe ..

Tu a vérifié que le STL que j'ai mis en PJ s'ouvre bien dans ton CamBam ? ... tu utilise quelle version de Cambam ?

++
David
 
freedom2000
freedom2000
Compagnon
dh42 a dit:
Bonjour à tous,

Depuis quelque temps, je me suis intéressé à une fonction bien utile de Mach3, c'est la possibilité de scanner en 3D avec la CN ; c'est l'assistant Digitise Wizard qui permet cela (+ quelques bidouilles perso ..)

Scanner avec Mach3



Notez que si vous ne démontez pas la pièce scannée de la machine, et que vous mettez le STL dans Cambam, toutes les coordonnées sont en correspondance entre la "vraie" pièce et la pièce 3D ouverte dans Cambam ; il ne vous reste qu'à remplacer le palpeur par un outil et refaire le 0 en Z pour être en mesure d'usiner à l'endroit voulu sur la pièce.

++
David

Bravo --> J'adore :prayer:

JP
 
dh42
dh42
Compagnon
Salut,

J'ai fait une mise à jour du soft (V1.1), désormais il n'est plus sensible au choix du symbole décimale et fonctionne aussi bien si Windows est configuré avec une virgule ou un point comme séparateur décimal.

Le soft est en PJ dans le premier message de ce sujet.

++
David
 
Y
yoregolf
Nouveau
Bonjour David,
J'ai comparé ton fichier stl et le mien: ils sont identiques.
Ma version de Cambam est la Beta08 release 2.
je pense que si ça marche chez toi, ça vient de ma version de Cambam ou d'une manip que je fais mal dans l'utilisation de Cambam dont je ne me sers que rarement ?
Je te joins mon fichier zippé.. des fois que quelque chose m'échappe.
Merci encore.
Yves Voir la pièce jointe piece digit.zip
 
freedom2000
freedom2000
Compagnon
yoregolf a dit:
Bonjour David,
J'ai comparé ton fichier stl et le mien: ils sont identiques.
Ma version de Cambam est la Beta08 release 2.
je pense que si ça marche chez toi, ça vient de ma version de Cambam ou d'une manip que je fais mal dans l'utilisation de Cambam dont je ne me sers que rarement ?
Je te joins mon fichier zippé.. des fois que quelque chose m'échappe.
Merci encore.
Yves

Pas sûr qe ça puisse aider mais le fichier s'ouvre nickel avec Mastercam

stl.jpg


même chose avec solidworks
C'est donc bien un stl "bien formé" :wink:

JP
 
dh42
dh42
Compagnon
yoregolf a dit:
Bonjour David,
J'ai comparé ton fichier stl et le mien: ils sont identiques.
Ma version de Cambam est la Beta08 release 2.
je pense que si ça marche chez toi, ça vient de ma version de Cambam ou d'une manip que je fais mal dans l'utilisation de Cambam dont je ne me sers que rarement ?
Je te joins mon fichier zippé.. des fois que quelque chose m'échappe.
Merci encore.
Yves

Salut,

OK, vu, ça viens de ton CamBam, c'est la version gratuite, de 2007 :wink: elle ne gère pas les STL je pense.

Ton fichier joint fonctionne parfaitement sur la dernière version actuelle. (0.9.8 Rev M)

Tu peux le télécharger ici la dernière version stable de CamBam (0.9.8 Rev L), en essais 40 lancements.
http://www.cambam.info/downloads/

L'histoire aura eu l'avantage de débusquer un petit bug dans mon soft .. :-D

++
David
 
Dernière édition par un modérateur:
Y
yoregolf
Nouveau
Merci beaucoup David,
je vais télécharger la version d'essai 09 de cambam et puis je vais essayer de récupérer un soildworks à mon ancien boulot au moins pour voir ce que ça donne.
En tout cas bravo pour ta compétence .
Yves
 
dh42
dh42
Compagnon
Re

Pour l'instant les STL crées par mon soft ne s'ouvrent pas dans SolidWorks et dans Rhino, mais il passent dans Cambam, 3Dstudio Max et apparemment MasterCam et peut être d'autres soft, je ne sais pas.

Tu pourra toujours essayer de le convertir avec l'utilitaire proposé ici par Fabrice

https://www.usinages.com/threads/numerisation-3d-avec-mach3.41366/#p453576

++
David
 
Dernière édition par un modérateur:
freedom2000
freedom2000
Compagnon
dh42 a dit:
Re

Pour l'instant les STL crées par mon soft ne s'ouvrent pas dans SolidWorks
++
David

Salut David,

L'exemple que tu as donné est passé sans problème sur Solidworks :-D

stl2.jpg


JP
 

Sujets similaires

N
Réponses
7
Affichages
309
Noha819
N
Sobschack
Réponses
3
Affichages
422
Sobschack
Sobschack
DakotaSport07
Réponses
49
Affichages
969
dh42
Pervenche
Réponses
9
Affichages
2 275
Pervenche
Pervenche
zingilingiling
Réponses
5
Affichages
267
zingilingiling
zingilingiling
carlos78
Réponses
1
Affichages
1 083
carlos78
carlos78
U
Réponses
38
Affichages
1 639
Dodore
Dodore
M
Réponses
16
Affichages
483
Math32
M
ZipZip16
Réponses
3
Affichages
353
ZipZip16
ZipZip16
P
Réponses
3
Affichages
444
dh42
R
Réponses
9
Affichages
1 014
Hubert86
H
Haut