Skip to content

Commit

Permalink
v0.2
Browse files Browse the repository at this point in the history
delete some unused libs + minor code changed
add release for windows (only for win11 x64 allow!)
  • Loading branch information
yuraisme committed Nov 24, 2024
1 parent 880b9c3 commit f02501f
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 32 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ F5m does not have an ideal bed level from the factory.
This program can help you to adjust bed level by adjusting screw in the corners
I used Python 3.9

![](pic.png)
![](img/pic.png)
File renamed without changes
Binary file added img/program.ico
Binary file not shown.
48 changes: 17 additions & 31 deletions printer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# import re
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
Expand Down Expand Up @@ -53,25 +52,21 @@ def calculate_max_delta_absolute(data):
max_delta = abs(max_height - min_height)
return max_delta

def main_draw(data):
def main_draw(matrix):
# Создание сетки для координат
x = np.arange(data.shape[1])
y = np.arange(data.shape[0])
x = np.arange(matrix.shape[1])
y = np.arange(matrix.shape[0])
X, Y = np.meshgrid(x, y)

# Создание цветового градиента
colors = ["#523a28", "#a47551", "#d0b49f", "#e4d4c8", "#f9f1f0"]
# cmap = LinearSegmentedColormap.from_list("custom_cmap", colors)
# cmap = cm.copper
# cmap = cm.gist_earth

cmap = cm.coolwarm
# Создание 3D-графика
# Ширина 10 дюймов, высота 6 дюймов
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, data, cmap=cmap, edgecolor='white', rstride=1, cstride=1)


surf = ax.plot_surface(X, Y, matrix, cmap=cmap, edgecolor='white', rstride=1, cstride=1)

# Добавление цветовой шкалы
fig.colorbar(surf, shrink=1, aspect=6)
Expand All @@ -84,46 +79,36 @@ def main_draw(data):
# Поворот графика вокруг оси Z
ax.view_init(elev=70, azim=-120)

# Загрузка изображения
#img = mpimg.imread('F5MTable.png')

# Добавление изображения в левый нижний угол

xmin, xmax = 0, -0.05 # Для X координат
ymin, ymax = -1, -0.05 # Для Y координат

# Преобразование матрицы в строку для отображения без скобок
# data_str = data_str.replace('[','').replace(']','').replace(',','') # Удаляем квадратные скобки и запятые

# Преобразование сетки высот в строку для отображения без скобок и с выравниванием
data_str = ''
data_rounded = np.round(data, 2)
data_rounded_mirr = data_rounded[::-1]
for row in data_rounded_mirr:
# Форматирование каждого элемента с выравниванием по правому краю в поле шириной 8 символов
matrix_str = ''
matrix_rounded = np.round(matrix, 2)
#зеркалим для корректного отображения относительно стола 0,0 - левый ближний угол
matrix_rounded_mirror = matrix_rounded[::-1]
for row in matrix_rounded_mirror:
# Форматирование каждого элемента с выравниванием по правому краю в поле шириной 8 символов +
# удаляем ненужные знаки после запятой
row_str = ''.join(f'{value:>8.2f}' for value in row)
data_str += row_str + '\n'
matrix_str += row_str + '\n'


# Задаем заголовок фигуры
fig.suptitle('Mesh level F5M Adv', fontsize=16) # Устанавливаем заголовок
# Установка угла обзора
ax.view_init(elev=70, azim=-135)

delta = calculate_max_delta_absolute(data)
# для удобства показываем максимальную дельту
delta = calculate_max_delta_absolute(matrix)
# Установка заголовка графика с матрицей высот
ax.text2D(-0.6, 0.4, f'MAX \u2206 - {delta} мм', color='red', transform=ax.transAxes, fontsize=12, verticalalignment='top')

ax.text2D(-0.6, 0.3, f'Карта высот:\n ----------------------------------------------------------', \
transform=ax.transAxes, fontsize=10, verticalalignment='top')
ax.text2D(-0.6, 0.2, f'{data_str}', transform=ax.transAxes, fontsize=10, verticalalignment='top')
ax.text2D(-0.6, 0.2, f'{matrix_str}', transform=ax.transAxes, fontsize=10, verticalalignment='top')
ax.text2D(1.2, -0.1, f'автор - @kozyayur', transform=ax.transAxes, fontsize=10, verticalalignment='top',color='blue')

# Установка заголовка окна
fig.canvas.manager.set_window_title('Mesh level F5M Adv')

# Выводим
#ax.imshow(img, aspect='auto', extent=(xm in, xmax, ymin, ymax), zorder=10)
plt.show(block=True)

if __name__ == "__main__":
Expand All @@ -133,3 +118,4 @@ def main_draw(data):
main_draw(data)
else:
print("Smth wrong")
print("That's all, folks")
Binary file added release/mesh_level_x64_win11.zip
Binary file not shown.

0 comments on commit f02501f

Please sign in to comment.