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)
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)