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() As Boolean 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) 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 End Module