Attribute VB_Name = "Module2" 'Author: Malte Lutz 'Date: 29.01.2026 Sub MachLearnMod(entry As ChemCADEntry) 'Extracting ER from simulation Dim uopH As UnitOpInfo Dim unitOpSpecER(1 To 100) As Single Dim ER As Single Set uopH = entry.GetUnitOpInfo check = uopH.GetUnitOpSpecByID(208, unitOpSpecER) ER = unitOpSpecER(17) 'Extracting reactor air inlet temperature from simulation Dim unitOpSpecTair(1 To 20) As Single Dim Tair As Single check = uopH.GetUnitOpSpecByID(205, unitOpSpecTair) Tair = unitOpSpecTair(4) Tair = (Tair - 491.67) * (5 / 9) 'Preparation of inputs for transfer to Python ML model Dim pyScript As String Dim command As String argument = CStr(ER) & " " & _ CStr(Tair) pyScript = "C:\Users\User1\Documents\Folder1\ML_model.py" command = "python """ & pyScript & """ " & argument 'Execution of the Python script via the Windows Script Host Dim shell As Object Dim exec As Object Set shell = CreateObject("WScript.Shell") Set exec = shell.exec(command) 'Extracting the ML outputs of the Python script Dim output As String Dim values() As String Dim XR1 As Double, XR2 As Double, XR3 As Double, XR4 As Double, XR5 As Double output = exec.StdOut.ReadAll values = Split(Trim(output), ";") If UBound(values) = 5 Then XR1 = CDbl(values(1)) XR2 = CDbl(values(2)) XR3 = CDbl(values(3)) XR4 = CDbl(values(4)) XR5 = CDbl(values(5)) Else MsgBox "Error" End If 'Sending the outputs (conversion rates) to the simulation check = uopH.PutEquilibriumReactionPar(209, 1, 6, 7, XR1) check = uopH.PutEquilibriumReactionPar(209, 2, 6, 9, XR2) check = uopH.PutEquilibriumReactionPar(209, 3, 6, 2, XR3) check = uopH.PutEquilibriumReactionPar(209, 4, 6, 2, XR4) check = uopH.PutEquilibriumReactionPar(209, 5, 6, 8, XR5) End Sub