Z-as nullen met Mach3

Alle vragen die betrekking hebben over Mach cnc controllers

Moderator: Moderators

fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Z-as nullen met Mach3

Bericht door fredmens »

Mijn frees draait nu als een zonnetje, alles werkt 100% alleen mn z-as nullen wil niet lukken.Hardwarematig is alles voor elkaar, als ik een script ervoor download reageert de Z-as ook, maar de waardes kloppen niet. Hij gaat omlaag als hij omhoog moet etc. Kortom het is iets wat in het script staat. Ik begrijp de G-codes die er in staan niet, als ik het opzoek wordt het me helaas ook niet duidelijk.

Ik heb een nieuw script gedownload welk goed blijkt te zijn, maar ook hier kan ik geen chocola bakken van metrisch versus imperial.

Wat ik zoek is iets heel simpels. Ik wil graag mn Z-as met een snelheid van 50 laten nullen (mm dus metrisch) Mijn meetapparaatje (probe) is 19.4 mm dik en als hij contact gemaakt heeft wil ik dat hij weer 10 mm omhoog gaat en uiteraard op de DRO 10 mm aangeeft dan. Is er iemand die bijgeleverd script dusdanig kan instellen dat t zo werkt, of een ander scriptje maken ?

Bij voorbaat grote dank

Code: Selecteer alles

' Auto Z and Corner Finding Touch Plate Script version 1.2 - CNC Router Parts 2017
Public TouchPlateHeight, ProbeFeedRate, XProbeDistance, YProbeDistance, ZProbeDistance, TouchPlateWidth, XProbeDirection, YProbeDirection, ZTravelHeight, ZLiftHeight, ToolDiameter As Double 
Public ProbeX, ProbeY, PauseProbe, Abort, isImperial, isImperialUOM As Boolean 

