1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

approximation par arc de cercle

Discussion dans 'FAO général' créé par DEN, 6 Janvier 2015.

  1. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    approximation par arc de cercle
    Bonjour à tous,

    je me pose une question de géométrie :

    Si on veut approcher une courbe par des arcs de cercle de manière optimale comment fait-on ?
    De manière optimale j'entends : en minimisant le nombre d'arcs pour reconstruire la courbe et en restant en dessous d'une certaine borne d'erreur (distance entre la vraie courbe et son approximation).
    Toutes les méthodes que j'ai trouvé jusqu'ici, supposaient de découper la courbe en morceaux, puis d'optimiser les paramètres (du cercle) sur chaque morceau et ou l'ensemble afin de minimiser l'erreur. Et donc ça ne minimise pas le nombre d'arcs, car les points sur la courbe sont prédéfinis (c'est l'input du problème)
    Je voudrais faire l'inverse ou le découpage en morceaux sera le résultat de l'optimisation.

    J'ai trouvé une technique pour approximer avec des droites : on trace deux courbes parallèles à celle de référence en prenant cette dernière en sandwich, l'épaisseur du sandwich étant l'erreur permise, on fait passer la droite à l'intérieur du chemin de manière à augmenter sa longueur. Ça revient à être tangent à l'un des deux côtés en fonction du signe du rayon de courbure, et se balader sur la courbe jusqu'à avoir la longueur maxi de la droite à l'intérieur, écrire un tel algorithme est parfaitement faisable. Après faut voir si ça donne vraiment la solution optimale si la première droite est la plus longue, OK, mais ça donne quoi pour les autres ... ?

    Par contre pour les arc de cercle, là j'ai du mal à imaginer un algorithme qui tienne la route, je pense qu'utiliser des courbes parallèles pour limiter c'est aussi valable.

    Le pourquoi de ma question : les CNC peuvent faire de l'interpolation rectiligne et circulaire , donc pour augmenter la vitesse et diminuer la taille du g-code il y a intérêt à minimiser le nombre de morceaux interconnectés, sans perdre de vue la précision (la distance par rapport à la courbe de référence doit rester bornée). Le top ça serait de pouvoir combiner arcs et droites, avec les mêmes critères d'approximation.
    Peut-être que ça existe déjà en CAM, si on donne la courbe sous forme de coordonnées de points, peut-être qu'il peut la réinterpréter sous forme d'arc et de droites ?

    P.S. : c'est une question ouverte, je demande pas spécialement la solution, même un ouvrage de référence me ferait avancer, ça sert à rien de réinventer la roue comme on dit ...
     
  2. Francois59

    Francois59 Apprenti

    Messages:
    198
    Inscrit:
    19 Septembre 2013
    Dernière édition par un modérateur: 16 Avril 2015
  3. gaston48

    gaston48 Compagnon

    Messages:
    6 222
    Inscrit:
    26 Février 2008
    Localité:
    59000
    approximation par arc de cercle
    Bonsoir,
    Cambam fait cela en tout cas, dans les 2 sens : arcs de cercle sur polyline et polyline sur arcs de cercle.

    cambam.jpg
     
  4. stanloc

    stanloc Compagnon

    Messages:
    4 370
    Inscrit:
    29 Octobre 2012
  5. gaston48

    gaston48 Compagnon

    Messages:
    6 222
    Inscrit:
    26 Février 2008
    Localité:
    59000
  6. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    approximation par arc de cercle
    Merci beaucoup pour les infos !

    Je vais creuser tout ça, jusqu'ici je générais un fichier avec une flopée de points équidistants (résolution 1/100) (20000 à 30000 pts au total) , que je faisais passer en interpolation linéaire ... ça ralenti très fort évidement , même si le résultat final est très correct ... Néanmoins pour dégrossir ça sert à rien et on peut simplifier .

    Peut-être que je ferais une première approximation à moitié à la main, vu que j'ai l'expression analytique de la courbe, je vais essayer de passer par le calcul de rayon de courbure, et le centre de l'arc devrait se trouver sur la normale à la courbe ...

    Plus tard j'essayerai CamBam, faudra de toute manière que je m'y mette un jour ou l'autre !
     
  7. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
  8. stanloc

    stanloc Compagnon

    Messages:
    4 370
    Inscrit:
    29 Octobre 2012
    approximation par arc de cercle
    Parce que votre G-code ne peut pas lire un tableau de coordonnées ? ou un fichier ? je ne sais quoi ?
    Stan
     
  9. JeanYves

    JeanYves Compagnon

    Messages:
    11 662
    Inscrit:
    28 Octobre 2008
    Localité:
    F - 56 Bretagne
    Avertissement:
    niveau 3
    approximation par arc de cercle
    Bsr
    Ta tolerance est elle si étroite pour necessiter tant de points ?
     
  10. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    approximation par arc de cercle
    Justement, jusqu'ici c'est ce que je faisait, je générai un fichier avec le listing de points , beaucoup de points ... mais le problème c'est que avec une faible distance entre points on atteint pas la vitesse de croisière et c'est très long. Alors qu'avec un arc de cercle plus long on arrive à aller plus vite, la machine à le temps d’accélérer ...

    Le but étant d'aller plus vite en phase d'ébauche, à première vue ma courbe est telle que, avec 2 arcs de cercle et une droite on arrive à approcher la courbe au dixième, j'aimerai descendre au 5/100 ce qui sera impeccable comme ébauche, puis 5 passes de finition de avec mon fichier de points équidistants au centième calculés de manière exacte. ça me permettrait de passer de 15h à 4h d'usinage (à vu de nez). Bref ça vaut la peine de réfléchir un peu plus, pour après aller plus vite.

    Mais tout ça c'est écrit dans le document envoyé par Gaston48, je pense que ça vaut la peine que j'essaye sur CamBam aussi, merci Gaston! comme très souvent la réponse est en plein dans le mille ! :-D
     
  11. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    approximation par arc de cercle
    @ Jean-Yves :

    C'est une surface de came, donc ça doit-être lisse (il y a un rouleau qui roule dessus). Et effectivement autant de points, ce n'est pas nécessaire, en tout cas pas partout ... J'ai utilisé des points équidistants sur la trajectoire de l'outil pour garder des conditions de coupe identiques sur tout le parcours lors de l'ébauche dans la masse...

    Et là pour la phase ébauche, je vais approximer, mais pour rester dans l'enveloppe de la courbe à +/- 2/100 ...

    Puis quand j'avais fait la finition dernièrement, usinage en avalant, avec les listels (points équidistants cette fois-ci sur la courbe et pas sur le centre de la fraise), ça donnait très bien , donc l'ébauche peut-être plus grossière et plus rapide, et puis les 4-5 passes de finition en contournant , se rapprochant centième par centième de la courbe avec une fraise bien neuve.

    De toute manière faudra essayer, peut-être que l'ébauche, influencera trop le résultat final, et je devrais m'en tenir à ce que j'ai faisais avant ...
     
  12. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    approximation par arc de cercle
    Je viens de me calculer le rayon de courbure, c'est intéressant ... :shock: néanmoins, ça fonctionne, j'ai exploité aussi la propriété que pour une courbe parallèle à une autre, il suffit de soustraire la distance pour avoir le rayon de courbure de celle parallèle ... sinon ça devenait très lourd , il y aurait le morceau lié au vecteur normal à dériver (première et seconde) ... et là j'aurais peut-être laissé tombé la solution analytique ...
     
  13. JeanYves

    JeanYves Compagnon

    Messages:
    11 662
    Inscrit:
    28 Octobre 2008
    Localité:
    F - 56 Bretagne
    Avertissement:
    niveau 3
    approximation par arc de cercle
    Bjr ,

    Oui , c'est surtout l'etat de surface qui t'impose de prendre autant de point .
    la forme pouvait etre suivie avec bien moins de point , plus rapidement , en restant dans l ' IT que tu as defini .

    Mais Camban à l'air bien ? .

    En poinçonnage c'etait moins exigeant ! :-D
     
  14. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    approximation par arc de cercle
    Niveau quantité de point, j'ai préparé un fichier pour commander la même pièce en électro-érosion avec la distance entre points de 3 microns, c'est un script auto-cad que je génère.
    Je suis arrivé au maximum de points permis pour une poly-ligne ! (100.000 pts) avec 3µ j'en ai environ 70.000 avec 2µ je suis au-delà des 100.000 ... Le hic est que l'entreprise à qui je veux commander ça, n'arrive pas à passer en CAM le fichier *.dxf. Je pense avoir trouvé le problème, je n'ai pas "fusionné" les segments de droite avec la commande "JOIN" ... , après ça, j'arrive à faire l'extrusion du solide à partir de la courbe, mais si je sauve le fichier en *.dxf il devient monstrueux (80Mo), je n'arrive même pas à le ré-ouvrir moi-même ... en *.dwg ça se ré-ouvre, mais ça prend au moins 10min ... si je laisse que le contour(2D), c'est plus léger mais j'imagine que leur logiciel de CAM a besoin de l'épaisseur pour calculer les vitesses d'avance ... Bref quelques aspects techniques à résoudre ... :roll:
    Je leur aurait bien donné mon G-code directement, mais ils savent pas comment faire avec, j'imagine qu'ils ne connaissent pas à l'avance le diamètre du fil, et qu'ils le compensent après mesure sur la machine, puis peut-être qu'ils ont un G-code spécifique niveau mise à zéro ou autre ...
    L'avantage chez-moi, je suis assez tranquille pour faire des essais , je peux même bidouiller une correction sur le g-code en X-Y si je vois que la pièce sort déformée (si j'arrive à comprendre le type de déformation), d'ailleurs j'ajuste la trajectoire en fonction de ce qui reste à enlever en fonction de ce qui a été réellement enlevé à la passe précédente pour les passes de finition... Un peu comme sur le tour où les dernières passes de finitions se font égales et on vérifie en mesurant s'il faut enlever un peu plus ou un peu moins à la passe suivante ...

    P.S. : CamBam, j'ai pas encore essayé, je préfère pas trop m'éparpiller pour l'instant ... mais dès que j'ai un peu de temps je m'y mettrai , peut-être je vais essayer de récupérer le *.dxf et le traîter avec pour simplifier la courbe, mais j'ai peur de passer trop de temps à apprivoiser le nouveau logiciel ...
     
  15. DEN

    DEN Compagnon

    Messages:
    1 433
    Inscrit:
    28 Août 2009
    Localité:
    NE-CH
    approximation par arc de cercle
    Merci aux modérateurs d'avoir déplacé le post, je savais pas trop où le caser ... C'est des maths et du g-code ... du CAD et du CAM ...
     

Partager cette page