Sequence de Palpage G31 plasma

Aller en bas

Sequence de Palpage G31 plasma Empty Sequence de Palpage G31 plasma

Message  Powerglide le Sam 11 Juil 2020 - 20:17

Bonjour a tous,
Je vous présente déjà la Machine! Il s'agit d'une table Plasma home made, piloté par une Bob et Mach3! J'utilise Sheetcam pour le tracé d'outil.
J'utilise un Post pro Mach3 qui intègre THC et G31.
J'utilise également un THC Proma pour suivre au mieux la surface du matériau.

LE PROBLEME:
Disons que je demande une hauteur de perçage a 3mm de la tole (Z0), et une hauteur de découpe a 1.5mm.
Pour mon premier perçage, la torche descend en vitesse lente depuis Z50mm (plan de dégagement), jusqu’à détecter la surface de la tôle grâce au palpeur ohmique.
Z passe a 0
torche remonte a 3 mm -> Torche ON Perçage 0.4s
descend Z a 1.5mm
découpe suivant le tracé
Torche Off
remonte et se deplace aux prochain point de plongé.
------------------------------------------
Là, la sequence devient différente
La Torche est a Z 50mm et descend en grande vitesse jusqu’à Z 3mm
Passe ensuite en petite vitesse, et attend le signal du palpeur ohmique pour redéfinir le Z0.
et c'est reparti pour une découpe.
les perçages suivant sont identique a cette séquence.
---------------------------------------------
Mon problème: Dans la séquence ou la torche descend rapidement, le capteur ohmique n'est pris en compte que sur la partie descente vitesse lente, cad en dessus de Z3mm.
ce qui m’embête c'est que si ma tôle est remonté (par déformation) plus haut que Z3mm, ma torche force littéralement dans la feuille d'acier.
Et si par exemple je souhaite couper de la tole onduline, ca devient ingérable pour cette séquence de palpage.

La solution: J'aimerais que le capteur ohmique soit pris en considération même sur une descente rapide, afin de créer la séquence suivante:
descente rapide de la torche
capteur ohmique détecte la surface
remonter rapide de 10mm Z
redescente vitesse lente du Z
Palpage en douceur
Z=0

Alors qu'en pensez vous?
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Powerglide le Dim 12 Juil 2020 - 9:05

Voici Le Gcode d'une petite pièce (decapsuleur) avec 2 contours intérieur et 1 extérieur.
En Lisant le Gcode je ne comprend pas ou et comment la vitesse du Z est geré, et pourquoi le palpeur n'est prit en compte que sous Z3, alors que je suis en G31 Z-100!!!

