Skip to content
Snippets Groups Projects
Commit ff20488c authored by Djalim Simaila's avatar Djalim Simaila
Browse files

Added Setting to program + fixed one typo

parent 18960e8e
No related branches found
No related tags found
1 merge request!13Settings
from utils.math import data_extraction
from utils.files.input import ScannedObject
from utils.settings.SettingManager import SettingManager
def progressbar_placeholder(percent:int):
"""
......@@ -58,7 +59,12 @@ def get_discrete_data(obj:ScannedObject, ndigits:int, delta_z:float=1, update_pr
data = {}
for colone in colones:
data[colone] = []
discrete_vertices = obj.get_discrete_vertices(delta_z)
if SettingManager.get_instance().get_setting("discretisation_method") == "Z0-Zi < DeltaZ":
get_discrete_vertices = obj.get_discrete_vertices
else:
get_discrete_vertices = obj.get_discrete_vertices2
discrete_vertices = get_discrete_vertices(delta_z)
progress = 0
for discrete_values in discrete_vertices:
x,y,z = data_extraction.get_x_y_z_mean(discrete_values)
......
......@@ -14,7 +14,7 @@ class ResultFileNotGiven(Exception):
"""
Exception raised when no faces was given.
"""
class ScannedObject:
"""
This class is used to manage the data of the 3D object.
......
......@@ -2,6 +2,9 @@
This module is used to manage the output files of the program.
"""
from utils.settings.SettingManager import SettingManager
def format_data(data:dict, separator:str, selected_columns:list = None) -> str:
"""
Format the data to be saved in the output file.
......@@ -24,15 +27,22 @@ def format_data(data:dict, separator:str, selected_columns:list = None) -> str:
3 ;6 ;9
'
"""
isPrettier = SettingManager.get_instance().get_setting('pretiffy_output_file')
output = ''
if selected_columns is None:
selected_columns = list(data.keys())
for column_name in selected_columns:
output += column_name.ljust(len(column_name) if len(column_name) > 8 else 9 ) + separator
if isPrettier:
output += column_name.ljust(len(column_name) if len(column_name) > 8 else 9 ) + separator
else:
output += column_name + separator
output += '\n'
for i in range(len(data[selected_columns[0]])):
for column in selected_columns:
output += str(data[column][i]).ljust(len(column) if len(column) > 8 else 9 ) + separator
if isPrettier:
output += str(data[column][i]).ljust(len(column) if len(column) > 8 else 9 ) + separator
else:
output += str(data[column][i]) + separator
output += '\n'
return output
......
......@@ -3,6 +3,7 @@ from PyQt5 import QtWidgets
from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QFileDialog, QWidget
from utils.files.input import ScannedObject
from utils.settings.SettingManager import SettingManager
from utils.graph2D.visplot_render import cross_section, render2D
from utils.graph3D.visplot_render import render3D
from utils.gui.pyqt.main_window.UI_MainWindow import Ui_MainWindow
......@@ -58,18 +59,23 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
cb.addItems(self.graphType)
self.slots = [
[self.slot0,None],
[self.slot1,None],
[self.slot2,None],
[self.slot3,None],
[self.slot4,None],
[self.slot5,None],
[self.slot6,None],
[self.slot7,None],
[self.slot8,None],
[self.slot9,None],
[self.slot10,None]
[self.slot0,"Aucun"],
[self.slot1,"Aucun"],
[self.slot2,"Aucun"],
[self.slot3,"Aucun"],
[self.slot4,"Aucun"],
[self.slot5,"Aucun"],
[self.slot6,"Aucun"],
[self.slot7,"Aucun"],
[self.slot8,"Aucun"],
[self.slot9,"Aucun"],
[self.slot10,"Aucun"]
]
for slot_nb,slot in enumerate(self.slots):
slot[1] = SettingManager.get_instance().get_last_graph(slot_nb)
print(slot[1])
self.comboBoxes[slot_nb].setCurrentText(slot[1])
self.threads = []
......@@ -127,8 +133,10 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.output_folder_path.setPlainText("Invalid folder path")
return
settings = SettingManager.get_instance()
for count,_ in enumerate(self.slots):
self.slots[count][1] = self.comboBoxes[count].currentText()
settings.set_last_graph(count,self.slots[count][1])
self.clear_graphs()
self.completed = 0
......
......@@ -3,6 +3,7 @@ from utils.files.input import ScannedObject
from utils.files.output import save_output_file, format_data
from utils.gui.pyqt.main_window.Workers.Worker import Worker
from utils.data_processing.data_processing import get_discrete_data
from utils.settings.SettingManager import SettingManager
class DiscreteDataProcessWorker(Worker):
"""
......@@ -28,14 +29,17 @@ class DiscreteDataProcessWorker(Worker):
self.set_weight(100)
self.set_status("Saving data...")
self.update_progress(10)
save_output_file(f'{self.output_path}/{self.output_file_prefix}_delta_{self.delta_z}_analyse_rayon.txt',
suffix = SettingManager.get_instance().get_setting('discrete_data_suffix').replace('{delta_z}',str(self.delta_z))
extension = SettingManager.get_instance().get_setting('output_file_extension')
separator = SettingManager.get_instance().get_setting('output_file_separator')
save_output_file(f'{self.output_path}/{self.output_file_prefix}{suffix}{extension}',
format_data(discrete_data,
'\t',
separator,
["X moy (en mm)",
"Y moy (en mm)",
"Z moy (en mm)",
"Discretisation(en mm)",
"Rayon moyen (en mm)",
"Rayon ecart type (en mm)"] ))
"Rayon ecart type (en mm)"]))
self.set_status("Done !")
self.finished.emit()
\ No newline at end of file
......@@ -3,6 +3,7 @@ from utils.files.input import ScannedObject
from utils.files.output import save_output_file, format_data
from utils.gui.pyqt.main_window.Workers.Worker import Worker
from utils.data_processing.data_processing import get_raw_data
from utils.settings.SettingManager import SettingManager
class RawDataProcessWorker(Worker):
"""
......@@ -26,9 +27,12 @@ class RawDataProcessWorker(Worker):
self.processedData.emit(raw_data)
self.set_weight(100)
self.set_status("Saving data...")
save_output_file(f'{self.output_path}/{self.output_file_prefix}_delta_{self.delta_z}_analyse_brute.txt',
suffix = SettingManager.get_instance().get_setting('raw_data_suffix').replace('{delta_z}',str(self.delta_z))
extension = SettingManager.get_instance().get_setting('output_file_extension')
separator = SettingManager.get_instance().get_setting('output_file_separator')
save_output_file(f'{self.output_path}/{self.output_file_prefix}{suffix}{extension}',
format_data(raw_data,
'\t',
separator,
["X (en mm)",
"Y (en mm)",
"Z (en mm)",
......
......@@ -36,7 +36,7 @@ class SettingManager:
self.settings['discretisation_method'] = 'Z0-Zi >= DeltaZ' # 'Z0-Zi < DeltaZ'
self.settings['raw_data_suffix'] = '_delta_{delta_z}_analyse_brute'
self.settings['discrete_data_suffix'] = '_delta_{delta_z}_analyse_rayon'
self.settings['output_file_extention'] = '.txt'
self.settings['output_file_extension'] = '.txt'
self.settings['output_file_separator'] = '\t'
self.settings['pretiffy_output_file'] = True
self.save()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment