Script python pour trouver le centre d'une pièce

Le logiciel le plus complet pour piloter GRBL
Avatar de l’utilisateur
scalaire00
Pied Tendre Actif
Messages : 15
Inscription : 08 nov. 2019, 20:12
Localisation : Nord du 77
A été remercié : 1 fois
Contact :

Re: Script python pour trouver le centre d'une pièce

Message par scalaire00 » 21 nov. 2019, 14:51

Palpage axe X

Code : Tout sélectionner

%_DiaOutil = app.entry("Entrez diametre de l'outils:");
%_long = app.entry("Entrez la longueur de la piece:");
%_posXmoins = float();
%_posXplus = float();
%_posXmi = float();
%_posYmoins = float();
%_posYplus = float();
%_posYmi = float();
%msg Debut de Sondage
(=======  Z  =========)
G92 x0 y0 z0 	(# Reset des offsets )
G38.2 Z-45 F100	(# Sonde en Z de 45 mm maximum a 100 mm/min)
G91 G0 Z 0.5	(# remonte de 0.5 mm rapidement)
G38.2 Z-5 F10 	(# Sondage de precision en Z de 5 mm maximum a 10 mm/min)
G10 L20 P1 Z0 	(# stocke ce qui a ete trouve comme position Z0)
G91 G0 Z3 		(# remonte le Z de 3mm rapidement en position de securite)
(# =======  palpage X nega =========)
(# G91 G0 X-[float(_long) / 2 + (float(_DiaOutil) * 2) ] Recule en X rapidement de )
(#la moitie de la longueur + 2 x diametre outil )
G91 G0 X-[float(_long)/2 + 5] 	(# Recule en X rapidement de la moitie de la longueur + 5 mm )
G91 G0 Z-4 						(# descend de 4 mm rapidement, en preparation du sondage en X)
G38.2 X20 F50 					(# Sonde en x de 20 mm maximum a 50 mm/min)
G91 G0 X-0.5 					(# decale en X de -0.5 mm rapidement)
G38.2 x5 F10 					(# Sondage de precision en x de -5 mm maximum a 10 mm/min)
G10 L20 P1 x0 					(# stocke ce qui a ete trouve comme position x0)
G92 x0 							(# reset offset Axe X)
%wait							(# Attente GRBL)
%_posXmoins = float(wx)			(# stock la valeur trouvee dans la variable _posXmi )
G91 G0 Z5 						(# remonte de 5 mm rapidement)
(# =======  palpage X posi =========)
G91 G0 X[str(float(_long) + 11) ]  	(# deplacement rapide vers l'autre face de la piece)
G91 G0 Z-4 							(# descend de 5mm rapidement, en preparation du sondage en X)
G38.2 X-20 F50 						(# Sonde en x de 20 mm maximum a 50 mm/min)
G91 G0 X0.5 					(# decale en X de 0.5 mm rapidement)
G38.2 x-5 F10 					(# Sondage de precision en x de -5 mm maximum a 10 mm/min)
%wait							(# Attente GRBL)
%_posXplus = float(wx)			(# stock la valeur de _poXmi dans offset X )
G91 G0 Z5 						(# remonte de 5mm rapidement)
(# G92 X[str(_posXmi)]) 		(# stock la valeur de _poXmi dans offset X )
G4 P2							(# Pause de 2s)
%_posXmi = float((_posXplus - _posXmoins)/2)
%wait
( G90 G0 X[_posXmi])
%wait
%msg Sondage Termine

Palpage axe Y

Code : Tout sélectionner

%_DiaOutil = app.entry("Entrez diametre de l'outils:");
%_larg = app.entry("Entrez la largeur de la piece:");
%_posYmoins = float();
%_posYplus = float();
%_posYmi = float();
%msg Debut de Sondage
(=======  Z  =========)
G92 x0 y0 z0 		(# Reset des offsets )
G38.2 Z-45 F100; 	(# Sonde en Z de 45 mm maximum a 100 mm/min)
G91 G0 Z 0.5		(# remonte de 0.5 mm rapidement)
G38.2 Z-5 F10 		(# Sondage de precision en Z de 5 mm maximum a 10 mm/min)
G10 L20 P1 Z0 		(# stock la valeur trouvee dans G54 Z0)
G91 G0 Z3 			(# remonte de 3 mm rapidement)
(# =======  palpage X nega =========)
G91 G0 Y-[float(_larg)/2 + 5] 	(# Recule en Y rapidement de la moitie de la longueur + 5 mm )
G91 G0 Z-4 						(# descend de 5 mm rapidement, en preparation du sondage en Y)
G38.2 Y20 F50 					(# Sonde en Y de 20 mm maximum a 50 mm/min)
G91 G0 Y-0.5 					(# decale en Y de -0.5 mm rapidement)
G38.2 Y5 F10 					(# Sondage de precision en Y de 5 mm maximum a 10 mm/min)
G92 Y0 							(# reset offset Axe Y)
%wait
%_posYmoins = float(wy)			(# stock la valeur trouvee dans la variable _posYmi )
(# G38.4 Y-1 F20 )				(# Remonte de 1mm a vitesse lente, declenche lorsque le )
(# contact est perdu. Devrait aider a ameliorer la precision)
G91 G0 Z3 						(# remonte de 3mm rapidement)
(# =======  palpage Y posi =========)
G91 G0 Y[str(float(_larg) + 5) ]  	(# deplacement rapide vers l'autre face de la piece)
G91 G0 Z-4 							(# descend de 5mm rapidement, en preparation du sondage en Y)
G38.2 Y-20 F50 						(# Sonde en Y de 20 mm maximum a 50 mm/min)
G91 G0 Y0.5 					(# decale en Y de 0.5 mm rapidement)
G38.2 Y-5 F10 					(# Sondage de precision en Y de -5 mm maximum a 10 mm/min)
%wait
%_posYplus = floatY(wy)				(# stock la valeur de _poXmi dans offset Y )
G91 G0 Z5 							(# remonte de 5mm rapidement)
G4 P2	(# Pause de 2s)
%_posYmi = float((_posYplus - _posYmoins)/2)
%wait
( G90 G0 X[_posYmi])
(# =======  palpage Y posi =========)
(# =======  palpage Y nega =========)
%wait
%msg Sondage Termine
Pour le déplacement au centre un truc comme ça devrait marcher ( pas encore tester )

Code : Tout sélectionner

(# Déplacement au centre de XY)
G0 z10
%_posiX = float(wx);
%_posiY = float(wy);
%_demiX = _posiX / 2;
%_demiY = _posiY / 2;
G90 x[_demiX] y[_demiY]
G92 X0 Y0
Tu sais pas si on peut utiliser des sous-programmes dans les scipts? parce qu'il faut aussi un script pour trouver le centre d'un alésage, ca fait encore deux boutons de plus.
Avatar de l’utilisateur
DranerB
Administrateur
Artisan Confirmé
Messages : 1135
Inscription : 31 janv. 2019, 11:56
Localisation : Bourbon-Lancy, France
A remercié : 64 fois
A été remercié : 169 fois
Contact :

Re: Script python pour trouver le centre d'une pièce

Message par DranerB » 21 nov. 2019, 19:47

Je regardes tout ça dès que j'ai un peu de temps. Merci! Pour les sous programmes, je ne pense pas.
Bien Cordialement,
Bernard
Image
Répondre