Beispiel #1
0
    def create(self):

        info = ""
        info += "Input data:\n"
        
        # read input meshes
        nodes = {}
        mesh = {}
        if self.ui.lineEditInputMesh.text() != "":
            try:
                nodes, mesh = fh.readT3S(self.ui.lineEditInputMesh.text())
                info += " - Mesh loaded with {0} nodes and {1} elements.\n".format(len(nodes), len(mesh))
            except:
                QMessageBox.critical(self.widget, "Error", "Not able to load mesh file!\nCheck filename or content!")
                return

        # read input line sets
        linesetNodes = {}
        lineset = {}
        dim = 2
        if self.ui.lineEditInputLineSet.text() != "":
            try:
                if self.ui.lineEditInputLineSet.text().split(".")[-1] == "i2s":
                    linesetNodes, lineset = fh.readI2S(self.ui.lineEditInputLineSet.text())                
                    dim = 2
                else:
                    linesetNodes, lineset = fh.readI3S(self.ui.lineEditInputLineSet.text())
                    dim = 3
                info += " - Line set loaded with {0} lines and {1} nodes.\n".format(len(lineset), len(linesetNodes))
            except:
                QMessageBox.critical(self.widget, "Error", "Not able to load line set!\nCheck filename or content!")
                return

        info += "\nOutput data:\n"
        
        # write mesh
        if self.ui.checkBoxOutputMesh.isChecked() and self.ui.lineEditInputMesh.text() != "":
            try:
                fh.writeMeshDXF(self.ui.lineEditOutputMesh.text(), nodes, mesh, self.typeDXFmesh)
                info += " - Mesh written to {0}.\n".format(self.ui.lineEditOutputMesh.text())
            except:
                QMessageBox.critical(self.widget, "Error", "Not able to write mesh!")
                return
            
        # write line set
        if self.ui.checkBoxOutputLineSet.isChecked() and self.ui.lineEditInputLineSet.text() != "":
            try:
                fh.writeLineSetDXF(self.ui.lineEditOutputLineSet.text(), linesetNodes, lineset, dim)
                info += " - Line set written to {0}.\n".format(self.ui.lineEditOutputLineSet.text())
            except:
                QMessageBox.critical(self.widget, "Error", "Not able to write line sets!")
                return
    
        QMessageBox.information(self.widget, "Module BK2DXF", info)
Beispiel #2
0
    def create(self):
        
        info = ""
        info += "Input data:\n"
        
        # read input meshes
        nodes = {}
        mesh = {}
        
        try:
            nodes, mesh = fh.readT3S(self.ui.lineEditInputMesh.text())
            info += " - Mesh loaded with {0} nodes and {1} elements.\n".format(len(nodes), len(mesh))
        except:
            QMessageBox.critical(self.widget, "Error", "Not able to load mesh file!\nCheck filename or content!")
            return
    
        # read control sections definition file
        nCS = 0
        nameCS = {}
        nodeIDsCS = {}
        try:
            nCS, nameCS, nodeIDsCS, coordsCS, type = fh.readCSDefinition(self.ui.lineEditInputDefinition.text())
            info += " - Control section definition loaded with {0} control sections.\n".format(nCS)
        except:
            QMessageBox.critical(self.widget, "Error", "Not able to load control sections definition file!\nCheck filename or content!")
            return

        # read control sections results file
        time = []
        resultsCS = {}
        try:
            time, resultsCS = fh.readCSResults(self.ui.lineEditInputResults.text(), nCS)
            info += " - Control section results loaded with {0} time steps.\n".format(len(time))
        except:
            QMessageBox.critical(self.widget, "Error", "Not able to load control sections results file!\nCheck filename or content!")
            return        
        
        decTime = self.ui.spinBoxTime.value()
        decFlow = self.ui.spinBoxFlow.value()

        info += "\nOutput data:\n"
                    
        if self.ui.checkBoxOutputFormatted.isChecked():
            try:
                fh.writeCSFormatted(self.ui.lineEditOutputFormatted.text(), nameCS, time, resultsCS, decTime, decFlow)
                info += " - Formatted control section data file written to {0}.\n".format(self.ui.lineEditOutputFormatted.text())
            except:
                QMessageBox.critical(self.widget, "Error", "Not able to write formatted data file!")
                return

        if self.ui.checkBoxOutputCS.isChecked():
            try:
                nodesCS = {}
                valuesCS = {}

                if type == "1":
                    nodesCS = coordsCS
                    for nID in nodeIDsCS:
                        valuesCS[nID] = [min(resultsCS[nID]), max(resultsCS[nID])]
                else:
                    for nID in nodeIDsCS:
                        nodesCS[nodeIDsCS[nID][0]] = nodes[nodeIDsCS[nID][0]]
                        nodesCS[nodeIDsCS[nID][1]] = nodes[nodeIDsCS[nID][1]]
                        valuesCS[nID] = [min(resultsCS[nID]), max(resultsCS[nID])]

                scale = self.ui.doubleSpinBoxSizeFactor.value()
                prefix = self.ui.lineEditInputPrefix.text()
                suffix = self.ui.lineEditInputSuffix.text()
                fh.writeCSDXF(self.ui.lineEditOutputCS.text(), nameCS, nodeIDsCS, nodesCS, valuesCS, decFlow, scale, prefix, suffix)
                info += " - Control sections written to {0}.\n".format(self.ui.lineEditOutputCS.text())
                for key in valuesCS:
                    info += "\t{0} to {1} ({2})\n".format(round(valuesCS[key][0], decFlow), round(valuesCS[key][1], decFlow), nameCS[key])
            except:
                QMessageBox.critical(self.widget, "Error", "Not able to write control section file!")
                return               
    
        QMessageBox.information(self.widget, "Module CS", info)