------------------------------
N0010 (Filename: decapsuleur.tap)
N0020 (Post processor: Mach3 plasma THC with scriber and backlash compensation.scpost)
N0030 (Date: 04/11/2012)
N0040 G21 (Units: Metric)
N0050 F1
N0060 G53 G90 G40
N0070 (Part: decapsuleur)
N0080 (Operation: Décalage extérieur, WHITE, T1: Plasma, 0,8 mm Fente de coupe)
N0090 G00 X26.6311 Y32.5390
N0100 G31 Z -100 F200.0
N0110 G92 Z0.0
N0120 G00 Z0.0000
N0130 G92 Z0.0
N0140 G00 Z3.0000
N0150 M03
N0160 G04 P0.5
N0170 G01 Z1.5000 F100.0
N0180 X28.4530 Y30.1556 F2000.0
N0190 X28.4537 Y30.1562
N0200 X28.7812 Y31.8194
N0210 X26.3044 Y34.5258
N0220 X23.2010 Y36.4824
N0230 X19.6913 Y37.5504
N0240 X16.0241 Y37.6541
N0250 X12.4596 Y36.7862
N0260 X9.2506 Y35.0081
N0270 X7.8796 Y32.4764
N0280 X7.7204 Y22.6021
N0290 X7.8801 Y12.6976
N0300 X9.2192 Y10.2186
N0310 X9.2392 Y10.2045
N0320 X12.4493 Y8.4197
N0330 X16.0173 Y7.5480
N0340 X19.6888 Y7.6516
N0350 X23.2020 Y8.7230
N0360 X26.3064 Y10.6860
N0370 X28.7806 Y13.4005
N0380 X28.8170 Y13.4457
N0390 X28.5222 Y15.0154
N0400 X28.4529 Y15.0579
N0410 X26.6581 Y16.4299
N0420 X26.5552 Y16.5468
N0430 X25.3380 Y19.4688
N0440 X24.9227 Y22.6068
N0450 X25.3380 Y25.7448
N0460 X26.5552 Y28.6668
N0470 X26.6581 Y28.7836
N0480 X28.4530 Y30.1556
N0490 X28.4537 Y30.1562
N0500 X28.9454 Y30.9967
N0510 X25.9738 Y31.4091
N0520 M05
N0530 G04 P3
N0540 G00 Z50.0000
N0550 X79.8652 Y22.6567
N0560 Z3.0000
N0570 G31 Z -100 F200.0
N0580 G92 Z0.0
N0590 G00 Z0.0000
N0600 G92 Z0.0
N0610 G00 Z3.0000
N0620 M03
N0630 G04 P0.5
N0640 G01 Z1.5000 F100.0
N0650 Y19.6567 F2000.0
N0660 X81.4627 Y20.1258
N0670 X82.5530 Y21.3840
N0680 X82.7899 Y23.0320
N0690 X82.0983 Y24.5464
N0700 X80.6977 Y25.4465
N0710 X79.0328
N0720 X77.6322 Y24.5464
N0730 X76.9405 Y23.0320
N0740 X77.1775 Y21.3840
N0750 X78.2678 Y20.1258
N0760 X79.8652 Y19.6567
N0770 X80.8462 Y19.8243
N0780 X79.8502 Y22.6541
N0790 M05
N0800 G04 P3
N0810 G00 Z50.0000
N0820 X89.2321 Y14.2011
N0830 Z3.0000
N0840 G31 Z -100 F200.0
N0850 G92 Z0.0
N0860 G00 Z0.0000
N0870 G92 Z0.0
N0880 G00 Z3.0000
N0890 M03
N0900 G04 P0.5
N0910 G01 Z1.5000 F100.0
N0920 X86.2321 F2000.0
N0930 X85.8948 Y12.5053
N0940 X84.9342 Y11.0677
N0950 X83.4965 Y10.1071
N0960 X81.8007 Y9.7698
N0970 X35.6703
N0980 X27.8878 Y3.9306
N0990 X24.8539 Y1.7670
N1000 X21.4222 Y0.3149
N1010 X17.7568 Y-0.3564
N1020 X14.0332 Y-0.2147
N1030 X10.4295 Y0.7331
N1040 X7.1180 Y2.4419
N1050 X4.2573 Y4.8297
N1060 X1.9842 Y7.7823
N1070 X0.4074 Y11.1586
N1080 X-0.3977 Y14.7969
N1090 X-0.4000 Y14.8401
N1100 Y30.3640
N1110 X-0.3977 Y30.4073
N1120 X0.4079 Y34.0448
N1130 X1.9847 Y37.4203
N1140 X4.2574 Y40.3724
N1150 X7.1174 Y42.7600
N1160 X10.4280 Y44.4690
N1170 X14.0308 Y45.4176
N1180 X17.7537 Y45.5606
N1190 X21.4186 Y44.8910
N1200 X24.8505 Y43.4410
N1210 X27.8851 Y41.2797
N1220 X35.6702 Y35.4438
N1230 X81.8007
N1240 X83.4965 Y35.1065
N1250 X84.9342 Y34.1459
N1260 X85.8948 Y32.7082
N1270 X86.2321 Y31.0124
N1280 Y14.2011
N1290 X86.1197 Y13.2096
N1300 X89.0436 Y12.5383
N1310 M05
N1320 G04 P3
N1330 G00 Z50.0000
N1340 X0.0000 Y0.0000
N1350 M05 M30
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  fazer le Dim 12 Juil 2020 - 11:13

Salut
Tu peu mettre une photo histoire de voir la bête Very Happy
fazer
fazer
acharné du forum
acharné du forum

Messages : 555
Points : 754
Date d'inscription : 14/06/2010
Age : 63
Localisation : Alsacien en Haute - Saône

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Powerglide le Dim 12 Juil 2020 - 12:14

fazer a écrit:Salut
Tu peu mettre une photo histoire de voir la bête Very Happy

