Jump to content

MadCooper

Dormant
  • Posts

    2
  • Joined

  • Last visited

Everything posted by MadCooper

  1. A Professor (An engineer) asked me, if Plugins can use .DLL files. Searching for how to use .dll-files in python, I found this hole .pyd thing. So, I just wanted to try it. And yes, i am working on Windows.
  2. Hello, I've been educating myself in Ultimaker Cura 3.6 by writing my own Plugin. At this point I've no problems and everything is working fine. I now decided to convert one file of my Plugin from .py to .pyd with Cython. Now Ultimaker does not even load this Plugin anymore, saying: 2019-04-05 14:46:01,337 - ERROR - [MainThread] UM.Logger.logException [88]: from . import J_Do_It_2 2019-04-05 14:46:01,337 - ERROR - [MainThread] UM.Logger.logException [88]: ImportError: cannot import name 'J_Do_It_2' Does Ultimaker Cura not support Plugins with precompiled/converted .pyd files? The main file MPFWriter.py import tempfile import os import io from typing import cast from . import J_Do_It_2 from UM.Application import Application from UM.Logger import Logger from UM.Mesh.MeshWriter import MeshWriter #The writer we need to implement. from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType from UM.PluginRegistry import PluginRegistry #To get the g-code writer. class MPFWriter(MeshWriter): version = 3 def __init__(self): super().__init__() def write(self, stream, nodes, mode = MeshWriter.OutputMode.TextMode): #Store the g-code from the scene. temp_gcode = tempfile.NamedTemporaryFile("w", delete=False) name = temp_gcode.name gcode_writer = cast(MeshWriter, PluginRegistry.getInstance().getPluginObject("GCodeWriter")) success = gcode_writer.write(temp_gcode, None) #converter = J_Do_It.DoIt() if not success: #Writing the g-code failed. self.setInformation(gcode_writer.getInformation()) return False path = os.path.dirname(os.path.abspath(__file__)) try: head = io.open((str(path) +"/HeadAndEnd/head.txt"), "r", encoding='utf8') end = io.open((str(path) + "/HeadAndEnd/end.txt"), "r", encoding='utf8') except EnvironmentError as e: if head: Logger.log("e", "Cannot open or find HeadFile") elif end: Logger.log("e", "Cannot open or find EndFile") else: Logger.log("Something went wrong") return False try: J_Do_It_2.DoIt.openFile(name, stream.name, head, end) except EnvironmentError as e: if temp_gcode: Logger.log("e", "Cannot create temp-File {pathTempFile}".format(temp_gcode=temp_gcode)) return False temp_gcode.close() os.remove(temp_gcode.name) return True The calculator file J_Do_It_2.pyd (before it is converted into pyd and shortened): import io class DoIt(): #Vars @classmethod def openFile(self, pathSource, pathTarget, head, end): #do something @classmethod def readLine(self, line): #do something @classmethod def replaceVars(self, elements): #do something @classmethod def calculate(self, value, containsXYZ): #do something
×
×
  • Create New...