HF:
- handling newparset, newjob - .gitignore cfg files
This commit is contained in:
parent
b09208ee6b
commit
ccfbac1768
3
.gitignore
vendored
3
.gitignore
vendored
@ -4,4 +4,5 @@
|
|||||||
*BACKUP*
|
*BACKUP*
|
||||||
out
|
out
|
||||||
cfg_inlay_PUTx.xlsx
|
cfg_inlay_PUTx.xlsx
|
||||||
/cfg_parsets/*
|
_cfg_parsets
|
||||||
|
_out
|
||||||
@ -1,47 +0,0 @@
|
|||||||
general:
|
|
||||||
yolovar: int
|
|
||||||
initpic_name: puppy.png
|
|
||||||
|
|
||||||
groups:
|
|
||||||
inlay:
|
|
||||||
parameter:
|
|
||||||
x_num: int
|
|
||||||
x_offset: double
|
|
||||||
y_num: int
|
|
||||||
y_offset: double
|
|
||||||
kos: str
|
|
||||||
cfg:
|
|
||||||
picture_name: img_inlay.png
|
|
||||||
wp_raw:
|
|
||||||
parameter:
|
|
||||||
x_wpraw: double
|
|
||||||
y_wpraw: double
|
|
||||||
z_wpraw: double
|
|
||||||
h_grp_wpraw: double
|
|
||||||
cfg:
|
|
||||||
picture_name: img_wpraw.png
|
|
||||||
wp_fin:
|
|
||||||
parameter:
|
|
||||||
x_wpfin: double
|
|
||||||
y_wpfin: double
|
|
||||||
z_wpfin: double
|
|
||||||
l_wpfin: double
|
|
||||||
h_grp_wpfin: double
|
|
||||||
cfg:
|
|
||||||
picture_name: img_wpfin.png
|
|
||||||
clp:
|
|
||||||
parameter:
|
|
||||||
clp_offset: double
|
|
||||||
y_prb_floor1: double
|
|
||||||
z_prb_floor1: double
|
|
||||||
y_prb_floor2: double
|
|
||||||
z_prb_floor2: double
|
|
||||||
x_prb_backen: double
|
|
||||||
z_prb_backen: double
|
|
||||||
l_prb_backen: double
|
|
||||||
y_prb_seite: double
|
|
||||||
z_prb_seite: double
|
|
||||||
|
|
||||||
|
|
||||||
cfg:
|
|
||||||
picture_name: img_clp.png
|
|
||||||
54
MAIN.py
54
MAIN.py
@ -11,9 +11,9 @@ from tkinter import ttk
|
|||||||
import yaml
|
import yaml
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
folder_parsets = "cfg_parsets"
|
folder_parsets = "_cfg_parsets"
|
||||||
folder_pictures = "cfg_picture"
|
folder_pictures = "cfg_picture"
|
||||||
folder_output = "out"
|
folder_output = "_out"
|
||||||
file_def = "def.yml"
|
file_def = "def.yml"
|
||||||
file_jobs = "jobs.yml"
|
file_jobs = "jobs.yml"
|
||||||
name_newparset = "<<new par set>>"
|
name_newparset = "<<new par set>>"
|
||||||
@ -24,7 +24,7 @@ pic_sizelimit = 200
|
|||||||
def setup_group(frame, group_name, data, input_vars, selected_params, group_widgets):
|
def setup_group(frame, group_name, data, input_vars, selected_params, group_widgets):
|
||||||
group_data = data['groups'][group_name]
|
group_data = data['groups'][group_name]
|
||||||
picture_name = group_data['cfg']['picture_name'] # Picture name defined in def.yml
|
picture_name = group_data['cfg']['picture_name'] # Picture name defined in def.yml
|
||||||
picture_path = os.path.join(folder_pictures, picture_name) # Full path to the picture
|
picture_path = os.path.join(folder_parsets, picture_name) # Full path to the picture
|
||||||
|
|
||||||
|
|
||||||
# Dropdown for parameter sets
|
# Dropdown for parameter sets
|
||||||
@ -36,8 +36,8 @@ def setup_group(frame, group_name, data, input_vars, selected_params, group_widg
|
|||||||
source_path = f"{folder_pictures}/{data['general']['notavailablepic_name']}"
|
source_path = f"{folder_pictures}/{data['general']['notavailablepic_name']}"
|
||||||
|
|
||||||
# Handle missing picture case
|
# Handle missing picture case
|
||||||
if not os.path.exists(picture_path):
|
# if not os.path.exists(picture_path):
|
||||||
shutil.copy(source_path, picture_path)
|
# shutil.copy(source_path, picture_path)
|
||||||
|
|
||||||
|
|
||||||
# Function to update the picture based on inputs or use the init picture
|
# Function to update the picture based on inputs or use the init picture
|
||||||
@ -47,7 +47,7 @@ def setup_group(frame, group_name, data, input_vars, selected_params, group_widg
|
|||||||
input_vars.items()}
|
input_vars.items()}
|
||||||
|
|
||||||
# Use the source_path if the selected parameter set is the new parameter set placeholder
|
# Use the source_path if the selected parameter set is the new parameter set placeholder
|
||||||
# print(param_dropdown.get())
|
# print(param_dropdown.get()) #DEBUG
|
||||||
if param_dropdown.get() == name_newparset:
|
if param_dropdown.get() == name_newparset:
|
||||||
picture_to_use = source_path
|
picture_to_use = source_path
|
||||||
else:
|
else:
|
||||||
@ -78,15 +78,16 @@ def setup_group(frame, group_name, data, input_vars, selected_params, group_widg
|
|||||||
# Function to save the current parameter set
|
# Function to save the current parameter set
|
||||||
def save_current_param():
|
def save_current_param():
|
||||||
param_name = param_dropdown.get()
|
param_name = param_dropdown.get()
|
||||||
if param_name not in param_values and param_name.strip():
|
if not param_name == name_newparset:
|
||||||
param_values.insert(-1, param_name) # Insert before '<<new parameter set>>'
|
if param_name not in param_values and param_name.strip():
|
||||||
param_dropdown['values'] = param_values
|
param_values.insert(-1, param_name) # Insert before '<<new parameter set>>'
|
||||||
param_dropdown.set(param_name)
|
param_dropdown['values'] = param_values
|
||||||
if name_newparset not in param_values:
|
param_dropdown.set(param_name)
|
||||||
param_values.append(name_newparset) # Ensure it's only appended once
|
if name_newparset not in param_values:
|
||||||
param_data = {key: var.get() for key, var in input_vars[group_name].items()}
|
param_values.append(name_newparset) # Ensure it's only appended once
|
||||||
save_yaml(group_name, param_name, param_data, folder_parsets)
|
param_data = {key: var.get() for key, var in input_vars[group_name].items()}
|
||||||
update_inlay_picture()
|
save_yaml(group_name, param_name, param_data, folder_parsets)
|
||||||
|
update_inlay_picture()
|
||||||
|
|
||||||
# Function to delete the current parameter set
|
# Function to delete the current parameter set
|
||||||
def delete_current_param():
|
def delete_current_param():
|
||||||
@ -113,6 +114,10 @@ def setup_group(frame, group_name, data, input_vars, selected_params, group_widg
|
|||||||
for key in input_vars[group_name]:
|
for key in input_vars[group_name]:
|
||||||
input_vars[group_name][key].set('')
|
input_vars[group_name][key].set('')
|
||||||
|
|
||||||
|
# Show original picture
|
||||||
|
update_inlay_picture()
|
||||||
|
|
||||||
|
|
||||||
# Detect and save a new parameter set if entered via dropdown (press Enter)
|
# Detect and save a new parameter set if entered via dropdown (press Enter)
|
||||||
def on_enter_new_param(event):
|
def on_enter_new_param(event):
|
||||||
selected_param = param_dropdown.get()
|
selected_param = param_dropdown.get()
|
||||||
@ -165,7 +170,6 @@ def setup_group(frame, group_name, data, input_vars, selected_params, group_widg
|
|||||||
|
|
||||||
# Bind the dropdown selection event
|
# Bind the dropdown selection event
|
||||||
param_dropdown.bind("<<ComboboxSelected>>", lambda event: load_selected_param())
|
param_dropdown.bind("<<ComboboxSelected>>", lambda event: load_selected_param())
|
||||||
# param_dropdown.event_generate("<<ComboboxSelected>>") # Trigger the ComboboxSelected
|
|
||||||
|
|
||||||
# Bind the Enter key to detect when a new parameter set is typed and saved
|
# Bind the Enter key to detect when a new parameter set is typed and saved
|
||||||
param_dropdown.bind("<Return>", on_enter_new_param)
|
param_dropdown.bind("<Return>", on_enter_new_param)
|
||||||
@ -223,15 +227,15 @@ def setup_jobs(frame, data, selected_job, selected_params, input_vars, group_wid
|
|||||||
# Function to save the current job
|
# Function to save the current job
|
||||||
def save_current_job():
|
def save_current_job():
|
||||||
job_name = selected_job.get()
|
job_name = selected_job.get()
|
||||||
if job_name not in job_values and job_name.strip():
|
if not job_name == name_newjob:
|
||||||
job_values.insert(-1, job_name) # Insert before '<<new job>>'
|
if job_name not in job_values and job_name.strip():
|
||||||
selected_job.set(job_name)
|
job_values.insert(-1, job_name) # Insert before '<<new job>>'
|
||||||
job_data = {group_name: selected_params[group_name].get() for group_name in data['groups']}
|
selected_job.set(job_name)
|
||||||
save_yaml("jobs", job_name, job_data, folder_parsets)
|
job_data = {group_name: selected_params[group_name].get() for group_name in data['groups']}
|
||||||
|
save_yaml("jobs", job_name, job_data, folder_parsets)
|
||||||
# Update job dropdown after saving a new job
|
# Update job dropdown after saving a new job
|
||||||
job_dropdown['values'] = job_values
|
job_dropdown['values'] = job_values
|
||||||
job_dropdown.set(job_name)
|
job_dropdown.set(job_name)
|
||||||
|
|
||||||
# Function to delete the selected job
|
# Function to delete the selected job
|
||||||
def delete_current_job():
|
def delete_current_job():
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 148 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 93 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 197 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 89 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 84 KiB |
@ -25,6 +25,7 @@ def save_yaml(group_name, param_name, param_data, folder_parsets):
|
|||||||
yml_file = os.path.join(folder_parsets, f"{group_name}.yml")
|
yml_file = os.path.join(folder_parsets, f"{group_name}.yml")
|
||||||
all_data = load_existing_data(yml_file)
|
all_data = load_existing_data(yml_file)
|
||||||
all_data[param_name] = param_data
|
all_data[param_name] = param_data
|
||||||
|
os.makedirs(folder_parsets, exist_ok=True)
|
||||||
with open(yml_file, 'w') as file:
|
with open(yml_file, 'w') as file:
|
||||||
yaml.dump(all_data, file)
|
yaml.dump(all_data, file)
|
||||||
# messagebox.showinfo("Success", f"Parameter set '{param_name}' saved to {group_name}.yml")
|
# messagebox.showinfo("Success", f"Parameter set '{param_name}' saved to {group_name}.yml")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user