3000x2000
Nema 23 en Z
Nema 34 en X et Y
guidage en 40mm
cremailleres
Thc proma
palpeur ohmique

Amelioration a venir: bac a eau, broche 2.2kw, stockage de tole sous la becane

Sequence de Palpage G31 plasma 310
Sequence de Palpage G31 plasma 210
Sequence de Palpage G31 plasma 110
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  dh42 le Lun 13 Juil 2020 - 0:53

Salut,

En Lisant le Gcode je ne comprend pas ou et comment la vitesse du Z est geré, et pourquoi le palpeur n'est prit en compte que sous Z3, alors que je suis en G31 Z-100!!!

N0100 G31 Z -100 F200.0 ' palpage à 200 mm/min
N0110 G92 Z0.0 'mise à 0 de la coord Z (temporaire) lorsque la torche est en contact avec la tôle
N0120 G00 Z0.0000 ' ne sert à rien
N0130 G92 Z0.0 ' ne sert à rien
N0140 G00 Z3.0000 ' remonte à Z = 3
N0150 M03 ' démarrage torche
N0160 G04 P0.5 ' pause 1/2s
N0170 G01 Z1.5000 F100.0 ' descente jusqu'à 1.5mm au dessus de la tôle à 100mm/min
N0180 X28.4530 Y30.1556 F2000.0 ' coupe à 2000 mm/min.
....
....

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 19435
Points : 32136
Date d'inscription : 21/06/2009
Age : 56
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  fazer le Lun 13 Juil 2020 - 9:00

Salut
Belle bête Very Happy
fazer
fazer
acharné du forum
acharné du forum

Messages : 555
Points : 754
Date d'inscription : 14/06/2010
Age : 63
Localisation : Alsacien en Haute - Saône

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Powerglide le Lun 13 Juil 2020 - 9:46

dh42 a écrit:Salut,

En Lisant le Gcode je ne comprend pas ou et comment la vitesse du Z est geré, et pourquoi le palpeur n'est prit en compte que sous Z3, alors que je suis en G31 Z-100!!!

N0100 G31 Z -100 F200.0 ' palpage à 200 mm/min
N0110 G92 Z0.0 'mise à 0 de la coord Z (temporaire) lorsque la torche est en contact avec la tôle
N0120 G00 Z0.0000 ' ne sert à rien
N0130 G92 Z0.0 ' ne sert à rien
N0140 G00 Z3.0000 ' remonte à Z = 3
N0150 M03 ' démarrage torche
N0160 G04 P0.5 ' pause 1/2s
N0170 G01 Z1.5000 F100.0 ' descente jusqu'à 1.5mm au dessus de la tôle à 100mm/min
N0180 X28.4530 Y30.1556 F2000.0 ' coupe à 2000 mm/min.
....
....

++
David

Je suis exactement du meme Avis....
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  dh42 le Lun 13 Juil 2020 - 18:31

Salut,

Pour mon premier perçage, la torche descend en vitesse lente depuis Z50mm (plan de dégagement), jusqu’à détecter la surface de la tôle grâce au palpeur ohmique.

En fait c'est normal (enfin ça fait ce qui est prévu dans le GCode)

N0010 (Filename: decapsuleur.tap)
N0020 (Post processor: Mach3 plasma THC with scriber and backlash compensation.scpost)
N0030 (Date: 04/11/2012)
N0040 G21 (Units: Metric)
N0050 F1
N0060 G53 G90 G40
N0070 (Part: decapsuleur)
N0080 (Operation: Décalage extérieur, WHITE, T1: Plasma, 0,8 mm Fente de coupe)
N0090 G00 X26.6311 Y32.5390
N0100 G31 Z -100 F200.0

le premier mouvement en Z est entièrement fait par le G31 , quelque soit la hauteur ou tu te trouve au départ, et donc à 200mm/min et donc ça détecte la tôle.

...
N0490 X28.4537 Y30.1562
N0500 X28.9454 Y30.9967
N0510 X25.9738 Y31.4091
N0520 M05
N0530 G04 P3
N0540 G00 Z50.0000 on remonte à 50 en rapide
N0550 X79.8652 Y22.6567
N0560 Z3.0000 la par contre on descend aussi en rapide jusqu'à Z=3 (pour mach3 c'est équivalent à un G0 si il n'y rien devant) donc ça ne peut rien détecter ; c'est uniquement le G31 qui fait la détection de contact
N0570 G31 Z -100 F200.0 et ensuite seulement on palpe à 200

