Pilotage d'un couteau rotatif

  • Auteur de la discussion Moi33
  • Date de début
O

oliv

Compagnon
J'ai vu sur je ne sais plus quel site des plateaux d'aspiration en inox fritté ..... super car plan et pratiquement sans aspérités :-D , mais par contre, niveau prix .... ouille ouille ouille ..... :shock: :???:
 
S

stanloc

Compagnon
Sur certains enregistreurs XY autrefois le papier était tenu par de l'électricité statique.
Stan
 
M

Moi33

Apprenti
Bonsoir,
je viens de recevoir un devis pour une plaque de 3.2 mm d’épaisseur.
La plaque fait 1 m x 1 m et est en PEHD blanc.
Le souci est qu'il ne détaille pas les plaques !!!
Je joins la fiche technique du produit.
A suivre !!!!

Devis plaque frittée.JPG
Voir la pièce jointe VYON F 3.20 FICHE TECHNIQUE.pdf
 
O

oliv

Compagnon
Bon, j'ai avancé un peu sur l'étude du couteau (pas piloté ...)

Apres plusieurs dessins, je suis arrivé à ça ....

Utilise des lames de cutter 18mm.

tete de decoupe rectangulaire-rev1.JPG


tete type donek excentree.JPG
 
S

speedfender

Compagnon
Bonjour,
je déterre un peu ce sujet..

après avoir lu vos posts, je me suis aperçu que l'idée d'un couteau rotatif motorisé avait été mise de coté.. quel dommage.
Dh42 nous a fourni un lien vers un plugin cambam qui permet, si j'ai bien compris, de retracer la trajectoire avec un offset défini.

Sous Linuxcnc, je me suis amusé à intercepter les ordres de déplacement x et y,
d’en calculer leurs vitesses Vx et Vy et d’en extraire l’arctangente de leur ratio,
le tout en temps réel.
Le résultat correspond parfaitement à la tangente en chaque point du contour donc
à l’orientation du couteau. Le problème est qu’à chaque arrêt et lever du couteau,
les vitesses sont nulles et mon angle repart instantanément à zéro.
Je ne peux donc pas directement utiliser cette information pour piloter le moteur de lame et pourtant ça serait direct ...

gaston48, as-tu résolu ce problème et pus piloter ce 4ème axe a, pour l'angle du couteau??
Comment as-tu extrait la tangeante des déplacements?
 
G

gaston48

Compagnon
Bonjour, voilà les étapes, je n'ai pas approfondi le problème du retour à zéro.

il s'agit donc d'utiliser la fonction math Atan2 en C:
http://www.gladir.com/CODER/C/atan2.htm
Ensuite de compiler un nouveau composant temps réel HAL
qui sera reprit dans le fichier hal de ta config linuxcnc.
le fichier sera nommé atanxy2.comp et il comprends
les lignes suivante:

component atanxy2;

pin out float out;
pin in float in0;
pin in float in1;

function _;
license "GPL";
;;
#include <rtapi_math.h>
#define PI 3.141592653589

FUNCTION(_)
{
out = (atan2 (in0,in1) * (180 / PI));
}


A éditer dans un éditeur linux pour les fins de lignes norme linux.
tu suis les instructions dans la doc linuxcnc pour compiler et installer
ce nouveau composant.
Ici tu as, pour info, toutes les sources des composant existant:
http://git.linuxcnc.org/gitweb?p=li...3;hb=e8151f0adbb70177e61bcf0b281f69b30cf23e8f

Dans le fichier de config .hal tu charges ce composant temps réel:
loadrt atanxy2 count=1
addf atanxy2.0 servo-thread


et tu crées les connexions "net" des signaux de vitesse de l'axe x et Y
plus une troisième connexion avec nom de signal pour visualiser l'angle de rotation
avec halmeter.
net vitesse_x atanxy2.0.in0 <= signal de vitesse x
net vitesse_y atanxy2.0.in1 <= signal de vitesse y
net rotation <= atanxy2.0.out
 
S

speedfender

Compagnon
merci pour les infos. pour l'instant je comprends pas grand chose à tout ça mais je vais prendre le temps temps de décortiquer.. :)
 
S

speedfender

Compagnon
Salut, c'est installé :wink: reste plus qu'à trouver comment faire pivoter ça...
 
