Modification post pro plasma Cambam

  • Auteur de la discussion Math32
  • Date de début
M

Math32

Nouveau
Bonjour à tous,

Sur ma CNC j'utilise Cambam et Mach 3 pour faire de la découpe plasma.
Le post pro plasma fonctionne très bien mais j'aimerais si c'est possible le modifier afin d'avoir un palpage de la tôle avant chaque début de coupe car j'utilise le THC proma SD (celui qui ne communique pas avec mach3) et du coup il est possible que entre 2 découpe j'ai une différence d'altitude que mach 3 ne connait pas.
Par exemple : lorsque je créé un fichier GCode pour la découpe de 2 rectangles le palpage se fait avant la découpe du premier rectangle, mais pas du second.

D'après ce que j'ai compris l'allumage et l'arrêt de la torche sont appelés lorsque le z bouge sous la surface de la pièce et au dessus.
Est il possible d'appeler de la même façon le palpage ?

Je joins le fichier GCode

Merci

Mathieu
 
D

dh42

Compagnon
D'après ce que j'ai compris l'allumage et l'arrêt de la torche sont appelés lorsque le z bouge sous la surface de la pièce et au dessus.
Est il possible d'appeler de la même façon le palpage ?
Salut,

Oui, par contre tu aura un palpage à chaque fois qu'un G0 Znn sera utilisé, donc à chaque interruption de coupe, y compris pour des découpes qui se trouvent dans une même opération d'usinage.

par exemple, la séquence de palpage ci-dessous pourrait être mise dans la propriété "début de coupe" juste avant le code déjà présent


++
David
 
M

Math32

Nouveau
Bonjour David, merci pour ta réponse

Oui c'est exactement ce que j'aimerais : faire une palpage juste avant chaque debut de coupe.

J'essaye ça en rentrant cet après-midi, mais du coup je vais avoir un doublon de palpage non ? Je supprime l'ancien code de palpage ?
 
R

Rom'

Compagnon
Meme avec la proma classique il faut faire un palpage a chaque fois dans l'idéal, sur les grandes toles tu as vite plusieurs mm de faux plat...
et même sur des pièces proches, la tole se déforme, donc de toutes façons...

Si ce que t'a mis David ne va pas j'airais piocher dans mes fichiers de config...
 
M

Math32

Nouveau
Salut Rom,

Oui sur les tôles de 3x1,5m en faible épaisseur j'ai parfois jusqu'à 10mm étant donné que la tôle n'est pas assez lourde pour se mettre bien à plat.

J'essaye la solution de David tout à l'heure si je n'y arrive pas je reviendrai vers vous.
Tu t'es créé un post pro perso pour la découpe plasma ?

Mathieu
 
R

Rom'

Compagnon
Mon postpro me met des Mjeaisplusquoi là ou il faut, et c'est un scirpt dans mach3 qui fait le boulot.

Je suis une feignasse c'est juste des bouts de scripts pris sur le net que j'ai adapté à mon usage....
 
M

Math32

Nouveau
Je viens d'essayer en mettant le code de David dans le post pro, mais cambam me dis qu'il y a des erreurs... Je pense qu'il doit y avoir des lignes a supprimer étant donné qu'on change de place le palpage ?

Le post pro est le suivant :

<?xml version="1.0" encoding="utf-8"?>
<PostProcessor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0.9.8.0">
<PostFile>{$comment} Made using CamBam - http://www.cambam.co.uk {$endcomment}
{$header}
{$mops}
{$footer}
</PostFile>
<Header>{$comment} {$cbfile.name} {$date} {$endcomment}
{$cbfile.header}
{$units} {$distancemode} {$velocitymode}
{$clearance}
( move to the X,Y location of first toolpath )
G0 X{$mop.first.X} Y{$mop.first.y}
<Footer>{$clearance}
{$endrewind}
{$cbfile.footer}
</Footer>
<StartCut>( pierce height )
( do a Z probe cycle = palpage )
G31 Z-100 F1000
( set this as Z=0 )
G92 Z0
( retract 5mm until tip clears plate )
G0 Z5.0
( set this as Z=0 )
G92 Z0