même chose ligne 830 on descend en rapide.

Dans tous les cas la détection de la tôle c'est comme un palpage outil et c'est uniquement le G31 qui l'effectue, un G1 ou G0 en descente n'a aucune raison de déclencher la détection même si tu descendais doucement à Z3 avec un G1 Z3 F200 ...

Règle ta position Z à une valeur plus élevée que 3mm de façon à prendre en compte les déformations de ta tôle pour que ton G31 parte de plus haut. Tu ne peux tout simplement pas détecter un contact avec un G0 ou un G1 ; ce n'est pas fait pour ; il faut obligatoirement que ce soit fait par le G31.


La solution: J'aimerais que le capteur ohmique soit pris en considération même sur une descente rapide, afin de créer la séquence suivante:
descente rapide de la torche
capteur ohmique détecte la surface
remonter rapide de 10mm Z
redescente vitesse lente du Z
Palpage en douceur
Z=0

Dans ce cas il faut que tu modifie ton post pro pour qu'il sorte une séquence comme suit:

......
......
G00 Z50.0000
X79.8652 Y22.6567
G31 Z-100 F1500 'palpage à 1500mm/min
G92 Z0 ' mise à 0 du Z
G0 Z10 ' remonte à +10 en rapide
G31 Z-100 F200 ' palpage lent à 200mm/min
G92 Z0 'mise à 0 du Z
G00 Z3 'remonte à +3

M03 'départ torche
G04 P0.5 'pose 1/2s
G01 Z1.5000 F100.0 'descente lente à +1.5
....
....
++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 19435
Points : 32136
Date d'inscription : 21/06/2009
Age : 56
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Powerglide le Mar 14 Juil 2020 - 12:04

Dans ce cas il faut que tu modifie ton post pro pour qu'il sorte une séquence comme suit:

......
......
G00 Z50.0000
X79.8652 Y22.6567
G31 Z-100 F1500 'palpage à 1500mm/min
G92 Z0 ' mise à 0 du Z
G0 Z10 ' remonte à +10 en rapide
G31 Z-100 F200 ' palpage lent à 200mm/min
G92 Z0 'mise à 0 du Z
G00 Z3 'remonte à +3



M03 'départ torche
G04 P0.5 'pose 1/2s
G01 Z1.5000 F100.0 'descente lente à +1.5
....
....
++
David[/quote]


Hello,
oui tu as raison pour le gcode! en fait quand il n'y a pas de vitesse indiquée, c'est la vitesse nominal du Z....
Et oui ta proposition de Gcode est exactement ce que je voudrais faire... Mais comment modifier le Post Pro? je sais l'editer, mais de la a faire en sorte qu'il créé cette sequence a chaque palpage je suis largué..

et je n'arrive pas a joindre mon fichiers Post pro ici
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Powerglide le Mar 14 Juil 2020 - 16:09

Mon post pro:

--************************************************
--*** Set these values up to suit your machine ***
--************************************************

--Set the X axis backlash amount in MILLIMETRES
backlashX = 0

--Set the Y axis backlash amount in MILLIMETRES
backlashY = 0
--this is the distance between each torch reference in MILLIMETRES
--set it to -1 if you never want to reference
refDistance = 0

--this is the reference feed rate in mm/min
refFeed = 200

--Put your switch offset value here in MILLIMETRES
switchOffset = 0

--Marker X,Y,Z offsets in MILLIMETRES. Do not use inches here even if you want inch code
--Use the special code 'nil' on the Z axis to disable it.
--In that case no Z values will be output at all while scribing.
--e.g markerZ = nil
markerX = 10
markerY = 20
markerZ = 0

--marker axis. Leave this as nil if the marker is fixed to the same axis as the torch
--markerAxis = "A"
markerAxis = nil

--If this value is set to true then use G28 (home) for the Z reference
--Set it to false for G31 probe
refHome = false

--The cutter will slow down for corners and turn off THC below this radius
slowRadius = 0

--Minimum slow down speed.
--This is a scale factor. For instance 0.5 = 50% of the current feed rate
slowPercent = 0.4