D

dh42

Compagnon
Avec le plugin, c'est le principe de la roue de caddy, pas besoin de 4ieme axe.

CB ne pouvant pas sortir de Gcode 4 axes, ce n'est pas gérable avec ; que le 4ieme axe serve à faire tourner une lame ou qu'il soit utilisé de manière traditionnelle ça n'y change rien.

++
David
 
M

Moi33

Apprenti
Bonsoir à tous,
effectivement Cambam ne gère que 3 axes mais n'est il pas possible d’imaginer un genre de petit programme du style de CNC Wrapper, pour par calcul fonction des positions X et Y (comme indiqué par Gaston48 :
"Sous Linuxcnc, je me suis amusé à intercepter les ordres de déplacement x et y,
d’en calculer leurs vitesses Vx et Vy et d’en extraire l’arctangente de leur ratio,
le tout en temps réel.
Le résultat correspond parfaitement à la tangente en chaque point du contour donc
à l’orientation du couteau. Le problème est qu’à chaque arrêt et lever du couteau,
les vitesses sont nulles et mon angle repart instantanément à zéro.
Je ne peux donc pas directement utiliser cette information pour piloter le moteur de lame et pourtant ça serait direct ...
L'idée peut être intéressante, le souci c'est l'écriture d'un tel système ....
 
D

dh42

Compagnon
effectivement Cambam ne gère que 3 axes mais n'est il pas possible d’imaginer un genre de petit programme du style de CNC Wrapper, pour par calcul fonction des positions X et Y (comme indiqué par Gaston48 :

Salut,

