История одного 3D-движка от Эдуарда Максименко
Мы продолжаем серию интервью «История одного ядра» с командой C3D Labs о том, как создается российское геометрическое ядро. Сегодня вы узнаете, как в его составе появилась собственная визуализация — первый программный компонент, полностью разработанный в новейшей истории C3D Labs, т.е. не наследованный из математического подразделения АСКОН и не связанный с системой КОМПАС-3D.
Рассказывает Эдуард Максименко, руководитель разработки C3D Vision.
Эдуард Максименко:
- Должен был стать капитаном дальнего плавания, но уже 22 года занимается разработкой САПР
- Написал первую версию движка визуализации C3D Vision
- Был одним из авторов интерфейса КОМПАС-3D версий с V5 по V16
Если произнести полностью твое имя Эдуард Отариевич Максименко, то услышишь в нем нотки Грузии и Украины. Расскажи о своей семье, откуда такое сочетание?
Мой дедушка, украинец из Харькова, в Великую Отечественную войну воевал на Кавказе, был ранен и лечился в санатории в Цхалтубо, недалеко от Кутаиси, где работала санитаркой моя бабушка, грузинка. Там они познакомились, поженились, и в результате появились мой отец Отар и его брат Николай.
Ты ощущаешь в себе грузинские корни?
Нет. С рождения я жил в России, рос в военном гарнизоне. А что такое гарнизон — это армия, где все национальности смешаны. Грузинского языка я не знаю, хотя в 4-м классе один год проучился в Грузии, какие-то навыки приобрел, но потом все забылось. Отрывки фраз помню, немного могу понять разговор, о чем речь идет. Мой отец, когда уходил в армию, на русском не очень хорошо говорил, его родной язык — грузинский. Но за 25 лет службы у него даже акцент пропал.
Папа — военный?
Моряк. Сначала мы жили в Севастополе — там я пошел в первый класс. Потом отца перевели на Дальний Восток. Это был закрытый военный гарнизон, естественно секретный, где базировались дизельные подводные лодки. Назывался он Петропавловск-Камчатский-54, также известный как бухта «Финвал» или Бечевинка. Там мы прожили 13 лет до 1990 года. Сейчас поселок заброшен, по нему медведи ходят.
Гарнизонный поселок Петропавловск-Камчатский-54
Фото из архива Эдуарда Максименко
Как ты подходил к выбору будущей профессии?
Я мечтал посвятить свою жизнь морю, стать капитаном и для реализации этой мечты в 1988 году поступил в Петропавловск-Камчатское высшее инженерное морское училище. Значительную роль в моем выборе сыграл отец, его рекомендации. После училища я бы вышел вторым помощником капитана, а это статус — один из главных людей на судне.
Я начал учиться и учился неплохо. Но в конце 80-х годов еще не было отсрочки от армии для студентов вузов, и после года учебы меня призвали. Пока я служил, отец демобилизовался и наша семья переехала в Севастополь. После армии, по семейным обстоятельствам, я вернулся не в училище, а к родителям в Крым, и через год мы перебрались в Коломну, откуда родом моя мама
Эдуард Максименко (справа) во время службы в Вооруженных силах СССР (1989 год)
Ты был морским человеком, видел себя капитаном, и тут все изменилось. Как далось привыкание к другой жизни, не той, к которой себя готовил?
Сложно было, тоска была. Двадцать лет я прожил на берегу сначала Черного моря, потом Тихого океана. Буквально 100 метров от дома до моря — я его видел каждый день. Интересы и увлечения были связаны с морем: рыбу ловили, крабов и морских звезд собирали, модели кораблей делали. Если бы не семейные обстоятельства, я обязательно стал бы военным или связал свою жизнь с гражданским флотом. А так мне пришлось уехать и, как бы пафосно ни звучало, забыть о своих желаниях, начав жизнь с нуля в Коломне.
Хотя я уже был в достаточно сознательном возрасте, 21 год, что делать дальше не представлял. Перепробовал ряд рабочих профессий — от сторожа до электрика, после чего стала очевидной необходимость получения высшего образования. В 1993 году я поступил в Московский государственный открытый университет на специальность «Автоматика и телемеханика». В то время я уже увлекся электроникой, в частности, цифровой техникой, закончил курсы по регулировке радиоаппаратуры, но к программированию не имел никакого отношения.
Как от железа ты перешел к софту?
Во время учебы я начал работать в научно-исследовательской лаборатории университета и именно там стал непосредственно заниматься компьютерным оборудованием, получил первоначальные навыки по программированию контроллеров, в результате чего серьезно увлекся программированием.
Наука, к сожалению, в начале 90-х годов не могла обеспечить достойный уровень жизни, в связи с чем в 1994 году я поступил на военную службу по контракту в Коломенское высшее артиллерийское военное училище. Занимался ремонтом электронного оборудования, а попутно получил неограниченный доступ к компьютерам, которые по сравнению с научно-технической базой университета были достаточно современными.
В какой-то момент командование училища, обратив внимание на мое увлечение программированием, привлекло меня к разработке симуляторов артиллерийской стрельбы для курсантов. Произошло это в начале 1997 года, симуляторы разрабатывались на языке С++, о котором на тот момент я мало что знал, пришлось осваивать его самостоятельно. Именно тогда и состоялась моя судьбоносная встреча с коллективом разработчиков АСКОН, куда я обратился за консультацией.
Расскажи подробнее о знакомстве с АСКОН
Знакомая преподаватель из военного училища рассказала про компанию АСКОН: «Ребята пишут САПР. Эдик, тебе надо туда». У меня как раз заканчивался контракт, и нужно было принимать решение, продлевать его или искать другую работу.
Я решил провести разведку, и в начале пошел в АСКОН за консультацией — вдруг люди помогут, разговорюсь с кем-нибудь, узнаю, как обстоят дела. В результате мне предложили работу. На тот момент я сомневался, смогу ли справиться, так как по уровню программирования я отставал от коллектива АСКОН достаточно сильно. Но интерес к разработке САПР оказался выше любых страхов и сомнений, и с 1997 года я работаю здесь. Не могу сказать, что стоял у истоков КОМПАСа, но вместе с коллективом вложил много сил в создание его современной версии.
Коллектив разработчиков КОМПАС (Коломна, 1999 год)
С чего ты начинал в разработке КОМПАСа?
С самых элементарных задач — написания диалогов. Набравшись опыта, стал заниматься новым проектом трехмерного моделирования вместе с Николаем Головановым. Разрабатывал пользовательский интерфейс, графический пользовательский интерфейс, делал модельные объекты.
КОМПАС-3D 5.10 вышел в 2001 году
После выхода 5-ой версии КОМПАСа было принято решение переделать GUI, перейти на более современные решения. В старом интерфейсе все было фиксировано, а в новом мы дали пользователю возможность спозиционировать панель инструментов и настроить ее состав, как ему нравится. Это был прорыв. Наш пользовательский интерфейс продержался 14 лет вплоть до версии v17.
Фрагмент модели машины уборочной МТК-33.00.000 в КОМПАС3-3D V7
Разработчик: Велмаш-Сервис (Великие Луки)
Работая в АСКОН, ты защитил кандидатскую диссертацию…
По рекомендации своего научного руководителя я поступил в аспирантуру Московского государственного открытого университета по специальности «Электротехнические комплексы и системы», которую успешно окончил в 2003 году, защитив диссертацию на соискание степени кандидата технических наук. Защищался в Нижегородском государственном техническом университете. Диссертационная работа была основана на разработанном мной программном электронном комплексе для расчета и защиты силовых установок в машиностроении, который прошел успешную апробацию на нескольких предприятиях машиностроительной отрасли.
Как возник интерес к визуализации?
Дело в том, что КОМПАС-3D использует свою визуализацию, но она не отчуждаема как отдельный компонент, т.к. изначально такой цели не ставилось. Я смотрел, как сделать самостоятельный движок, независимо от того, в какой САПР он будет применяться. Мне было это страшно интересно. Особенно добиться от него высокой производительности, чтобы конструктор мог комфортно работать с большими сборками.
Потихоньку изучал разные движки, долго вынашивал идею и в итоге принял решение самому написать отдельный компонент визуализации. Пробовал дома, по вечерам, и в конце концов из этих проб появилась модель будущего компонента. Так что в C3D Labs я пришел не с пустыми руками
Ты изначально не занимался геометрическим ядром и перешел в C3D Labs позднее, через три года после того, как математической подразделение АСКОН было преобразовано в отдельную компанию…
На момент перехода я работал в группе разработки 2D-функционала КОМПАСа, а в свободное время занимался движком. Я был уверен, что если в составе ядра появится модуль визуализации, то на C3D Toolkit будут смотреть по-другому. Перспективы продаж будут выше и продавать будет легче. Голая математика хороша, но сейчас мало кто готов тратить время на долгосрочные проекты разработки. Хотят только кнопки нарисовать и влепить их в тулбар.
Для небольшой команды C3D Labs начинать разработку 3D-движка с нуля было бы рискованно, но у меня уже был готов прототип — мое предложение добавить в ядро визуализацию имело вполне осязаемое подкрепление. Коллеги меня поддержали, в течение года я сделал необходимые доработки, и в августе 2016 года мы выпустили первую версию C3D Vision.
Что представляет собой C3D Vision и в чем его особенность?
Это специализированный графический движок для визуализации геометрии в САПР. Он отвечает за отображение геометрических моделей и функционирование графического интерфейса приложения. Мы ориентируемся на потребности разработчиков инженерного программного обеспечения, которым в первую очередь нужны инструменты работы с геометрией. Наш модуль предоставляет большой набор таких инструментов: локаторы для конвертации экранных координат курсора в текущий геометрический объект, привязки для вычисления точных координат геометрического объекта, буксировщики-манипуляторы, которые позволяют интерактивным способом взаимодействовать с моделью, и другие.
Но самое главное для САПР с точки зрения визуализации — это быстродействие, чтобы модель у конструктора летала. Такой движок мы и делаем.
Откуда появлялись идеи для разработки компонента? Ты смотрел на другие визуализаторы?
Обязательно! Именно так и происходило. Я изучал известные движки — и игровые, и ориентированные на САПР: OGRE, VTK, 3D Qt, OpenSceneGraph, Hoops. C точки зрения API — Redway. Среди них были и open source-движки, где я мог посмотреть код. Больше всего интересовала архитектура, т.к. при любой разработке главное — не ошибиться в архитектуре, иначе придется переделывать весь продукт. Из изучения чужих компонентов я почерпнул, какой будет архитектура у нашего движка. Она же сказалась потом и на производительности. Кроме того, я консультировался со специалистами NVIDIA, после чего окончательно понял для себя, что иду по правильному пути и что еще нужно добавить.
Кто стал первым пользователем C3D Vision?
Первым, кто серьезно заинтересовался, была нижегородская компания ГеоС, разрабатывающая САПР корпусной мебели. Она использует наше параметрическое ядро C3D Solver. Хотя до лицензирования Vision дело не дошло, но мы получили обратную связь, что крайне важно для разработки.
А первым полноценным пользователем стал РФЯЦ-ВНИИТФ, который взял наш движок для разработки CAE-систем. От специалистов центра поступает очень много требований и замечаний, но зато когда видишь результат, который можно покрутить и потрогать, — это большая радость.
CAE-система, разработанная РФЯЦ-ВНИИТФ с использованием геометрического ядра C3D Modeler и визуализации C3D Vision
Кто наши конкуренты в визуализации?
В России визуализаторов, ориентированных на инженерный софт, нет. Конкуренты в основном все западные, из США, Германии, Франции. Самый сильный — Hoops от Techsoft, но он и стоит как чугунный мост. Redway хорош, его плюс состоит в фотореалистичности, которая для САПР не столь важна.
Команда C3D Vision делает еще и приложение для просмотра 3D-моделей, зачем оно понадобилось?
В процессе разработки C3D Vision возникла потребность в его тестировании, а как известно, тестировать компонент проще всего на конечном приложении, которое будет еще и демонстрировать возможности движка. Так родилась идея создания C3D Viewer, просмотрщика трехмерных моделей, в котором полностью реализован функционал компонента Visiоn. Для конечных пользователей он бесплатный, а разработчики могут лицензировать его для встраивания в свои продукты. Например, C3D Viewer используется для формирования вторичного представления документов в системе управления жизненным циклом изделия ЛОЦМАН:PLM.
C3D Viewer 2019
Ты много лет разрабатывал интерфейс КОМПАСа, последние пять лет занимаешься 3D-визуализацией, какой еще продукт хотелось бы написать?
Платформу для разработки САПР с применением в полной мере всех C3D-компонентов и разработкой дополнительных. Смысл платформы в том, что когда ты предлагаешь весь набор необходимых инструментов, то разработчик конечного приложения думает только о его специфике, не отвлекаясь на написание базовых процессов и визуализации.
Платформа может перекрыть определенный процент создания и редактирования одних и тех же объектов в разных спецификах: окружность в машиностроении и окружность в моделировании одежды одна и та же. Можно сделать компонент, востребованный и там, и там. А есть объекты, востребованные только в своей специфике. Разработчик должен думать только об этом. Базовые процессы — состояние элементов управления, состояние курсора — предоставляет платформа.
Какие сферы тебе интересны помимо САПР?
Программирование контроллеров и электроники. Визуализация сама по себе, особенно, если речь идет о дополненной и виртуальной реальности. Поскольку я технический человек, мне интересно работать с железом. Если бы пришлось выбирать, заниматься скучной для меня разработкой баз данных или пойти работать по специальности инженером-электриком, я бы выбрал последнее.
А если говорить не о работе?
Свободное от работы время посвящаю своей семье. У меня есть сын и дочь. Сын учится в университете, специальность выбрал по желанию, хочет заниматься проектированием зданий, однако гены оказывают свое влияние, и работу в последнее время он оптимизирует за счет активного изучения и применения программирования. Я стараюсь оказывать ему в этих вопросах любую возможную помощь. Дочь — школьница, технические специальности ее не привлекают, пока она желает стать врачом, но, возможно, что-то изменится к окончанию школы.
Твоя морская жизнь напоминает о себе?
Скучаю по морю. Когда были в Питере, заехали в Петергоф, я вдохнул и вспомнил. Видеть и слышать море — этого уже достаточно.
Традиционный заключительный вопрос. Твое напутствие будущим сотрудникам C3D Labs
Не надо бояться трудностей. Иногда кажется, что поставленная задача неподъемна, что она может оказаться тем болотом, в котором можно легко утонуть. Однако в моей практике не было ни одной задачи, даже самой трудноразрешимой, которую нельзя было бы решить при наличии желания и стремления познавать что-то новое. Добро пожаловать в наш коллектив!
КОМПАС-3D
КОМПАС-3D — это российская импортонезависимая система трехмерного проектирования, ставшая стандартом для тысяч предприятий и сотен тысяч профессиональных пользователей.
КОМПАС-3D широко используется для проектирования изделий основного и вспомогательного производств в таких отраслях промышленности, как машиностроение (транспортное, сельскохозяйственное, энергетическое, нефтегазовое, химическое и т.д.), приборостроение, авиастроение, судостроение, станкостроение, вагоностроение, металлургия, промышленное и гражданское строительство, товары народного потребления и т. д.
Актуальная версия: КОМПАС-3D v22
Почему пользователи и руководители выбирают КОМПАС-3D:
- Репутация разработчика
- Популярность продукта
- Стоимость владения
- Импортонезависимость
- Отраслевая направленность
- Удобство использования
- Качественное оформление КД
- Оптимальная функциональность
- Автоматизация частных задач
- Быстродействие
- Динамика развития
- Поддержка имеющихся наработок
- Комплексная автоматизация
- Встраивание в PLM-среду
- Простота освоения
- Оперативная помощь
Компоненты КОМПАС-3D:
- Система трехмерного моделирования деталей и сборочных единиц
- Чертежно-графический редактор (КОМПАС-График)
- Модуль проектирования спецификаций
- Текстовый редактор
- Приложения
Полностью импортонезависимая система
В основе КОМПАС-3D лежит российское геометрическое ядро C3D (создано C3D Labs, дочерней компанией АСКОН) и собственные программные технологии. Ядро C3D уже работает под управлением платформы Linux.
Выход нативной версии КОМПАС-3D под Linux запланирован в 2024 году, а приложений — в 2025. Однако уже сейчас существует ненативное решение — использование КОМПАС-3D в связке с приложением WINE@Etersoft от компании Этерсофт. Этот программный продукт обеспечивает полную поддержку работы КОМПАС-3D в следующих российских операционных системах: ОС Альт 8, 9, 10; Astra Linux Common Edition релиз «Орел» 2.12; Astra Linux Special Edition 1.7; РЕД ОС 7; РОСА ХРОМ Рабочая станция 12; ROSA Fresh Desktop 12.
Современный настраиваемый интерфейс
Не только снижает нагрузку на зрение и сокращает лишние действия, но и обеспечивает полную концентрацию внимания пользователя на рабочем документе.
Методики проектирования
Существуют два основных подхода к проектированию изделий — «снизу вверх» и «сверху вниз». В КОМПАС-3D эти подходы реализуются с помощью методик проектирования изделия. Например, для коллективного проектирования нового изделия средней или высокой сложности, большую часть компонентов которого предстоит разработать «с нуля», наиболее оптимальной будет методика «Сверху вниз с предварительной компоновкой». К основным преимуществам применения данной методики относится организация параллельной разработки изделия несколькими исполнителями, а также значительное сокращение времени на внесение изменений в проект.
КОМПАС-3D также поддерживает методику нисходящего коллективного проектирования изделий и содержит инструменты, аналогичные технологии WAVE: копирование геометрических объектов с «заморозкой» ассоциативной связи, отслеживание и управление изменениями в процессе коллективной работы, компоновочная геометрия и др.
Основные виды трёхмерного моделирования в КОМПАС-3D:
- твердотельное — за счет операций формообразующих (выдавливания, вращения, по сечениям и др.) и формоизменяющих (фасок, скруглений, отверстий, уклонов и др.);
- поверхностное — получение геометрии модели на основе поверхностей (линейчатых, конического сечения, по сети кривых или точек, по траектории и др.);
- листовое — моделирование листовых деталей методом гибки или штамповки с дальнейшим получением «развертки»;
- объектное — моделирование сборочных единиц с использованием готовых типовых отраслевых деталей (крепежа, кабельных каналов, шлангов, металлоконструкций и др.).
Поддержка ГОСТ 2.052-2015 «Электронная модель изделия»
КОМПАС-3D содержит инструменты создания в 3D-модели необходимых и достаточных данных для ее производства: размеры, элементы обозначения (осевые линии, резьбы, базы, допуски форм и т. д.), технические требования, неуказанная шероховатость. Это значит, что КОМПАС-3D уже сейчас позволяет отказаться от электронных чертежей изделия.
Расчеты и анализ
КОМПАС-3D позволяет выполнять следующие инженерные расчеты:
- расчет массо-центровочных характеристик (2D/3D)
- расчет пружин и механических передач (2D/3D)
- динамический анализ поведения механизмов (3D)
- экспресс-анализ прочности (3D)
- топологическая оптимизация изделия (3D)
- геометрическая оптимизация (3D)
- анализ течения жидкости и газа (3D)
- анализ теплопроводности и естественной конвекции (3D)
- расчет размерных цепей (2D)
Качественное оформление конструкторской и проектной документации
Одно из главных преимуществ КОМПАС-3D — оформление документации в полном соответствии с правилами ЕСКД или СПДС. Это подтверждают пользователи других CAD-систем, выполняя 3D-модели изделий в своей САПР, а чертежи, спецификации, схемы, ведомости — в КОМПАС-3D.
Поиск и исправление ошибок в чертежах и 3D-моделях
КОМПАС-3D позволяет осуществлять проверку документов на соответствие стандартам оформления по ЕСКД (например, размещение текста или допустимое расстояние между размерными линиями), а также проверку моделей на технологичность (например, расположение отверстий или разрешенные значения шероховатости).
Всего доступно около 200 различных проверок, которые улучшат качество разрабатываемых моделей и документации и помогут исправить ошибки до передачи изделия в производство.
Обмен данными с другими САПР
Возможности КОМПАС-3D по обмену информацией с другими CAD-системами:
- экспорт и импорт (с последующим редактированием) 3D-геометрии и данных о модели через форматы STEP, ACIS, IGES, Parasolid и др.;
- экспорт и импорт (с последующим редактированием) 2D-геометрии через форматы DWG и DXF;
- прямой импорт (с последующим редактированием) файлов наиболее распространенных CAD-систем (SolidWorks, Autodesk Inventor, Solid Edge, Creo, NX, Catia).
Интеграция с системами управления жизненным циклом изделия
После завершения проектирования жизненный цикл изделия (ЖЦИ) продолжается этапами технологической подготовки производства, испытания, изготовления, эксплуатации изделия и т. д. Для автоматизации этих этапов необходима система управления ЖЦИ, система PLM-класса. КОМПАС-3D содержит необходимые инструменты для встраивания (интеграции) в любые существующие PLM-среды. Наиболее тесная интеграция организована с системой управления инженерными данными ЛОЦМАН:PLM (разработка АСКОН).
Производительность
Создавать изделия любой сложности стало возможным, благодаря реализованной в 2018 году концепции быстродействия КОМПАС-3D. Однако работы над производительностью системы продолжаются и по сей день, поэтому каждая новая версия будет быстрее предыдущей. На данный момент ускорено более 50 процессов, внедрены специальные приёмы работы с большими сборками, используются необходимые ресурсы аппаратной части (процессоров, видеокарт).
Динамика развития
За последние годы разработчики КОМПАС-3D ускорили темпы развития продукта — теперь в рамках одной версии реализуется в 3 раза больше новинок, чем раньше. В течение пяти лет появилось около 500 новинок, большинство из которых были разработаны на основе предложений пользователей.
Освоение
Пройдите базовый курс обучения в офисах компании АСКОН. Для самостоятельного изучения воспользуйтесь интерактивными азбуками по 2D и 3D, приёмами работы, справочной системой, подсказками в процессе команд.
Поддержка
Отработку предложений и любых инцидентов по продукту ведет Служба технической поддержки АСКОН. Техническое сопровождение всех лицензионных пользователей КОМПАС-3D предоставляется бесплатно через Личный кабинет сайта технической поддержки.
Ещё один канал помощи — это сообщество пользователей КОМПАС-3D. Вы можете обратиться по самым разным вопросам о продукте в Форум пользователей ПО АСКОН или социальные сети.
КОМПАС-График
КОМПАС-График — универсальная система автоматизированного проектирования, позволяющая в оперативном режиме выпускать чертежи изделий, схемы, спецификации, таблицы, инструкции, расчетно-пояснительные записки, технические условия, текстовые и прочие документы. Изначально система ориентирована на оформления документации в соответствии с ЕСКД, ЕСТД, СПДС и международными стандартами, но этим возможности системы не ограничиваются.
Гибкость настройки системы и большое количество прикладных библиотек и приложений позволяют выполнить практически любую задачу пользователя, связанную с выпуском документации для всех отраслей. А поддержка распространенных форматов DXF/DWG дает возможность организовывать эффективный обмен данными со смежными организациями и заказчиками, использующими любые чертежно-графические системы.
Современное проектирование машиностроительных изделий и строительных конструкций практически невозможно без использования трехмерного моделирования. Для автоматизации большого количества рутинных процессов (получения ассоциативных проекций по модели изделия, автоматического построения разрезов/сечений, автоматического обозначения центров, формирования спецификаций и отчётов и др.) рекомендуем использовать КОМПАС-График в связке с системой трехмерного моделирования КОМПАС-3D.
Актуальная версия продукта: КОМПАС-График v22
Постоянная лицензия
105 000 руб. *
или от 15 700 руб./квартал
Запись в едином реестре российских программ для электронных вычислительных машин и баз данных № 698
* Не является публичной офертой. Для уточнения стоимости, сроков и условий приобретения программного обеспечения обращайтесь в офисы АСКОН, партнерам АСКОН или оформите приобретение через Интернет-магазины.
В случае возникновения вопросов в отношении программного обеспечения, обращайтесь в Службу поддержки пользователей (СТП), или позвоните нам по телефону 8-800-700-00-78 (звонок по России бесплатный). Полная информация приведена на сайте https://support.ascon.ru и в разделе https://kompas.ru/contacts/.
Полностью импортонезависимая система
В основе КОМПАС-График лежит российское геометрическое ядро C3D (создано C3D Labs, дочерней компанией АСКОН) и собственные программные технологии. Ядро C3D уже работает под управлением платформы Linux.
Выход нативной версии КОМПАС-График под Linux запланирован в 2024 году, а приложений — в 2025. Однако уже сейчас существует ненативное решение — использование КОМПАС-График в связке с приложением WINE@Etersoft от компании Этерсофт. Этот программный продукт обеспечивает полную поддержку работы КОМПАС-График в следующих российских операционных системах: ОС Альт 8, 9, 10; Astra Linux Common Edition релиз «Орел» 2.12; Astra Linux Special Edition 1.7; РЕД ОС 7; РОСА ХРОМ Рабочая станция 12; ROSA Fresh Desktop 12.
Возможности КОМПАС-График для машиностроения
При создании изделий в машиностроении и приборостроении использование 2D-систем проектирования все еще остается актуальным. КОМПАС-График подходит для решения любых задач, которые не выполнить с использованием 3D-систем. Возможно проектирование деталей и сборочных единиц на изделия, которые относятся к самым разным подотраслям. Для этого в системе есть:
- разнообразные способы и режимы построения графических примитивов,
- ортогональное черчение,
- использование привязок,
- использование сетки,
- управление порядком отрисовки графических документов,
- любые стили линий, штриховок, текстов, многочисленные способы простановки размеров и технологических обозначений,
- автоподбор допусков и отклонений.
Работа с многолистовыми чертежами
При проектировании сложных деталей и изделий часто необходимы чертежи, содержащие более одного листа. В КОМПАС-График вы сможете создать чертеж из любого количества листов. При этом каждый лист может отличаться от предыдущего и последующего. Возможны следующие варианты настройки для каждого листа:
- формат,
- кратность формата,
- ориентация формата (горизонтальная или вертикальная),
- стиль оформления.
Оформление документации
Кроме чертежей есть необходимость оформлять и другую сопутствующую документацию. Для создания таких документов в системе есть целый ряд специализированных инструментов, который позволит упростить процесс создания следующих документов:
- чертежи, схемы и извещения,
- извещения,
- спецификации и таблицы,
- инструкции, руководства, расчетно-пояснительные записки, технические условия, текстовые и прочие документы.
Параметризация типовых элементов
При 2D-проектировании в конструкциях могут часто повторяться различные типовые элементы. Чертить их каждый раз заново — трудоемкая и, по сути, бесполезная работа. В КОМПАС-График вы сможете создать параметрические модели этих элементов и при необходимости пользоваться наработками, располагая их в чертежах. Для таких задач будут полезны:
- средства создания параметрических моделей,
- инструменты создания библиотек типовых фрагментов,
- быстрый доступ к типовым текстам и обозначениям.
Простота в освоении и использовании
Система имеет простой и понятный интерфейс, который позволяет быстро освоить функционал и приступить к работе. Чтобы первые шаги по работе в системе были легче, КОМПАС-График содержит интерактивные уроки для изучения основного инструментария, которые собраны в «Азбуке КОМПАС—График». Данная азбука поможет вам на готовых примерах разобраться с возможностями КОМПАС-График и в кратчайшие сроки начать решать рабочие задачи.
Приведены примеры по:
- настройке системы,
- созданию чертежей деталей и сборочных единиц,
- созданию спецификации,
- созданию чертежа по спецификации.
Возможности КОМПАС-График для строительства
КОМПАС-График предоставляет широкие возможности автоматизации проектных работ разного профиля. Система эффективно решает задачи 2D-проектирования и выпуска документации. Весь функционал системы подчинен целям скоростного создания высококачественных чертежей, схем, спецификаций, расчетно-пояснительных записок, технических условий и инструкций.
К услугам проектировщика:
- разнообразные способы и режимы построения графических примитивов,
- интеллектуальные режимы привязок,
- любые стили линий, штриховок, текстов,
- многочисленные способы простановки размеров и обозначений,
- многодокументный режим работы с чертежами,
- возможности коллективной работы над чертежами,
- встроенный табличный редактор.
Работа с многолистовыми чертежами
При проектировании часто необходимы чертежи, содержащие более одного листа. В КОМПАС-График вы сможете создать чертеж из любого количества листов. При этом каждый лист может отличаться от предыдущего и последующего. Возможны следующие варианты настройки для каждого листа:
- формат,
- кратность формата,
- ориентация формата (горизонтальная или вертикальная),
- стиль оформления.
Оформление документации
Кроме планов, схем, разрезов, узлов, размещенных на чертежах есть необходимость оформлять сопутствующую документацию. Для создания таких документов в системе есть целый ряд специализированных инструментов, который позволит упростить процесс создания следующих документов:
- спецификации, экспликации, ведомости и таблицы,
- пояснительные записки, технические требования, инструкции и прочие документы.
Специальная инструментальная панель «Обозначения для строительства» содержит в себе инструментарий для обозначений, используемых с строительном проектировании: марка, обозначение выносного узла, выноска для МСК, координационные оси и многое другое.
Параметризация типовых элементов
При 2D-проектировании в проектах могут часто повторяться различные типовые элементы. В КОМПАС-График вы сможете создать параметрические модели этих элементов и при необходимости пользоваться наработками, располагая их в чертежах. Для таких задач будут полезны:
- средства создания параметрических моделей,
- инструменты создания каталогов типовых фрагментов,
- инструмент создания пользовательского элемента по технологии MinD,
- быстрый доступ к типовым текстам и обозначениям.
Простота в освоении и использовании
Система имеет простой и понятный интерфейс, который позволяет быстро освоить функционал и приступить к работе. Чтобы первые шаги по работе в системе были легче, КОМПАС-График содержит интерактивные уроки для изучения основного инструментария, которые собраны в «Азбуке КОМПАС—График». Данная азбука поможет вам на готовых примерах разобраться с возможностями КОМПАС-График и в кратчайшие сроки начать решать рабочие задачи.
Системные требования
Актуальная версия: v22
КОМПАС-График предназначен для использования на персональных компьютерах, работающих под управлением русскоязычных (локализованных) либо корректно русифицированных 64-разрядных версий операционных систем, обновленных до актуального состояния: MS Windows 11, 10, 8.1*, 7 SP1* (поддержка ограничена).
На компьютере должен быть установлен Microsoft .NET Framework версии 4.8 или выше.
В Windows 7 следует использовать тему Aero.
* — не поддерживается Строительной конфигурацией
Требования к аппаратному обеспечению
- процессор с поддержкой инструкций SSE2 и AVX
- видеокарта с поддержкой OpenGL 2.0
- остальные параметры минимально возможной конфигурации компьютера для установки и запуска КОМПАС-3D определяются минимальными системными требованиями для соответствующих операционных систем
- многоядерный процессор (4 ядра и больше) с тактовой частотой 3 ГГц и выше
- 16 ГБ оперативной памяти и более
- видеокарта с поддержкой OpenGL 4.5, с 2 ГБ видеопамяти и более, пропускная способность видеопамяти — 80 ГБ/с и более
- монитор с разрешением 1920х1080 пикселов или более
- многоядерный процессор (6 ядер и больше) с максимально возможной тактовой частотой (4 ГГц и выше)
- 32 ГБ оперативной памяти и более
- видеокарта с поддержкой OpenGL 4.5, с 4 ГБ видеопамяти и более, пропускная способность видеопамяти — 140 ГБ/с и более
- монитор с разрешением 1920х1080 пикселов или более
- твердотельный накопитель (SSD) в качестве места установки операционной системы, КОМПАС-3D и хранилища КОМПАС-документов
Как победить день сурка → Автоматизация тестирования нового интерфейса КОМПАС-3D v17
В прошлой статье мы рассказали, как устроен процесс тестирования КОМПАС-3D. Продолжаем тему. Сегодняшний пост посвящен тому, как были автоматизированы регрессионные проверки и разработана собственная программа для тестирования не только интерфейса, но и других модулей КОМПАС-3D.
Рассказывает инженер по тестированию Екатерина Родина.
Ключевым элементом версии КОМПАС-3D v17 стал новый интерфейс. Его разработка велась в отдельной ветке, и каждые два-три дня наработки сливались в основную ветку продукта, чтобы ими могли пользоваться другие команды. Но прежде чем отдать, нужно проверить.
Интерфейс менялся очень активно. Случалось так, что из-за нововведений «ломалось» сделанное ранее. Чтобы не упустить такие моменты, мы делали ручные регрессионные проверки. Перед каждым сливом в общую ветку помимо тестирования нового кода выполняли проверку старого. Со временем работа тестировщиков превратилась в бесконечный день сурка, как в одноимённом фильме: каждый рабочий день начинался с ручного прогона всех тест-кейсов.
Первое время проверка занимала всего полчаса. По мере накопления функционала, работающего с новым интерфейсом, длительность регрессионной проверки увеличивалась, приближалась к целому рабочему дню, и это был не предел. Всё меньше времени оставалось на тестирование новой функциональности; программисты стояли в очереди в ожидании проверки своей работы. Возник вопрос: «Что делать?» Ответ напрашивался сам собой: регрессионное тестирование должно быть автоматизированным!
Первая задача — выбор инструмента. Нужно ли для этого нам «изобретать велосипед»? Или можно использовать имеющиеся и хорошо себя зарекомендовавшие программы автоматизированного тестирования?
После проведенных исследований стало понятно, что адаптация готовых решений, написание на них тестов и поддержание их в рабочем состоянии в условиях постоянно меняющегося интерфейса — задача невыполнимая.
В итоге было принято решение доработать КОМПАС, чтобы он тестировал сам себя, используя для этого собственные модули. При таком подходе решаются основные проблемы, не позволившие использовать для регрессионного тестирования сторонние продукты.
1. Не мешает постоянно изменяющееся окружение.
2. Полностью имитируются действия пользователя в окне с 3D-графикой.
Задача по созданию модуля автоматизированного тестирования КОМПАС-3D для наших программистов была новая и непривычная, а потому интересная. Воодушевления хватило на весь период разработки и позволило довести эту сложнейшую работу до внедрения. «Магнитофон» (так был назван получившийся модуль) стал основным инструментом регрессионного тестирования v17. Конечно, далеко не всё было гладко, но мы справились!
Как мы работаем с «Магнитофоном»
Сначала выполняется ручное тестирование каждого элемента, фиксируются ошибки, обсуждается их решение. Автотесты для регрессионного тестирования записываются на финальной стадии работы, когда все ошибки исправлены, и элемент стабилен.
Запись осуществляется по принципу рекордера. Нажать кнопку Play –выполнить руками сценарий тесткейса — нажать Stop. Тесткейс полностью описывает действия пользователя с проверяемым элементом: открытие программы, выполнение построения, закрытие программы. В определенные моменты времени создаются контрольные точки. Файл с тестом готов, теперь возможно его использование для автоматизированного тестирования.
При запуске теста программа повторяет заранее записанные действия, в контрольных точках сравниваются результаты, тест закрывается.
Сценарий теста пишется в xml-файл с возможностью ручного редактирования тестировщиком либо программистом.
Программно КОМПАС-3D разделен на модули: интерфейсный, модуль 3D-моделей, модуль чертежей. Соответственно разделены на модули и автотесты.
Интерфейс
Запись интерфейсного теста основана на привязке событий к логическим объектам интерфейса. Есть имя кнопки и есть событие, которое с ней происходит. Интерфейсная контрольная точка состоит из двух элементов — снепшота и скриншота.
Снепшот — это текстовый файл, в который записываются все данные о состоянии системы в настоящий момент. Фактически при сравнении двух контрольных точек происходит сравнение снепшотов. Все отличия выводятся как ошибки.
Скриншоты служат для визуализации. Для упрощения визуальной оценки результата добавлена фича: все отличия, которые выявлены в снепшоте, подсвечиваются на скриншоте фиолетовой рамкой.
Визуализация отличий в снепшотах
Какие проблемы пришлось решать:
1. Большой размер снепшотов
Хотелось обладать всей полнотой информации о том, в каком состоянии находится система, поэтому снепшоты занимали слишком много места. 100 тестов — 28 ГБ.
Первое, что было сделано для уменьшения объёма — удалены элементы, не влияющие на внешний вид. Если пользователь не видит каких-либо элементов, то на данный момент информация о них не нужна, и нет необходимости записывать её в снепшоты. Затем весь интерфейс был разбит на составляющие с возможностью выбора: хочешь — записывай информацию о всех элементах, или об одном-двух, с которыми в данный момент работаешь.
Выбор элементов для сравнения
Такой подход позволил сократить место, занимаемое на жестком диске, в 50 раз. Сейчас 100 тестов занимают 0,5 ГБ. Время выполнения тестов сократилось в три раза — с 30 секунд в среднем на тест до 10 секунд.
2. Большое количество ошибок
Часто после слива очередных изменений интерфейса в результате прогона автотестов наблюдался вал ошибок (1000 ошибок в одном тесте). К примеру, изменилась длина панели и изменилась длина всех контролов, которые расположены на этой панели. Тестировщик воспринимает это как одну ошибку, программа — как десяток. Такие ошибки были объединены в блоки с добавлением проверки между родительскими и дочерними элементами. Если в дочернем элементе возникала такая же ошибка, как и в родительском, она исключалась из результатов, считалось, что эта ошибка уже учтена в тестах.
3. Отделение ошибок от доработок
Например, аналитики решили, что кнопка слева смотрится некрасиво и ее нужно перенести вправо. В результате все тесты, где физически присутствует эта кнопка, выдают ошибку — неверное расположение кнопки. Отделить такую ошибку от реальной в общем пуле было сложно. Мы добавили возможность игнорировать ошибку по образцу.
Игнорирование по образцу
Прогоняем 100 тестов, открываем один из них, видим, что перенесли кнопку, ставим галку «игнорировать ошибку», и во всех последующих тестах эта ошибка вытирается и больше не учитывается.
4. Работа с наборами тестов
На каждый тест навешивается определенное количество тэгов для того, чтобы легко их отсортировать.
Использование тегов
Рабочая область 3D
Тест для рабочей области принципиально отличается от интерфейсного. События привязаны к трехмерным координатам (x, y, z) модели. Мы создаем растровое изображение, которое сравнивается с эталоном. Для этого используется сторонняя программа ImageMagick, все отличия подсвечиваются красным цветом.
Пример выполнения теста
Тесты для разных модулей можно записывать как совместно, так и отдельно друг от друга. В тесте из видео для наглядности была специально заложена ошибка: установлено неверное расстояние между колесом и тормозным диском. При сравнении растровых изображений мы видим, что колеса подсветились красным — они расположены неправильно.
Какие сложности возникли здесь:
1. Масштабируемость
На мониторах с разным разрешением (разным масштабом) возникала ситуация, когда курсор кликал-кликал и вдруг начинал промахиваться. Это происходило из-за пересчета на другой масштаб. Возникающая погрешность в какой-то момент становилась критичной. Решили эту проблему очень просто — принудительным заданием разрешения и масштаба во всех тестах. Не важно, на каком мониторе вы запускаете тест, окно программы автоматически подгонится под размер нужного разрешения. Естественно, это работает с меньшего масштаба на больший. В обратную сторону не получится. Просто мы договорились, на каком масштабе монитора пишем тесты.
2. Производительность
К примеру пользователь выполняет действие за две секунды, а программа — за десять секунд, в пять раз дольше. Какие же это автотесты? Начали разбираться и выяснили. Запись координат курсора производилась следующим образом: бралась 2D-координата курсора на мониторе, конвертировалась через видеокарту в 3D-координату, которая находится в модели, и после этого происходило событие. Конвертация постоянно дергала перерисовку на видеокарте, модель постоянно перерисовывалась. Если попадалась объемная модель с большим количеством деталей, лежащих внутри, то перерисовка происходила достаточно долго. Мы вообще отказались от конвертации и сразу стали записывать в трехмерных координатах модели. Исключили видеокарту из этой цепочки.
3. Реализация моделей на разных видеокартах
Как ни крути, на разных видеокартах растровое изображение одной и той же модели будет различным. Однако, отличия незначительные, и мы решили назначить величину погрешности в 1%. Если модель совпадает вплоть до 1%, то модель верная. Если больше 1%, значит возникла ошибка. Сейчас на разных видеокартах модели совпадают до 0,01.
4. Контроль заднего плана
Решение для этой проблемы есть, но пока не реализовано. Допустим, у нас есть фотография 3D-модели, но по этой фотографии вы не узнаете, что расположено на «спине» модели, пока не повернете ее спиной и не сфотографируете. Планируется использовать систему уточненного контроля — разбивать модель на отрезки, вершины, грани и сравнивать свойства по указанным элементам.
Применение на практике
В процессе разработки КОМПАС-3D v17 автоматически регрессионные проверки выполнялись каждые 2-3 дня. У нас появилось больше времени на тестирование нового функционала, меньше времени уходило на обработку тестов. Изначально рекордер задумывался, чтобы разгрузить группу интерфейса, но он нашел применение и в тестировании других модулей КОМПАС-3D.
Мы не собираемся останавливаться на достигнутом. В планах — расширение применения автотестов (в идеале — охватить всю функциональность КОМПАС), наращивание базы тестов. И, конечно, применение «Магнитофона» для стабилизации последующих обновлений и сервис-паков КОМПАС-3D v17.
Екатерина Родина, инженер по тестированию интерфейса.
- тестирование
- тестирование по
- автоматизированное тестирование
- компас-3d
- компас
- компас 3d
- аскон
- интерфейс
- регрессионное тестирование
- Блог компании АСКОН
- Тестирование IT-систем
- Графические оболочки
- CAD/CAM
- Разработка под Windows