--THC on and off codes. Use nil if you don't want THC control e.g:
-- thcOnCode = nil
-- thcOffCode = nil

--here is another example that use M667 and M666
--thcOnCode = " M667"
--thcOffCode = " M666"

thcOnCode = nil
thcOffCode = nil


--Torch on code
torchOn = " M03"
--Torch off code
torchOff = " M05"

--Marker on code
markerOn = " M04"
--Marker off code
markerOff = " M05"


--************************************************
--***           End of settings                ***
--************************************************


function OnAbout(event)
  ctrl = event:GetTextCtrl()
  ctrl:AppendText("plasma post processor for generic THC system s such as Proma\n")
  ctrl:AppendText("Includes backlash compensation and punch marker/scriber\n")
  ctrl:AppendText("\n")
  ctrl:AppendText("Modal G-codes and coordinates\n")
  ctrl:AppendText("Comments enclosed with ( and )\n")
  ctrl:AppendText("M03/M05 turn the torch on/off\n")
  ctrl:AppendText("M08/M09 turn the engraver on/off\n")
  ctrl:AppendText("Incremental IJ - set in mach2\n")
  ctrl:AppendText("The torch is referenced at cut start and every 500mm of movement thereafter\n")
  ctrl:AppendText("Designed for use with Mach3 and CandCNC MP1000-THC and Floating head Touch-n-Go\n")
  ctrl:AppendText("Post variables:\n")
  ctrl:AppendText("refDistance - set the distance between each reference\n")
  ctrl:AppendText("refFeed - set the feed rate when referencing\n")
  ctrl:AppendText("switchOffset - set your net switch offset amount \n")
  ctrl:AppendText("Marker uses any tool number\n")
  ctrl:AppendText("slowRadius - slow down below this radius\n")
  ctrl:AppendText("slowPercent - minimum percentage to slow down\n")
end



--   created 1/1/06
--   Based on plasma1.post


--  Modified 21/6/2010
--  added option for 'nil' plate marker z
--  Added support for plate marker tool type as well as tool number based plate marker

-- Modified 4/11/2010
-- Added: Reference the torch on the first pen down if the plate marker is the first tool used.


post.DefineVariable("refDistance",sc.unitLINEAR,-1,1e17)
post.DefineVariable("refFeed",sc.unitFEED,0,1e17)
post.DefineVariable("switchOffset",sc.unitLINEAR,-1e17,1e17)
post.DefineVariable("slowRadius",sc.unitLINEAR,-1e17,1e17)
post.DefineVariable("slowPercent",sc.unitPERCENT,-1e17,1e17)

function OnInit()

  offX = 0
  offY = 0
  offZ = 0

  post.SetCommentChars ("()", "[]")  --make sure ( and ) characters do not appear in system text
  post.Text (" (Filename: ", fileName, ")\n")
  post.Text (" (Post processor: ", postName, ")\n")
  post.Text (" (Date: ", date, ")\n")
  if(scale == metric) then
     post.Text (" G21 (Units: Metric)\n") --metric mode
  else
     post.Text (" G20 (Units: Inches)\n") --inch mode
  end
  post.Text (" F1\n G53 G90 G40\n")
  minArcSize = 0.2 --arcs smaller than this are converted to moves
  firstRef = refDistance >=0
  currentZAxis = " Z"

  dist = 9999999
  lastz = 0
  thcstate = 1
  ThcOff()
  xPlus = false
  yPlus = false
  cX = 0
  cY = 0
end

function OnNewLine()
  post.Text ("N")
  post.Number (lineNumber, "0000")
  lineNumber = lineNumber + 10
end


function OnFinish()
  endZ = safeZ
  OnRapid()
  endX = 0
  endY = 0
  offX = 0
  offY = 0
  offZ = 0
  OnRapid()
  post.Text (torchOff .. " M30\n")
end

