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

Le logiciel le plus complet pour piloter GRBL
Avatar du membre
scalaire00
Pied Tendre Actif
Messages : 15
Enregistré le : 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 non lu 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 du membre
DranerB
Administrateur
Messages : 1578
Enregistré le : 31 janv. 2019, 11:56
Localisation : Bourbon-Lancy, France
A remercié : 97 fois
A été remercié : 190 fois
Contact :

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

Message non lu 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