Repo Health

Рейтинг здоровья открытых репозиториев

Оценка от 0 до 100 по данным SourceCraft.

4 категории из 6, пересчёт раз в сутки. Как считается

  1. 44

    Репозиторий для лабораторных ИТМО (Программирование на Python)

    208 дней назад0лайковСравнить
  2. 44

    import matplotlib.pyplot as plt import matplotlib.patches as patches from matplotlib.path import Path import numpy as np # Настройка русского шрифта (если не отображается, замените на Arial) plt.rcParams['font.family'] = 'DejaVu Sans' plt.rcParams['font.sans-serif'] = ['DejaVu Sans', 'Arial', 'Liberation Sans', 'Microsoft Sans Serif'] plt.rcParams['axes.unicode_minus'] = False # ============================================= # ЛИСТ 1. Схема генплана Калининской АЭС # ============================================= def draw_site_plan(): fig, ax = plt.subplots(figsize=(10, 8)) ax.set_xlim(0, 100) ax.set_ylim(0, 80) ax.set_title("Рисунок 1 — Схема генерального плана промплощадки Калининской АЭС (М 1:5000)", fontsize=12, fontweight='bold') ax.axis('off') # Кольцевая дорога ring = patches.Rectangle((10, 10), 80, 60, linewidth=2, edgecolor='black', facecolor='none', linestyle='-') ax.add_patch(ring) # Главный корпус main_building = patches.Rectangle((30, 30), 40, 25, linewidth=1, edgecolor='black', facecolor='lightgray') ax.add_patch(main_building) ax.text(50, 42, 'ГЛАВНЫЙ КОРПУС', ha='center', fontsize=8, fontweight='bold') ax.text(50, 38, '(реакторное и турбинное отделения)', ha='center', fontsize=7) ax.text(50, 34, 'I степень огнестойкости', ha='center', fontsize=7) # ДГС dgs = patches.Rectangle((15, 55), 12, 10, linewidth=1, edgecolor='black', facecolor='yellow') ax.add_patch(dgs) ax.text(21, 60, 'ДГС', ha='center', fontsize=8, fontweight='bold') ax.text(21, 56, '(кат. В)', ha='center', fontsize=7) # АБК abk = patches.Rectangle((75, 55), 12, 10, linewidth=1, edgecolor='black', facecolor='lightgreen') ax.add_patch(abk) ax.text(81, 60, 'АБК', ha='center', fontsize=8, fontweight='bold') ax.text(81, 56, '(Ф4.3)', ha='center', fontsize=7) # Насосная станция pump = patches.Rectangle((75, 15), 10, 8, linewidth=1, edgecolor='black', facecolor='lightblue') ax.add_patch(pump) ax.text(80, 19, 'Насосная', ha='center', fontsize=7) ax.text(80, 16, 'станция', ha='center', fontsize=7) # Маслохозяйство oil = patches.Rectangle((15, 15), 10, 8, linewidth=1, edgecolor='black', facecolor='orange') ax.add_patch(oil) ax.text(20, 19, 'Масло-', ha='center', fontsize=7) ax.text(20, 16, 'хозяйство', ha='center', fontsize=7) # Водородная станция hydrogen = patches.Rectangle((55, 10), 10, 8, linewidth=1, edgecolor='black', facecolor='red', alpha=0.7) ax.add_patch(hydrogen) ax.text(60, 14, 'Водородная', ha='center', fontsize=7, color='white') ax.text(60, 11, '(кат. А)', ha='center', fontsize=7, color='white') # Пожарные гидранты (кружки) hydrant_positions = [(20, 25), (35, 25), (50, 25), (65, 25), (80, 25), (20, 65), (35, 65), (50, 65), (65, 65), (80, 65)] for x, y in hydrant_positions: circle = patches.Circle((x, y), 1.5, linewidth=1, edgecolor='red', facecolor='red') ax.add_patch(circle) ax.text(x, y-2, 'ПГ', ha='center', fontsize=6, color='red') # Въезды ax.annotate('ВЪЕЗД №1', xy=(50, 8), ha='center', fontsize=8, fontweight='bold', arrowprops=dict(arrowstyle='->', lw=1.5)) ax.annotate('ВЪЕЗД №2', xy=(50, 72), ha='center', fontsize=8, fontweight='bold', arrowprops=dict(arrowstyle='->', lw=1.5)) # Экспликация props = dict(boxstyle='round', facecolor='white', alpha=0.8) ax.text(5, 5, 'Условные обозначения:', fontsize=8, fontweight='bold') ax.text(5, 2, '□ Серый — главный корпус', fontsize=7) ax.text(5, -1, '□ Желтый — ДГС', fontsize=7) ax.text(5, -4, '● Красный — пожарный гидрант (ПГ)', fontsize=7) ax.text(5, -7, '═══ Кольцевой проезд (6 м)', fontsize=7) plt.tight_layout() plt.savefig('list1_site_plan.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 1 сохранён: list1_site_plan.png") # ============================================= # ЛИСТ 2. План ДГС с эвакуационными путями # ============================================= def draw_dgs_plan(): fig, ax = plt.subplots(figsize=(10, 8)) ax.set_xlim(0, 100) ax.set_ylim(0, 80) ax.set_title("Рисунок 2 — План 1-го этажа здания ДГС с нанесением эвакуационных путей (М 1:100)", fontsize=12, fontweight='bold') ax.axis('off') # Контур здания building = patches.Rectangle((5, 5), 90, 70, linewidth=2, edgecolor='black', facecolor='none') ax.add_patch(building) # Дизельный зал diesel = patches.Rectangle((10, 40), 35, 30, linewidth=1, edgecolor='black', facecolor='lightyellow') ax.add_patch(diesel) ax.text(27, 60, 'ДИЗЕЛЬНЫЙ ЗАЛ', ha='center', fontsize=9, fontweight='bold') ax.text(27, 55, '(категория В)', ha='center', fontsize=8) # Дизеля for i, x in enumerate([15, 22, 29, 36]): dg = patches.Rectangle((x, 45), 5, 5, linewidth=1, edgecolor='black', facecolor='gray') ax.add_patch(dg) ax.text(x+2.5, 47.5, f'ДГ{i+1}', ha='center', fontsize=6, color='white') # Масляный подвал oil_basement = patches.Rectangle((55, 40), 35, 30, linewidth=1, edgecolor='black', facecolor='orange', alpha=0.5) ax.add_patch(oil_basement) ax.text(72, 60, 'МАСЛЯНЫЙ ПОДВАЛ', ha='center', fontsize=9, fontweight='bold') ax.text(72, 55, '(категория В)', ha='center', fontsize=8) # Щитовая control = patches.Rectangle((10, 10), 25, 20, linewidth=1, edgecolor='black', facecolor='lightblue') ax.add_patch(control) ax.text(22, 22, 'ЩИТОВАЯ', ha='center', fontsize=8, fontweight='bold') ax.text(22, 18, 'управления', ha='center', fontsize=7) # Мастерская workshop = patches.Rectangle((55, 10), 35, 20, linewidth=1, edgecolor='black', facecolor='lightgreen') ax.add_patch(workshop) ax.text(72, 22, 'МАСТЕРСКАЯ', ha='center', fontsize=8, fontweight='bold') # Лестничная клетка stairs = patches.Rectangle((40, 5), 20, 25, linewidth=2, edgecolor='black', facecolor='lightgray', hatch='//') ax.add_patch(stairs) ax.text(50, 22, 'ЛЕСТНИЧНАЯ КЛЕТКА', ha='center', fontsize=7, fontweight='bold') ax.text(50, 18, '(тип Н2, подпор)', ha='center', fontsize=6) # Противопожарные перегородки (красные линии) ax.plot([45, 45], [40, 70], 'r-', linewidth=3) ax.plot([45, 45], [5, 30], 'r-', linewidth=3) ax.plot([10, 55], [40, 40], 'r-', linewidth=3) ax.plot([55, 90], [40, 40], 'r-', linewidth=3) # Противопожарные двери door_positions = [(45, 55), (45, 25), (35, 40), (55, 40)] for x, y in door_positions: door = patches.Rectangle((x-2, y-2), 4, 4, linewidth=1, edgecolor='red', facecolor='red', alpha=0.7) ax.add_patch(door) # Эвакуационные стрелки (зеленые) arrows = [ ((27, 40), (27, 35), '→'), ((72, 40), (72, 35), '→'), ((22, 10), (22, 5), '↓'), ((72, 10), (72, 5), '↓'), ((50, 5), (50, 2), '↓'), ] for start, end, direction in arrows: ax.annotate('', xy=end, xytext=start, arrowprops=dict(arrowstyle='->', lw=2, color='green')) # Эвакуационные выходы exit_sign = patches.Rectangle((45, 2), 10, 3, linewidth=1, edgecolor='green', facecolor='lightgreen') ax.add_patch(exit_sign) ax.text(50, 3.5, 'ВЫХОД', ha='center', fontsize=7, fontweight='bold') # Экспликация ax.text(5, 75, 'Условные обозначения:', fontsize=8, fontweight='bold') ax.text(5, 72, '█ Красная линия — противопожарная перегородка 1-го типа (EI 45)', fontsize=6, color='red') ax.text(5, 69, '■ Красный квадрат — противопожарная дверь (EI 30)', fontsize=6, color='red') ax.text(5, 66, '→ Зеленая стрелка — направление эвакуации', fontsize=6, color='green') ax.text(5, 63, '□ Зеленый прямоугольник — эвакуационный выход', fontsize=6, color='green') plt.tight_layout() plt.savefig('list2_dgs_plan.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 2 сохранён: list2_dgs_plan.png") # ============================================= # ЛИСТ 3. Кабельный туннель (разрез и план) # ============================================= def draw_cable_tunnel(): fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6)) # ---- ЛЕВАЯ ЧАСТЬ: поперечный разрез ---- ax1.set_xlim(0, 100) ax1.set_ylim(0, 80) ax1.set_title('а) Поперечный разрез кабельного туннеля (М 1:50)', fontsize=10, fontweight='bold') ax1.axis('off') # Стенки туннеля tunnel = patches.Rectangle((20, 20), 60, 50, linewidth=2, edgecolor='black', facecolor='none') ax1.add_patch(tunnel) # Стеллажи for x in [25, 75]: for y in [25, 35, 45, 55]: shelf = patches.Rectangle((x, y), 8, 3, linewidth=1, edgecolor='black', facecolor='brown') ax1.add_patch(shelf) # Кабели на стеллаже cables = patches.Rectangle((x+1, y+0.5), 6, 2, linewidth=0.5, edgecolor='black', facecolor='gray') ax1.add_patch(cables) # Противопожарная перегородка wall = patches.Rectangle((48, 20), 4, 50, linewidth=2, edgecolor='red', facecolor='red', alpha=0.5) ax1.add_patch(wall) ax1.text(50, 15, 'Противопожарная перегородка 1-го типа (EI 45)', ha='center', fontsize=7, color='red') # Дверь door = patches.Rectangle((48, 40), 4, 10, linewidth=1, edgecolor='darkred', facecolor='red', alpha=0.8) ax1.add_patch(door) ax1.text(50, 35, 'Дверь EI 30', ha='center', fontsize=6, color='darkred') # Размеры ax1.annotate('', xy=(20, 18), xytext=(80, 18), arrowprops=dict(arrowstyle='<->', lw=1)) ax1.text(50, 15, '1,8 м (ширина туннеля)', ha='center', fontsize=7) ax1.annotate('', xy=(18, 20), xytext=(18, 70), arrowprops=dict(arrowstyle='<->', lw=1)) ax1.text(15, 45, '2,2 м', ha='center', fontsize=7, rotation=90) # ---- ПРАВАЯ ЧАСТЬ: план туннеля ---- ax2.set_xlim(0, 100) ax2.set_ylim(0, 50) ax2.set_title('б) Фрагмент плана кабельного туннеля', fontsize=10, fontweight='bold') ax2.axis('off') # Туннель tunnel_plan = patches.Rectangle((5, 15), 90, 20, linewidth=2, edgecolor='black', facecolor='none') ax2.add_patch(tunnel_plan) # Перегородки через 60 м for x in [20, 45, 70]: wall_plan = patches.Rectangle((x, 15), 3, 20, linewidth=2, edgecolor='red', facecolor='red', alpha=0.5) ax2.add_patch(wall_plan) ax2.text(x+1.5, 12, f'Перегородка\n{x}м', ha='center', fontsize=6, color='red') # Двери for x in [20, 45, 70]: door_plan = patches.Rectangle((x, 22), 3, 6, linewidth=1, edgecolor='darkred', facecolor='red', alpha=0.8) ax2.add_patch(door_plan) # Подписи секций ax2.text(12, 10, 'Секция 1', ha='center', fontsize=7) ax2.text(32, 10, 'Секция 2', ha='center', fontsize=7) ax2.text(57, 10, 'Секция 3', ha='center', fontsize=7) ax2.text(82, 10, 'Секция 4', ha='center', fontsize=7) # Размер шага ax2.annotate('', xy=(20, 8), xytext=(45, 8), arrowprops=dict(arrowstyle='<->', lw=1)) ax2.text(32.5, 6, '60 м', ha='center', fontsize=7) plt.tight_layout() plt.savefig('list3_cable_tunnel.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 3 сохранён: list3_cable_tunnel.png") # ============================================= # ЛИСТ 4. Таблица мероприятий # ============================================= def draw_measures_table(): fig, ax = plt.subplots(figsize=(12, 8)) ax.axis('off') ax.set_title("Рисунок 4 — План-график мероприятий по устранению нарушений требований пожарной безопасности", fontsize=12, fontweight='bold') # Данные таблицы data = [ ["1", "Повреждение уплотнений на противопожарных дверях кабельных туннелей (секции 3,5,8)", "Нач. кабельного хозяйства Смирнов С.С.", "01.03.2021", ""], ["2", "Отсутствие актов скрытых работ на кабельные проходки", "Нач. ОКС Васильев В.В.", "01.03.2021", ""], ["3", "Неисправность доводчиков (2 шт.) и отсутствие уплотнения на двери ЛК реакторного отделения", "Нач. цеха эксплуатации Новиков Н.Н.", "01.02.2021", ""], ["4", "Не выполнена перекатка пожарных рукавов ВПВ машинного зала", "Нач. службы эксплуатации Михайлов М.М.", "15.12.2020", ""], ["5", "Отсутствуют копии сертификатов на противопожарные двери ДГС", "Гл. инженер Иванов И.И.", "01.02.2021", ""], ] columns = ["№ п/п", "Наименование нарушения", "Ответственный", "Срок", "Отметка о выполнении"] # Создание таблицы table = ax.table(cellText=data, colLabels=columns, loc='center', cellLoc='left') table.auto_set_font_size(False) table.set_fontsize(9) table.scale(1.2, 1.8) # Цвета for (i, j), cell in table.get_celld().items(): if i == 0: cell.set_facecolor('#40466e') cell.set_text_props(weight='bold', color='white') else: if i % 2 == 0: cell.set_facecolor('#f2f2f2') else: cell.set_facecolor('#ffffff') # Подписи ax.text(0.1, 0.15, 'Подготовил: Начальник отдела пожарной безопасности ________ Петров П.П.', fontsize=9, transform=fig.transFigure) ax.text(0.1, 0.08, 'Утверждаю: Главный инженер Калининской АЭС ________ Иванов И.И.', fontsize=9, transform=fig.transFigure) plt.tight_layout() plt.savefig('list4_measures_table.png', dpi=150, bbox_inches='tight') plt.close() print("✅ Лист 4 сохранён: list4_measures_table.png") # ============================================= # ЗАПУСК ВСЕХ ФУНКЦИЙ # ============================================= if __name__ == "__main__": print("=" * 50) print("Начинаю генерацию графической части курсовой работы...") print("=" * 50) draw_site_plan() draw_dgs_plan() draw_cable_tunnel() draw_measures_table() print("=" * 50) print("✅ Готово! Созданы файлы:") print(" - list1_site_plan.png") print(" - list2_dgs_plan.png") print(" - list3_cable_tunnel.png") print(" - list4_measures_table.png") print("=" * 50) print("Сохраните эти файлы и вставьте в курсовую работу.")

    206 дней назад0лайковСравнить
  3. 44

    Python37 дней назад0лайковСравнить
  4. 44

    Analog radio emulator

    Dart767 дней назад0лайковСравнить
  5. 44

    Sort Project for conference

    Python247 дней назад0лайковСравнить
  6. 44

    A speed test analysis software that shows your internet speed for up to 30 days

    JavaScript196 дней назад0лайковСравнить
  7. 44

    Торговый робот с дашбордом и аутентификацией

    HTML317 дней назад0лайковСравнить
  8. 44

    Мост для перессылки сообщений чатах вк-телеграм. Полезно в случае ограничений мобильной связи.

    Python214 дней назад0лайковСравнить
  9. 2698–3243argenet/extruct
    44

    Extruct is a proc-macro library written in Rust that provides tools for listing named struct fields and implementing conversion from a larger struct containing fields with same names.

    Rust744 дня назад0лайковСравнить
  10. 44

    Python121 день назад0лайковСравнить
  11. 44

    Бот для тренировки в кибербезопасности. Анализ сообщений на содержание скама.

    Python131 день назад0лайковСравнить
  12. 44

    HTML157 дней назад0лайковСравнить
  13. 44

    Игра для котика с красной точкой

    JavaScript178 дней назад0лайковСравнить
  14. 44

    JavaScript180 дней назад0лайковСравнить
  15. 44

    TSX265 дней назад0лайковСравнить
  16. 44

    TSX419 дней назад0лайковСравнить
  17. 44

    Continuous log generator - modified version with infinite 2-hour cycles

    Python235 дней назад0лайковСравнить
  18. 44

    1st

    TSX120 дней назад0лайковСравнить
  19. 44

    JavaScript226 дней назад0лайковСравнить
  20. 2698–3243asriel000/my-bot
    44

    Python153 дня назад0лайковСравнить
  21. 44

    Dart94 дня назад0лайковСравнить
  22. 44

    для телеграмм-бота.

    Python113 дней назад0лайковСравнить
  23. 44

    для гайда по агантам 5 модуля

    Python109 дней назад0лайковСравнить
  24. 44

    для финальго проекта 5 модуля бота для курсов ангийского

    Python108 дней назад0лайковСравнить
  25. 44

    Python180 дней назад0лайковСравнить
Показать ещё 0

2 776–2 800 из 21 909

Выбрано 2 из 3