Sub Main

	NoPrompt = False 			' False = Use UI to Prompt User for corner finding options
	PauseProbe = True 			' True = Prompt user to rotate tool before X and Y axis probing
	WCSOrigin = 0 				' Default Corner 0=Left/Front 1=Left/Rear 2=Right/Front 3=Right/Rear
	
	ProbeX = False 				' By default, do not probe/zero X (change this to True to change the default)
	ProbeY = False 				' By default, do not probe/zero Y (change this to True to change the default)

	ProbeFeedrate = 10 			'IPM, Anything from 5-12 IPM will likely work well

	TouchPlateHeight = 1  			'CRP Touchplate is 1" nominal, can adjust this number to calibrate (usually not required)
	TouchPlateWidth = 2.205 		'Width of Touchplate is 2.205" (56mm) wide
	XProbeDistance = 2 			'How long to probe X Axis (inches)
	YProbeDistance = 2 			'How long to probe Y Axis (inches)
	ZProbeDistance = 2 			'How long to probe Z Axis (inches)
	ZTravelHeight = TouchPlateHeight +.125	'How high to lift tool while probing X and Y (inches)
	ZLiftHeight = TouchPlateHeight + .5 	'How high to lift tool after script is complete (inches)	
	
	
	ToolDiameter = GetOEMDro(105)	
	isImperial = GetOEMLED(801)
	isImperialUOM = isImperial
	Abort = True
	
	If (GetOEMLED(800)) Then
		Message ("Error: Emergency Mode is Active ")
		Exit Function
	End If
	
	If isImperial = False Then   
		ProbeFeedrate = ProbeFeedrate * 25.4
		XProbeDistance = XProbeDistance * 25.4
		YProbeDistance = YProbeDistance * 25.4
		ZProbeDistance = ZProbeDistance * 25.4
		ZTravelHeight = ZTravelHeight * 25.4
		ZLiftHeight = ZLiftHeight * 25.4
		TouchPlateWidth = TouchPlateWidth * 25.4
		TouchPlateHeight = TouchPlateHeight * 25.4
	End If
	
	
	If NoPrompt = False Then
		Begin Dialog DlgCheckAxis 15,32,215,90,"Select Axes to Auto Zero",.DlgCheckAxis
		OKButton 140,8,40,14
		CancelButton 140,30,40,14
		GroupBox 10,3,45,50,"",.GroupAxesChk
		CheckBox 12,10,30,8,"Z Axis",.ChkBoxZAxis
		CheckBox 12,26,30,8,"X Axis",.ChkBoxXAxis
		CheckBox 125,50,80,8,"Pause Between Axes",.ChkBoxPauseProbe
		CheckBox 12,42,30,8,"Y Axis",.ChkBoxYAxis
		GroupBox 62,3,55,68,"",.GroupAxesChk
		
		OptionGroup .grp1
		OptionButton 65,10,50,8,"Left/Front",.ComboLeftFront
		OptionButton 65,26,50,8,"Left/Rear",.ComboLeftRear
		OptionButton 65,42,50,8,"Right/Front",.ComboRightFront
		OptionButton 65,58,50,8,"Right/Rear",.ComboRightRear
		
		Text 16,75,100,100,"Tool Diameter: ",.TextToolDiaLabel
		TextBox 69,75,30,10,.TextToolDiameter
		
		OptionGroup .grp2
		OptionButton 104,75,35,10,"inches",.UnitImperial
		OptionButton 139,75,35,10,"mm",.UnitMetric
		
		End Dialog
				
		Dim Dlg1 As DlgCheckAxis
				
		Dlg1.TextToolDiameter = ""+ToolDiameter
		Dlg1.grp1 = WCSOrigin 'default is left/front
		Dlg1.grp2 = 0 'default is inches (Imperial)
		If isImperial = False Then
			Dlg1.grp2 = 1
		End If
		Dlg1.ChkBoxXAxis = ProbeX
		Dlg1.ChkBoxYAxis = ProbeY
		Dlg1.ChkBoxPauseProbe = PauseProbe
		Button = Dialog ( Dlg1 )
		ProbeX = Dlg1.ChkBoxXAxis
		ProbeY = Dlg1.ChkBoxYAxis
	Else
		Select Case WCSOrigin
			Case 0
				XProbeDirection = 1
				YProbeDirection = 1
			Case 1 
				XProbeDirection = 1
				YProbeDirection = -1
			Case 2
				XProbeDirection = -1
				YProbeDirection = -1
			Case 3
				XProbeDirection = -1
				YProbeDirection = 1
		End Select
		Abort = false
	End If 

	If ( ProbeX Or ProbeY ) Then
		If Not NoPrompt Then
			If IsNumeric(Dlg1.TextToolDiameter) Then
				ToolDiameter = CDbl(Dlg1.TextToolDiameter)
				If (isImperial And Dlg1.grp2 = 1) Then
					ToolDiameter = ToolDiameter/25.4
				End If
				If (Not isImperial And Dlg1.grp2 = 0) Then
					ToolDiameter = ToolDiameter*25.4
				End If
			Else
				Code "(Invalid Tool Diameter)"
				Abort = true
			End If
		End If
		
		ToolDiameterImperial = ToolDiameter
		If Not isImperial Then
			ToolDiameterImperial = ToolDiameter/25.4
		End	If
		If (Not Abort And ToolDiameterImperial <= 0) Then
			Code "(Tool Diameter is too small)"
			Abort = true
		End If
		If (Not Abort And ToolDiameterImperial > 2) Then
			Code "(Tool Diameter is too large)"
			Abort = true
		End If
		
		If (Not Abort And Not NoPrompt) Then
			SetOEMDro(105,ToolDiameter)
		End If
	End If
	
	If Not Abort Then
		Message ("Auto Tool Sequence Activating...")
		AutoZeroMachine
	End If
End Sub

Sub AutoZeroMachine()
	If GetOEMLED(825) <> 0 Then 'Check to see if the touch plate is already activated
	Code "(Touch plate is already activated, check connection and try again)"
	Else
	FeedCurrent = GetOemDRO(818) 'Get the current settings
	XCurrent = GetDro(0)
	YCurrent = GetDro(1)
	ZCurrent = GetDro(2)
	
	ToolRad = ToolDiameter/2
	
	Code "G4 P1" 'Pause 1sec
	Code "F" &ProbeFeedRate 
		
	'Always probe z
	ZNew = ZCurrent - ZProbeDistance
	Code "G31 Z" &ZNew
	While IsMoving()
	Wend
	SetDro(2,TouchPlateHeight)
	Code "G0 Z" &ZTravelHeight  'rapid move back off plate enough to travel
	
	If ProbeX Then		
		If PauseProbe Then
			MsgBox "Align Tool Flutes for X-Axis Travel and Press OK"
		End If 	
		XNew = XCurrent + (XProbeDistance * XProbeDirection) 'probe vector
		Code "G31 X" &XNew
		While IsMoving() 'wait for the move to finish
		Wend
		SetDro(0,(TouchPlateWidth-ToolRad)*XProbeDirection)
		
		If XProbeDirection = 1 Then
			Code "G0 X" &(TouchPlateWidth/2)-ToolRad 'Center the tool on touch plate
		Else
			Code "G0 X" &((TouchPlateWidth/2)-ToolRad)*-1 'Center the tool on touch plate
		End If
	End If
	
 	If ProbeY Then
		If PauseProbe Then
			MsgBox "Align Tool Flutes for Y-Axis Travel and Press OK"
		End If 	
		YNew = YCurrent + (YProbeDistance * YProbeDirection) 'probe vector
		Code "G31 Y" &YNew
		While IsMoving() 'wait for the move to finish
		Wend
		SetDro(1,(TouchPlateWidth-ToolRad)*YProbeDirection)
		
		If YProbeDirection = 1 Then
			Code "G0 Y" &(TouchPlateWidth/2)-ToolRad 'Center the tool on touch plate
		Else
			Code "G0 Y" &((TouchPlateWidth/2)-ToolRad)*-1 'Center the tool on touch plate
		End If 	
	End If
	
	Code "G0 Z" &ZLiftHeight
	Code "F" &FeedCurrent 'restore starting feed rate
	Message ("Auto Tool Sequence Complete.")

	End If 
End Sub

Function DlgCheckAxis( ControlID$, Action%, SuppValue%)
	DlgValue "ChkBoxZAxis", 1
	DlgEnable "ChkBoxZAxis",0
	
	If DlgValue("ChkBoxPauseProbe") = 1  Then	
		PauseProbe = True
	Else
		PauseProbe = False

	End If 
	
	If DlgValue("ChkBoxYAxis") = 1 Or DlgValue("ChkBoxXAxis") = 1 Then
		DlgEnable "ComboLeftFront",1
		DlgEnable "ComboLeftRear",1
		DlgEnable "ComboRightFront",1
		DlgEnable "ComboRightRear",1
		DlgEnable "ChkBoxPauseProbe",1
		DlgEnable "TextToolDiameter",1
		DlgEnable "TextToolDiaLabel",1
		DlgEnable "UnitImperial",1
		DlgEnable "UnitMetric",1
	Else 
		DlgEnable "ComboLeftFront",0
		DlgEnable "ComboLeftRear",0
		DlgEnable "ComboRightFront",0
		DlgEnable "ComboRightRear",0
		DlgEnable "ChkBoxPauseProbe",0
		DlgEnable "TextToolDiameter",0
		DlgEnable "TextToolDiaLabel",0
		DlgEnable "UnitImperial",0
		DlgEnable "UnitMetric",0
	End If		

	If DlgValue("ChkBoxXAxis") = 1  Then
		ProbeX = True
	Else
		ProbeX = False
	End If
	
	If DlgValue("ChkBoxYAxis") = 1  Then
		ProbeY = True
	Else
		ProbeY = False
	End If
	
	If Action = 3 And ControlID$ = "TextToolDiameter" And Not IsNumeric(DlgText("TextToolDiameter")) Then
		DlgText "TextToolDiameter",""+ToolDiameter
	End If
	
	If Action = 2 Then
		If ControlID$ = "UnitMetric" And isImperialUOM Then
			ToolDiameter = CDbl(DlgText("TextToolDiameter"))*25.4
			DlgText "TextToolDiameter",""+ToolDiameter
			isImperialUOM = false
		End If
		If ControlID$ = "UnitImperial" And Not isImperialUOM Then
			ToolDiameter = CDbl(DlgText("TextToolDiameter"))/25.4
			DlgText "TextToolDiameter",""+ToolDiameter
			isImperialUOM = true
		End If
		If ControlID$ = "Ok" Then
			Abort = False
			If DlgValue ("ComboLeftFront") = 1 Then
				XProbeDirection = 1
				YProbeDirection = 1 
			ElseIf DlgValue ("ComboLeftRear") = 1 Then
				XProbeDirection = 1
				YProbeDirection = -1 
			ElseIf DlgValue ("ComboRightRear") = 1 Then
				XProbeDirection = -1
				YProbeDirection = -1
			ElseIf DlgValue ("ComboRightFront") = 1 Then
				XProbeDirection = -1
				YProbeDirection = 1
			End If
		End If
	End If
End Function

fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

Ik heb inmiddels een veel compacter script gekregen. Enig probleem is nog dat De z-as naar beneden komt zoals gehoopt, ik "contact" maak met de probe. IN de definitie staat dat hij dan 10 mm omhog moet, helaas gaat hij dan 10 mm omlaag. Verder klopt hij


CurrentFeed = GetOemDRO(818) 'Get the current feedrate.
PlateThickness = 19.4
ProbeFeed = 50

Code "G90 F" &ProbeFeed
While IsMoving()
Wend
If GetOemLed (825)=0 Then
Code "G4 P3" 'Time to get to the z-plate
While IsMoving()
Wend
Code "G31Z-50 F" &ProbeFeed
While IsMoving()
Wend
Code "G4 P0.25"
While IsMoving()
Wend
ZProbePos = GetVar(2002)
While IsMoving()
Wend
Code "G0 Z" &ZProbePos
While IsMoving ()
Wend
Call SetDro (2, PlateThickness)
While IsMoving()
Wend
Code "G4 P0.5" 'Pause for Dro to update.
While IsMoving()
Wend
Code "G0 Z10" 'Change the Z retract height here
While IsMoving()
Wend
Code "(Z axis is now zeroed)"
While IsMoving()
Wend
Code "F" &CurrentFeed
Else
Code "(Z-Plate is grounded, check connection and try again)"
Exit Sub
End If
Gebruikersavatar
rien1959
Berichten: 637
Lid geworden op: 18 mar 2008 16:59
Contacteer:

Re: Z-as nullen met Mach3

Bericht door rien1959 »

Ik vraag me af of je de Z-as wel juist hebt ingesteld. Wanneer je de spindel van de tafel af beweegt, dus omhoog, wordt de waarde van de Z-as dan wel groter ? Zo niet dan heb je de richting in de instellingen verkeerd staan.
fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

Yup, als deZ-as naar boven gaat (van t bed af) neemt de waarde toe. Als hij vanaf 0 naar beneden in t materiaal duikt krijg ik een negatieve waarde. Hij freest overigens alles netjes, alle waarden kloppen met frezen, het zit echt puur in t automatisch nullen
skillalot
Donateur
Berichten: 3251
Lid geworden op: 19 apr 2007 19:04
Locatie: Nijmegen
Contacteer:

Re: Z-as nullen met Mach3

Bericht door skillalot »

Code: Selecteer alles

CurrentFeed = GetOemDRO(818)				'huidige feedrate
Sensorheight = 19.4					'hoogte van je probe
SafeHeight = 10						'veilige hoogte na meten
ProbeFeed = 50						'snelheid van de probebeweging
CurrentAbsInc = GetOemLED(48)				'absoluut of incrementeel actief?


If GetOemLED(825) <>0 Then				'als de sensor al bediend is:
	Code "(ERROR: Probe signaal al aktief)"		'error melding geven
	Exit Sub					'en stoppen met deze macro
Else							'zo niet dan onderstaande uitvoeren:
	code "G91 G31 Z-50 F" &Probefeed		'probe beweging 50mm incrementeel omlaag
	While IsMoving()				'wachten tot probe beweging klaar is
	Wend						'
	ProbePos = GetVar(2002)				'exacte positie opslaan toen signaal binnen kwam
	Code "G0 Z" &ProbePos				'terug omhoog naar dit punt bewegen
	While IsMoving()				'wachten tot deze beweging voltooid is
	Wend
	Code "G92 Z" &Sensorheight			'Z-as instellen op hoogte van sensor
	Sleep 100					'100ms wachten
End If


Code "G91 G0 Z" &SafeHeight				'beweeg incrementeel naar veilige hoogte boven sensor
While IsMoving()					'wacht tot op deze hoogte
Wend							


If CurrentAbsInc Then					'snelheid en incrementeel/absoluut weer terug zetten
	Code "G90 F" &CurrentFeed
Else
	Code "G91 F" &CurrentFeed
End If


End Sub
Het staat hier een beetje door elkaar, als je in Mach3 VB editor opent staat het wel netjes. Commentaar staat erbij zodat je misschien begrijpt wat er gebeurd.
Probeer dit zo eens of dat werkt.
Laatst gewijzigd door skillalot op 11 mei 2017 22:37, 1 keer totaal gewijzigd.
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Z-as nullen met Mach3

Bericht door hugo stoutjesdijk »

Ik weet het niet, maar ?
Zou het kunnen dat ie het touch point op Z19.4 zet, als je dan daarna naar Z10 gaat, gaat ie dus naar beneden.
Je zou es Z25 kunnen invullen in die Z.
Of dat ook de safeheight is, geen idee, maar het kan vast geen kwaad om daar even 30 in te vullen.
(bij dit soort probeersels probeer ik altijd getallen in te vullen die herkenbaar zijn, dan weet je waar ze vandaan komen. Dus Z25.3 en 30.4 of zo iets.)
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

Bedankt,

ga ik morgen avond zeker proberen. keep you informed



skillalot schreef:

Code: Selecteer alles

CurrentFeed = GetOemDRO(818)				'huidige feedrate
Sensorheight = 19.4					'hoogte van je probe
SafeHeight = 10						'veilige hoogte na meten
ProbeFeed = 50						'snelheid van de probebeweging
CurrentAbsInc = GetOemLED(48)				'absoluut of incrementeel actief?


If GetOemLED(825) <>0 Then				'als de sensor al bediend is:
	Code "(ERROR: Probe signaal al aktief)"		'error melding geven
	Exit Sub					'en stoppen met deze macro
Else							'zo niet dan onderstaande uitvoeren:
	code "G91 G31 Z-50 F" &Probefeed		'probe beweging 50mm incrementeel omlaag
	While IsMoving()				'wachten tot probe beweging klaar is
	Wend						'
	ProbePos = GetVar(2002)				'exacte positie opslaan toen signaal binnen kwam
	Code "G0 Z" &ProbePos				'terug omhoog naar dit punt bewegen
	While IsMoving()				'wachten tot deze beweging voltooid is
	Wend
	Code "G92 Z" &Sensorheight			'Z-as instellen op hoogte van sensor
	Sleep 100					'100ms wachten
End If


Code "G91 G0 Z" &SafeHeight				'beweeg incrementeel naar veilige hoogte boven sensor
While IsMoving()					'wacht tot op deze hoogte
Wend							


If CurrentAbsInc Then					'snelheid en incrementeel/absoluut weer terug zetten
	Code "G90 F" &CurrentFeed
Else
	Code "G91 F" &CurrentFeed
End If


End Sub
Het staat hier een beetje door elkaar, als je in Mach3 VB editor opent staat het wel netjes. Commentaar staat erbij zodat je misschien begrijpt wat er gebeurd.
Probeer dit zo eens of dat werkt.
fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

He bedankt, ik ga dit, samen met dat andere voorstel morgen avond proberen. ik hou jullie op de hoogte, eerst mn zoon verhuizen morgen.

hugo stoutjesdijk schreef:Ik weet het niet, maar ?
Zou het kunnen dat ie het touch point op Z19.4 zet, als je dan daarna naar Z10 gaat, gaat ie dus naar beneden.
Je zou es Z25 kunnen invullen in die Z.
Of dat ook de safeheight is, geen idee, maar het kan vast geen kwaad om daar even 30 in te vullen.
(bij dit soort probeersels probeer ik altijd getallen in te vullen die herkenbaar zijn, dan weet je waar ze vandaan komen. Dus Z25.3 en 30.4 of zo iets.)
fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

Hij geeft aan :" scripter compile error. in: en dan zegt hij niets meer helaas.
Net pas de kans het te testen na een verhuisactie van mn jongste ;)

Ik het mach3 forum werd de suggestie gedaan een eerdere versie van Mach3 te installeren, dat de laatste versie wellicht de oorzaak was. Zegt je dat iets ??


skillalot schreef:

Code: Selecteer alles

CurrentFeed = GetOemDRO(818)				'huidige feedrate
Sensorheight = 19.4					'hoogte van je probe
SafeHeight = 10						'veilige hoogte na meten
ProbeFeed = 50						'snelheid van de probebeweging
CurrentAbsInc = GetOemLED(48)				'absoluut of incrementeel actief?


If GetOemLED(825) <>0 Then				'als de sensor al bediend is:
	Code "(ERROR: Probe signaal al aktief)"		'error melding geven
	Exit Sub					'en stoppen met deze macro
Else							'zo niet dan onderstaande uitvoeren:
	code "G91 G31 Z-50 F" &Probefeed		'probe beweging 50mm incrementeel omlaag
	While IsMoving()				'wachten tot probe beweging klaar is
	Wend						'
	ProbePos = GetVar(2002)				'exacte positie opslaan toen signaal binnen kwam
	Code "G0 Z" &ProbePos				'terug omhoog naar dit punt bewegen
	While IsMoving()				'wachten tot deze beweging voltooid is
	Wend
	Code "G92 Z" &Sensorheight			'Z-as instellen op hoogte van sensor
	Sleep 100					'100ms wachten
End If


Code "G91 G0 Z" &SafeHeight				'beweeg incrementeel naar veilige hoogte boven sensor
While IsMoving()					'wacht tot op deze hoogte
Wend							


If CurrentAbsInc Then					'snelheid en incrementeel/absoluut weer terug zetten
	Code "G90 F" &CurrentFeed
Else
	Code "G91 F" &CurrentFeed
End If


End Sub
Het staat hier een beetje door elkaar, als je in Mach3 VB editor opent staat het wel netjes. Commentaar staat erbij zodat je misschien begrijpt wat er gebeurd.
Probeer dit zo eens of dat werkt.
fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

Inmiddels weer n stukkie verder.

Ik heb onderstaan script ingevoerd maar eerst versie XX.62 van mach installeerd. In de meest recente versi schijnt iets te staan waardoor het bij mij niet zou werken.

CurrentFeed = GetOemDRO(818) 'Get the current feedrate.
PlateThickness = 19.4
ProbeFeed = 50

Code "G90 F" &ProbeFeed
While IsMoving()
Wend
If GetOemLed (825)=0 Then
Code "G4 P3" 'Time to get to the z-plate
While IsMoving()
Wend
Code "G31Z-50 F" &ProbeFeed
While IsMoving()
Wend
Code "G4 P0.25"
While IsMoving()
Wend
ZProbePos = GetVar(2002)
While IsMoving()
Wend
Code "G0 Z" &ZProbePos
While IsMoving ()
Wend
Call SetDro (2, PlateThickness)
While IsMoving()
Wend
Code "G4 P0.5" 'Pause for Dro to update.
While IsMoving()
Wend
Code "G0 Z10" 'Change the Z retract height here
While IsMoving()
Wend
Code "(Z axis is now zeroed)"
While IsMoving()
Wend
Code "F" &CurrentFeed
Else
Code "(Z-Plate is grounded, check connection and try again)"
Exit Sub
End If


En inderdaad de Z as gaat naar beneden, maakt contact en gaat naar boven en weer naar beneden.... soms.
Dat is het probleem. Naar beneden komen, contact maken en wachten. Tot daar gaat t iedere keer goed. Daarna gaat hij soms 5 mm, soms 8 mm naar boven, echter soms ook naar beneden. Geen idee waar dat aan kan liggen. Die testen worden steeds op dezelfde manier gedaan, de uitkomst is steeds anders.

Voor nu gebruik ik t systeem maar tot het punt waar hij contact maakt met de probe. Dan stop ik m handmatig voor hij verder iets wil doen en voer ik de waarde handmatig in. Een workaround, niet zoals t bedoeld is, maar wel zeker en repeteerbaar, of heeft iemand een beter idee??
skillalot
Donateur
Berichten: 3251
Lid geworden op: 19 apr 2007 19:04
Locatie: Nijmegen
Contacteer:

Re: Z-as nullen met Mach3

Bericht door skillalot »

Code: Selecteer alles

CurrentFeed = GetOemDRO(818)            'huidige feedrate
Sensorheight = 19.4               'hoogte van je probe
SafeHeight = 10                  'veilige hoogte na meten
ProbeFeed = 50                  'snelheid van de probebeweging
CurrentAbsInc = GetOemLED(48)            'absoluut of incrementeel actief?


If GetOemLED(825) <>0 Then            'als de sensor al bediend is:
   Code "(ERROR: Probe signaal al aktief)"      'error melding geven
   Exit Sub               'en stoppen met deze macro
Else                     'zo niet dan onderstaande uitvoeren:
   code "G91 G31 Z-50 F" &Probefeed      'probe beweging 50mm incrementeel omlaag
   While IsMoving()            'wachten tot probe beweging klaar is
   Wend                  '
   ProbePos = GetVar(2002)            'exacte positie opslaan toen signaal binnen kwam
   Code "G0 Z" &ProbePos            'terug omhoog naar dit punt bewegen
   While IsMoving()            'wachten tot deze beweging voltooid is
   Wend
   Code "G92 Z" &Sensorheight         'Z-as instellen op hoogte van sensor
   Sleep 100               '100ms wachten
End If


Code "G91 G0 Z" &SafeHeight            'beweeg incrementeel naar veilige hoogte boven sensor
While IsMoving()               'wacht tot op deze hoogte
Wend                     


If CurrentAbsInc Then               'snelheid en incrementeel/absoluut weer terug zetten
   Code "G90 F" &CurrentFeed
Else
   Code "G91 F" &CurrentFeed
End If


Exit Sub
Mijn fout, laatste End sub moest Exit sub zijn. Probeer nu nog maar eens.
En ik zou gewoon weer de laatste versie mach3 gebruiken.
fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

Bedankt, ik zal m zo snel mogelijk testen.

Voor t onverhoopte en onverwachte geval dat t niet zou werken, vanwege een fout in mn kaart icm de versie van Mach3. Zou je dan zo vriendelijk willen zijn deze versie aan te passen dat de z-as omlaag gaat zelfde snelheid, contact maakt en dan niets meer doet, op een ding na, dat hij 19.4 in de DRO toont ??

Bij voorbaat erg grote dank

Fred
fredmens
Berichten: 128
Lid geworden op: 26 apr 2013 22:09

Re: Z-as nullen met Mach3

Bericht door fredmens »

Inderdaad. T script werkt perfect, tot de Z-as weer omhoog moet tot X afstand. De ene keer doetie het wel, de andere keer niet, dan weer de foute richting in. Dat heeft niets met je script te doen, maar mijn breakoutcard icm de versie van Mach.

Ik kan er prima mee leven als Z naar beneden gaat. Contact maakt en blijft staan. Zou fijn zijn als de DRO 19.4 zou aangeven, maar als dat niet kan geen issue. Zoals t nu is kan ik er met een workaround mee werken.

Als het aangepast kan worden PERFECT. Zou t niet gaan, of niet niet betrouwbaar werken, dan dank voor hetgeen je al gedaan hebt, hier ie ook mee te werken.

Fred
toto5504
Berichten: 24
Lid geworden op: 11 aug 2017 22:11

Re: Z-as nullen met Mach3

Bericht door toto5504 »

Ik wil het script ook gebruiken omdat er een duidelijke beschrijving achter staat.
super gemaakt.
echter,
op het mach 3 breakout board zijn alle contacten normaly closed.
de probe is natuurlijk open tot ze elkaar raken, dus omgekeerd.
dus de groene led in diagnostics brand permanent tot ik de probe tegen ground aan houd.

is dit makkelijk te wijzigen ?

Grt.
Plaats reactie