Oui, je suppose ... mais ça dépasse mes compétences en math et en géométrie ! (et en plus il faut décoder le Gcode pour "récupérer" les parcours d'outils au lieu de bosser directement sur des polylignes)

++
David
 
M

Moi33

Apprenti
Bonsoir,
concernant le Gcode, il est facile de relativement facile de récupérer les parcours d'outils en ouvrant le fichier avec Excel avec des macros. Pour ce qui est de l'arc tangente, encore une fois avec excel on peut aussi le calculer et le concaténer afin de recréer un Gcode modifié.
Mais comme tu le dit, il faut se creuser la tête au niveau des mathématiques et de la géométrie, et trouver un moyen de faire vivre tout ça !!!
A voir.
Bonne soirée
 
V

vres

Compagnon
Bonjour,
La rotation de la lame doit-être interpolée sur les micro-vecteurs (courbe),
La rotation ce fait sur les angles sans relever sur les grands angles
et la rotation ce fait sur les angles en relevant sur les petits angles.
Pour ne pas abimer les pointes il est préférable de faire des sur-courses.

Sur les micro-vecteurs il est préférable de faire la tangente sur plusieurs vecteur pour éviter l'effet "queue de poisson" oscillation.

J'ai des source mais elles sont difficilement exploitables.
 
S

speedfender

Compagnon
Je suis le développement de ce fils avec attention, ne pouvant y contribuer techniquement..
 
M

Moi33

Apprenti
Bonsoir,
J'ai essayé de définir mathématiquement la position d'un couteau qui découpe un cercle de 100 mm de diamètre dont l'axe est positionné à X=50 et Y=50.
J'ai donc dessiner ensuite 12 cercles pour pouvoir facilement avoir la position de leur axes dans le repère orthonormé X,Y. J'ai ensuite, dans Excel, calculé les valeurs des angles pour les axes par rapport à l'origine en appliquant
la formule de l'ATAN2.
upload_2016-3-13_20-54-30.png

upload_2016-3-13_20-57-54.png

Avec Solidworks, j'ai dessiné le déplacement d'un couteau qui tangente la périphérie du tracé afin de pouvoir avoir les valeurs des angles. Le couteau doit, sauf erreur de ma part, tangenter le profil donc faire un angle de 90° avec la droite qui passe par l'axe du cercle et le point de découpe. (découpe tangentielle au profil)
upload_2016-3-13_21-2-59.png

Si maintenant je mesure les valeurs des angles par rapport à l'origine,
upload_2016-3-13_21-4-5.png

Le souci maintenant est de trouvé une relation mathématique entre la position X et Y et la valeur angulaire de couteau !!
Il faut s'assurer que cela s'applique à toutes les situations.
Si vous avez des idées, je suis preneur !!
Cdt.
 
S

speedfender

Compagnon
Salut,
j'ai fait des recherches en rapport avec ce que tu proposes.
A mon avis le plus simple est de garder l'origine au centre du cercle. On est donc dans le cas d'une fonction circulaire (trigonométrie).
Pour un point A présent sur le cercle, la distance entre ce point A et le centre du cercle O est égal à 1.
Les coordonnées de ce point A sont x=cos (A) et y=sin (A)
L'angle entre ce segment OA et la valeur angulaire du couteau sera toujours égale à 90°.
D'autres relations qui peuvent aider en cas de décalage des coordonnées :
x²+y²=1
cos²(A) + sin² (A) = 1

J'espère que cette maigre contribution peut aider..
 
M

Moi33

Apprenti
Bonsoir,
c'est vrai que pour le cercle, si on se place au centre cela parait plus simple, mais dans le cas d'un profil "complexe", je ne sait pas comment cela va se passer.
L’intérêt de tout ça c'est de trouver une méthode générale applicable partout qui permet de trouver la valeur de l'angle de la tangente en tout point par rapport à une position X et Y d'origine (dans le dessin 0,0).
Donc pour le cercle, via le centre le calcul par les axes fonctionne, mais encore une fois pour les profils complexes quel est le point à prendre en compte (car là, plus de centre !!).
Ensuite une fois la relation trouvée, car il doit en avoir une car certain postpro le calcule, il faut trouver une personne capable de créer via du code un applicatif ou plus simplement, dans excel modifier le Gcode !!
C'est pas gagner cette affaire !!!
Mais on cherche !!!
Cordialement
 
D

dh42

Compagnon
Salut,
Ouch ... ça ce voit que c'est le Pi Day aujourd'hui :lol: .. vous allez vous péter un neurone :jesors23:

++
David
 
S

speedfender

Compagnon
lol oui j'ai mal au crâne..

Avec le recul je me dis que ce serait plus simple de se baser sur le fichier de dessin. Les tracés étant fait en courbes vectorielles, courbes de bésier, contiennent (si je ne dis pas de bétises) l'équation de la courbe. A partir de là il serait "possible", j'imagine, d'en déduire la direction de la lame. Il suffirait donc d'exporter le tracé dans un format de fichier vectoriel, en plus du gcode. Il existe les fichiers AI (adobe Illustrator); SVG (open source affichable par Firefox) utilisé par inkscape (logiciel open source de dessin vectoriel) ; dwg-dxf ; et pdf.
Le format svg semble étre le plus interessant. Il "suffirait" de créer un pluging dans cambam par exemple, ou inkscape , voir même un petit logiciel qui convertisse cet export vectoriel en gcode pour l'inclure dans le gcode d'usinage sur un axe spécifique.
Bien entendu je ne sais pas programmer et tt ceci n'est que suppositions

a+
 
S

stanloc

Compagnon
Bon, je commence par dire que j'y connais rien dans la façon dont sont faits vos fichiers GCODE ni les fichiers qui ont été faits par vos programmes de dessin.
Par contre ce dont je suis sûr c'est qu'à un moment donné, à la fin, votre PC envoie les coordonnées X et Y des points successifs par lesquels passeront votre tracés.
Je me place à cet instant là. Alors comment récupérerez-vous ces coordonnées c'est à vous de trouver. Moi j'écris mes programmes donc je les connais ces coordonnées
Donc votre couteau va passer du point "1" au point "2" de mon dessin ci-dessous. L'angle A que vous cherchez et que vous voulez transmettre au moteur pour orienter la lame se déduit immédiatement selon la formule qui est inscrite sur le dessin.
Mais attention il faut mettre des garde-fous car dans des cas particuliers selon le signe algébrique du résultat de la division ou si le dénominateur devient nul etc... il va y avoir une erreur. par ailleurs il faut savoir si le calculateur de votre PC sait calculer un arctangeante dans les quatre cadrans. Bref il faut quelques compétences en informatique (en maths c'est d'un niveau élémentaire même encore aujourd'hui, je pense)
Par contre moyennant ces précautions et le préliminaire que j'ai fait vous aurez l'angle d'orientation de votre couteau quelle que soit le tracé.
Il existe une autre solution mais le problème sera ailleurs. Le matériel que j'utilise qui est du matériel professionnel vendu aux USA (ils ont un revendeur en France et comme moi vous pouvez l'acheter d'occasion sur internet) par GALIL. C'est une carte (ou un coffret) qui peut gérer selon le modèle de 1 à 8 axes. Moi les miens gèrent 4 axes et une simple instruction dans le programme et le 4 ème axe orientera le couteau. le hic c'est qu'il faut écrire les programmes soi-même (cela ressemble bigrement à du Gcode mais ce n'en n'est pas). Les cartes s'installent dans le PC ou s'il s'agit de coffrets ils sont en liaison RS232 ou ETHERNET avec le PC et ceux sont eux qui commandent directement les moteurs (pas à pas en STEP/DIR ou des servomoteurs)
Stan
couteau.png
 
G

gaston48

Compagnon
Sauf qu'il faut attendre que tu sois arrivé au point 2 pour sortir l'angle de 1 à 2 ... trop tard.
Donc tu vas raisonner avec les vitesses respectives de l'axe X et Y pour passer de 1 à 2.
Là l'angle est donné (et donc l'orientation du couteau), des que tu quittes le point 1
Ta fonction à 4 cadrans est toute faite en C: atan2
 
Dernière édition:
V

vres

Compagnon
La programmation ce n'est pas (que) des mathématiques, il faut traiter tout les cas particulier par exemple:
Sur le croquis de Stanloc on peut éventuellement parcourir de 1 a 3 avec une rotation de lame interpolée mais pour passer le point 3 il faut tourner avant de repartir sur le point 4 sinon ça va arracher grave.
De même il faut travailler en relatif car si l'angle 2-3 fait 45° et l'angle 3-4 320° il ne faut pas tourner de +275° mais de -85.
Si l'angle 2-3-4 était encore plus aigu, il faudrait même relever pour tourner et faire une sur-course pour être sur que l'angle soit bien coupé car on est pas sur que la coupe soint bien au centre, sur de l'adhésif ça peut rendre l'échenillage fastidieux surtout sur des petits caractères avec des points non coupés.
C'est ce que je disais plus haut.
 
S

stanloc

Compagnon
Gaston tu dis n'importe quoi. Chez moi les calculs je les fais AVANT que le mouvement élémentaire ne se fasse.
Messieurs les dénigreurs sortez vos solutions AUSSI. On vous attend.
Je ne sais pas comment travaillent vos logiciels mais de mon temps mes programmes en BASIC s'exécutaient pour remplir des tableaux et lorsque ceux-ci sont pleins il suffit d'un rien pour les lire et d'envoyer les coordonnées aux moteurs.
Ce que je pouvais faire avec un ordinateur dont la fréquence d'horloge tournat à 8 MHz je pense que vous pouvez le faire avec un PC dont la fréquence d'horloge est 500 fois plus rapide.
Gaston combien de multiplications ton processeur mathématique sur ton PC peut 'il faire entre deux pas de tes moteurs ?
Ce que j'ai montré est d'une simplicité enfantine alors que je m'étais attaché autrefois à calculer le parcours d'outil et là c'est une autre histoire. Seulement l'informatique autrefois ne consistait pas à jouer de la souris.
Stan
 
Dernière édition:
P

PsyKo

Ouvrier
Bonjour,

Petite pensée rapide :
- Le couteau doit être aligné sur la tangente à la position courante
- L'intégration de la position du couteau sera plus simple si elle est faite au préalable et non pas à la volée (simplement pour la validation visuelle)

Le mouvement géré en GCode étant soit un segment, soit un arc il y a plusieurs cas de figure :
- L'outil se trouve sur un segment : il faut calculer l'angle du couteau pour qu'il s'aligne sur le vecteur correspondant à la direction du mouvement.
- L'outil se trouve sur un arc : il faut calculer l'angle du couteau pour qu'il s'aligne sur la tangente au cercle (toutes les infos sont dans les commandes G02 et G03).
- L'outil se trouve sur un point : la tangente n'étant pas défini pour un point, il faut décider d'une méthode d'approximation en fonction des demi-tangentes droite et gauche. Exemple (pifométrique)
- Angle < 20° = interpolation des demi-tangeantes droite et gauche. Il peut être nécessaire de rajouter un arc à la jointure pour avoir une interpolation physique du couteau correcte
- Angle > 20° = repositionnement au point avec la tangeante au déplacement suivant

Travailler en absolue ou en relatif, peu importe. Ce n'est qu'une question de référentiel.
Il suffit de régler l'axe du couteau (Axe A par exemple) pour qu'il fasse un tour à la valeur 360 (par exemple) pour qu'il s'aligne sur l'angle calculé.

Je pense que c'est un raisonnement qui devrait faire l'affaire. Ou pas :)
 
G

gaston48

Compagnon
Par contre ce dont je suis sûr c'est qu'à un moment donné, à la fin, votre PC envoie les coordonnées X et Y des points successifs par lesquels passeront votre tracés.
Je me place à cet instant là
Avec ta méthode, imagine simplement pendant ton parcourt, de tracer une horizontale ou une verticale !
L'angle résultant doit rester fixe et tu vas calculer l'arc tangente d'un ratio qui augmente !
Cela ne fonctionne pas avec le flux des coordonnées ou positions, mais avec leurs dérivés
donc avec l'arc tangente du ratio des vitesses instantanées des mouvements élémentaires

CNCSERV à raison, il faut une FAO spécialiser qui gère les 2 axes supplémentaires particuliers: lever de couteau et rotation.
et un interpolateur bien spécialisé aussi pour gérer les accélérations respectives des axes.

Un post traitement de gcode n'est envisageable que s'il n'y a pas d'arc de cercle car on ne peut prévoir
la position instantanée pendant le tracé du cercle, c'est le travail de l'interpolateur. Idem pour
un éventuel G61 G64
 
Dernière édition:
S

stanloc

Compagnon
La différence que j'aperçois dans les avis exprimés c'est que plusieurs sont le reflets de réflexions dans le vide tandis que mon avis est donné à partir de ce que j'ai fait pour calculer le tracé de l'outil et le problème est le même en beaucoup plus compliqué pour le tracé d'outil.
Je conseille à ceux qui veulent donner leur avis d'écrire leurs bouts de programmes, de les faire tourner sur leur cnc et ENSUITE de donner leurs résultats.
C'est bien le problème sur les forums : beaucoup donnent un avis qui ne repose pas sur une expérimentation réelle mais d'après des supputations virtuelles.
Du concret, messieurs, du concret.
Stan
Je signale, à tout hasard pour ceux qui l'ignoreraient, qu'une cnc en coordonnées cartésiennes NE SAIT PAS tracer un arc de cercle.
Dessiner dans "Paint" un segment de droite incliné et faites une loupe sur celui-ci. Vous avez une représentation assez juste de ce que fait une cnc. D'où l'intérêt d'avoir une bonne résolution sur les axes.
 
