• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Регистрация будет доступна с 8:00 (мск) 12 января.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Тест для оценки времени перестроения модели.

Автор pr0100, 04.05.26, 15:28:44

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

pr0100

Предлагаю наипростейший скрипт на Python, который фиксирует время открытия, перестроения и сохранения модели на разном железе. В качестве объекта тестирования предлагаю использовать файл спиральной вазы из вложения.

Ваза.PNG

Начинаю. Компас24
Характеристики ПК:
1) Процессор: Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz
2) Nvidia GeForce GTX 750
3) DDR3, 16 Gb
4) SSD sata3 (Документ находится не на диске С)

Лог:
Открываю документ...
Время: 1.948 сек
Перестраиваю документ...
Время: 82.846 сек (1 мин. 22.846 сек)
Сохраняю документ...
Время: 2.468 сек
Документ закрыт.

# -*- coding: utf-8 -*-
#KSBenchmarkLite_v1
#https://vk.com/cadscript

import pythoncom
import timeit
from win32com.client import Dispatch, gencache

def tymeKompas(f):
    start = timeit.default_timer()
    result = f()
    total_seconds = timeit.default_timer() - start
    if total_seconds >= 60:
        minutes = int(total_seconds // 60)
        seconds = total_seconds % 60
        print("Время: %.3f сек (%d мин. %.3f сек)" % (total_seconds, minutes, seconds))
    else:
        print("Время: %.3f сек" % total_seconds)
    return result

#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID, pythoncom.IID_IDispatch))

Documents = application.Documents

print("Многократный замер времени перестроения модели КОМПАС-3D")
print("Перетаскивайте файлы в окно консоли, или укжаить путь до файла.\nДля выхода оставьте строку пустой или введите 'exit'.\n")

while True:
    fileKompas = input("Перетащите КОМПАС-документ (или введите exit, quit, выход для выхода из цикла):\n").strip().strip('\'"')
   
    if not fileKompas or fileKompas.lower() in ('exit', 'quit', 'выход'):
        print("Работа завершена.")
        break
   
    try:
        print("Открываю документ...")
        kompas_document = tymeKompas(lambda: Documents.Open(fileKompas, True, False))
       
        kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)
        print("Перестраиваю документ...")
        tymeKompas(kompas_document_3d.RebuildDocument)
       
        print("Сохраняю документ...")
        tymeKompas(kompas_document.Save)
       
        kompas_document.Close(0)  # Закрываем документ, можено закоментить
        print("Документ закрыт.\n")
       
    except Exception as e:
        print(f'Что-то пошло не так. Ошибка при обработке файла: {e}\n')
        continue

input("Для закрытия нажмите любую кнопку...")

dimak222

Для тестов тоже делал что-то подобное, и была возможность указать повторения (к примеру 3, и вывести среднее значение ещё можно указать максимальное и минимальное).

1) Процессор: Intel(R) Core(TM) i7-12700KF
2) NVIDIA GeForce RTX 3060 Ti
3) DDR4, 32 Gb
4) NVMe Samsung SSD 970

Открываю документ...
Время: 2.246 сек
Перестраиваю документ...
Время: 32.164 сек
Сохраняю документ...
Время: 0.791 сек
Документ закрыт.
+ Благодарностей: 1

pr0100

#2
Цитата: dimak222 от 04.05.26, 15:36:48Для тестов тоже делал что-то подобное, и была возможность указать повторения (к примеру 3, и вывести среднее значение ещё можно указать максимальное и минимальное).
Интересная идея. Так-как при идентичных условиях фиксируется разное время. Другой старенький ПК.

Компас24. Хом.
1) Процессор: AMD FX(tm)-4350 Quard-Core
2) NVIDIA GeForce GTX 660, 2GB
3) DDR3, 32 Gb
4) SSD Samsung 870 Evo (Sata3)

Открываю документ...
Время: 2.767 сек
Перестраиваю документ...
Время: 188.704 сек (3 мин. 8.704 сек)
Сохраняю документ...
Время: 4.175 сек
Документ закрыт.

Компас25. Beta.
1) AMD Ryzen 7 7700 8-Core Processor
2) NVIDIA GeForce RTX 5060 Ti, 16GB
3) DDR5, 96 Gb
4) Samsung SSD 990 PRO (NVMe)

Открываю документ...
Время: 0.949 сек
Перестраиваю документ...
Время: 35.558 сек
Сохраняю документ...
Время: 1.118 сек
Документ закрыт.

mikor

Цитата: pr0100 от 04.05.26, 15:28:44файл спиральной вазы из вложения.
в 21ю версию сохранить есть возможность?

Gruden

Цитата: mikor от 04.05.26, 21:40:41в 21ю версию сохранить есть возможность?
Сохранить проблемы нет, но при сохранении в v23 теряется история построения.
Ваза-V19.rar

СВ

 Тестирование что-то должно ПОКАЗАТЬ. Компьютерные компоненты тестируют с помощью различных программ, т.к. одна не может охватить самые разные условия работы. Потому желательно, чтобы УНИВЕРСАЛЬНАЯ программа охватывала большинство усреднённых режимов.
Для Компаса, полагаю, программа должна содержать основные приёмы работы. Предположу, что больше подходит Сборка, в которой присутствуют и Стандартные изделия (СИ), и массивы деталей и СИ. При этом мы можем сравнивать работу ещё и разных версий Компаса, и одну версию с разными настройками.
На данной вазе мы можем сравнивать только компьютеры между собой, причём скорее всего только процессоры. Что если сделать тесты поразнообразнее: больше учитывающий процессор, ... видеокарту, комплексный?
(Кстати, на своих "тестах" (большие массивы СИ и деталей) заметил особенность: первый запуск и последующие отличаются по времени.)

pr0100

Попробовал переделать модель без использования команды трубчатый элемент, чтобы можно было открыть в нижней версии. Но беда пришла, от куда не ожидали.

дыра.PNG