function CheckBacklash(mode)
  post.ModalText (mode)
  if(endX > 1e17 or endY > 1e17) then return end
  local diff = endX - cX
  local changed = false
  if(diff > 0.001 and xPlus == false) then
     changed = true
     xPlus = true
  elseif(diff < -0.001 and xPlus == true) then
     changed = true
     xPlus = false
  end

  diff = endY - cY
  if(diff > 0.001 and yPlus == false) then
     changed = true
     yPlus = true
  elseif(diff < -0.001 and yPlus == true) then
     changed = true
     yPlus = false
  end

  cX = endX
  cY = endY

  if(changed) then
     local moved = false
     if (xPlus and backlashX ~=0) then
        currentX = currentX + backlashX
        post.ModalNumber (" X", currentX * scale, "0.0000")
        moved = true
     end
     if (yPlus and backlashY ~=0) then
        currentY = currentY + backlashY
        post.ModalNumber (" Y", currentY * scale, "0.0000")
        moved = true
     end
     if(moved) then
        post.ModalNumber (" F", feedRate * scale, "0.0###")
        post.Eol()
     end
  end
  if (xPlus) then
     endX = endX + backlashX
  end
  if (yPlus) then
     endY = endY + backlashY
  end

end

function OnRapid()
  if(endX > 1e17 and endY > 1e17) then return end
  local len = math.hypot((endX + offX)-currentX , (endY + offY)-currentY)
  dist = dist + len
  CheckBacklash(" G00")
  post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
  post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
  if(offZ and firstRef == false) then
     post.ModalNumber (currentZAxis, (endZ + offZ) * scale, "0.0000")
  end
  post.Eol()
end

function OnMove()
  local len = math.hypot(endX - currentX , endY - currentY)
  dist = dist + len
  if(len > slowRadius) then
     ThcOn()
  end
  CheckBacklash(" G01")
  post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
  post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
  if(offZ) then
     post.ModalNumber (currentZAxis, (endZ + offZ) * scale, "0.0000")
  end
  post.ModalNumber (" F", feedRate * scale, "0.0###")
  post.Eol()
end

function OnArc()
  local radius = math.hypot(currentX - arcCentreX, currentY - arcCentreY)
  dist = dist + radius * math.abs(arcAngle)

  if (radius < slowRadius) and (math.abs(arcAngle) > 0.5) then
     feed = (radius / slowRadius)
     if(feed < slowPercent) then
        feed = slowPercent
     end
     feed = feed * feedRate
     ThcOff()
  else
     feed = feedRate
     ThcOn()
  end
  if(arcAngle <0) then
     post.ModalText (" G03")
  else
     post.ModalText (" G02")
  end
  post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
  post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
  if(offZ) then
     post.ModalNumber (currentZAxis, (endZ + offZ) * scale, "0.0000")
  end
  post.Text (" I")
  post.Number ((arcCentreX - currentX) * scale, "0.0000")
  post.Text (" J")
  post.Number ((arcCentreY - currentY) * scale, "0.0000")
  post.ModalNumber (" F", feed * scale, "0.0###")
  post.Eol()
end

function OnArc()
 post.ArcAsMoves(0.1)
end

function ThcOff()
  if(not thcOffCode) then return end
  if(thcstate ==1) then
     thcstate = 0
     post.Text(thcOffCode)
     post.Text(" (THC off)\n");
  end
end

function ThcOn()
  if(not thcOnCode) then return end
  if(toolClass == "MarkerTool") or tool > 99 then return end
  if(thcstate ==0) then
     thcstate = 1
     post.Text(thcOnCode)
     post.Text(" (THC on)\n");
     return
  end
  if(thcstate == 2) then
     thcstate = 0
  end
end


function OnPenDown()
  if(toolClass == "MarkerTool") then
     if (firstRef) then
        Reference()
        post.ModalText (" G00")
        post.Text(" Z")
        post.Number (safeZ  * scale, "0.0000")
        post.Eol()
        offX = markerX
        offY = markerY
        offZ = markerZ
        post.ModalNumber (" X", (currentX + offX) * scale, "0.0000")
        post.ModalNumber (" Y", (currentY + offY) * scale, "0.0000")
        post.Eol()
     end
     if (offZ) then
        post.ModalNumber (currentZAxis, (endZ + offZ)  * scale, "0.0000")
        post.Eol()
     end
     post.Text(markerOn .. "\n")
  else
     if(dist >= refDistance and refDistance >=0) then
        dist = 0
        Reference();
        post.ModalText (" G00")
        post.NonModalNumber (currentZAxis, (pierceHeight + offZ)  * scale, "0.0000")
        post.Eol()
     end
     if (preheat > 0) then
        post.Text ("\n G04 P")
        post.Number (preheat,"0.###")
        post.Eol()
     end
     post.Text ("\n" .. torchOn .. "\n")
  end
  if (pierceDelay > 0) then
     post.Text (" G04 P")
     post.Number (pierceDelay,"0.###")
     post.Eol()
  end
