Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
Soft de commande CNC en asm
Merci pour l'info
@++
@++
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1420
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Hello tout le monde,
Maintenant que je peux de nouveau utiliser le forum je peux vous donner des nouvelles d'4L1C3. Même si je ne pouvais plus venir papoter je bossais en silence
Elle a fait ses premiers traits, les axes XY et Z fonctionnent bien, juste un petit bug concernant les POP mais qui va être vite réglé.
Pour l'instant elle ne connait que les déplacements horizontaux et verticaux, je vais m'attaquer maintenant aux diagonales de toutes valeurs d'angles.
Pour l'instant pour une diagonale du gcode elle dessine un angle pour aller du point départ au point arrivée. Voici ce qu'elle fait en fig.1, le trait bleu à obtenir et en gris ce qu'elle fait vraiment, en fig.2 ce qui devra se faire.
pour remédier à cela il va falloir faire fonctionner les axes X et Y en multiplexage (bouger ensembles) de façon à dessiner une pente en escalier le plus fin possible. Gros boulot qui va mettre en œuvre des divisions, donc premier truc à faire, coder une routine de division.
Maintenant que je peux de nouveau utiliser le forum je peux vous donner des nouvelles d'4L1C3. Même si je ne pouvais plus venir papoter je bossais en silence
Elle a fait ses premiers traits, les axes XY et Z fonctionnent bien, juste un petit bug concernant les POP mais qui va être vite réglé.
Pour l'instant elle ne connait que les déplacements horizontaux et verticaux, je vais m'attaquer maintenant aux diagonales de toutes valeurs d'angles.
Pour l'instant pour une diagonale du gcode elle dessine un angle pour aller du point départ au point arrivée. Voici ce qu'elle fait en fig.1, le trait bleu à obtenir et en gris ce qu'elle fait vraiment, en fig.2 ce qui devra se faire.
pour remédier à cela il va falloir faire fonctionner les axes X et Y en multiplexage (bouger ensembles) de façon à dessiner une pente en escalier le plus fin possible. Gros boulot qui va mettre en œuvre des divisions, donc premier truc à faire, coder une routine de division.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Soft de commande CNC en asm
Bonsoir F6FCO, et tout le forum,
Normalement pas besoin si tes pas son identique sur X, Y avec même moteur et même électronique, si c'est pas le cas tu risques
d'en voir de toutes les couleurs(jaune)....
A+
F6FCO a écrit :Source du message des divisions, donc premier truc à faire
Normalement pas besoin si tes pas son identique sur X, Y avec même moteur et même électronique, si c'est pas le cas tu risques
d'en voir de toutes les couleurs(jaune)....
A+
Soft de commande CNC en asm
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
si mes souvenirs concernant l'algorythm de Bresenham pour le tracé de droite
sont encore valables
l'algo defini un pas et un deplacement unilateral à chaque fois
donc pas les 2 sens en meme temps.
Si on voit des escaliers , c'est que la resolution est insuffisante.
Je pense qu'il faudra alors utiliser des flottants pour les calculs DX ou DY
ou alors trouver une astuce via un multiplicateur,
sans toute fois depasser la capacité d'un entier long signé => +-31 bits pour eviter l'usage de flottants
F6FC0 a écrit :.. il va falloir faire fonctionner les axes X et Y en multiplexage (bouger ensembles) de façon à dessiner une pente en escalier le plus fin possible.
si mes souvenirs concernant l'algorythm de Bresenham pour le tracé de droite
sont encore valables
l'algo defini un pas et un deplacement unilateral à chaque fois
donc pas les 2 sens en meme temps.
Si on voit des escaliers , c'est que la resolution est insuffisante.
Je pense qu'il faudra alors utiliser des flottants pour les calculs DX ou DY
ou alors trouver une astuce via un multiplicateur,
sans toute fois depasser la capacité d'un entier long signé => +-31 bits pour eviter l'usage de flottants
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1420
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Bonjour,
@Temps-X, si tu fais un pas égal sur chaque axe tu ne traceras que des diagonales à 45; le seul moyen pour faire des pentes diverses est de diviser un terme par l'autre et de progresser par pas d'une division (quotient) sur un axe et d'une unité (diviseur) sur l'autre axe.
@Paulfjujo, j'ai pris le parti de travailler en entiers dés le départ du projet car débutant en assembleur PIC je ne savais pas trop ou çà allait m'emmener et j'avais choisi de faire simple, donc il va falloir que je trace ces droites avec des entiers et il y aura forcément un effet d'escalier. Travailler en réels m'obligerait à refondre complètement le programme entier en partant du gcode.
La seule concession que je pourrai (peut-être) faire c'est de diviser ma résolution par 10 (800pas pour 1mm, donc 80 pour 0,1mm).
Quand je parle de bouger les axes ensembles c'est une façon de parler, c'est par rapport au gcode qui définit une pente de cette manière, par exemple:
X0000 Y0000 Z0000
X0030 Y0030 Z0000
qui est une pente à 45°. Après ces deux lignes la pente doit être tracée, c'est à la machine de calculer et faire l'interpolation pour mouvoir ses axes et dessiner (ou tracer, usiner) la pente, çà implique de bouger les deux axes simultanément. Enfin l'un après l'autre évidemment mais simultanément vu du coté gcode. Si on ne le faisait pas la machine (ce que fait la mienne pour l'instant) dessinerait deux lignes en angle:
positionnement de l'outil à X0, Y0
déplacement à X0030, un trait horizontal
déplacement à Y0030, un trait vertical
Nota: si on voulait vraiment dessiner cet angle le code serait alors celui-ci:
X0000 Y0000 Z0000
X0030 Y0000 Z0000
X0030 Y0030 Z0000
@Temps-X, si tu fais un pas égal sur chaque axe tu ne traceras que des diagonales à 45; le seul moyen pour faire des pentes diverses est de diviser un terme par l'autre et de progresser par pas d'une division (quotient) sur un axe et d'une unité (diviseur) sur l'autre axe.
@Paulfjujo, j'ai pris le parti de travailler en entiers dés le départ du projet car débutant en assembleur PIC je ne savais pas trop ou çà allait m'emmener et j'avais choisi de faire simple, donc il va falloir que je trace ces droites avec des entiers et il y aura forcément un effet d'escalier. Travailler en réels m'obligerait à refondre complètement le programme entier en partant du gcode.
La seule concession que je pourrai (peut-être) faire c'est de diviser ma résolution par 10 (800pas pour 1mm, donc 80 pour 0,1mm).
Quand je parle de bouger les axes ensembles c'est une façon de parler, c'est par rapport au gcode qui définit une pente de cette manière, par exemple:
X0000 Y0000 Z0000
X0030 Y0030 Z0000
qui est une pente à 45°. Après ces deux lignes la pente doit être tracée, c'est à la machine de calculer et faire l'interpolation pour mouvoir ses axes et dessiner (ou tracer, usiner) la pente, çà implique de bouger les deux axes simultanément. Enfin l'un après l'autre évidemment mais simultanément vu du coté gcode. Si on ne le faisait pas la machine (ce que fait la mienne pour l'instant) dessinerait deux lignes en angle:
positionnement de l'outil à X0, Y0
déplacement à X0030, un trait horizontal
déplacement à Y0030, un trait vertical
Nota: si on voulait vraiment dessiner cet angle le code serait alors celui-ci:
X0000 Y0000 Z0000
X0030 Y0000 Z0000
X0030 Y0030 Z0000
Soft de commande CNC en asm
Ah le sujet reprend du service du coup
@++
@++
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1420
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Il n'a jamais cessé mais comme je ne pouvais plus causer normalement sur le forum
Mais je bosse dur à la maison pour le faire avancer.
Pour étayer la conversation du dessus voilà une copie d'écran d'un gcode de pente à 45°:
image pas très lisible mais les coordonnées sont :
X0000 Y0000 Z0000
X0020 Y0020 Z0000
M0000 00000 00000 ; ligne de fin du gcode
Donc une pente montante, si on devait la faire en descendant il faudrait inverser les deux premières lignes.
Mais je bosse dur à la maison pour le faire avancer.
Pour étayer la conversation du dessus voilà une copie d'écran d'un gcode de pente à 45°:
image pas très lisible mais les coordonnées sont :
X0000 Y0000 Z0000
X0020 Y0020 Z0000
M0000 00000 00000 ; ligne de fin du gcode
Donc une pente montante, si on devait la faire en descendant il faudrait inverser les deux premières lignes.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Soft de commande CNC en asm
Bonsoir F6FCO, et tout le forum,
Exacte, je suis d'accord avec toi, mais ou je veux en venir, si tu traces par exemple une pente à 30° tes carrés seront symétrie,
ce qui est un avantage fort appréciable, ça te donne une linéarité.
Voici avec un programme écrit en RapidQ sur ce que ça donne
Le gros problème c'est quand travail en numérique avec des moteurs pas à pas, avec des moteurs linéaire on n'aurait pas se problème.
A+
F6FCO a écrit :Source du message Temps-X, si tu fais un pas égal sur chaque axe tu ne traceras que des diagonales à 45°
Exacte, je suis d'accord avec toi, mais ou je veux en venir, si tu traces par exemple une pente à 30° tes carrés seront symétrie,
ce qui est un avantage fort appréciable, ça te donne une linéarité.
Voici avec un programme écrit en RapidQ sur ce que ça donne
Le gros problème c'est quand travail en numérique avec des moteurs pas à pas, avec des moteurs linéaire on n'aurait pas se problème.
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le ven. 7 déc. 2018 21:48, modifié 1 fois.
Soft de commande CNC en asm
- F6FCO
Expert- Messages : 1420
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Bonsoir Temps-X,
Je ne comprends pas vraiment ce que tu veux dire, ta pente semble à 45° et est épaisse de plusieurs pixels, ce qui la rend plus "normale". Pour voir refais l'essai avec une pente par exemple à 10° et d'une épaisseur d'un pixel, (ce qui est le cas en gcode).
Je ne comprends pas vraiment ce que tu veux dire, ta pente semble à 45° et est épaisse de plusieurs pixels, ce qui la rend plus "normale". Pour voir refais l'essai avec une pente par exemple à 10° et d'une épaisseur d'un pixel, (ce qui est le cas en gcode).
Soft de commande CNC en asm
F6FCO a écrit :Source du message ta pente semble à 45°
exacte je me suis planté, excuse moi pour l'erreur, je rectifie
Avec une non linéarité de pas tu auras à chaque avance de pas un rectangle pas un carré, même avec une pente à 45°
L'inconvénient c'est que tu risques d'avoir des dimensions différence sur des longues distance, pour chaque pente.
Mon programme de CNC est basé sur les pixels, ce qui me posait moins de problème que du Gcode
ça va pas être facile pour toi.
A+
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 128 invités