I am transferring a big macro project from VBA to VB.NET (working with Visual Studio). Since the languages are almost identical, most things work right out of the box.
However, a certain procedure that uses a swModeler.CreateBodyFromBox3 method, using a 8 Double array as an argument, throws this exception:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in Hydrostatics Calculator.exe
Additional information: Memory is locked. (Exception from HRESULT: 0x8002000D (DISP_E_ARRAYISLOCKED))
This is the part of the code that is relevant to this error:
swModeler = swApp.GetModeler vBox = BodyCopy.GetBodyBox() width = BoatWidth * 10 height = 0.001 length = BoatLength * 10 dBoxData(0) = (vBox(3) + vBox(0)) / 2 : dBoxData(1) = 0 : dBoxData(2) = (vBox(5) + vBox(2)) / 2 dBoxData(3) = 0 : dBoxData(4) = 1 : dBoxData(5) = 0 'vector dBoxData(6) = width : dBoxData(7) = length : dBoxData(8) = height 'size swCutBody = swModeler.CreateBodyFromBox3(dBoxData)
The exception happens on line 9. I can't find much about this issue on google. This code worked fine when I used it in VBA macro, but doesn't work anymore in VB.NET compilation. I reviewed the examples of CreateBodyFromBox3 in the official documentation, but I can't seem to find any relevant difference between the sample code, and my code.
I would appreciate any suggestions. Thank you for your time.