--   thcstate = 2 --leave THC off for plunge move
end


function Reference()
  firstRef = false
  if(refDistance < 0) then return end
  if (refHome) then
     post.ModalText(" G28.1 Z")
     local zp = 30
     if(zp > safeZ) then
        zp = safeZ
     end
     post.Number(zp * scale, "0.00")
  else
     post.ModalText(" G31 Z -100") CA DOIT ETRE PAR LA
  end
  post.ModalNumber (" F", refFeed * scale, "0.0###")
  post.Eol()
  post.ModalText(" G92 Z0.0\n")
  post.ModalText (" G00")
  post.Text(" Z")
  post.Number (switchOffset * scale, "0.0000")
  post.Eol()
  post.ModalText(" G92 Z0.0\n")
end

function OnPenUp()
  if(toolClass == "MarkerTool") then
     post.Text(markerOff .. "\n")
  else
     post.Text (torchOff .. "\n")
  end
  if (endDelay > 0) then
     post.Text (" G04 P")
     post.Number (endDelay,"0.###")
     post.Eol()
  end
end


function OnNewOperation()
  post.Text (" (Operation: ", operationName, ")\n")
end

function OnToolChange()
   if (toolClass == "MarkerTool"  or tool > 99 ) then
        ThcOff()
        if(markerAxis and markerAxis ~= currentZAxis) then
           endZ = safeZ
           post.ModalText(" G00")
           post.ModalNumber (currentZAxis, (endZ + offZ) * scale, "0.0000")
           post.Eol()
           currentZAxis = " " .. markerAxis
        end
        if(firstRef ~= true) then
           offX = markerX
           offY = markerY
           offZ = markerZ
        end
   else
        if(markerAxis and markerAxis == currentZAxis) then
           endZ = safeZ
           OnRapid()
           currentZAxis = " Z"
        end
        offX = 0
        offY = 0
        offZ = 0
   end
end

function OnNewPart()
  post.Text(" (Part: ",partName,")\n");
end

function OnDrill()
  OnRapid()
  currentX = endX
  currentY = endY
  OnPenDown()
  endZ = drillZ
  OnMove()
  OnPenUp()
  endZ = safeZ
  OnRapid()
end
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Powerglide le Mar 14 Juil 2020 - 18:14

La séquence que tu propose est quasiment bonne, mais cela fera un double palpage a chaque fois!
Le top est que si pendant la descente rapide le palpeur ne rencontre pas de surface, il faudrait laisser la torche aller jusqu'a Z03 et finir en vitesse lente sur un palpage!
Mais par contre si on rencontre une surface pendant la descente rapide, la oui on exécute la séquence que tu propose! il faudrait une notions logique de SI.
Mais je suis complètement largué par la modification de programmation de mon post pro.
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  dh42 le Mar 14 Juil 2020 - 22:06

Salut,

Mais comment modifier le Post Pro? je sais l'editer, mais de la a faire en sorte qu'il créé cette sequence a chaque palpage je suis largué..

Ah ! ça je ne sais pas, je ne connais pas du tout ton logiciel ... et apparemment ton post pro a son propre langage de programmation !

apparemment c'est cette fonction qui fait le palpage

function Reference()
 firstRef = false
 if(refDistance < 0) then return end
 if (refHome) then
    post.ModalText(" G28.1 Z")
    local zp = 30
    if(zp > safeZ) then
       zp = safeZ
    end
    post.Number(zp * scale, "0.00")
 else
    post.ModalText(" G31 Z -100")
 end
 post.ModalNumber (" F", refFeed * scale, "0.0###")
 post.Eol()
 post.ModalText(" G92 Z0.0\n")
 post.ModalText (" G00")
 post.Text(" Z")
 post.Number (switchOffset * scale, "0.0000")
 post.Eol()
 post.ModalText(" G92 Z0.0\n")

end

la partie en orange écrit le texte ci-dessous dans le Gcode, ce qui est au dessus, si je comprends bien, ça test si le Z est référencé ou non et si ce n'est pas le cas, ça écrit une commande de référencement du Z ( G28.1 Z ...) dans le Gcode avant de commencer le palpage proprement dit.