V

vres

Compagnon
Pour moi la la position de la lame et calculée post-interpolation par le pilotage et non par la CFAO :
La première machine que j'ai piloté en 1990 était un plotter Gerber GSP Sprint qui ne pouvez découper que des lettres (cartouche). A l'époque Je ne savais même pas comment fonctionner un moteur Pas à Pas.
Ce plotter Gerber avait ce système de lame orientée, donc Mr Stanloc je ne dénigre rien mais je sais un peu de quoi je parle. Depuis j'ai du faire seulement 2 ou 3 tables avec ce principe, dont une fait le fraisage la découpe et le rainage avec une reconnaissance de marques par capteur laser. depuis je fait avec camèra qui fonctionne mieux avec les imprimantes à solvant (impression brillante).

C'est bien le problème sur les forums : beaucoup donnent un avis qui ne repose pas sur une expérimentation réelle mais d'après des supputations virtuelles.
Voici mon code , désolé il n'y a pas de commentaire, C'est des supputations virtuelles ça :mrgreen:



Et voici une photo de la machine fraisage-découpe-rainurage et on voit des cartes découpées C'est du concret ?:
HPIM0288.JPG
 
Dernière édition:

Sujets similaires

C
Réponses
26
Affichages
4 837
sabeldom
S
gégé62
Réponses
12
Affichages
5 706
jpbbricole
jpbbricole
D
Réponses
15
Affichages
10 902
carlos78
carlos78
Haut