( pierce height = code d'origine du début de coupe)
G0 Z5
( torch on )
M3
( plunge to cuting depth )
G1 Z{$mop.targetdepth} F{$mop.plungefeedrate}

G0 Z5
( torch on )
M3
( plunge to cuting depth )
G1 Z{$mop.targetdepth} F{$mop.plungefeedrate}</StartCut>
<EndCut>( torch off )
M5
( small delay - s )
G4 P1
</EndCut>
<ToolChange>{$clearance}
{$comment} T{$tool.index} : {$tool.diameter} {$endcomment}
T{$tool.index} M6</ToolChange>
<MOP>{$comment} {$mop.name} {$endcomment}
{$toolchange}
{$velocitymode}
{$mop.header}
{$blocks}
{$mop.footer}
</MOP>
<MinimumArcLength>0.0001</MinimumArcLength>
<MaximumArcRadius>10000</MaximumArcRadius>
<AddLineNumbers>true</AddLineNumbers>
<LineNumberFormat>0000</LineNumberFormat>
</PostProcessor>
 
D

dh42

Compagnon
Je viens d'essayer en mettant le code de David dans le post pro, mais cambam me dis qu'il y a des erreurs... Je pense qu'il doit y avoir des lignes a supprimer étant donné qu'on change de place le palpage ?

Cambam ne me met aucune erreur et produit bien le GCode, par contre ce n'est pas utilisable car la macro "début de coupe" est exécuté une fois que le Z est descendu en dessous de 0 et non avant qu'il descende, et j'ai donc le résultat suivant:

HTML clipboard
( Made using CamBam - http://www.cambam.co.uk )
( Sans titre 6/26/2021 10:23:33 PM )
G21 G90 G64
G0 Z5.0
( move to the X,Y location of first toolpath )
G0 X-78.8043 Y22.9704
( do a Z probe cycle )
G31 Z-100 F1000
( set this as Z=0 )
G92 Z0
( retract 5mm until tip clears plate )
G0 Z5.0
( set this as Z=0 )
G92 Z0
( Contour1 )
G0 Z5.0
( T5 : 3.0 )
T5 M6
G0 Z3.99
G1 F600.0 Z-0.01 --- la on descend à Z =-0.01 alors qu'il faudrait palper avant, mais impossible de supprimer cette instruction
G31 Z-100 F1000 .. ici c'est ce qui est ajouté par la macro "début de coupe", on palpe, mais on est déjà trop bas ...
( set this as Z=0 )
G92 Z0
( retract 5mm until tip clears plate )
G0 Z5.0
( set this as Z=0 )
G92 Z0
( pierce height )
G0 Z5
( torch on )
M3

( plunge to cuting depth )
G1 Z-0.01 F600.0
G1 F800.0 Y59.193 Z-0.01
G2 X-77.3043 Y60.693 I1.5 J0.0
G1 X-30.2591
G2 X-28.7591 Y59.193 I0.0 J-1.5
G1 Y22.9704
G2 X-30.2591 Y21.4704 I-1.5 J0.0
G1 X-77.3043
....
....

++
David
 
M

Math32

Nouveau
Bonjour David,

Alors avec mon oncle on a réfléchi ce matin, on en est venu à la conclusion qu'il ne serait peut être pas nécessaire de faire un palpage avant chaque début de coupe , mais plutôt à chaque opération d'usinage de type "contour". Par exemple sur une petite pièce avec plusieurs trous, cela pourrait permettre de réaliser tous les trous avec 1 seul palpage regroupés dans une seule opération de "contour".

Donc suite à ça on à regardé pour que le palpage se trouve à la suite des commentaires "(Contour 1)" ; "(Contour 2)"... dans le GCode.

On en est donc arrivé à créer le post pro suivant (toujours sur la base du post pro plasma d'origine de cambam) :

<?xml version="1.0" encoding="utf-8"?>
<PostProcessor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="0.9.8.0">

<PostFile>
{$comment} Made using CamBam - http://www.cambam.co.uk {$endcomment}
{$header}
{$mops}
{$footer}
</PostFile>

<Header>
{$comment} {$cbfile.name} {$date} {$endcomment}
{$cbfile.header}
{$units} {$distancemode} {$velocitymode}
{$clearance}
( move to the X,Y location of first toolpath )
G0 X{$mop.first.X} Y{$mop.first.y}
</Header>

<Footer>
{$clearance}
{$endrewind}
{$cbfile.footer}
</Footer>

<StartCut>
( début de coupe )
G0 Z5
( allumage torche )
M3
( descente à la hauteur de coupe )
G1 Z{$mop.targetdepth} F{$mop.plungefeedrate}
</StartCut>

<EndCut>
( éteindre la torche )
M5
( petit délai - s )
G4 P0.5
( remonter la torche suite à plongeon dû au THC en fin de coupe )
G0 Z2
G92 Z0
</EndCut>

<ToolChange>{$clearance}
{$comment} T{$tool.index} : {$tool.diameter} {$endcomment}
T{$tool.index} M6
</ToolChange>

<MOP>
{$comment} {$mop.name} {$endcomment}

( cycle palpage )
G31 Z-100 F1000
( set this as Z=0 )
G92 Z0
( retrait course capteur )
G0 Z5.0
( set this as Z=0 )
G92 Z0
( fin du cycle de palpage )

{$toolchange}
{$velocitymode}
{$mop.header}
{$blocks}
{$mop.footer}
</MOP>

<MinimumArcLength>0.0001</MinimumArcLength>
<MaximumArcRadius>10000</MaximumArcRadius>
<LineNumberFormat>0000</LineNumberFormat>
</PostProcessor>




Ce post pro me donne le GCode suivant ( pour la découpe de 2 rectangles) :

( Made using CamBam - http://www.cambam.co.uk )
( Sans titre 6/27/2021 3:00:49 PM )
G21 G90 G64
G0 Z10.0
( move to the X,Y location of first toolpath )
G0 X-2.8 Y-2.0
( Contour1 )
( cycle palpage )
G31 Z-100 F1000
( set this as Z=0 )
G92 Z0
( retrait course capteur )
G0 Z5.0
( set this as Z=0 )
G92 Z0
( fin du cycle de palpage )
G0 Z1.5
( début de coupe )
G0 Z5
( allumage torche )
M3
( descente à la hauteur de coupe )
G1 Z1.5 F1000.0
G3 F1400.0 X-0.8 Y0.0 I0.0 J2.0
G1 Y30.0
G2 X0.0 Y30.8 I0.8 J0.0
G1 X35.0
G2 X35.8 Y30.0 I0.0 J-0.8
G1 Y0.0
G2 X35.0 Y-0.8 I-0.8 J0.0
G1 X0.0
G2 X-0.8 Y0.0 I0.0 J0.8
G3 X-2.8 Y2.0 I-2.0 J0.0
( Contour2 )
( cycle palpage )
G31 Z-100 F1000
( set this as Z=0 )
G92 Z0
( retrait course capteur )
G0 Z5.0
( set this as Z=0 )
G92 Z0

( fin du cycle de palpage )
( éteindre la torche )
M5
( petit délai - s )
G4 P0.5
( remonter la torche suite à plongeon dû au THC en fin de coupe )
G0 Z2
G92 Z0
G0 Z10.0
G0 X42.2 Y-2.0
G0 Z3.5
G1 Z1.5
( début de coupe )
G0 Z5
( allumage torche )
M3
( descente à la hauteur de coupe )
G1 Z1.5 F1000.0
G3 F1400.0 X44.2 Y0.0 I0.0 J2.0
G1 Y40.0
G2 X45.0 Y40.8 I0.8 J0.0
G1 X78.0
G2 X78.8 Y40.0 I0.0 J-0.8
G1 Y0.0
G2 X78.0 Y-0.8 I-0.8 J0.0
G1 X45.0
G2 X44.2 Y0.0 I0.0 J0.8
G3 X42.2 Y2.0 I-2.0 J0.0
( éteindre la torche )
M5
( petit délai - s )
G4 P0.5
( remonter la torche suite à plongeon dû au THC en fin de coupe )
G0 Z2
G92 Z0
G0 Z10.0
M30

Sauf que du coup j'ai un nouveau problème : mon palpage est bien réalisé à la suite des commentaires "(Contour .. )", mais comme on peut le voir dans le GCode en gras et en vert, la $mop.name et donc mon palpage se situent un peut trop haut de quelques lignes, il devrait dans la logique se siture à la suite du G0 Z10.0 (en gras et en rouge)

Y aurait il une solution pour ce problème ?

Mathieu
 
D

dh42

Compagnon
salut,

Apparemment le problème c'est qu'il faut forcer la remontée du Z immédiatement à la fin de la MOP pour déclencher le "fin de coupe" .. et le "début de coupe suivant"

essais de rajouter {$clearance} à la fin de la macro d'opération d'usinage.

<MOP>
{$comment} {$mop.name} {$endcomment}

( cycle palpage )
G31 Z-100 F1000
( set this as Z=0 )
G92 Z0
( retrait course capteur )
G0 Z5.0
( set this as Z=0 )
G92 Z0
( fin du cycle de palpage )

{$toolchange}
{$velocitymode}
{$mop.header}
{$blocks}
{$mop.footer}
{$clearance}
</MOP>

ça à l'air de fonctionner sur un GCode test.

je te met le fichier CB, le Gcode et le post pro utilisé en PJ

++
David
 

Fichiers joints

  • PPplasma.zip
    2.9 KB · Affichages: 60
M

Math32

Nouveau
Salut,

Effectivement ça fonctionne, j'ai pu essayer aujourd'hui, par contre je me suis trompé, dans l'idéal il aurait fallu que ça soit encore une ligne plus bas, après le parcours outil jusqu'à X et Y du contour 2, tu penses que c'est possible ?

J'ai regardé dans les codes du site atelier des fougères, et je n'ai pas trouvé de code qui conviendrait...

Mathieu
 
D

dh42

Compagnon
peut être en ajoutant

G0 X{$mop.first.X} Y{$mop.first.y}

en début du cycle de palpage dans la MOP

<MOP>
{$comment} {$mop.name} {$endcomment}

( cycle palpage )
G0 X{$mop.first.X} Y{$mop.first.y}
G31 Z-100 F1000
( set this as Z=0 )
G92 Z0
( retrait course capteur )
G0 Z5.0
( set this as Z=0 )
G92 Z0
( fin du cycle de palpage )

{$toolchange}
{$velocitymode}
{$mop.header}
{$blocks}
{$mop.footer}
{$clearance}
</MOP>

++
David
 
M

Math32

Nouveau
Salut,

Ca marche parfaitement, je pensais que cette macro allait renvoyer toujours vers le 1er X et le 1er Y du programme mais en fait pas du tout.
Merci beaucoup pour ton aide !

Autre question en rapport avec Cambam, y aurait-il un moyen pour forcer cambam à faire les départs de coupe sur une ligne droite, ou pas dans un coin de façon automatique ?

Mathieu
 
D

dh42

Compagnon
Autre question en rapport avec Cambam, y aurait-il un moyen pour forcer cambam à faire les départs de coupe sur une ligne droite, ou pas dans un coin de façon automatique ?

Salut,

Oui, il est possible de positionner le point de départ de coupe/usinage ou tu veux.

- clic droit sur une opération d'usinage(*) > Définir le point de départ, puis clique sur le dessin à l'endroit ou tu veux ton départ de coupe ; ça mettra un petit rond rouge à cet endroit. Ensuite la position du rond peut être déplacée à la souris et il suffit de régénérer les parcours d'outil pour que le point de départ soit recalculé.

Il y a par contre une limitation, si il y a plusieurs formes dans une même opération d'usinage, on ne peut placer que le 1ier point de départ, sur une seule forme. Le point de départ des autres formes est calculé automatiquement pour limiter les déplacements en rapide ... mais le placement de ces points de départ secondaires n'est pas toujours judicieux. Pour avoir un contrôle total, il est préférable de ne mettre qu'une seule forme par opération d'usinage.

(*) on peut aussi utiliser la propriété "Point de départ" et cliquer sur le |...| pour placer le point de départ à la souris (flèche sur l'image) d'une opération.

Sans titre-1.jpg


je pensais que cette macro allait renvoyer toujours vers le 1er X et le 1er Y du programme

Non, vers le 1ier XY de l'opération d'usinage en cours.


++
David
 
M

Math32

Nouveau
Salut,

Oui j'utilisais déjà cette méthode pour positionner le point de départ, mais sur un projet avec plus de 50 découpes à faire ça peut être assez lassant de tous les faire un part un... c'est pour ça que je me demandais s'il y avait une possibilité d'automatiser le point de départ sur une ligne droite ?

Mathieu
 
D

dh42

Compagnon
Non, pas à ma connaissance (enfin pas simplement, voir mode "Aucun"), le positionnement des départs secondaires est fait par l'optimiseur de trajectoire.

en mode Standard 0.97 ou Expérimental 0.98, pour choisir le point de départ suivant, le principe est simple ; il choisis le point le plus proche par rapport à la fin de l'usinage précédent pour minimiser les déplacements rapides. La 1iere forme usinée et celle ou tu met ton point de départ d'usinage, ensuite l'ordre d'usinage est dicté par la même régle que plus haut. Si pas de point de départ d'usinage défini, il commence avec le point (et la forme) le plus proche du 0,0

en mode Aucun, l'optimiseur est désactivé ; dans ce cas la règles est:

- l'ordre d'usinage est défini par l'ordre de sélection des formes (l'ordre dans lequel elles sont listée dans la propriété ID)
- le point de départ d'usinage est défini pour chaque forme sur le 1ier point de la forme (polyligne, cercle, ...)

le point de départ d'une polyligne peut être défini par Edition/polyligne/définir le point de départ une fois la polyligne sélectionnée. Il ne peut par contre qu'être défini sur un point existant de la polyligne si c'est une polyligne fermée, ou à un bout si c'est une polyligne ouverte. Si tu veux un départ sur une ligne droite et qu'il n'y a pas de point dans cette ligne droite, il faut en ajouter un qui pourra alors être défini comme point de départ. (voir plugin Ajouter des points )

CB n'est peut être pas le soft idéal pour la découpe plasma, il a avant tout été développé pour le fraisage .. mais ça peut dépanner.

Andy le fera peut être évoluer dans ce sens, car je sais qu'il s'est acheté une CNC plasma ... et bien sûr il utilise CamBam ..

++
David
 
M

Math32

Nouveau
D'accord je vais tester en mode Aucun et si ça ne me convient pas j'essaierai Sheetcam et je garderais cambam pour l'usinage.
Merci beaucoup pour toutes tes réponses !

Mathieu
 

Sujets similaires

L
Réponses
7
Affichages
331
BBD
M
Réponses
14
Affichages
910
Mika2A
M
S
Réponses
2
Affichages
668
Scm21
S
G
Réponses
13
Affichages
1 254
Ghibli
G
G
Réponses
42
Affichages
2 758
Nico91
Nico91
L
Réponses
22
Affichages
2 196
jad83690
J
Haut