Пример #1
0
 def load_config(self):
     """ select and load new configuration """
     qfd = QtWidgets.QFileDialog()
     filt = self.plugin.tr("Config files(*.cfg)")
     title = self.plugin.tr("Select config file to load")
     f, _ = QtWidgets.QFileDialog.getOpenFileName(qfd, title, ".", filt)
     self.plugin.new_config(f)
Пример #2
0
 def on_load_output_directory(self):
     dialog = QtWidgets.QFileDialog(self, 'Select Output Directory')
     dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
     if dialog.exec_() == QtWidgets.QDialog.Accepted:
         fname = dialog.selectedFiles()[0]
         self.log_message(f"Selected Output Directory: {fname}")
         self.Snow_OutputDirectoryLineEdit.setText(fname)
Пример #3
0
 def on_load_DEM(self):
     dialog = QtWidgets.QFileDialog(self, 'Select DEM')
     dialog.setFileMode(QtWidgets.QFileDialog.ExistingFile)
     if dialog.exec_() == QtWidgets.QDialog.Accepted:
         fname = dialog.selectedFiles()[0]
         self.DEM_path = fname
         self.Snow_DEMLineEdit.setText(fname)
Пример #4
0
 def on_browse_Snow(self, start="."):
     """Opens a dialog box for selection of directory
     """
     dialog = QtWidgets.QFileDialog(self, 'Select Working Directory')
     dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
     if dialog.exec_() == QtWidgets.QDialog.Accepted:
         fname = dialog.selectedFiles()[0]
         self.log_message(f"Selected Directory: {fname}")
         self.Snow_WorkingDirectoryLineEdit.setText(fname)
Пример #5
0
 def addLayersFromFile(self):
     dlgLayers = qtWdg.QFileDialog()
     nfile, ok = dlgLayers.getOpenFileName(None, "Afegir Capes Qgis",
                                           self.directory,
                                           "Capes Qgis (*.qlr)")
     if ok and nfile != '':
         self.directory = os.path.dirname(nfile)
         ok, txt = qgCor.QgsLayerDefinition.loadLayerDefinition(
             nfile, self.project, self.root)
         if not ok:
             print('No se pudo importar capas', txt)
Пример #6
0
 def on_load_raster_Snow(self):
     """Open a dialog to load rasters individually
     """
     dialog = QtWidgets.QFileDialog(self, 'Select Raster')
     dialog.setFileMode(QtWidgets.QFileDialog.ExistingFiles)
     if dialog.exec_() == QtWidgets.QDialog.Accepted:
         fnames = dialog.selectedFiles()
         if len(fnames) == 1:
             self.log_message(f"{len(fnames)} file loaded")
         else:
             self.log_message(f"{len(fnames)} files loaded")
         self.Snow_FilesList.addItems(fnames)
Пример #7
0
 def saveLayersToFile(self):
     nodes = self.selectedNodes()
     if len(nodes) > 0:
         dlgLayers = qtWdg.QFileDialog()
         if self.directory is not None:
             dlgLayers.setDirectory(self.directory)
         nfile, ok = dlgLayers.getSaveFileName(None, "Desar Capes Qgis",
                                               self.directory,
                                               "Capes Qgis (*.qlr)")
         if ok and nfile != '':
             self.directory = os.path.dirname(nfile)
             ok, txt = qgCor.QgsLayerDefinition.exportLayerDefinition(
                 nfile, nodes)
             if not ok:
                 print('No se pudo exportar capas', txt)
Пример #8
0
 def openProject():
     dialegObertura = qtWdg.QFileDialog()
     dialegObertura.setDirectoryUrl(qtCor.QUrl('../dades/projectes/'))
     mapes = "Tots els mapes acceptats (*.qgs *.qgz);; " \
             "Mapes Qgis (*.qgs);;Mapes Qgis comprimits (*.qgz)"
     nfile, _ = dialegObertura.getOpenFileName(None, "Obrir mapa Qgis",
                                               "../dades/projectes/",
                                               mapes)
     if nfile != '':
         if leyenda.player is None:
             leyenda.setPlayer('moduls/giphy.gif', 170, 170)
         leyenda.saveCanvasPosition()
         leyenda.printCanvasPosition('==> projectRead')
         ok = leyenda.project.read(nfile)
         if ok:
             leyenda.restoreCanvasPosition()
         else:
             print('Error al cargar proyecto', nfile)
             print(leyenda.project.error().summary())
    def generate_gcode(self):

        machine_bounds = self.get_current_machine_bounds()

        extent = self.extentGroupBox.outputExtent()
        map_bounds = {
            "lon": (extent.xMinimum(), extent.xMaximum()),
            "lat": (extent.yMinimum(), extent.yMaximum())
        }

        plot_speed = self.plot_speed_spinbox.value()
        rapid_speed = self.rapid_speed_spinbox.value()
        pen_down_height = self.pen_down_height_spinbox.value()
        pen_up_height = self.pen_up_height_spinbox.value()

        gcode = ""

        layer = self.layer_select.currentLayer()
        for feature in layer.getFeatures():
            geom = feature.geometry()

            geomSingleType = QgsWkbTypes.isSingleType(geom.wkbType())
            if geom.type() == QgsWkbTypes.PointGeometry:
                raise Exception("Point geometry not supported")
            elif geom.type() == QgsWkbTypes.LineGeometry:
                if geomSingleType:
                    gcode += geometry2gcode(geom.asPolyline(),
                                            map_bounds,
                                            machine_bounds,
                                            pen_down_height,
                                            pen_up_height,
                                            feed=plot_speed,
                                            link_feed=rapid_speed)
                else:
                    poly_geom = geom.asMultiPolyline()
                    for poly_geom in geom.asMultiPolyline():
                        gcode += geometry2gcode(poly_geom,
                                                map_bounds,
                                                machine_bounds,
                                                pen_down_height,
                                                pen_up_height,
                                                feed=plot_speed,
                                                link_feed=rapid_speed)
            elif geom.type() == QgsWkbTypes.PolygonGeometry:
                if geomSingleType:
                    for poly_geom in geom.asPolygon():
                        gcode += geometry2gcode(poly_geom,
                                                map_bounds,
                                                machine_bounds,
                                                pen_down_height,
                                                pen_up_height,
                                                feed=plot_speed,
                                                link_feed=rapid_speed)
                else:
                    for multi_geom in geom.asMultiPolygon():
                        for poly_geom in multi_geom:
                            gcode += geometry2gcode(poly_geom,
                                                    map_bounds,
                                                    machine_bounds,
                                                    pen_down_height,
                                                    pen_up_height,
                                                    feed=plot_speed,
                                                    link_feed=rapid_speed)
            else:
                raise Exception("Unknown or invalid geometry")

        dialog = QtWidgets.QFileDialog()
        dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)

        if dialog.exec_() == QtWidgets.QDialog.Accepted:
            path = dialog.selectedFiles()[0]
            with open(path, "w") as file:
                file.write(gcode)
 def loadConf(self):
     qfd = QtWidgets.QFileDialog()
     filt = self.plugin.tr("Config files(*.cfg)")
     title = self.plugin.tr("Select config file to load")
     f, _ = QtWidgets.QFileDialog.getOpenFileName(qfd, title, ".", filt)
     self.plugin.newConfig(f)