5b647b0cde
- Aggiunta comunicazione con il Flexium e classe astratta da cui eredita anche comunicazione Axium.
1236 lines
42 KiB
VB.net
1236 lines
42 KiB
VB.net
|
|
Imports System.Collections.Generic
|
|
Imports System.ComponentModel
|
|
Imports System.Data
|
|
Imports System.Drawing
|
|
Imports System.Linq
|
|
Imports System.Text
|
|
Imports System.Windows.Forms
|
|
|
|
Namespace Num
|
|
Public Class NumNC
|
|
Inherits CN_generico
|
|
|
|
|
|
#Region " Classes"
|
|
#End Region
|
|
|
|
#Region " Enum"
|
|
|
|
Enum eDatatype As Short
|
|
tpUnknown = -1 ' -1 unknown ...
|
|
tpByte = 0 ' 0: signed byte - SINT8
|
|
tpUByte = 1 ' 1: unsigned byte - UINT8
|
|
tpShort = 2 ' 2: short integer - SINT16
|
|
tpUShort = 3 ' 3: unsigned short integer - UINT16
|
|
tpLong = 4 ' 4: long integer - SINT32
|
|
tpULong = 5 ' 5: unsigned long integer - UINT32
|
|
tpDouble = 6 ' 6: double floating point
|
|
tpByteMap = 7 ' 7: byte bitmap - read as UINT8, show as BOOL
|
|
tpWordMap = 8 ' 8: word bitmap - read as UINT16, show as BOOL
|
|
tpLongMap = 9 ' 9: long bitmap - read as UINT32, show as BOOL
|
|
tpLLong = 10 ' 10: 64 bits integer long
|
|
tpByteLongMap = 11 ' 11: long bitmap - read as UINT32, show as BYTE
|
|
End Enum
|
|
|
|
Enum eCnMode As Short
|
|
AutoM = 0
|
|
SingleM = 1
|
|
MDI = 2
|
|
Manual = 7
|
|
End Enum
|
|
|
|
#End Region
|
|
|
|
#Region " Num objects"
|
|
|
|
' Instance the FXServer object variables
|
|
|
|
Dim WithEvents objDRunTimeSystem As FXServer.DRunTimeSystem
|
|
Dim WithEvents objDGroupManager As FXServer.DGroupManager
|
|
Dim WithEvents objDReadELS As FXServer.DReadELS
|
|
Dim WithEvents objDPlcVariables As FXServer.DPlcVariables
|
|
Dim WithEvents objDVariables As FXServer.DVariables
|
|
Dim WithEvents objDReadTestExectime As FXServer.DReadTestExectime
|
|
Dim WithEvents objDPosition As FXServer.DPosition
|
|
Dim WithEvents objDNCKParameter As FXServer.DNCKParameter
|
|
Dim WithEvents objDMdiCommand As FXServer.DMdiCommand
|
|
Dim WithEvents objDMainCncData As FXServer.DMainCncData
|
|
|
|
Dim WithEvents objDNumDirectory As FXServer.DNumDirectory
|
|
Dim WithEvents objDInterpo As FXServer.DInterpo
|
|
|
|
Dim WithEvents objDGeneralFunctions As FXServer.DGeneralFunctions
|
|
|
|
Dim WithEvents objDFeedOverride As FXServer.DFeedOverride
|
|
Dim WithEvents objDReadSpindleComplete As FXServer.DReadSpindleComplete
|
|
|
|
Dim WithEvents objDFileTransfer As FXServer.DFileTransfer
|
|
|
|
Dim WithEvents objDTool As FXServer.DTool
|
|
|
|
|
|
|
|
'FXLib
|
|
Dim WithEvents objSystemFunctions As FXLib.SystemFunctions
|
|
Dim WithEvents objCncState As FXLib.CncState
|
|
|
|
'FXLog
|
|
Dim WithEvents objErrorHandler As FXLog.ErrorHandler
|
|
Dim WithEvents objConfig As FXLog.Config
|
|
|
|
#End Region
|
|
|
|
#Region " local var"
|
|
|
|
Private n_dTool_range_start As Short = 1
|
|
Private n_dTool_range_stop As Short = 2
|
|
|
|
#End Region
|
|
|
|
#Region " Constructor"
|
|
|
|
Sub New()
|
|
|
|
' Initialize and start Runtime System
|
|
|
|
InitFxServer()
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "Internal Methods"
|
|
|
|
' Init FXServer class DRunTimSystem
|
|
|
|
Private Sub InitFxServer()
|
|
|
|
n_state = 0
|
|
|
|
'Initialize the class DRunTimeSystem
|
|
objDRunTimeSystem = New FXServer.DRunTimeSystem()
|
|
objDRunTimeSystem.Init()
|
|
|
|
n_state = 1
|
|
|
|
While n_state < 2
|
|
System.Threading.Thread.Sleep(500) ' 0.5 sec wait
|
|
End While
|
|
|
|
sz_versionRTS = objDRunTimeSystem.GetVersionRTS
|
|
sz_ConnectionAddress = objDRunTimeSystem.GetConnectionAddress
|
|
sz_AffaireNumber = objDRunTimeSystem.GetAffaireNumber(1).ToString
|
|
|
|
End Sub
|
|
|
|
' Init FXServer classes for application
|
|
|
|
Private Sub InitFxObjects()
|
|
|
|
Dim n_ret As Short
|
|
|
|
'Initialize FXServer class DGroupManager
|
|
objDGroupManager = New FXServer.DGroupManager()
|
|
objDGroupManager.CncNumber = 0
|
|
objDGroupManager.AxisGroup = 0 ' seleziona gruppo assi CH1
|
|
|
|
'Initialize FXServer class DMdiCommand
|
|
objDMdiCommand = New FXServer.DMdiCommand()
|
|
objDMdiCommand.Init(objDGroupManager.Handle)
|
|
|
|
'Initialize FXServer class DMainCncData
|
|
objDMainCncData = New FXServer.DMainCncData()
|
|
objDMainCncData.Init(objDGroupManager.Handle)
|
|
|
|
'Initialize FXServer class DGeneralFunctions
|
|
objDGeneralFunctions = New FXServer.DGeneralFunctions()
|
|
objDGeneralFunctions.Init(objDGroupManager.Handle)
|
|
|
|
'Initialize FXServer class DFileTransfer
|
|
objDFileTransfer = New FXServer.DFileTransfer
|
|
objDFileTransfer.Init(objDGroupManager.Handle)
|
|
|
|
|
|
|
|
' --------'Initialize FXServer class DFeedOverride
|
|
' --------objDFeedOverride = New FXServer.DFeedOverride()
|
|
' --------objDFeedOverride.Init(objDGroupManager.Handle)
|
|
|
|
|
|
' Detect and identify the Flexium CNC type
|
|
sz_CncFxIdentifier = objDMainCncData.GetCncIdentifier()
|
|
' _txtGetCncIdentification.Invoke(DirectCast(Sub() _txtGetCncIdentification.Text = CncFxIdentifier, MethodInvoker))
|
|
|
|
If sz_CncFxIdentifier = "Flexium 6" OrElse sz_CncFxIdentifier = "Flexium 8" OrElse sz_CncFxIdentifier = "Flexium 68" Then
|
|
IsFlexiumPlus = False
|
|
Else
|
|
IsFlexiumPlus = True
|
|
End If
|
|
|
|
d_LinearAxisPrecision = CDbl(objDMainCncData.GetLinearPrecision())
|
|
|
|
'
|
|
' Initialize FXServer class DPosition
|
|
'
|
|
objDPosition = New FXServer.DPosition()
|
|
|
|
'--objDPosition.Flag = 0
|
|
'--objDPosition.ModeOP = 0
|
|
'--objDPosition.FastUpdate = 0 ' Disable FastUpdate=0 To show the refresh time by Flag > 0
|
|
|
|
|
|
|
|
objDPosition.Init(objDGroupManager.Handle)
|
|
|
|
'--objDPosition.FireValues()
|
|
|
|
n_validaxes = objDPosition.FireValidAxis()
|
|
|
|
'
|
|
' Initialize FXServer class DReadELS
|
|
'
|
|
'objDReadELS = New FXServer.DReadELS
|
|
|
|
'Metodi
|
|
'objDReadELS.Flag = 0
|
|
'objDReadELS.Init(objDGroupManager.Handle)
|
|
'objDReadELS.AddParameter("E80000", 1)
|
|
' objDReadELS.AddParameter("E80001", 2)
|
|
' objDReadELS.AddParameter("E80002", 3)
|
|
'objDReadELS.AddParameter("E70000", 2)
|
|
'objDReadELS.AddParameter("L100", 3)
|
|
'
|
|
' dall' esterno call ReadEls_Add_Parameter ( "E80000", 1 )
|
|
'
|
|
|
|
objDVariables = New FXServer.DVariables
|
|
|
|
objDVariables.Init(objDGroupManager.Handle, "E80000", 10) ' 10 variables
|
|
|
|
|
|
|
|
' short n_c = Convert.ToInt16(_Variables[9, 1].Text );
|
|
' short rc = objDVariables.WriteVariables2(2, objDGroupManager.Handle, "E80000", n_c); // era 60001
|
|
|
|
'Dim Paras() As String = New String(1) {"E80000", "E80001"}
|
|
'Dim Paras As String = "E80000;E80001"
|
|
'Dim Valus As Object
|
|
'Dim MyRnd As New Random
|
|
|
|
'Valus = MyRnd.Next(500) & ";" & MyRnd.Next(450, 1000)
|
|
|
|
'objDVariables.WriteVariables(objDGroupManager.Handle, Paras, Valus)
|
|
|
|
'
|
|
'Initialize FXServer class DInterpo
|
|
'
|
|
objDInterpo = New FXServer.DInterpo
|
|
objDInterpo.Init(objDGroupManager.Handle)
|
|
|
|
|
|
'Initialize FXServer class DReadSpindleComplete
|
|
|
|
|
|
' Only available with FX Server >= 3.9
|
|
' objDReadSpindleComplete.ValueChanged2 += new FXServer.IDReadSpindleCompleteEvents_ValueChanged2EventHandler(objDReadSpindleComplete_ValueChanged2);
|
|
|
|
objDReadSpindleComplete = New FXServer.DReadSpindleComplete
|
|
n_ret = objDReadSpindleComplete.Init(objDGroupManager.Handle)
|
|
|
|
|
|
' Initialize FXServer class DTool
|
|
|
|
objDTool = New FXServer.DTool
|
|
n_ret = objDTool.Init(objDGroupManager.Handle)
|
|
|
|
|
|
' Initialize FXLib SystemFunctions object
|
|
|
|
' --------objSystemFunctions = New FXLib.SystemFunctions()
|
|
' --------' objSystemFunctions.InitWindowsEvent()
|
|
|
|
' --------' Load Language Values to List
|
|
' --------objSystemFunctions.FireAllLanguages()
|
|
|
|
|
|
'Initialize FXLog Config Objects
|
|
|
|
' --------objConfig = New FXLog.Config()
|
|
' --------objConfig.Init()
|
|
|
|
|
|
' Initialize FXLog ErrorHandler Objects
|
|
|
|
' --------objErrorHandler = New FXLog.ErrorHandler()
|
|
|
|
' --------' Initialisation config for testing
|
|
' --------' Accepting all messages
|
|
' --------' Consult the documentation for detailed information
|
|
|
|
' --------objErrorHandler.AllError = 1
|
|
' --------objErrorHandler.ErrorGlobal = 0
|
|
' --------objErrorHandler.SetChannel(0, 0)
|
|
' --------objErrorHandler.AcceptBootSysMessage(1)
|
|
' --------objErrorHandler.AcceptException(0)
|
|
|
|
' Initialize FXLib CncState objects
|
|
|
|
' --------objCncState = New FXLib.CncState()
|
|
' --------objCncState.Init()
|
|
|
|
|
|
' Initializes FXServer Component DNumDirectory
|
|
' works with the zone 0 (Customer content)
|
|
|
|
' --------objDNumDirectory = New FXServer.DNumDirectory()
|
|
|
|
' --------objDNumDirectory.Init(objDGroupManager.Handle)
|
|
' --------objDNumDirectory.ReadMemorySize()
|
|
|
|
|
|
End Sub
|
|
|
|
' Close FXServer objects
|
|
|
|
Private Sub CloseFxObjects()
|
|
|
|
' FXServer classes without method Close() to close the object => possibilty
|
|
' FXServer objectvariable can dispose from memory by following procedure
|
|
|
|
' !!!!!!!!!!!! aggiungere release di tutti gli oggetti creati !!!!
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDGroupManager)
|
|
objDGroupManager = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDMdiCommand)
|
|
objDMdiCommand = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDMainCncData)
|
|
objDMainCncData = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDGeneralFunctions)
|
|
objDGeneralFunctions = Nothing
|
|
|
|
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objDFeedOverride)
|
|
' --------objDFeedOverride = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDPosition)
|
|
objDPosition = Nothing
|
|
|
|
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadELS)
|
|
' --------objDReadELS = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDVariables)
|
|
objDVariables = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDInterpo)
|
|
objDInterpo = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadSpindleComplete)
|
|
objDReadSpindleComplete = Nothing
|
|
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDTool)
|
|
objDTool = Nothing
|
|
|
|
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objSystemFunctions)
|
|
' --------objSystemFunctions = Nothing
|
|
|
|
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objConfig)
|
|
' --------objConfig = Nothing
|
|
|
|
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objErrorHandler)
|
|
' --------objErrorHandler = Nothing
|
|
|
|
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objCncState)
|
|
' --------objCncState = Nothing
|
|
|
|
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objDNumDirectory)
|
|
' --------objDNumDirectory = Nothing
|
|
|
|
' FXServer dispose by the class method Close()
|
|
|
|
MessageBox.Show("CloseFxObjects")
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region " Events"
|
|
|
|
#Region "-- FXServer -- DRunTimeSystem EVENTS"
|
|
|
|
'
|
|
' ' ------->> FXServer Event DRunTimeSystem ServerInitializationFinished
|
|
'
|
|
Private Sub objDRunTimeSystem_ServerInitializationFinished() Handles objDRunTimeSystem.ServerInitializationFinished
|
|
|
|
' Initialize the FXServer class for application
|
|
|
|
InitFxObjects()
|
|
|
|
sz_ServerInitStatus = "FXServer objects initialized !"
|
|
sz_ServerReinitStatus = "FXServer no objects closed !"
|
|
|
|
n_state = 2
|
|
|
|
End Sub
|
|
|
|
'
|
|
' ' ------->> FXServer Event DRunTimeSystem ServerReinitializationStarted
|
|
'
|
|
Private Sub objDRunTimeSystem_ServerReinitializationStarted() Handles objDRunTimeSystem.ServerReinitializationStarted
|
|
|
|
CloseFxObjects()
|
|
|
|
sz_ServerInitStatus = "FXServer objects closed !"
|
|
sz_ServerReinitStatus = "FXServer objects not initialized !"
|
|
|
|
n_state = 3
|
|
|
|
End Sub
|
|
|
|
'Private Delegate Sub _RTSWaitForInteraction(ByVal state As Short, ByVal question As Short, ByVal Cnc As Short, ByVal extAdr As Short, ByVal AddStrings As Object)
|
|
|
|
Private Sub objDRunTimeSystem_RTSWaitForInteraction(ByVal state As Short, ByVal question As Short, ByVal Cnc As Short, _
|
|
ByVal extAdr As Short, ByVal AddStrings As Object) Handles objDRunTimeSystem.RTSWaitForInteraction
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub objDRunTimeSystem_CncApplikationLoaded(ByVal value As Short) Handles objDRunTimeSystem.CncApplikationLoaded
|
|
|
|
'If Me.InvokeRequired Then
|
|
'Invoke(New CncApplikationLoaded(AddressOf objDRunTimeSystem_CncApplikationLoaded), value)
|
|
'Else
|
|
' lstData.Items.Add("CncApplikationLoaded--> " & value ' !!!!!!!!!!!!!!!!!!!!!!
|
|
'End If
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DGroupManager EVENTS"
|
|
|
|
'
|
|
' ' ------->> FXServer Event DGroupManager ErrorHandler
|
|
'
|
|
Private Sub objDGroupManager_ErrorHandler(szError As String, nTextNumber As Short) Handles objDGroupManager.ErrorHandler
|
|
MessageBox.Show("DGroupManager.ErrorHandler message : " & szError & "ErrorHandler number : " & nTextNumber.ToString)
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DGeneralFunctions EVENTS"
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions ProgramActivated
|
|
|
|
Private Sub objDGeneralFunctions_ProgramActivated(nErrorcode As Short) Handles objDGeneralFunctions.ProgramActivated
|
|
n_activate_error_code = nErrorcode ' 0 = OK ; > 0 errorcode
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions OnCncStart
|
|
|
|
Private Sub objDGeneralFunction_OnCncStart(nErrorcode As Short) Handles objDGeneralFunctions.OnCncStart
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions OnCncStop
|
|
|
|
Private Sub objDGeneralFunction_OnCncStop(nErrorcode As Short) Handles objDGeneralFunctions.OnCncStop
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions OnCncReset
|
|
|
|
Private Sub objDGeneralFunction_OnCncReset(nErrorcode As Short) Handles objDGeneralFunctions.OnCncReset
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions CncModeWritten
|
|
|
|
Private Sub objDGeneralFunction_CncModeWritten(nErrorcode As Short) Handles objDGeneralFunctions.CncModeWritten
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions VariableWritten
|
|
|
|
Private Sub objDGeneralFunction_VariableWritten(nErrorcode As Short) Handles objDGeneralFunctions.VariableWritten
|
|
|
|
If nErrorcode <> 0 Then
|
|
MessageBox.Show("DGeneralFunctions.VariableWritten :" + " " + nErrorcode.ToString())
|
|
End If
|
|
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions OnCncStop
|
|
|
|
Private Sub objDGeneralFunction_OnSkipLevelWritten(iHandle As Integer, nErrorcode As Short) Handles objDGeneralFunctions.OnSkipLevelWritten
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DFileTransfer EVENTS"
|
|
|
|
' ' ------->> FXServer Event DFileTransfer Completed
|
|
|
|
Private Sub objDFileTransfer_Completed(l_Handle As Integer) Handles objDFileTransfer.Completed
|
|
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event DFileTransfer TransferStarted
|
|
|
|
Private Sub objDFileTransfer_TransferStarted(l_Handle As Integer) Handles objDFileTransfer.TransferStarted
|
|
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event DFileTransfer Failed
|
|
|
|
Private Sub objDFileTransfer_Failed(l_Handle As Integer, n_seq As Short, n_reason As Short) Handles objDFileTransfer.Failed
|
|
|
|
End Sub
|
|
|
|
' ' ------->> FXServer Event DFileTransfer BytesTransfered
|
|
|
|
Private Sub objDFileTransfer_BytesTransfered(l_Handle As Integer, l_bytes As Integer) Handles objDFileTransfer.BytesTransfered
|
|
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DFeedOverride EVENTS"
|
|
|
|
' ' ------->> FXServer Event GeneralFunctions ValueChanged
|
|
|
|
Private Sub objDFeedOverride_ValueChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDFeedOverride.ValueChanged
|
|
|
|
Dim n As Short, ni As Short
|
|
Dim index() As Object
|
|
Dim values() As Object
|
|
|
|
index = vtArrayIndex
|
|
values = vtArrayValue
|
|
|
|
For n = 0 To index.Length - 1
|
|
|
|
ni = CInt(index(n))
|
|
l_channel_override(ni) = CLng(values(n))
|
|
Next
|
|
|
|
b_feed_override_changed = True
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DPosition EVENTS"
|
|
'
|
|
' ' ------->> FXServer Event DPosition PositionChanged
|
|
'
|
|
Private Sub objDposition_PositionChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.PositionChanged
|
|
|
|
Dim n As Short, ni As Short
|
|
|
|
Dim index() As Object
|
|
Dim values() As Object
|
|
|
|
index = vtArrayIndex
|
|
values = vtArrayValue
|
|
|
|
For n = 0 To index.Length - 1
|
|
|
|
ni = CInt(index(n))
|
|
d_axis_position(ni) = CDbl(CLng(values(n))) / d_LinearAxisPrecision
|
|
Next
|
|
|
|
If b_axis_events_enable Then MyBase.OnNewPositionData()
|
|
|
|
End Sub
|
|
|
|
Private Sub objDPosition_DeltaChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.DeltaChanged
|
|
|
|
Dim n As Short, ni As Short
|
|
|
|
Dim index() As Object
|
|
Dim values() As Object
|
|
|
|
index = vtArrayIndex
|
|
values = vtArrayValue
|
|
|
|
For n = 0 To index.Length - 1
|
|
|
|
ni = CInt(index(n))
|
|
d_axis_delta(ni) = CDbl(CLng(values(n))) / d_LinearAxisPrecision
|
|
Next
|
|
|
|
If b_axis_events_enable Then MyBase.OnNewPosDeltaData()
|
|
|
|
End Sub
|
|
|
|
Private Sub objDPosition_EndposChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.EndposChanged
|
|
End Sub
|
|
|
|
Private Sub objDPosition_OffsetChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.OffsetChanged
|
|
End Sub
|
|
|
|
Private Sub objDPosition_ValidAxisChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.ValidAxisChanged
|
|
|
|
Dim n As Short, ni As Short
|
|
Dim valid_i() As Object
|
|
Dim valid_v() As Object
|
|
|
|
valid_i = vtArrayIndex
|
|
valid_v = vtArrayValue
|
|
|
|
For n = 0 To valid_i.Length - 1
|
|
ni = CInt(valid_v(n))
|
|
If ni = 0 Then
|
|
b_axis_valid(n) = False
|
|
Else
|
|
b_axis_valid(n) = True
|
|
End If
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub objDPosition_ValuesChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.ValuesChanged
|
|
End Sub
|
|
|
|
Private Sub objDPosition_ReadOncePositionChanged(lHandle As Integer, vtArrayValue As Object) Handles objDPosition.ReadOncePositionChanged
|
|
End Sub
|
|
|
|
Private Sub objDPosition_ReadOnceDeltaChanged(lHandle As Integer, vtArrayValue As Object) Handles objDPosition.ReadOnceDeltaChanged
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DReadELS EVENTS"
|
|
|
|
''
|
|
'' ATTENZIONE : vengono sparati tutti e 3 gli eventi..... tenerne 1 solo !!! !!! !!!
|
|
''
|
|
#Region " smorto"
|
|
#If False Then
|
|
Private Sub objDReadELS_ValueChanged(ByVal nHandle As Short, ByVal dValue As Double, ByVal nErrorcode As Short) Handles objDReadELS.ValueChanged
|
|
|
|
Dim sza As String
|
|
|
|
If (nHandle < 1 Or nHandle > MAX_VALUES) Then
|
|
MsgBox(" Invalid handle in Validchanged : " + nHandle.ToString)
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If (nErrorcode <> 0) Then MsgBox(" Error in Validchanged : " & nErrorcode.ToString + " Handle : " + nHandle.ToString)
|
|
|
|
Try
|
|
sza = dValue.ToString
|
|
|
|
Catch Ex As Exception
|
|
MsgBox(Ex.Message)
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
#End If
|
|
#End Region
|
|
|
|
Private Sub objDReadELS_ValueChanged2(nHandle As Integer, dValue As Double, nerrorCode As Short) Handles objDReadELS.ValueChanged2
|
|
|
|
If (nHandle < 1 Or nHandle > MAX_VALUES) Then
|
|
MsgBox(" Invalid handle in Validchanged2 : " + nHandle.ToString)
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If (nerrorCode <> 0) Then MsgBox(" Error in Validchanged2 : " & nerrorCode.ToString + " Handle : " + nHandle.ToString)
|
|
|
|
Try
|
|
|
|
d_DReadELS_value = dValue
|
|
n_DReadELS_handle = nHandle
|
|
|
|
Catch Ex As Exception
|
|
MsgBox(Ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
#Region " smorto"
|
|
#If False Then
|
|
|
|
|
|
' Only for FX Server >= 3.9.0.0
|
|
' poi in realt� ritorna sempre tipo = -1 per cui � eguale alle altre.....
|
|
Private Sub objDReadELS_ValueChanged3(nHandle As Integer, value As Object, DataType As Short, Writable As Short, nerrorCode As Short) Handles objDReadELS.ValueChanged3
|
|
|
|
Dim edata_type As eDatatype
|
|
Dim sValue As String
|
|
|
|
edata_type = DataType
|
|
|
|
If (nHandle < 1 Or nHandle > MAX_VALUES) Then
|
|
MsgBox(" Invalid handle in Validchanged3 : " + nHandle.ToString)
|
|
Exit Sub
|
|
End If
|
|
|
|
If (nerrorCode <> 0) Then MsgBox(" Error in Validchanged3 : " & nerrorCode.ToString + " Handle : " + nHandle.ToString)
|
|
|
|
Try
|
|
|
|
Select Case (edata_type)
|
|
|
|
Case eDatatype.tpByte ' tpByte : signed byte - SINT8
|
|
sValue = CType(value, SByte).ToString
|
|
|
|
Case eDatatype.tpUByte ' tpUByte : unsigned byte - UINT8
|
|
sValue = CType(value, Byte).ToString
|
|
|
|
Case eDatatype.tpShort ' tpShort : short integer - SINT16
|
|
sValue = CType(value, Short).ToString
|
|
|
|
Case eDatatype.tpUShort ' tpUShort 3: unsigned short integer - UINT16
|
|
sValue = CType(value, UShort).ToString
|
|
|
|
Case eDatatype.tpLong ' tpLong : long integer - SINT32
|
|
sValue = CType(value, Integer).ToString
|
|
|
|
Case eDatatype.tpULong ' tpULong : unsigned long integer - UINT32
|
|
sValue = CType(value, UInteger).ToString
|
|
|
|
Case eDatatype.tpDouble ' tpDouble : double floating point - DOUBLE
|
|
sValue = CType(value, Double).ToString
|
|
|
|
Case eDatatype.tpByteMap ' tpByteMap : byte bitmap - read as UINT8, show as BOOL
|
|
sValue = CType(value, Byte).ToString
|
|
|
|
Case eDatatype.tpWordMap ' tpWordMap : word bitmap - read as UINT16, show as BOOL
|
|
sValue = CType(value, UShort).ToString
|
|
|
|
Case eDatatype.tpLongMap ' tpLongMap : long bitmap - read as UINT32, show as BOOL
|
|
sValue = CType(value, UInteger).ToString
|
|
|
|
Case eDatatype.tpLLong ' tpLLong : 64 bits integer long
|
|
sValue = CType(value, Long).ToString
|
|
|
|
Case eDatatype.tpByteLongMap ' tpByteLongMap : long bitmap - read as UINT32, show as BYTE
|
|
sValue = CType(value, UInteger).ToString
|
|
|
|
Case eDatatype.tpUnknown ' for flexium standard we receive No datatype .. we assume it is ???? bug ... we don't know ...
|
|
sValue = value.ToString()
|
|
|
|
Case Else
|
|
|
|
sValue = String.Empty
|
|
MsgBox("objDReadELS_ValueChanged3() : Unknown Datatype !")
|
|
End Select
|
|
|
|
Catch Ex As Exception
|
|
|
|
MsgBox("objDReadELS_ValueChanged3 " & Ex.Message + " Handle : " + nHandle.ToString)
|
|
|
|
End Try
|
|
|
|
End Sub
|
|
#End If
|
|
#End Region
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DVariables EVENTS"
|
|
|
|
Private Sub objDVariables_ValueChanged(vtArrayIndex As Object, vtArrayValues As Object) Handles objDVariables.ValueChanged2
|
|
|
|
Dim n As Short, ni As Short
|
|
|
|
Dim index() As Object
|
|
Dim values() As Object
|
|
|
|
index = vtArrayIndex
|
|
values = vtArrayValues
|
|
|
|
If IsFlexiumPlus Then Exit Sub ' This event should not be used for Flexium plus as it returns wrong datatype .. (int instead of double for example)
|
|
|
|
For n = 0 To index.Length - 1
|
|
|
|
ni = CInt(index(n))
|
|
d_Dvariable_values(ni) = CDbl(CLng(values(n)))
|
|
Next
|
|
|
|
If b_axis_events_enable Then MyBase.OnNewVarChanged()
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub objDVariables_ValueChanged2(vtArrayIndex As Object, vtArrayValues As Object) Handles objDVariables.ValueChanged
|
|
'
|
|
' probabilmente evento non sparato nei flexium non plus.....
|
|
'
|
|
End Sub
|
|
|
|
Private Sub objDVariables_VariableWritten(nErrorCode As Short) Handles objDVariables.VariableWritten
|
|
|
|
If (nErrorCode <> 0) Then
|
|
MsgBox(" Error in objDVariables_VariableWritten2 : " & nErrorCode.ToString)
|
|
|
|
Else
|
|
' mettere qualcosa per il completamento ok della scrittura
|
|
b_Dvariable_changed = True
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub objDVariables_VariableWritten2(lHandle As Integer, nErrorCode As Short) Handles objDVariables.VariableWritten2
|
|
|
|
If (lHandle <> 2 Or nErrorCode <> 0) Then
|
|
MsgBox(" Error in objDVariables_VariableWritten2 : " & nErrorCode.ToString + " Handle : " + lHandle.ToString)
|
|
|
|
Else
|
|
' mettere qualcosa per il completamento ok della scrittura
|
|
b_Dvariable_changed = True
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DInterpo EVENTS"
|
|
'
|
|
' ' ------->> FXServer Event DInterpo MemorySize
|
|
'
|
|
Private Sub objDInterpo_ValuesChanged(vtArrayValue As Object) Handles objDInterpo.ValuesChanged
|
|
|
|
'0 = "Interpolation speed", 1= "Not used", 2 = "Distance to go", 3 = "Programmed feedrate", 4 = "Feed override [%]"
|
|
|
|
Dim n As Short
|
|
|
|
Dim values() As Object
|
|
|
|
values = vtArrayValue
|
|
|
|
For n = 0 To values.Length - 1
|
|
d_DInterpo_values(n) = CDbl(CLng(values(n)))
|
|
Next
|
|
|
|
d_DInterpo_Prog_Feed = d_DInterpo_values(3)
|
|
d_DInterpo_Feed_override = d_DInterpo_values(4)
|
|
b_feed_override_changed = True
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DReadSpindleComplete EVENTS"
|
|
'
|
|
' ' ------->> FXServer Event DReadSpindleComplete ValueChanged
|
|
'
|
|
Private Sub objDReadSpindleComplete_ValueChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDReadSpindleComplete.ValueChanged
|
|
|
|
Dim n As Short, n_spindle As Short, n_info As Short
|
|
|
|
Dim index() As Object
|
|
Dim values() As Object
|
|
|
|
index = vtArrayIndex
|
|
values = vtArrayValue
|
|
|
|
For n = 0 To index.Length - 1
|
|
|
|
n_spindle = CShort(index(n) \ 10)
|
|
n_info = CShort(index(n) Mod 10)
|
|
|
|
If (n_spindle > (MAX_VALUES - 1) Or n_info > 10) Then Exit For
|
|
|
|
Select Case n_info
|
|
|
|
|
|
Case 2 ' % override
|
|
n_spindle_override(n_spindle) = CShort(values(n))
|
|
|
|
Case 3 ' prog speed
|
|
d_spindle_prog(n_spindle) = CDbl(values(n))
|
|
|
|
Case 4 ' meas. speed
|
|
d_spindle_eff(n_spindle) = CDbl(values(n))
|
|
Case Else
|
|
|
|
End Select
|
|
|
|
'ni = CInt(index(n))
|
|
'd_axis_position(ni) = CDbl(CLng(values(n)))
|
|
|
|
|
|
Next
|
|
|
|
b_spindle_data_changed = True
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DTool EVENTS"
|
|
'
|
|
' ' ------->> FXServer Event DTool ToolDataChanged
|
|
'
|
|
Private Sub objDTool_ToolDataChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDTool.ToolDataChanged
|
|
|
|
' Read the change of the Tools data
|
|
|
|
Dim n As Short, n_tool As Short, n_data As Short, l_value As Long, nt As Short
|
|
|
|
Dim index() As Object
|
|
Dim values() As Object
|
|
|
|
index = vtArrayIndex
|
|
values = vtArrayValue
|
|
|
|
For n = 0 To index.Length - 1
|
|
|
|
Try
|
|
n_tool = CShort(index(n) \ 10)
|
|
n_data = CShort(index(n) Mod 10)
|
|
|
|
nt = n_tool - n_dTool_range_start
|
|
l_value = CLng(values(n))
|
|
|
|
If (n_tool < n_dTool_range_start Or n_tool > n_dTool_range_stop Or n_data > 7) Then Continue For
|
|
|
|
Select Case n_data
|
|
|
|
Case 0 ' Tool type ( Mill / lathe )
|
|
|
|
If l_value = 0 Then
|
|
Tools(nt).type = "M"
|
|
Else
|
|
Tools(nt).type = "L"
|
|
End If
|
|
|
|
Case 1 ' lenght / X
|
|
Tools(nt).lenght = CDbl(l_value) / 1000.0
|
|
|
|
Case 2 ' radius / Z
|
|
Tools(nt).radius = CDbl(l_value) / 1000.0
|
|
|
|
Case 3 ' Cut radius / Cut tip
|
|
Tools(nt).tip = CDbl(l_value) / 1000.0
|
|
|
|
Case 4 ' D lenght
|
|
Tools(nt).D_lenght = CDbl(l_value) / 1000.0
|
|
|
|
Case 5 ' D_radius
|
|
Tools(nt).D_radius = CDbl(l_value) / 1000.0
|
|
|
|
Case 6 ' nose dir
|
|
Tools(nt).nose_dir = "C" & (l_value).ToString
|
|
|
|
Case 7 ' toolcom
|
|
Tools(nt).comp_num = CShort(l_value)
|
|
|
|
Case Else
|
|
|
|
End Select
|
|
Catch ex As Exception
|
|
MsgBox(" Error in objDTool_ToolDataChanged : " & ex.Message)
|
|
End Try
|
|
|
|
Next
|
|
|
|
b_Tool_data_changed = True
|
|
End Sub
|
|
'
|
|
' ' ------->> FXServer Event DTool ToolDataWritten
|
|
'
|
|
Private Sub objDTool_ToolDataWritten(l_Handle As Integer, n_error_code As Short) Handles objDTool.ToolDataWritten
|
|
|
|
If l_Handle <> 1 Or n_error_code <> 0 Then
|
|
MessageBox.Show("Error: objDTool_ToolDataWritten handle : " & l_Handle.ToString & " error : " & n_error_code.ToString())
|
|
End If
|
|
|
|
End Sub
|
|
'
|
|
' ' ------->> FXServer Event DTool DynamicToolDataWritten
|
|
'
|
|
Private Sub objDTool_DynamicToolDataWritten(l_Handle As Integer, n_error_code As Short) Handles objDTool.DynamicToolDataWritten
|
|
|
|
If l_Handle <> 2 Or n_error_code <> 0 Then
|
|
MessageBox.Show("Error: objDTool_DynamicToolDataWritten handle : " & l_Handle.ToString & " error : " & n_error_code.ToString())
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "-- FXServer -- DNumDirectory EVENTS"
|
|
'
|
|
' ' ------->> FXServer Event DNumDirectory MemorySize
|
|
'
|
|
Private Sub objDNumDirectory_MemorySize(vtArrayIndex As Object, vtArrayValue As Object) Handles objDNumDirectory.MemorySize
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "-- FXServer -- DMdiCommand EVENTS"
|
|
|
|
'
|
|
' ------->> FXServer Event DMdiCommand CommandWritten
|
|
'
|
|
Private Sub objDMdiCommand_CommandWritten(retVal As Short) Handles objDMdiCommand.CommandWritten
|
|
|
|
'throw new NotImplementedException();
|
|
|
|
If retVal <> 0 Then
|
|
MessageBox.Show("Error CommandWritten :" + " " + retVal.ToString())
|
|
End If
|
|
|
|
sz_ManualDataInput = ""
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "-- FXLog -- ErrorHandler EVENTS"
|
|
|
|
'
|
|
' ' ------->> FXLog Event ErrorHandler ErrorOnCnc .....
|
|
'
|
|
Private Sub objErrorHandler_ErrorOnCnc(cnc As Short, channel As Short, nset As Short) Handles objErrorHandler.ErrorOnCnc
|
|
End Sub
|
|
|
|
Private Sub objErrorHandler_ErrorOnOtherChannel(status As Short) Handles objErrorHandler.ErrorOnOtherChannel
|
|
End Sub
|
|
|
|
Private Sub objErrorHandler_Exception(status As Short) Handles objErrorHandler.Exception
|
|
End Sub
|
|
|
|
Private Sub objErrorHandler_ErrorFromActiveCnc2 _
|
|
(CncNumber As Short, numberOfError As Short, ErrorTyp As Object, ErrorIndex As Object, ErrorNumber As Object, ErrorLine As Object, ErrorMessage As Object, ErrorAdditional As Object) _
|
|
Handles objErrorHandler.ErrorFromActiveCnc2
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "-- FXLib -- SystemFunctions EVENTS"
|
|
|
|
'
|
|
' ' ------->> FXLib Event SystemFunctions LanguageData
|
|
'
|
|
Private Sub objSystemFunctions_LanguageData(index As Short, shortName As String, languageName As String) Handles objSystemFunctions.LanguageData
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "-- FXLib -- CncState EVENTS"
|
|
'
|
|
' ' ------->> FXLib Event CncState ConfigUpdated ....
|
|
'
|
|
Private Sub objCncState_ConfigUpdated() Handles objCncState.ConfigUpdated
|
|
End Sub
|
|
|
|
Private Sub objCncState_ValueChanged(nc As Short, Variable As String, value As Integer) Handles objCncState.ValueChanged
|
|
End Sub
|
|
|
|
Private Sub objCncState_NotHomed(nc As Short, value As Integer) Handles objCncState.NotHomed
|
|
End Sub
|
|
|
|
Private Sub objCncState_IndependentChannels(nc As Short, indep As Short) Handles objCncState.IndependentChannels
|
|
End Sub
|
|
|
|
Private Sub objCncState_HMIValueChange(var As String, value As Integer) Handles objCncState.HMIValueChange
|
|
End Sub
|
|
#End Region
|
|
|
|
#End Region
|
|
|
|
|
|
#Region " Metodi pubblici"
|
|
|
|
Public Overrides Sub ReadEls_Add_Parameter(sz_var As String, n_par As Short)
|
|
|
|
Call objDReadELS.AddParameter(sz_var, n_par)
|
|
|
|
End Sub
|
|
'
|
|
'
|
|
' call DVariables_WriteVariables("E80000;E80001" , "1;2" )
|
|
|
|
Public Overrides Sub DVariables_WriteVariables(sz_parameters As String, sz_values As String)
|
|
|
|
Dim Valus As Object = sz_values
|
|
|
|
Dim n_ret As Short
|
|
|
|
n_ret = objDVariables.WriteVariables(objDGroupManager.Handle, sz_parameters, Valus)
|
|
|
|
End Sub
|
|
|
|
Public Overrides Sub DVariables_WriteVariables2(sz_parameters As String, sz_values As String)
|
|
|
|
Dim Valus As Object = sz_values
|
|
|
|
objDVariables.WriteVariables2(2, objDGroupManager.Handle, sz_parameters, Valus)
|
|
|
|
End Sub
|
|
|
|
Public Overrides Sub MDI_command()
|
|
|
|
Dim n_ret As Int16 = objDMdiCommand.ExecuteCommand(sz_ManualDataInput)
|
|
|
|
If n_ret <> 0 Then
|
|
|
|
MessageBox.Show("Error Execute MDI Command :" + " " + n_ret.ToString())
|
|
|
|
End If
|
|
|
|
End Sub
|
|
'
|
|
' Activate program
|
|
' returns 0 = OK ; > 0 error
|
|
'
|
|
Public Overrides Function ActivateProgram(n_part_program As Integer) As Int16
|
|
|
|
Dim l_glbPartProgramNumber As Long, n_ret As Short
|
|
|
|
l_glbPartProgramNumber = Convert.ToInt32(n_part_program)
|
|
l_glbPartProgramNumber = l_glbPartProgramNumber * 10
|
|
|
|
n_ret = objDGeneralFunctions.ActivateProgram(l_glbPartProgramNumber, 0)
|
|
|
|
Return n_ret
|
|
|
|
End Function
|
|
'
|
|
' Set DPOsition Mode OP/OM
|
|
'
|
|
Public Overrides Sub set_OP_OM(n As Short)
|
|
objDPosition.ModeOP = n
|
|
End Sub
|
|
'
|
|
' Read Once position
|
|
' returns 0 = OK ; > 0 error
|
|
'
|
|
Public Overrides Function DPOsition_ReadOnce() As Int16
|
|
|
|
Return objDPosition.ReadOnce(1, objDGroupManager.Handle, objDPosition.ModeOP)
|
|
|
|
End Function
|
|
'
|
|
' Set Cycle Start
|
|
'
|
|
Public Overrides Function DGeneralFunctions_CycleStart() As Int16
|
|
objDGeneralFunctions.CncStart()
|
|
End Function
|
|
'
|
|
' Set Feed Hold
|
|
'
|
|
Public Overrides Function DGeneralFunctions_FeedHold() As Int16
|
|
objDGeneralFunctions.CncStop()
|
|
End Function
|
|
'
|
|
' Set NC Reset
|
|
'
|
|
Public Overrides Function DGeneralFunctions_Reset() As Int16
|
|
objDGeneralFunctions.CncReset()
|
|
End Function
|
|
|
|
Public Overrides Function DGeneralFunctions_WriteCncMode(nmode As Short) As Int16
|
|
|
|
Dim ngroup0 As Short = 0
|
|
|
|
Call objDGeneralFunctions.WriteCncMode(nmode, ngroup0)
|
|
|
|
End Function
|
|
|
|
Public Overrides Function Write_var_1(sz_par As String, lvalue As Long) As Int16
|
|
|
|
Dim n_ret As Short
|
|
|
|
n_ret = objDGeneralFunctions.WriteVariable(sz_par, lvalue)
|
|
|
|
If n_ret <> 0 Then MsgBox("error from objDGeneralFunctions.WriteVariable" & n_ret.ToString)
|
|
|
|
End Function
|
|
'
|
|
' da PC a CN
|
|
'
|
|
Public Overrides Function Download_NC_prog(sz_PC_filename As String, sz_NC_filename As String) As Int16
|
|
|
|
Dim n_ret As Short
|
|
Dim n_FileDelete As Short = 1, n_IgnoreMsgZone As Short = 0
|
|
|
|
Dim lHandle As Long = 10 ' ??
|
|
|
|
n_ret = objDFileTransfer.FileDownload2(lHandle, sz_NC_filename, sz_PC_filename, "", n_FileDelete, n_IgnoreMsgZone)
|
|
|
|
If n_ret <> 0 Then MessageBox.Show("Error: FileDownload2 error : " & n_ret.ToString())
|
|
Return n_ret
|
|
|
|
End Function
|
|
'
|
|
' da CN a pc
|
|
'
|
|
Public Overrides Function Upload_NC_prog(sz_PC_filename As String, sz_NC_filename As String) As Int16
|
|
|
|
Dim n_ret As Short
|
|
Dim lHandle As Long = 20 ' ??
|
|
|
|
n_ret = objDFileTransfer.FileUpload(lHandle, sz_NC_filename, sz_PC_filename, "")
|
|
|
|
If n_ret <> 0 Then MessageBox.Show("Error: FileUpload error : " & n_ret.ToString())
|
|
Return n_ret
|
|
|
|
End Function
|
|
|
|
Public Overrides Function Delete_NC_prog(sz_NC_filename As String) As Int16
|
|
|
|
Dim n_ret As Short
|
|
Dim lHandle As Long = 20 ' ??
|
|
|
|
n_ret = objDFileTransfer.FileDelete(lHandle, sz_NC_filename, "")
|
|
|
|
If n_ret <> 0 Then MessageBox.Show("Error: FileDelete error : " & n_ret.ToString())
|
|
Return n_ret
|
|
|
|
End Function
|
|
|
|
Public Overrides Function Start_Transfer_NC_prog() As Int16
|
|
|
|
Dim n_ret As Short
|
|
|
|
n_ret = objDFileTransfer.StartTransfer()
|
|
|
|
If n_ret <> 0 Then MessageBox.Show("Error: StartTransfer error : " & n_ret.ToString())
|
|
Return n_ret
|
|
|
|
End Function
|
|
|
|
Public Overrides Function DTool_set_read_range(n_start As Short, n_stop As Short) As Short
|
|
|
|
Dim n_ret As Short
|
|
|
|
n_dTool_range_start = n_start
|
|
n_dTool_range_stop = n_stop
|
|
|
|
n_ret = objDTool.SetToolRange(n_start, n_stop)
|
|
|
|
If n_ret <> 0 Then MessageBox.Show("Error: DTool_set_red_range error : " & n_ret.ToString())
|
|
Return n_ret
|
|
|
|
End Function
|
|
|
|
Public Overrides Function DTool_write_tool(n_tool_number As Short, Length_X As Double, Radius As Double, TipRadius_Z As Double, _
|
|
DLength_X As Double, DTipRadius_Z As Double, _
|
|
nDirection As Short, nType As Short, nH As Integer) As Short
|
|
|
|
Dim n_ret As Short, l_handle As Long = 1
|
|
|
|
n_ret = objDTool.WriteToolCorr2(n_tool_number, (Length_X * 1000.0), (Radius * 1000.0), (TipRadius_Z * 1000.0), (DLength_X * 1000.0), (DTipRadius_Z * 1000.0), _
|
|
nDirection, nType, nH, objDTool.Flag, l_handle)
|
|
|
|
If n_ret <> 0 Then MessageBox.Show("Error: DTool_write_tool error : " & n_ret.ToString())
|
|
Return n_ret
|
|
|
|
End Function
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
End Class
|
|
|
|
End Namespace
|