Files
2023-12-19 14:57:46 +01:00

133 lines
6.5 KiB
VB.net

Imports EgtUILib
Imports EgtWPFLib5
Module LuaExec
Friend Function ExecSlice(bSlice As Boolean, bCalcTFS As Boolean) As Boolean
EgtOutLog("-- Start ExecSlice --")
Dim bOk As Boolean = True
' eseguo slice
If bSlice Then
EgtLuaCreateGlobTable("PRINT")
EgtLuaSetGlobIntVar("PRINT.PROGRAM", 1)
EgtLuaSetGlobStringVar("PRINT.BASEDIR", Map.refMainWindowVM.MainWindowM.s3dPrintingDir)
bOk = bOk AndAlso EgtLuaExecFile(Map.refMainWindowVM.MainWindowM.s3dPrintingDir & "\Slicing.lua")
' Cancello tavola globale
EgtLuaResetGlobVar("PRINT")
End If
If Not bCalcTFS Then Return True
' eseguo calcolo T,F,S da parametri materiale
Dim sExecPath As String = Map.refMainWindowVM.MainWindowM.s3dPrintingDir & "\CalcMachParamFromSW.lua"
If Not My.Computer.FileSystem.FileExists(sExecPath) Then
EgtOutLog("Not found 3DPrint script " & sExecPath)
Return False
End If
' Assegno i dati
Dim dMachiningConstant As Double = 100
If Not IsNothing(Map.refTopPanelVM.CurrMachining) Then
Dim MachiningConstant As CurrNumericMachiningParam = Map.refTopPanelVM.CurrMachining.CathegoryList.FirstOrDefault(Function(x) x.Type = MachiningCathegory.Cathegories.GENERAL).MachiningParamList.FirstOrDefault(Function(y) y.Type = MachiningParam.Params.FLOWRATE_PC)
If Not IsNothing(MachiningConstant) Then
dMachiningConstant = MachiningConstant.dValue
End If
End If
EgtLuaCreateGlobTable("PRINT")
EgtLuaSetGlobIntVar("PRINT.PROGRAM", 1)
EgtLuaSetGlobStringVar("PRINT.BASEDIR", Map.refMainWindowVM.MainWindowM.s3dPrintingDir)
EgtLuaCreateGlobTable("MACHINING")
EgtLuaSetGlobNumVar("MACHINING.K", dMachiningConstant)
EgtLuaCreateGlobTable("MATERIAL")
EgtLuaSetGlobNumVar("MATERIAL.K_EXTRUSION", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.K_EXTRUSION))
EgtLuaSetGlobNumVar("MATERIAL.K_LAYERTIME", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.K_LAY_TIME))
EgtLuaSetGlobNumVar("MATERIAL.C1", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.C1))
EgtLuaSetGlobNumVar("MATERIAL.C2", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.C2))
EgtLuaSetGlobNumVar("MATERIAL.Density", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.DENSITY))
EgtLuaSetGlobNumVar("MATERIAL.AMax", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.AMAX))
EgtLuaSetGlobNumVar("MATERIAL.ATrg", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.ATRG))
EgtLuaSetGlobNumVar("MATERIAL.AMin", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.AMIN))
EgtLuaSetGlobNumVar("MATERIAL.BMax", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.BMAX))
EgtLuaSetGlobNumVar("MATERIAL.BTrg", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.BTRG))
EgtLuaSetGlobNumVar("MATERIAL.BMin", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.BMIN))
EgtLuaSetGlobNumVar("MATERIAL.KW", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.KW))
EgtLuaSetGlobNumVar("MATERIAL.KZ", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.KZ))
EgtLuaSetGlobNumVar("MATERIAL.KN", Map.refTopPanelVM.SelMaterial.GetSelMaterialData(MaterialParam.Params.KN))
' Eseguo lo script
If EgtLuaExecFile(sExecPath) Then
bOk = True
Else
EgtOutLog("Error executing Slice Exec script " & sExecPath)
bOk = False
End If
' Cancello tavola globale
EgtLuaResetGlobVar("MATERIAL")
EgtLuaResetGlobVar("MACHINING")
EgtLuaResetGlobVar("PRINT")
Return bOk
End Function
Friend Function ExecGenerate(ByRef sMsg As String) As Boolean
sMsg = ""
EgtOutLog("-- Start ExecGenerate --")
' eseguo generazione
EgtLuaCreateGlobTable("PRINT")
EgtLuaSetGlobIntVar("PRINT.PROGRAM", 1)
EgtLuaSetGlobStringVar("PRINT.BASEDIR", Map.refMainWindowVM.MainWindowM.s3dPrintingDir)
Dim sIsoFilePath As String = ""
Dim nTabPartId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, TABLE)
If nTabPartId <> GDB_ID.NULL Then
If Not EgtGetInfo(nTabPartId, KEY_ISOFILE_PATH, sIsoFilePath) OrElse
Not IO.Directory.Exists(IO.Path.GetDirectoryName(sIsoFilePath)) Then
EgtGetCurrFilePath(sIsoFilePath)
Dim sExtension As String = ""
GetPrivateProfileString(S_PARTPROGRAM, K_EXTENSION, "", sExtension, CurrentMachine.sMachIniFile)
If String.IsNullOrWhiteSpace(sExtension) Then
sExtension = ".cnc"
End If
sIsoFilePath = System.IO.Path.ChangeExtension(sIsoFilePath, sExtension)
End If
End If
EgtLuaSetGlobStringVar("PRINT.ISOFILEPATH", sIsoFilePath)
Dim bOk As Boolean = EgtLuaExecFile(Map.refMainWindowVM.MainWindowM.s3dPrintingDir & "\GcodeGenerate.lua")
If bOk Then
Dim nErr As Integer = 999
EgtLuaGetGlobIntVar("PRINT.ERR", nErr)
EgtLuaGetGlobStringVar("PRINT.MSG", sMsg)
bOk = (nErr <= 0)
End If
' Cancello tavola globale
EgtLuaResetGlobVar("PRINT")
Return bOk
End Function
Friend Function ExecSolid() As Boolean
EgtOutLog("-- Start ExecSolid --")
' eseguo generazione
EgtLuaCreateGlobTable("PRINT")
EgtLuaSetGlobIntVar("PRINT.PROGRAM", 1)
EgtLuaSetGlobStringVar("PRINT.BASEDIR", Map.refMainWindowVM.MainWindowM.s3dPrintingDir)
Dim bOk As Boolean = EgtLuaExecFile(Map.refMainWindowVM.MainWindowM.s3dPrintingDir & "\CalcSolids.lua")
If bOk Then
Dim nErr As Integer = 999
EgtLuaGetGlobIntVar("PRINT.ERR", nErr)
bOk = (nErr <= 0)
End If
' Cancello tavola globale
EgtLuaResetGlobVar("PRINT")
Return bOk
End Function
Friend Function ExecPrepare3dmExport(ByRef nExportGeomId As Integer) As Boolean
Dim bOk As Boolean = True
EgtLuaCreateGlobTable("PRINT")
EgtLuaSetGlobStringVar("PRINT.BASEDIR", Map.refMainWindowVM.MainWindowM.s3dPrintingDir)
bOk = EgtLuaExecFile(Map.refMainWindowVM.MainWindowM.s3dPrintingDir & "\PrepareExport.lua")
If bOk Then
EgtLuaGetGlobIntVar("PRINT.EXPORTLAYER", nExportGeomId)
End If
' Cancello tavola globale
EgtLuaResetGlobVar("PRINT")
Return bOk
End Function
End Module