Jump to content
Ultimaker Community of 3D Printing Experts
  • Sign Up

Arano

New member
  • Content Count

    1
  • Joined

  • Last visited

Community Reputation

0 Neutral
  1. Hey forum, I am trying to use a DLL inside a cura plugin but for some reason it wil not load the DLL for me. i have a DLL set up that gives coordinates comming from our eye tracker and sends them to the python script. i have a python script (Script A) that calls this DLL and has a few easy calls for other python scripts to use. Calling Script A from command line (going through __main__) it loads the DLL and starts outputting coords in a while loop on my cmd window. When trying to use this Script A in another Script B it does not seem to load the DLL. Error Message: 2020-08-06 13:45:26,268 - ERROR - [MainThread] UM.Logger.logException [84]: Exception: Error loading plugin PrepareStageSR: 2020-08-06 13:45:26,271 - ERROR - [MainThread] UM.Logger.logException [88]: Traceback (most recent call last): 2020-08-06 13:45:26,273 - ERROR - [MainThread] UM.Logger.logException [88]: File "D:\Git\Cura Project\Uranium\UM\PluginRegistry.py", line 379, in loadPlugin 2020-08-06 13:45:26,274 - ERROR - [MainThread] UM.Logger.logException [88]: to_register = plugin.register(self._application) # type: ignore # We catch AttributeError on this in case register() doesn't exist. 2020-08-06 13:45:26,276 - ERROR - [MainThread] UM.Logger.logException [88]: File "D:\Git\Cura Project\Cura\cura\..\plugins\PrepareStageSR\__init__.py", line 19, in register 2020-08-06 13:45:26,278 - ERROR - [MainThread] UM.Logger.logException [88]: "stage": PrepareStage.PrepareStage() 2020-08-06 13:45:26,280 - ERROR - [MainThread] UM.Logger.logException [88]: File "D:\Git\Cura Project\Cura\cura\..\plugins\PrepareStageSR\PrepareStage.py", line 14, in __init__ 2020-08-06 13:45:26,281 - ERROR - [MainThread] UM.Logger.logException [88]: sr = SR() 2020-08-06 13:45:26,282 - ERROR - [MainThread] UM.Logger.logException [88]: File "D:\Git\Cura Project\Cura\cura\..\plugins\PrepareStageSR\SR_EyeCoords.py", line 36, in __init__ 2020-08-06 13:45:26,283 - ERROR - [MainThread] UM.Logger.logException [88]: self.c_lib = ctypes.CDLL("SRPython") 2020-08-06 13:45:26,284 - ERROR - [MainThread] UM.Logger.logException [88]: File "C:\Users\tom.hendriks\AppData\Local\Programs\Python\Python35\lib\ctypes\__init__.py", line 351, in __init__ 2020-08-06 13:45:26,286 - ERROR - [MainThread] UM.Logger.logException [88]: self._handle = _dlopen(self._name, mode) 2020-08-06 13:45:26,287 - ERROR - [MainThread] UM.Logger.logException [88]: OSError: [WinError 126] The specified module could not be found my "SR_EyeCoords.py" (calling __main__ does work!) import ctypes import pathlib import time class SR_Eye: __slots__ = ["x", "y", "z"] def __init__(self, x=0, y=0, z=0): self.x = x self.y = y self.z = z def __str__(self): return (str(self.x) + ", " + str(self.y) + ", " + str(self.z)) class SR_EyePair: __slots__ = ["left", "right"] def __init__(self, left, right): self.left = left self.right = right def __str__(self): return (str(self.left) + " : " + str(self.right)) class SR: def __init__(self): self.c_lib = ctypes.CDLL("SRPython") self.c_lib.Setup() self.c_lib.GetEyeValue.restype = ctypes.c_float def GetCurrentEyePair(self): lx = self.c_lib.GetEyeValue(0,0) ly = self.c_lib.GetEyeValue(0,1) lz = self.c_lib.GetEyeValue(0,2) rx = self.c_lib.GetEyeValue(1,0) ry = self.c_lib.GetEyeValue(1,1) rz = self.c_lib.GetEyeValue(1,2) eyeL = SR_Eye(lx,ly,lz) eyeR = SR_Eye(rx,ry,rz) eyePair = SR_EyePair(eyeL, eyeR) return eyePair if __name__ == '__main__': # SR_EyeCoords.py executed as script outputs eye Coord every second sr = SR() while 1: print(sr.GetCurrentEyePair()) time.sleep(1) #sleep for 1 second Snippet of the PrepareStage.py (using a coppy of the normal preparestage as a base since i'm not that familiar with the plugin development yet) from cura.Stages.CuraStage import CuraStage from PrepareStageSR.SR_EyeCoords import * ## Stage for preparing model (slicing). class PrepareStage(CuraStage): def __init__(self, parent = None): sr = SR() #crash on this line eyePair = sr.GetCurrentEyePair()
×
×
  • Create New...