OmagCUT :

- movimento manuale 5assi ortogonale al piano lama con aggiunta spessore lama (opzionale da ini macchina)
- aggiunta lettura variabile 5assi attivo da vecchio NUM (Axium)
- aggiunta possibilità attacco lama speciale a zig-zag per ceramica.
This commit is contained in:
Dario Sassi
2020-06-24 14:22:12 +00:00
parent 15c1479dbf
commit 5bc49b74cf
7 changed files with 78 additions and 42 deletions
+2
View File
@@ -667,6 +667,7 @@ Friend Module CamAuto
Dim dReducedDepth As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_REDUCEDDEPTH, 1, m_MainWindow.GetMachIniFile())
Dim dHolesOffset As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OFFSET, 0, m_MainWindow.GetMachIniFile())
Dim dHolesOverlap As Double = GetPrivateProfileDouble(S_MACH_NEST, K_MACH_HOLES_OVERLAP, 0, m_MainWindow.GetMachIniFile())
Dim dCutSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_CUT, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
Dim dCornerSafety As Double = Math.Max(GetPrivateProfileDouble(S_MACH_NEST, K_MACH_SAFE_LEN_INTCORNER, 1, m_MainWindow.GetMachIniFile()), 10 * EPS_SMALL)
Dim bOneHoleIntCorner As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_ONEHOLE_INTCORNER, 0, m_MainWindow.GetMachIniFile()) <> 0)
Dim bMillingOnCorners As Boolean = (GetPrivateProfileInt(S_MACH_NEST, K_MACH_MILLING_ON_CORNERS, 1, m_MainWindow.GetMachIniFile()) <> 0)
@@ -682,6 +683,7 @@ Friend Module CamAuto
EgtLuaSetGlobNumVar("CAM.HOLESOFFSET", dHolesOffset)
EgtLuaSetGlobNumVar("CAM.HOLESOVERLAP", dHolesOverlap)
EgtLuaSetGlobBoolVar("CAM.ONEHOLEINTCORNER", bOneHoleIntCorner)
EgtLuaSetGlobNumVar("CAM.CUTSAFETY", dCutSafety)
EgtLuaSetGlobNumVar("CAM.CORNERSAFETY", dCornerSafety)
EgtLuaSetGlobBoolVar("CAM.MILLINGONCORNERS", bMillingOnCorners)
EgtLuaSetGlobBoolVar("CAM.MILLINGONSINKS", bMillingOnSinks)
+2
View File
@@ -159,6 +159,7 @@
Public Const K_SAWROUGHING As String = "SawRoughing"
Public Const K_SAWFINISHING As String = "SawFinishing"
Public Const K_WATERJETTING As String = "WaterJetting"
Public Const K_SAWINGSPECIALLEADIN As String = "SawingSpecialLeadIn"
Public Const S_MACH_NEST As String = "Nest"
Public Const K_MACH_HOLES_OFFSET As String = "HolesOffset"
@@ -209,6 +210,7 @@
Public Const S_MACH_DIRECTCUTS As String = "DirectCuts"
Public Const K_FINALHOME As String = "FinalHome"
Public Const K_ADDSAWTHTO5AXMOVE As String = "AddSawThTo5AxMove"
Public Const S_MACHBUTTONS As String = "MachButtons"
Public Const S_CONTROLMACHBUTTONS As String = "ControlMachButtons"
+17 -2
View File
@@ -111,9 +111,24 @@ Public Class ManualAxesMoveUC
' Leggo se in modalità 3a o 5a
Dim bG24On As Boolean = m_CN.Is_G24_active()
EgtLuaSetGlobBoolVar("CMD.G24", bG24On)
' Recupero spessore lama corrente
Dim sSaw As String = m_MainWindow.m_CurrentMachine.sCurrSaw
EgtTdbSetCurrTool(sSaw)
Dim dThick As Double = 0
EgtTdbGetCurrToolParam(MCH_TP.THICK, dThick)
EgtLuaSetGlobNumVar("CMD.SAWTH", dThick)
' Assegno nome e valore asse da muovere
EgtLuaSetGlobStringVar("CMD.AXISNAME", GetAxisName(CurrentBtn))
EgtLuaSetGlobNumVar("CMD.AXISMOVE", GetAxisMove(CurrentBtn))
Dim sAxName As String = GetAxisName(CurrentBtn)
Dim dAxVal As Double = GetAxisMove(CurrentBtn)
If m_MainWindow.m_CurrentMachine.bAddSawThTo5AxMove And bG24On And sAxName = "X" Then
If dAxVal > 0 Then
dAxVal += dThick
ElseIf dAxVal < 0 Then
dAxVal -= dThick
End If
End If
EgtLuaSetGlobStringVar("CMD.AXISNAME", sAxName)
EgtLuaSetGlobNumVar("CMD.AXISMOVE", dAxVal)
' Calcolo stringa di comando risultante
EgtLuaCallFunction("CmdString")
EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
+19
View File
@@ -84,6 +84,7 @@ Public Class CurrentMachine
Private m_bSawRoughing As Boolean = False
Private m_bSawFinishing As Boolean = False
Private m_bWaterJetting As Boolean = False
Private m_bSawingSpecialLeadIn As Boolean = False
' Variabili che contengono il nome degli utensili disponibili per tipo
Private m_sCurrSaw As String = String.Empty
@@ -126,6 +127,8 @@ Public Class CurrentMachine
' Flag home finale per tagli diretti
Private m_bDirectCutsFinalHome As Boolean = True
' Flag aggiunta spessore lama a movimento manuale 5assi
Private m_bAddSawThTo5AxMove As Boolean = False
' Variazione iniziale/finale della feed dei tagli
Private m_bFsevEnable As Boolean = False
@@ -475,6 +478,12 @@ Public Class CurrentMachine
End Get
End Property
Friend ReadOnly Property bSawingSpecialLeadIn As Boolean
Get
Return m_bSawingSpecialLeadIn
End Get
End Property
Friend Property sCurrSaw As String
Get
Return m_sCurrSaw
@@ -761,6 +770,12 @@ Public Class CurrentMachine
End Set
End Property
Friend ReadOnly Property bAddSawThTo5AxMove As Boolean
Get
Return m_bAddSawThTo5AxMove
End Get
End Property
Friend ReadOnly Property bFsevEnable As Boolean
Get
Return m_bFsevEnable
@@ -1065,6 +1080,8 @@ Public Class CurrentMachine
' taglio waterjet
m_bWaterJetting = (GetPrivateProfileInt(S_MACHININGS, K_WATERJETTING, 0, sMachIniFile) > 0) And
m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.ENABLE_WJ)
' possibilità di definire attacco speciale per materiali ceramici
m_bSawingSpecialLeadIn = (GetPrivateProfileInt(S_MACHININGS, K_SAWINGSPECIALLEADIN, 0, sMachIniFile) > 0)
' Leggo utensili correnti
' lama
@@ -1153,6 +1170,8 @@ Public Class CurrentMachine
' Leggo flag per posizione home alla fine dei tagli diretti
m_bDirectCutsFinalHome = (GetPrivateProfileInt(S_MACH_DIRECTCUTS, K_FINALHOME, 1, sMachIniFile) <> 0)
' Leggo flag per aggiunta spessore lama a movimento manuale 5assi
m_bAddSawThTo5AxMove = (GetPrivateProfileInt(S_MACH_DIRECTCUTS, K_ADDSAWTHTO5AXMOVE, 0, sMachIniFile) <> 0)
' Leggo dati per feed ridotta all'inizio/fine dei tagli
m_bFsevEnable = (GetPrivateProfileInt(S_NEST, K_MACH_CUTFSEVENABLE, 0, sMachIniFile) <> 0)
+16 -28
View File
@@ -125,9 +125,9 @@ Public Class MachiningDbPageUC
LonOffsetTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 16)
RadOffsetTxBl.Text = EgtMsg(MSG_TOOLSDBPAGEUC + 17)
SpecificLeadInGpBx.Header = "AttaccoCeramica(SISTEMARE)"
SpecificLenTxBl.Text = "Lunghezza(SIST.)"
SpecificStepTxBl.Text = "Step(SIST.)"
SpecificLeadInGpBx.Header = EgtMsg( 90894) 'Attacco Ceramica
SpecificLenTxBl.Text = EgtMsg( 90895) 'Lunghezza
SpecificStepTxBl.Text = EgtMsg( 90896) 'Passo
MinThicknessTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 25)
MaxThicknessTxBl.Text = EgtMsg(MSG_MACHININGSDBPAGEUC + 26)
@@ -489,9 +489,9 @@ Public Class MachiningDbPageUC
EgtMdbGetCurrMachiningParam(MCH_MP.THICKREF, ToolDouble)
ThicknessFeedTxBx.Text = LenToString(ToolDouble, 3)
' Attacco specifico
'EgtMdbGetCurrMachiningParam(MCH_MP.SPECIFICLEN, ToolDouble)
EgtMdbGetCurrMachiningParam( MCH_MP.LITANG, ToolDouble)
SpecificLenTxBx.Text = LenToString(ToolDouble, 3)
'EgtMdbGetCurrMachiningParam(MCH_MP.SPECIFICSTEP, ToolDouble)
EgtMdbGetCurrMachiningParam( MCH_MP.LIELEV, ToolDouble)
SpecificStepTxBx.Text = LenToString(ToolDouble, 3)
' Sovramateriale
EgtMdbGetCurrMachiningParam(MCH_MP.OFFSL, ToolDouble)
@@ -561,10 +561,12 @@ Public Class MachiningDbPageUC
EgtMdbSetCurrMachiningParam(MCH_MP.STEPEXTARC, dTemp)
StringToLen(ArcIntTxBx.Text, dTemp)
EgtMdbSetCurrMachiningParam(MCH_MP.STEPINTARC, dTemp)
StringToLen(SpecificLenTxBx.Text, dTemp)
'EgtMdbSetCurrMachiningParam(MCH_MP.SPECIFICLEN, dTemp)
StringToLen(SpecificStepTxBx.Text, dTemp)
'EgtMdbSetCurrMachiningParam(MCH_MP.SPECIFICSTEP, dTemp)
If nMachiningType = MCH_MY.SAWING Then
StringToLen(SpecificLenTxBx.Text, dTemp)
EgtMdbSetCurrMachiningParam( MCH_MP.LITANG, dTemp)
StringToLen(SpecificStepTxBx.Text, dTemp)
EgtMdbSetCurrMachiningParam( MCH_MP.LIELEV, dTemp)
End If
' Parametri Foratura
StringToLen(StartPosTxBx.Text, dTemp)
EgtMdbSetCurrMachiningParam(MCH_MP.STARTPOS, dTemp)
@@ -611,8 +613,10 @@ Public Class MachiningDbPageUC
EgtMdbSetCurrMachiningParam(MCH_MP.LPTURNS, nTemp)
StringToInt(HpTurnsTxBx.Text, nTemp)
EgtMdbSetCurrMachiningParam(MCH_MP.HPTURNS, nTemp)
StringToLen(LiTangTxBx.Text, dTemp)
EgtMdbSetCurrMachiningParam(MCH_MP.LITANG, dTemp)
If nMachiningType = MCH_MY.WATERJETTING Then
StringToLen(LiTangTxBx.Text, dTemp)
EgtMdbSetCurrMachiningParam(MCH_MP.LITANG, dTemp)
End If
StringToLen(LiPerpTxBx.Text, dTemp)
EgtMdbSetCurrMachiningParam(MCH_MP.LIPERP, dTemp)
StringToLen(LoTangTxBx.Text, dTemp)
@@ -837,9 +841,7 @@ Public Class MachiningDbPageUC
LoTangTxBx.Visibility = Windows.Visibility.Hidden
LoPerpTxBl.Visibility = Windows.Visibility.Hidden
LoPerpTxBx.Visibility = Windows.Visibility.Hidden
SpecificLeadInGpBx.Visibility = Windows.Visibility.Visible
SpecificLenTxBl.Visibility = Windows.Visibility.Visible
SpecificStepTxBx.Visibility = Windows.Visibility.Visible
SpecificLeadInGpBx.Visibility = If( m_MainWindow.m_CurrentMachine.bSawingSpecialLeadIn, Windows.Visibility.Visible, Windows.Visibility.Hidden)
Case MCH_MY.MILLING 'Parametri Fresatura
SideAngleTxBl.Visibility = Windows.Visibility.Hidden
SideAngleTxBx.Visibility = Windows.Visibility.Hidden
@@ -1004,8 +1006,6 @@ Public Class MachiningDbPageUC
LoPerpTxBl.Visibility = Windows.Visibility.Hidden
LoPerpTxBx.Visibility = Windows.Visibility.Hidden
SpecificLeadInGpBx.Visibility = Windows.Visibility.Hidden
SpecificLenTxBl.Visibility = Windows.Visibility.Hidden
SpecificStepTxBx.Visibility = Windows.Visibility.Hidden
Case MCH_MY.DRILLING 'Parametri Foratura
SideAngleTxBl.Visibility = Windows.Visibility.Hidden
SideAngleTxBx.Visibility = Windows.Visibility.Hidden
@@ -1126,8 +1126,6 @@ Public Class MachiningDbPageUC
LoPerpTxBl.Visibility = Windows.Visibility.Hidden
LoPerpTxBx.Visibility = Windows.Visibility.Hidden
SpecificLeadInGpBx.Visibility = Windows.Visibility.Hidden
SpecificLenTxBl.Visibility = Windows.Visibility.Hidden
SpecificStepTxBx.Visibility = Windows.Visibility.Hidden
Case MCH_MY.SAWROUGHING 'Parametri Sgrossatura con lama
SideAngleTxBl.Visibility = Windows.Visibility.Hidden
SideAngleTxBx.Visibility = Windows.Visibility.Hidden
@@ -1296,8 +1294,6 @@ Public Class MachiningDbPageUC
LoPerpTxBl.Visibility = Windows.Visibility.Hidden
LoPerpTxBx.Visibility = Windows.Visibility.Hidden
SpecificLeadInGpBx.Visibility = Windows.Visibility.Hidden
SpecificLenTxBl.Visibility = Windows.Visibility.Hidden
SpecificStepTxBx.Visibility = Windows.Visibility.Hidden
Case MCH_MY.SAWFINISHING 'Parametri Finitura con lama
SideAngleTxBl.Visibility = Windows.Visibility.Hidden
SideAngleTxBx.Visibility = Windows.Visibility.Hidden
@@ -1463,8 +1459,6 @@ Public Class MachiningDbPageUC
LoPerpTxBl.Visibility = Windows.Visibility.Hidden
LoPerpTxBx.Visibility = Windows.Visibility.Hidden
SpecificLeadInGpBx.Visibility = Windows.Visibility.Hidden
SpecificLenTxBl.Visibility = Windows.Visibility.Hidden
SpecificStepTxBx.Visibility = Windows.Visibility.Hidden
Case MCH_MY.POCKETING 'Parametri Svuotatura
SideAngleTxBl.Visibility = Windows.Visibility.Hidden
SideAngleTxBx.Visibility = Windows.Visibility.Hidden
@@ -1629,8 +1623,6 @@ Public Class MachiningDbPageUC
LoPerpTxBl.Visibility = Windows.Visibility.Hidden
LoPerpTxBx.Visibility = Windows.Visibility.Hidden
SpecificLeadInGpBx.Visibility = Windows.Visibility.Hidden
SpecificLenTxBl.Visibility = Windows.Visibility.Hidden
SpecificStepTxBx.Visibility = Windows.Visibility.Hidden
Case MCH_MY.WATERJETTING 'Parametri WaterJetting
DepthTxBl.Visibility = Windows.Visibility.Hidden
DepthTxBx.Visibility = Windows.Visibility.Hidden
@@ -1799,8 +1791,6 @@ Public Class MachiningDbPageUC
LoPerpTxBl.Visibility = Windows.Visibility.Visible
LoPerpTxBx.Visibility = Windows.Visibility.Visible
SpecificLeadInGpBx.Visibility = Windows.Visibility.Hidden
SpecificLenTxBl.Visibility = Windows.Visibility.Hidden
SpecificStepTxBx.Visibility = Windows.Visibility.Hidden
End Select
'Parametri utensile
ToolTxBl.Visibility = Windows.Visibility.Visible
@@ -1829,8 +1819,6 @@ Public Class MachiningDbPageUC
CurveBrd.Visibility = Windows.Visibility.Hidden
SawStepGpBx.Visibility = Windows.Visibility.Hidden
SpecificLeadInGpBx.Visibility = Windows.Visibility.Hidden
SpecificLenTxBl.Visibility = Windows.Visibility.Hidden
SpecificStepTxBx.Visibility = Windows.Visibility.Hidden
'Parametri Foratura
StartPosTxBl.Visibility = Windows.Visibility.Hidden
StartPosTxBx.Visibility = Windows.Visibility.Hidden
+2 -2
View File
@@ -62,5 +62,5 @@ Imports System.Windows
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.2.6.2")>
<Assembly: AssemblyFileVersion("2.2.6.2")>
<Assembly: AssemblyVersion("2.2.6.4")>
<Assembly: AssemblyFileVersion("2.2.6.4")>
+20 -10
View File
@@ -131,12 +131,12 @@ Public Class NumNCOld
#Region " Variabili "
Public Var6003 As Byte
Public Var600A As Byte
Public Var600B As Byte
Public Var600C As Byte
Public Var600D As Byte
Public Var600E As Byte
Public Var600F As Byte
Public var6010L As Long
Public var6014L As Long
@@ -147,7 +147,6 @@ Public Class NumNCOld
Public var6028L As Long
Public var602CL As Long
Private iFirstVar As UInt16
Private n_portNC As Int16
@@ -356,7 +355,16 @@ Public Class NumNCOld
global_state = eStateType.BUSY
'lettura variabili da %V600A.B a %V600D.B tramite un solo accesso in memoria per %V600A.B e lettura di 4 in serie
' Lettura variabile %V6003
iFirstVar = &H6003
nret = ReadLadderVar(n_portNC, VBY, iFirstVar, 1, MyData, SYN)
If nret = 0 Then
Var6003 = MyData.data(0)
End If
' Lettura variabili da %V600A.B a %V600D.B tramite un solo accesso in memoria per %V600A.B e lettura di 4 in serie
iFirstVar = &H600A
@@ -376,9 +384,7 @@ Public Class NumNCOld
n_spindle_override(0) = CShort(Math.Round((Var600B * 50 / 255) + 50))
End If
'Fine lettura %V600D.B
' lettura variabile assorbimento mandrino ( %V250F )
' Lettura variabile assorbimento mandrino ( %V250F )
iFirstVar = &H250F
@@ -390,7 +396,7 @@ Public Class NumNCOld
End If
' lettura potenziometro F override......
' Lettura potenziometro F override......
' Type tInterpo
' FeedMes1 As Integer '; /* not used */
@@ -416,7 +422,7 @@ Public Class NumNCOld
'e non gestiamo il caso del numero negativo.......
d_DInterpo_Prog_Feed = CDbl(BitConverter.ToUInt16(MyData.data, 10)) ' sembrerebbero i due bytes più alti del long ...??
'lettura variabile S effettiva
' Lettura variabile S effettiva
iFirstVar = &H2600
@@ -426,7 +432,7 @@ Public Class NumNCOld
d_spindle_eff(0) = CDbl(BitConverter.ToInt32(MyData.data, 0)) ' progr. Feed
End If
'lettura variabili da %V6010.L a %V601C.L
' Lettura variabili da %V6010.L a %V601C.L
iFirstVar = &H6010
@@ -443,7 +449,7 @@ Public Class NumNCOld
d_spindle_prog(0) = CDbl(var6014L)
'lettura variabili da %V6020.L a %V602C.L
' Lettura variabili da %V6020.L a %V602C.L
iFirstVar = &H6020
@@ -966,6 +972,10 @@ Public Class NumNCOld
End Function
Public Overrides Function Is_G24_active() As Boolean
Return (( Var6003 And &H1) <> 0)
End Function
Public Overrides Function get_program_status() As Int16
Dim nret As Int16 = -1