Microsoft 365 Augmenter tous les Z négatifs de la valeur x dans un GCode

  • Initiateur de la discussion Initiateur de la discussion Aloha
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Aloha

XLDnaute Accro
Bonjour,

Ma demande est sûrement un peu spéciale.

Je veux fraiser une pièce en 3d (une coupole), mais la tête ne descend pas assez bas (axe Z) dans la pièce et dans le programme que j'utilise pour créer le GCode (Estlcam) je peux bien fixer le niveau de départ pour un travail en 2d, mais pas en 3d. Voilà pourquoi je voudrais augmenter dans le code tous les Z négatifs (les Z positifs signifient que la tête remonte avant de redescendre à un niveau <0 inférieur du précédent) d'une valeur x inscrite dans une certaine cellule (E1 dans le fichier joint) pour rendre l'opération flexible.

Le début des lignes contenant les Z est toujours le même

G01 Z-2.5000 F500
ou encore
G01 Z-5.0000 F500

ce qui signifie que la tête avance sur l’axe Z, l‘axe vertical, à une vitesse définie [G01; G00 étant un mouvement plus rapide et constant pour le code entier], à la position Z=-2.5000 dans le premier exemple ci-dessus , donc 2.5mm en-dessous du niveau 0, le niveau 0 correspondant à la surface supérieure de la pièce à fraiser, à une vitesse de 500mm/minute, le code « Fxxx » définissant la vitesse à laquelle la fraise avance sur l’un des 3 axes XYZ.

Je voudrais donc remplacer Z-2.5000 par Z-7.5000, si je veux que la fraise descende 5mm plus bas.

Comme je n’arrive pas à créer un code tenant compte de la modification souhaitée, j’ai eu l’idée d’importer le code dans Excel et d’y augmenter tous les Z négatifs de la valeur inscrite dans la cellule E1 du fichier ci-joint.

Ce code n'est pas bien long avec ses 360 lignes et il y aurait moyen de le faire manuellement, mais des fois j'ai des codes comprenant des milliers, voire même quelques dizaines de milliers de lignes.

Il y avait des temps où j’aurais probablement été capable de résoudre ce problème moi-même mais cela fait un bon moment que je ne travaille plus beaucoup dans Excel. Pour vous, je suis sûr que c'est chose facile.

Bien à vous
Aloha
 

Pièces jointes

Dernière édition:
Bonsoir Aloha,
Si on passe de -2.5 à -7.5 alors on diminue sa valeur, on ne l'augmente pas.
Si j'ai bien compris, un essai en PJ avec :
Code:
Sub Recode()
    Dim DL%, tablo, i%, dZ
    Application.ScreenUpdating = False
    DL = Range("B65500").End(xlUp).Row
    tablo = Range("B1:B" & DL)
    dZ = [E1]
    For i = 1 To UBound(tablo)
        If tablo(i, 1) Like "*Z-*" Then
            tablo(i, 1) = AugmenterZ(tablo(i, 1), dZ)
        End If
    Next i
    [B1].Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
End Sub
Function AugmenterZ(Chaine, dZ)
    Dim T, T2, ValZ
    T = Split(Chaine, "-")
    T2 = Split(T(1), " ")
    ValZ = Format(-dZ - Val(T2(0)), "0.0000")
    If UBound(T2) >= 1 Then
        AugmenterZ = Replace(T(0) & ValZ & " " & T2(1), ",", ".")
    Else
        AugmenterZ = Replace(T(0) & ValZ, ",", ".")
    End If
End Function
 

Pièces jointes

Je n'avais pas vu que vous étiez sous 365. 😉
Apparemment, soit vous l'enregistrez dans un espace approuvé, comme Mes documents, je pense.
Soit il faut jouer sur les options internet :
https://answers.microsoft.com/fr-fr...ier-nest/551e0580-43ac-49c7-905f-28174bd97495
 
D'ailleurs, en bidulant j'ai résolu le problème en partie par formule. J'arrive à produire la valeur voulue par une formule mais je n'arrive pas encore à l'intégrer dans la ligne du code.
Qui plus est, cela ne fonctionne que pour les nombres de 0 à 9; il faut trouver un moyen detenir compte de la situation où le nombre est >9 et qu'il y a donc 2 chiffres avant le séparateur de décimales, en s'orientant d'après le séparateur.
 

Pièces jointes

Dernière édition:
Bien sûr que c'est bien plus lourd, mais cela fonctionne!
Bizarre qu'à la ligne 345 il n'y a pas la vitesse; normalement la fraise devrait refuser le service dans ce cas-là.
Votre solutiuon n'est pas qu'un essai, c'est une véritable solution! Merci beaucoup.
Malgré tout je vais essayer de faire fonctionner la macro.
Bien à vous
Aloha
 
Bonjour,
Bizarre qu'à la ligne 345 il n'y a pas la vitesse
Ca, c'est votre fichier. 😂
Malgré tout je vais essayer de faire fonctionner la macro.
Deux solutions possibles :
1- Vous enregistrez le fichier dans un dossier à vous, normalement l'origine internet devrait disparaitre et ça devrait marcher.
2- Vous copiez la macro dans un nouveau fichier à vous, c'est idem cela devrait marcher.
L'avantage de la macro est que c'est moins lourd, plus facilement maintenable, et raite tout le fichier de façon automatique quelle que soit la longueur. Avec les formules vous êtes obligé de copier les formules jusqu'à la fin de la colonne.
 
Alors prenez cette PJ, plus propre :
1- 1000 lignes sont installées donc vous n'avez plus à vous préoccuper du nombre de ligne du code.
2- Si plus de 1000 lignes un message d'alerte vous avertit.
3- La feuilles est protégée ( sans mdp ) sauf les colonnes A et B, donc pas d'accidents possibles dans les formules.
 

Pièces jointes

Bonjour Aloha,
C'est une question ? une réflexion ? un souci ?
Si dans le même tableau vous voulez modifier les X, les Y et les Z, avec des formules on peut le faire en dupliquant les colonnes C à G, une première fois pour modifier X puis une seconde fois pour modifier Y.
Ca va devenir une usine mais c'est faisable.
C'est bien ça la problématique ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour