def loadAFile(self, fileName, filter):

        if filter.find("CuraSettingsInjector") >= 0:
            curaData = loadGCodeInjected(fileName)
        else:
            if filter.find("Cura gcode settings") >= 0 :
                curaData = loadGCodeSettings_3(fileName)
            else:
                zf = zipfile.ZipFile(fileName)  # open as zip archive
                ziplist = zf.infolist()
                #self.aFileSections = set()

                curaData = CuraData()
                for info in ziplist:    # curaprofile contains 2 files
                    datastr = "".join(chr(x) for x in zf.read(info.filename))   # binary to string
                    curaData.set(datastr)

        self.CuradataA = curaData               # parse into CuraData class

        self.labelFileNameA.setText(fileName)  # display curaprofile file name
        self.labelFileNameA.setToolTip(fileName)  # display curaprofile file name
        self.showData()

        self.pushButtonReloadA.setEnabled(True) # enable reload button
        self.pushButtonLoadB.setEnabled(True)   # enable loading for B file
Ejemplo n.º 2
0
def loadGCodeSettings_3(fileName):
    # ;SETTING_3
    data = CuraData()
    data.sections['general'] = {}
    data.sections['metadata'] = {}
    data.sections["values"] = {}

    with open(fileName) as file:
        line = file.readline()
        while line.find(';SETTING_3') == -1:
            line = file.readline()
            if len(line) == 0:
                return data

        jsonstr = ''
        while len(line) > 0:
            if line.find(';SETTING_3') != 0:
                break
            jsonstr = jsonstr + line[len(';SETTING_3 '):].strip()
            line = file.readline()

        #jsonstr = jsonstr.replace('\\\\n', '\\\n')
        #print(jsonstr)
        jsondata = json.loads(jsonstr)
        print(json.dumps(jsondata, indent=4))
        for key, val in jsondata.items():
            if isinstance(val, list):
                for v in val:
                    v1 = v.replace('\\n', '\n')
                    v2 = v1.replace('\\', '')
                    data.set(v2)
            else:
                v = val.replace('\\n', '\n')

                v1 = v.replace('\\', '')
                data.set(v)
    print(data)

    return data
    def loadBFile(self, fileName, filter):
        if filter.find("CuraSettingsInjector") >= 0:
            curaData = loadGCodeInjected(fileName)
        else:
            if filter.find("Cura gcode settings") >= 0 :
                curaData = loadGCodeSettings_3(fileName)
            else:
                zf = zipfile.ZipFile(fileName)
                ziplist = zf.infolist()
                self.CuradataB = CuraData()
                #self.bFileSections = set()  #
                curaData = CuraData()
                for info in ziplist:
                    datastr = "".join(chr(x) for x in zf.read(info.filename))
                    curaData.set(datastr)

        self.CuradataB = curaData

        self.labelFileNameB.setText(fileName)
        self.labelFileNameB.setToolTip(fileName)
        self.showData()

        self.pushButtonReloadB.setEnabled(True) # enable reload button