G31 Z -100 F200.0 = post.ModalText(" G31 Z -100")  post.ModalNumber (" F", refFeed * scale, "0.0###")  post.Eol()
G92 Z0.0 = post.ModalText(" G92 Z0.0\n")
G00 Z0.0000 = post.ModalText (" G00") post.Text(" Z") post.Number (switchOffset * scale, "0.0000") post.Eol()
G92 Z0.0 = post.ModalText(" G92 Z0.0\n")

ça devrait être modifiable pour faire un double palpage, par contre, comme tu peux voir ce n'est pas cette fonction qui décide de la descente en rapide à Z = 3 ; c'est donc, à mon avis, dans les réglages de ton soft, qu'il faut changer une valeur pour ne pas descendre aussi bas en rapide (sur CamBam, ce serait le "plan de dégagement") ; par exemple dans ton cas, si tu veux que ça parte de Z=50, il faudrait mettre 30 par exemple dans cette valeur pour que ça ne descende en rapide que jusqu'à 30 en G0, ensuite c'est la partie function Reference() du PP qui prend le relais et écris le code de palpage qu'il est possible de modifier pour qu'il reflète le code que je t'ai mis pour un palpage en 2 temps.

Le top est que si pendant la descente rapide le palpeur ne rencontre pas de surface, il faudrait laisser la torche aller jusqu'a Z03 et finir en vitesse lente sur un palpage!
Mais par contre si on rencontre une surface pendant la descente rapide, la oui on exécute la séquence que tu propose! il faudrait une notions logique de SI.
Mais je suis complètement largué par la modification de programmation de mon post pro.

La par contre il faut faire plus de codage et sans connaitre le langage exacte du soft et sans pouvoir tester en live, c'est une autre histoire  study

Ça ne ferais pas gagner grand chose au final du point de vue pratique, ce serait juste une peu plus rapide ... et le principal problème c'est que même si on met un SI, comme tu dis, il sera au niveau du post pro, autrement dit il faudrait que le PP "sache" si la surface à été detectée ou non, or le PP il crée le Gcode, il ne pilote pas la machine. Ce n'est qu'au moment de l'éxécution du Gcode qu'il serait possible de savoir quel à été le résultat du palpage, même si je ne sais pas trop, au niveau Gcode, comment savoir si le paplage s'est arrêté sur contact ou sur la limite donnée dans le G31 (les -100 dans ton cas, qui d'ailleurs ne ferait pas l'affaire, il faudrait plutôt un Z1 car les -100 ne seront jamais atteins si tu a la surface de la pièce à 0), par contre le Gcode de Mach3 ne gère pas les tests logiques (si, alors) donc pas faisable au niveau du Gcode, en tout cas pas sans faire un truc horriblement compliqué ... (voir ICI comment simuler un If/THEN/ELSE)

Juste une question bête mais qui a son importance, tu pilote comment ? port // ou carte USB/ETH, et si oui laquelle.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 19435
Points : 32136
Date d'inscription : 21/06/2009
Age : 56
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Powerglide le Mer 15 Juil 2020 - 9:50

Merci David,

Je comprend bien la problématique du"SI".Et oui , le PP ne peux pas prédire a l'avance...
pour ce qui est du plan de dégagement il est a Z50
et Le z3 il est régler dans SheetCam, et correspond a la hauteur de perçage, et il est lié au Z3 , position a partir de laquelle le palpage est pris en compte! (j(ai fait un essai en modifiant la hauteur de percage)
Par contre je pourrait peux etre arriver en mettant une hauteur de perçage, et corriger avec un offset négatif (-27)! mais ca fait bidouille..

Je suis en port // DB25
Powerglide
Powerglide
petit nouveau
petit nouveau

Messages : 9
Points : 13
Date d'inscription : 11/07/2020
Age : 38
Localisation : Bretagne

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  dh42 le Mer 15 Juil 2020 - 22:27

Salut,

Je suis en port // DB25

Ok, c'est déjà une bonne chose, au moins on est sûr que c'est 100% compatible.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 19435
Points : 32136
Date d'inscription : 21/06/2009
Age : 56
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

Sequence de Palpage G31 plasma Empty Re: Sequence de Palpage G31 plasma

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum