Макрос измерения диаметра инструмента

Post Reply
RussCust
Posts: 33
Joined: Mon Sep 21, 2020 8:38 pm
Location: Москва

Макрос измерения диаметра инструмента

Post by RussCust »

mycnc wrote:
Sun Apr 25, 2021 8:23 pm
RussCust wrote:
Fri Apr 23, 2021 9:20 pm
вот как пример работы, думаю что то по аналогии с краеискателем и определении центра цилиндра, только идем от обратного с известным диаметром
Процедура практически не отличается от поиска "внешнего центра", только по завершении надо вычислить не полусумму измеренных координат (для центра), а разность (для определения диаметра), и, наверное, потом учесть размер измерительной площадки.

В визарде такого нет, но скопировать макрос и вручную добавить-подправить несколько строк не должно быть сильно сложно.


я так понимаю про этот макрос идет речь

Code: Select all

(M441: External Center Diameter)
( Find External Center XY)
M288 P4 L1 (Probe Z-)
G91 G0 Z#28 F#20 (Lift)
M109 (Sensor Protection)
G91 G0 X[-0.6*#50/100-#7075] F#20
G91 G0 Z[-1*[#27+#28]] F#22
(X Plus)
M288 P1 L0 (Axis X+)
G10 L81 P100 Q5021 ( store X1 position in reg Nr100 )
G91 G0 X[-1*[#25/100]] F#23(Rebound)
M109(Sensor Protection)
G91 G0 Z[#27+#28] F#20
G91 G0 X[#50/100+[2*[#25/100]]+#7075] F#20 (Move over)
G91 G0 Z[-1*[#27+#28]] F#22
(X Minus)
M288 P1 L1 (Axis X-)
G10 L81 P101 Q5021 ( store X2 position in reg Nr101 )
G91 G0 X[#25/100] F#23(Rebound)
M109(Sensor Protection)
G91 G0 Z[#27+#28] F#20
G10 L81 P102 Q100 ( #102 = X1 )
G10 L190 P102 Q101 ( #102 += X2 )
G10 L183 P102 Q2 ( #102 /= 2 )
G10 L190 P102 Q30 ( #102 += offsetX )
G04 P0.2(Pause)
G90 G28.9 X102 F#20 ( move to the middle X )
( Y axis )
G91 G0 Y[-0.6*#51/100-#7075] F#20
G91 G0 Z[-1*[#27+#28]] F#22
(Y Plus)
M288 P2 L0 (Axis Y+)
G10 L81 P100 Q5022 ( store Y1 position in reg Nr100 )
G91 G0 Y[-1*[#25/100]] F#23
M109(Sensor Protection)
G91 G0 Z[#27+#28] F#20
G91 G0 Y[#51/100+[2*[#25/100]]+#7075] F#20 (Move over)
G91 G0 Z[-1*[#27+#28]] F#22
(Y Minus)
M288 P2 L1 (Axis Y-)
G10 L81 P101 Q5022 ( store Y2 position in reg Nr101 )
G91 G0 Y[#25/100] F#23(Rebound)
M109(Sensor Protection)
G91 G0 Z[#27+#28] F#20
G10 L81 P102 Q100 ( #102 = Y1 )
G10 L190 P102 Q101 ( #102 += Y2 )
G10 L183 P102 Q2 ( #102 /= 2 )
G10 L190 P102 Q7506 ( #102 += offsetY )
G04 P0.2(Pause)
G90 G28.9 Y102 F#20 ( move to the middle Y )
G04 P0.2(Pause)
G90 G10L70 P#5220 X0Y0(reset work coordinates)
вот такой нашел у vers.by для linuxcnc
только проблема в том что совсем не понимаю что тут

Code: Select all

Sub Main()

' Tool Diameter Probing Script
' Author verser
' vers.by - touch probes, tool setters and precision home switches

' --------------------------------------------
' User's constants. Change for yourself.
' --------------------------------------------
Const ToolSetterDiameter = 10
Const SpindleReversRott =300
Const Zoffset =4
' -------------------------------------------- 

Dim ToolSetterAbsXPos
Dim ToolSetterAbsYPos
Dim ZAbsSafePlane
Dim ZAbsStartPos

Dim FRate1, FRate2
Dim DMax, Latch, EdgeLength
Dim XYclearance
Dim AutoZeroFlag
Dim ToolNo
Dim ToolD
Dim ProbeD
Dim Zdepth
Dim XHit, YHit, ZHit
Dim XbHit, YbHit, Diameter 

Dim Zpos

Dim XScale, YScale, ZScale

Dim AbsIncFlag

Dim CurrentFeed
Dim CurrentSpindle


'Init vars
ToolSetterAbsXPos = GetUserDRO(1835)
ToolSetterAbsYPos = GetUserDRO(1836)
ZAbsSafePlane = GetUserDRO(1837)
ZAbsStartPos = GetUserDRO(1838)
FRate1 = abs(GetUserDRO(1821))
FRate2 = abs(GetUserDRO(1822))
DMax = abs(GetUserDRO(1823))
ToolNo = GetCurrentTool()
ToolD = GetToolParam(ToolNo,1)
   If GetUserDRO(1829) = 0 then	
   	ProbeD = ToolD
	Else 
	ProbeD = GetUserDRO(1829)
   End If
Latch = abs(GetUserDRO(1825))
XYclearance = GetUserDRO(1826)
EdgeLength = GetUserDRO(1828)
Zdepth = GetUserDRO(1830)

If GetOEMLED(1871) Then
AutoZeroFlag=1
Else
AutoZeroFlag=0
End If

AbsIncFlag = GetOEMLED(49)   ' Get the current G91 state

'Temporary save all Axis Scale factors
XScale = GetOEMDRO(59)
YScale = GetOEMDRO(60)
ZScale = GetOEMDRO(61)

'Set All Axis' Scale to 1
SetOEMDRO(59,1)
SetOEMDRO(60,1)
SetOEMDRO(61,1)
Sleep(250)


'Check for Errors

If GetOemLED(16)<>0 Then ' Check for Machine Coordinates
Message "Please change to working coordinates"
SetOEMDRO(59,XScale)
SetOEMDRO(60,YScale)
SetOEMDRO(61,ZScale)
Sleep(250)
Exit Sub ' Exit if in Machine Coordinates
End If

If GetOemLED(825)<>0 Then
Message "Probe is active! Check connection and try again"
Call SetOEMDRO(59,XScale)
Call SetOEMDRO(60,YScale)
Call SetOEMDRO(61,ZScale)
Sleep(250)
Exit Sub ' Exit if probe is tripped
End If


CurrentFeed = GetOEMDRO(818) 'FeedRate()
CurrentSpindle = GetOEMDRO(39) 

'main working

	'Save Z start position
	Zpos = GetDRO(2)
	'Safe Go to start position under toolsetter
	If Not SafeMoveZ(ZAbsSafePlane-GetOEMDRO(85),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	If Not SafeMoveXY(ToolSetterAbsXPos-GetOEMDRO(83),ToolSetterAbsYPos-GetOEMDRO(84),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	If Not SafeMoveZ(ZAbsStartPos-GetOEMDRO(85),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Probe Z-
	ZHit=ProbeZ(-1,DMax,Latch,FRate1,FRate2)
	If ZHit=999999 Then 
		Exit Sub 
	End If
	PushMSG("Z- = " & (ZHit))
	If Not SafeMoveZ(Zoffset,CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If

	'Spindle revers ON
	Code "S" & SpindleReversRott
	Sleep(125)
	Code "M04"
	Sleep(2000)

	'Safe Go to X+ start position
	If Not SafeMoveX((-EdgeLength-XYclearance),CurrentFeed) Then
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	If Not SafeMoveZ((-Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Probe X+
	XHit=ProbeX(1,DMax,Latch,FRate1,FRate2)
	If XHit=999999 Then 
		Exit Sub 
	End If
	'Safe back to start position
	If Not SafeMoveZ((Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Move to X- start position
	If Not SafeMoveX(XHit+ProbeD/2-GetDRO(0)+2*EdgeLength+XYclearance,CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	If Not SafeMoveZ((-Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Probe X-
	XbHit=ProbeX(-1,DMax,Latch,FRate1,FRate2)
	If XbHit=999999 Then 
		Exit Sub 
	End If
	'Indicate result
	PushMSG("X+ = " & (XHit+ProbeD/2) & ", Xc = " & (XbHit+XHit)/2 & ", X- = " & (XbHit-ProbeD/2) & ", Lx = " & Abs(XbHit-XHit-ProbeD))
	'Safe back to start position
	If Not SafeMoveZ((Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Move to Center point
	If Not SafeMoveX((XbHit+XHit)/2-GetDRO(0),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If

	'Safe Go to Y- start position
	If Not SafeMoveY((EdgeLength+XYclearance),CurrentFeed) Then
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	If Not SafeMoveZ((-Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Probe Y-
	YHit=ProbeY(-1,DMax,Latch,FRate1,FRate2)
	If YHit=999999 Then 
		Exit Sub 
	End If
	'Safe back to start position
	If Not SafeMoveZ((Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Move to Y+ start position
	If Not SafeMoveY(YHit+ProbeD/2-GetDRO(1)-2*EdgeLength-XYclearance,CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	If Not SafeMoveZ((-Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Probe Y+
	YbHit=ProbeY(1,DMax,Latch,FRate1,FRate2)
	If YbHit=999999 Then 
		Exit Sub 
	End If

	'Spindle OFF
	Code "M05"
	Sleep(125)
	Code "S" & CurrentSpindle
	Sleep(125)

	'Indicate result
	Diameter=Abs(YbHit-YHit+ProbeD) - ToolSetterDiameter
	SetUserLabel (11, Format(Diameter, "####0.000"))
	PushMSG("Y+ = " & (YbHit+ProbeD/2) & ", Yc = " & (YbHit+YHit)/2 & ", Y- = " & YHit-ProbeD/2 & ", Ly = " & Abs(YbHit-YHit+ProbeD) & ", Tool Diameter = " & Diameter)
	'Safe back to start position
	If Not SafeMoveZ((Zdepth),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If
	'Move to Center point
	If Not SafeMoveY((YbHit+YHit)/2-GetDRO(1),CurrentFeed) Then 
		PushMSG("Tool Diameter Probing is interrupted")
		Exit Sub 
	End If



'epilog

SetOEMDRO(59,XScale)
SetOEMDRO(60,YScale)
SetOEMDRO(61,ZScale)
Sleep(250)

Call SetLED49(AbsIncFlag)
SetOEMDRO(818,CurrentFeed) 'SetFeedRate(CurrentFeed)
Sleep(125)

End Sub


'Functions

Function ProbeX(Dir,DMax,Latch,FRate1,FRate2)
	Dim Res
    Dim Xstart
	Dim Ftmp
	Dim AbsIncF
	ProbeX=999999
	Xstart = GetDRO(0)
	Ftmp = FeedRate() 'FeedRate()
	AbsIncF=GetOEMLED(49)
	'Fast Probe X
	Code "G91"
	Code "F" & FRate1
	Sleep(125)
	Call WaitProbeReady()	
	Code "G31 X" & (Dir*DMax)
	While IsMoving()
	Wend
	Res = GetVar(2000)
'	PushMSG("Res=" & Res &", Xstart=" & Xstart & ", DMax=" & DMax & ", FRate1=" & FRate1)
	If Abs(Res - Xstart - Dir*DMax) < 0.01 Then
		PushMSG("Error: G31 X search finished without making contact")
		PushMSG("Manually return to the starting position and repeat the search")
		Call SetLED49(AbsIncF)
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
		Exit Function 
	End If 
	'Move back
	Code "G00 X" & -Dir*Latch
	While IsMoving()
	Wend
	Call WaitProbeReady()	
	'Latch Probe X
	Xstart = GetDRO(0)
	Code "F" & FRate2
	Sleep(125)
	Code "G31 X" & Dir*Latch*2
	While IsMoving()
	Wend
	'Save result
	Res = GetVar(2000)
	If Abs(Res - Xstart - Dir*Latch*2) < 0.01 Then
		PushMSG("Error: G31 X latch finished without making contact")
		PushMSG("Manually return to the starting position and repeat the search")
		Call SetLED49(AbsIncF)
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
		Exit Function 
	End If 
	Code "G00 X" & -Dir*Latch
	While IsMoving()
	Wend
	Call SetLED49(AbsIncF)
	SetOEMDRO(818,Ftmp)
	Sleep(125)
	ProbeX=Res
End Function

Function ProbeY(Dir,DMax,Latch,FRate1,FRate2)
	Dim Res
    Dim Ystart
	Dim Ftmp
	Dim AbsIncF
	ProbeY=999999
	Ystart = GetDRO(1)
	Ftmp = FeedRate() 'FeedRate()
	AbsIncF=GetOEMLED(49)
	'Fast Probe Y
	Code "G91"
	Code "F" & FRate1
	Sleep(125)
	Call WaitProbeReady()	
	Code "G31 Y" & (Dir*DMax)
	While IsMoving()
	Wend
	Res = GetVar(2001)
'	PushMSG("Res=" & Res &", Ystart=" & Ystart & ", DMax=" & DMax & ", FRate1=" & FRate1)
	If Abs(Res - Ystart - Dir*DMax) < 0.01 Then
		PushMSG("Error: G31 Y search finished without making contact")
		PushMSG("Manually return to the starting position and repeat the search")
		Call SetLED49(AbsIncF)
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
		Exit Function 
	End If 
	'Move back
	Code "G00 Y" & -Dir*Latch
	While IsMoving()
	Wend
	Call WaitProbeReady()	
	'Latch Probe Y
	Ystart = GetDRO(1)
	Code "F" & FRate2
	Sleep(125)
	Code "G31 Y" & Dir*Latch*2
	While IsMoving()
	Wend
	'Save result
	Res = GetVar(2001)
	If Abs(Res - Ystart - Dir*Latch*2) < 0.01 Then
		PushMSG("Error: G31 Y latch finished without making contact")
		PushMSG("Manually return to the starting position and repeat the search")
		Call SetLED49(AbsIncF)
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
		Exit Function 
	End If 
	Code "G00 Y" & -Dir*Latch
	While IsMoving()
	Wend
	Call SetLED49(AbsIncF)
	SetOEMDRO(818,Ftmp)
	Sleep(125)
	ProbeY=Res
End Function

Function ProbeZ(Dir,DMax,Latch,FRate1,FRate2)
	Dim Res
    Dim Zstart
	Dim Ftmp
	Dim AbsIncF
	ProbeZ=999999
	Zstart = GetDRO(2)
	Ftmp = FeedRate() 'FeedRate()
	AbsIncF=GetOEMLED(49)
	'Fast Probe Z
	Code "G91"
	Code "F" & FRate1
	Sleep(125)
	Call WaitProbeReady()	
	Code "G31 Z" & (Dir*DMax)
	While IsMoving()
	Wend
	Res = GetVar(2002)
'	PushMSG("Res=" & Res &", Zstart=" & Zstart & ", DMax=" & DMax & ", FRate1=" & FRate1)
	If Abs(Res - Zstart - Dir*DMax) < 0.01 Then
		PushMSG("Error: G31 Z search finished without making contact")
		PushMSG("Manually return to the starting position and repeat the search")
		Call SetLED49(AbsIncF)
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
		Exit Function 
	End If 
	'Move back
	Code "G00 Z" & -Dir*Latch
	While IsMoving()
	Wend
	Call WaitProbeReady()	
	'Latch Probe Z
	Zstart = GetDRO(2)
	Code "F" & FRate2
	Sleep(125)
	Code "G31 Z" & Dir*Latch*2
	While IsMoving()
	Wend
	'Save result
	Res = GetVar(2002)
	If Abs(Res - Zstart - Dir*Latch*2) < 0.01 Then
		PushMSG("Error: G31 Z latch finished without making contact")
		PushMSG("Manually return to the starting position and repeat the search")
		Call SetLED49(AbsIncF)
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
		Exit Function 
	End If 
	Code "G00 Z" & -Dir*Latch
	While IsMoving()
	Wend
	Call SetLED49(AbsIncF)
	SetOEMDRO(818,Ftmp)
	Sleep(125)
	ProbeZ=Res
End Function


Function SafeMoveX(X1, F1) As Boolean 'return 1 (error) if probe tripped
    Dim Xstart
	Dim Ftmp
	Dim AbsIncF
	SafeMoveX=True
	Xstart = GetDRO(0)
	Ftmp = FeedRate() 'FeedRate()
	AbsIncF=GetOEMLED(49)
	Code "G91"
	Code "F" & F1
	Sleep(125)
	Call WaitProbeReady()	
	Code "G31 X" & X1
	While IsMoving()
	Wend
	XHit = GetVar(2000)
	Call SetLED49(AbsIncF)
	If Abs(XHit - Xstart - X1) > 0.01 Then
		SafeMoveX=False
		PushMSG("Error! Probe tripped during X movement")
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
	End If 
	SetOEMDRO(818,Ftmp)
	Sleep(125)
End Function

Function SafeMoveY(Y1, F1) As Boolean 'return 1 (error) if probe tripped
    Dim Ystart
	Dim Ftmp
	Dim AbsIncF
	SafeMoveY=True
	Ystart = GetDRO(1)
	Ftmp = FeedRate() 'FeedRate()
	AbsIncF=GetOEMLED(49)
	Code "G91"
	Code "F" & F1
	Sleep(125)
	Call WaitProbeReady()	
	Code "G31 Y" & Y1
	While IsMoving()
	Wend
	YHit = GetVar(2001)
	Call SetLED49(AbsIncF)
	If Abs(YHit - Ystart - Y1) > 0.01 Then
		SafeMoveY=False
		PushMSG("Error! Probe tripped during Y movement")
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
	End If 
	SetOEMDRO(818,Ftmp)
	Sleep(125)
End Function

Function SafeMoveXY(X1, Y1, F1) As Boolean 'return 1 (error) if probe tripped
    Dim Xstart
    Dim Ystart
	Dim Ftmp
	Dim AbsIncF
	SafeMoveXY=True
	Xstart = GetDRO(0)
	Ystart = GetDRO(1)
	Ftmp = FeedRate() 'FeedRate()
	AbsIncF=GetOEMLED(49)
	Code "G91"
	Code "F" & F1
	Sleep(125)
	Call WaitProbeReady()	
	Code "G31 X" & X1 & "Y" & Y1
	While IsMoving()
	Wend
	XHit = GetVar(2000)
	YHit = GetVar(2001)
	Call SetLED49(AbsIncF)
	If (Abs(XHit - Xstart - X1) > 0.01) or (Abs(YHit - Ystart - Y1) > 0.01) Then
		SafeMoveXY=False
		PushMSG("Error! Probe tripped during XY movement")
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
	End If 
	SetOEMDRO(818,Ftmp)
	Sleep(125)
End Function

Function SafeMoveZ(Z1, F1) As Boolean 'return 1 (error) if probe tripped
    Dim Zstart
	Dim Ftmp
	Dim AbsIncF
	SafeMoveZ=True
	Zstart = GetDRO(2)
	Ftmp = FeedRate() 'FeedRate()
	AbsIncF=GetOEMLED(49)
	Code "G91"
	Code "F" & F1
	Sleep(125)
	Call WaitProbeReady()	
	Code "G31 Z" & Z1
	While IsMoving()
		Sleep(100)
	Wend
	ZHit = GetVar(2002)
	Call SetLED49(AbsIncF)
	If Abs(ZHit - Zstart - Z1) > 0.01 Then
		SafeMoveZ=False
		PushMSG("Error! Probe tripped during Z movement")
		Code "M05"
		Sleep(125)
		Code "S" & CurrentSpindle
		Sleep(125)
		SetOEMDRO(818,Ftmp)
		Sleep(125)
	End If 
	SetOEMDRO(818,Ftmp)
	Sleep(125)
End Function

Function PushMSG(Str1 As String) As Boolean
	SetUserLabel (21,GetUserLabel(20))
	SetUserLabel (20,GetUserLabel(19))
	SetUserLabel (19,GetUserLabel(18))
	SetUserLabel (18,GetUserLabel(17))
	SetUserLabel (17,Str1)
	Message Str1
	PushMSG=True
End Function

Sub WaitProbeReady()
	While GetOemLED(825)
		Sleep(100)
	Wend
End Sub

Sub SetLED49(Flag)
	If Flag Then
		Code "G91"
		Sleep(125)
	Else
		Code "G90"
		Sleep(125)
	End If
End Sub

nik1
Posts: 376
Joined: Sun Jan 27, 2019 4:17 pm

Re: Макрос измерения диаметра инструмента

Post by nik1 »

Как по мне , то еще нужно будет учитывать ход срабатывания датчика при определении диаметра фрезы
Потому как пара соток(а то и больше) там легко набежит
Наверное это можно подогнать за счет изменения размера пятачка

Пыс, работаешь переточенными фрезами?

Umnik
Posts: 247
Joined: Sun May 19, 2019 7:16 pm

Re: Макрос измерения диаметра инструмента

Post by Umnik »

я поначалу тоже хотел заморочиться с измерением диаметра фрезки, но сейчас немного поработав на новом станке понял, что это в общем-то не так и нужно.
С нормальной механикой и сервами он и без фактического диаметра инструмента режет не хуже, чем в пару соток "с ходу", как говорится.
Фрезы китайские, но не самого говеного качества.

RussCust
Posts: 33
Joined: Mon Sep 21, 2020 8:38 pm
Location: Москва

Re: Макрос измерения диаметра инструмента

Post by RussCust »

nik1 wrote:
Mon Apr 26, 2021 5:03 am
Как по мне , то еще нужно будет учитывать ход срабатывания датчика при определении диаметра фрезы
Потому как пара соток(а то и больше) там легко набежит
Наверное это можно подогнать за счет изменения размера пятачка

Пыс, работаешь переточенными фрезами?
при обработке стали фреза "садится" быстрее чем по дюрали, и вот иногда проще замерить диаметр, чем лазить и обмерять деталь

Umnik
Posts: 247
Joined: Sun May 19, 2019 7:16 pm

Re: Макрос измерения диаметра инструмента

Post by Umnik »

а не правильнее будет в таком случае разделять инструмент для черновой и чистовой обработок?
Вчерную ободрал одной фрезкой, пускай малость подуставшей, а чистовой вогнал в требуемый размер.
И поверхность чище будет....

RussCust
Posts: 33
Joined: Mon Sep 21, 2020 8:38 pm
Location: Москва

Re: Макрос измерения диаметра инструмента

Post by RussCust »

Umnik wrote:
Mon Apr 26, 2021 8:49 pm
а не правильнее будет в таком случае разделять инструмент для черновой и чистовой обработок?
Вчерную ободрал одной фрезкой, пускай малость подуставшей, а чистовой вогнал в требуемый размер.
И поверхность чище будет....
с одной стороны так проще, но когда не нужно чистовые делать, но в тоже время нужно знать на сколько отклонения есть.
Плюсом я использую фрезы с пластинами, измерив можно понять что пора их менять, да и вообще для больших фрез значение диаметра актуально

mycnc
Posts: 1113
Joined: Thu May 10, 2018 2:42 pm
Location: Ottawa, Canada
Contact:

Re: Макрос измерения диаметра инструмента

Post by mycnc »

Постараемся показать пример, но с первого раза такие макросы (без возможности запустить и проверить) не всегда получаются правильно.
Хорошо бы, чтобы вы немного ориентироавлись в коде, чтобы по месту подправить

RussCust
Posts: 33
Joined: Mon Sep 21, 2020 8:38 pm
Location: Москва

Re: Макрос измерения диаметра инструмента

Post by RussCust »

mycnc wrote:
Thu Apr 29, 2021 2:08 am
Постараемся показать пример, но с первого раза такие макросы (без возможности запустить и проверить) не всегда получаются правильно.
Хорошо бы, чтобы вы немного ориентироавлись в коде, чтобы по месту подправить
я только учусь коду, но улавливаю быстро. Если будут сноски, то думаю сделаем

Post Reply