Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c102d4145c | ||
|
|
c39f0fe781 | ||
|
|
6742a785d3 |
@@ -330,15 +330,15 @@ def compute_mhi(combined_data, similarity_coefficient, num_unpaired_peaks):
|
|||||||
def mhi_lut(mhi):
|
def mhi_lut(mhi):
|
||||||
if 0 <= mhi <= 30:
|
if 0 <= mhi <= 30:
|
||||||
return "Excellent mechanical health"
|
return "Excellent mechanical health"
|
||||||
elif 31 <= mhi <= 45:
|
elif 30 < mhi <= 45:
|
||||||
return "Good mechanical health"
|
return "Good mechanical health"
|
||||||
elif 46 <= mhi <= 55:
|
elif 45 < mhi <= 55:
|
||||||
return "Acceptable mechanical health"
|
return "Acceptable mechanical health"
|
||||||
elif 56 <= mhi <= 70:
|
elif 55 < mhi <= 70:
|
||||||
return "Potential signs of a mechanical issue"
|
return "Potential signs of a mechanical issue"
|
||||||
elif 71 <= mhi <= 85:
|
elif 70 < mhi <= 85:
|
||||||
return "Likely a mechanical issue"
|
return "Likely a mechanical issue"
|
||||||
elif 86 <= mhi <= 100:
|
elif 85 < mhi <= 100:
|
||||||
return "Mechanical issue detected"
|
return "Mechanical issue detected"
|
||||||
|
|
||||||
|
|
||||||
@@ -570,11 +570,15 @@ def belts_calibration(lognames, klipperdir="~/klipper", max_freq=200.):
|
|||||||
ax2 = fig.add_subplot(gs[1])
|
ax2 = fig.add_subplot(gs[1])
|
||||||
|
|
||||||
# Add title
|
# Add title
|
||||||
filename = lognames[0].split('/')[-1]
|
|
||||||
dt = datetime.strptime(f"{filename.split('_')[1]} {filename.split('_')[2]}", "%Y%m%d %H%M%S")
|
|
||||||
title_line1 = "RELATIVE BELT CALIBRATION TOOL"
|
title_line1 = "RELATIVE BELT CALIBRATION TOOL"
|
||||||
title_line2 = dt.strftime('%x %X')
|
|
||||||
fig.text(0.12, 0.965, title_line1, ha='left', va='bottom', fontsize=20, color=KLIPPAIN_COLORS['purple'], weight='bold')
|
fig.text(0.12, 0.965, title_line1, ha='left', va='bottom', fontsize=20, color=KLIPPAIN_COLORS['purple'], weight='bold')
|
||||||
|
try:
|
||||||
|
filename = lognames[0].split('/')[-1]
|
||||||
|
dt = datetime.strptime(f"{filename.split('_')[1]} {filename.split('_')[2]}", "%Y%m%d %H%M%S")
|
||||||
|
title_line2 = dt.strftime('%x %X')
|
||||||
|
except:
|
||||||
|
print("Warning: CSV filenames look to be different than expected (%s , %s)" % (lognames[0], lognames[1]))
|
||||||
|
title_line2 = lognames[0].split('/')[-1] + " / " + lognames[1].split('/')[-1]
|
||||||
fig.text(0.12, 0.957, title_line2, ha='left', va='top', fontsize=16, color=KLIPPAIN_COLORS['dark_purple'])
|
fig.text(0.12, 0.957, title_line2, ha='left', va='top', fontsize=16, color=KLIPPAIN_COLORS['dark_purple'])
|
||||||
|
|
||||||
# Plot the graphs
|
# Plot the graphs
|
||||||
|
|||||||
@@ -311,11 +311,15 @@ def shaper_calibration(lognames, klipperdir="~/klipper", max_smoothing=None, max
|
|||||||
ax2 = fig.add_subplot(gs[1])
|
ax2 = fig.add_subplot(gs[1])
|
||||||
|
|
||||||
# Add title
|
# Add title
|
||||||
filename_parts = (lognames[0].split('/')[-1]).split('_')
|
|
||||||
dt = datetime.strptime(f"{filename_parts[3]} {filename_parts[4].split('.')[0]}", "%Y%m%d %H%M%S")
|
|
||||||
title_line1 = "INPUT SHAPER CALIBRATION TOOL"
|
title_line1 = "INPUT SHAPER CALIBRATION TOOL"
|
||||||
title_line2 = dt.strftime('%x %X') + ' -- ' + filename_parts[2].upper() + ' axis'
|
|
||||||
fig.text(0.12, 0.965, title_line1, ha='left', va='bottom', fontsize=20, color=KLIPPAIN_COLORS['purple'], weight='bold')
|
fig.text(0.12, 0.965, title_line1, ha='left', va='bottom', fontsize=20, color=KLIPPAIN_COLORS['purple'], weight='bold')
|
||||||
|
try:
|
||||||
|
filename_parts = (lognames[0].split('/')[-1]).split('_')
|
||||||
|
dt = datetime.strptime(f"{filename_parts[1]} {filename_parts[2]}", "%Y%m%d %H%M%S")
|
||||||
|
title_line2 = dt.strftime('%x %X') + ' -- ' + filename_parts[3].upper().split('.')[0] + ' axis'
|
||||||
|
except:
|
||||||
|
print("Warning: CSV filename look to be different than expected (%s)" % (lognames[0]))
|
||||||
|
title_line2 = lognames[0].split('/')[-1]
|
||||||
fig.text(0.12, 0.957, title_line2, ha='left', va='top', fontsize=16, color=KLIPPAIN_COLORS['dark_purple'])
|
fig.text(0.12, 0.957, title_line2, ha='left', va='top', fontsize=16, color=KLIPPAIN_COLORS['dark_purple'])
|
||||||
|
|
||||||
# Plot the graphs
|
# Plot the graphs
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ def setup_klipper_import(kdir):
|
|||||||
shaper_calibrate = importlib.import_module('.shaper_calibrate', 'extras')
|
shaper_calibrate = importlib.import_module('.shaper_calibrate', 'extras')
|
||||||
|
|
||||||
|
|
||||||
def vibrations_calibration(lognames, klipperdir="~/klipper", axisname=None, max_freq=200., remove=0):
|
def vibrations_calibration(lognames, klipperdir="~/klipper", axisname=None, max_freq=1000., remove=0):
|
||||||
setup_klipper_import(klipperdir)
|
setup_klipper_import(klipperdir)
|
||||||
|
|
||||||
# Parse the raw data and get them ready for analysis
|
# Parse the raw data and get them ready for analysis
|
||||||
@@ -368,11 +368,15 @@ def vibrations_calibration(lognames, klipperdir="~/klipper", axisname=None, max_
|
|||||||
ax1 = fig.add_subplot(gs[0])
|
ax1 = fig.add_subplot(gs[0])
|
||||||
ax2 = fig.add_subplot(gs[1])
|
ax2 = fig.add_subplot(gs[1])
|
||||||
|
|
||||||
filename_parts = (lognames[0].split('/')[-1]).split('_')
|
|
||||||
dt = datetime.strptime(f"{filename_parts[1]} {filename_parts[2].split('-')[0]}", "%Y%m%d %H%M%S")
|
|
||||||
title_line1 = "VIBRATIONS MEASUREMENT TOOL"
|
title_line1 = "VIBRATIONS MEASUREMENT TOOL"
|
||||||
title_line2 = dt.strftime('%x %X') + ' -- ' + axisname.upper() + ' axis'
|
|
||||||
fig.text(0.12, 0.965, title_line1, ha='left', va='bottom', fontsize=20, color=KLIPPAIN_COLORS['purple'], weight='bold')
|
fig.text(0.12, 0.965, title_line1, ha='left', va='bottom', fontsize=20, color=KLIPPAIN_COLORS['purple'], weight='bold')
|
||||||
|
try:
|
||||||
|
filename_parts = (lognames[0].split('/')[-1]).split('_')
|
||||||
|
dt = datetime.strptime(f"{filename_parts[1]} {filename_parts[2].split('-')[0]}", "%Y%m%d %H%M%S")
|
||||||
|
title_line2 = dt.strftime('%x %X') + ' -- ' + axisname.upper() + ' axis'
|
||||||
|
except:
|
||||||
|
print("Warning: CSV filename look to be different than expected (%s)" % (lognames[0]))
|
||||||
|
title_line2 = lognames[0].split('/')[-1]
|
||||||
fig.text(0.12, 0.957, title_line2, ha='left', va='top', fontsize=16, color=KLIPPAIN_COLORS['dark_purple'])
|
fig.text(0.12, 0.957, title_line2, ha='left', va='top', fontsize=16, color=KLIPPAIN_COLORS['dark_purple'])
|
||||||
|
|
||||||
# Remove speeds duplicates and graph the processed datas
|
# Remove speeds duplicates and graph the processed datas
|
||||||
|
|||||||
@@ -39,12 +39,16 @@ For those not using the full [Klippain](https://github.com/Frix-x/klippain), fol
|
|||||||
managed_services: klipper
|
managed_services: klipper
|
||||||
install_script: install.sh
|
install_script: install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Note**:
|
||||||
|
>
|
||||||
|
> If already using my old IS workflow scripts, please remove everything before installing this new module. This include the macros, the Python scripts, the `plot_graph.sh` and the `[gcode_shell_command plot_graph]` section.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Ensure your machine is homed, then invoke one of the following macros as needed:
|
Ensure your machine is homed, then invoke one of the following macros as needed:
|
||||||
- `BELTS_SHAPER_CALIBRATION` for belt resonance graphs, useful for verifying belt tension and differential belt paths behavior.
|
- `BELTS_SHAPER_CALIBRATION` for belt resonance graphs, useful for verifying belt tension and differential belt paths behavior.
|
||||||
- `AXES_SHAPER_CALIBRATION` for input shaper graphs to mitigate ringing/ghosting by tuning Klipper's `[input_shaper]` system.
|
- `AXES_SHAPER_CALIBRATION` for input shaper graphs to mitigate ringing/ghosting by tuning Klipper's input shaper system.
|
||||||
- `VIBRATIONS_CALIBRATION` for machine vibration graphs to optimize your slicer speed profiles.
|
- `VIBRATIONS_CALIBRATION` for machine vibration graphs to optimize your slicer speed profiles.
|
||||||
- `EXCITATE_AXIS_AT_FREQ` to sustain a specific excitation frequency, useful to let you inspect and find out what is resonating.
|
- `EXCITATE_AXIS_AT_FREQ` to sustain a specific excitation frequency, useful to let you inspect and find out what is resonating.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user