Когда в техническую поддержку АСКОН поступают запросы, каждому из них присваивается индивидуальный номер SD#XXXXX. Под этим шифром обсуждаются предложения пользователей и отрабатываются сообщения об ошибках. Какие драмы скрывает код SD# и как разрешаются самые сложные случаи — в истории запроса Свердловского инструментального завода, над которым вместе работали инженеры техподдержки АСКОН, разработчики КОМПАС-3D и математики C3D Labs.
Пресс-форма под угрозой: поверхность вместо твердого тела
Алексей Павлович Греков, ведущий конструктор АО «Свердловский инструментальный завод», проектирует пресс-формы 36 лет и последние 15 из них работает в КОМПАС-3D. К своему делу он подходит весьма обстоятельно и ответственно, отслеживая судьбу своих изделий до самого их изготовления. Поэтому Алексея Павловича можно часто встретить в производственных цехах завода.
Помимо собственных изделий завод изготавливает пресс-формы по заказу сторонних организаций. Один из таких заказов и стал причиной запроса в техподдержку АСКОН под номером SD#7109384.
Модель, которую предстояло передать заказчику в обменном формате (stp, x_t, sat), пройдя через процедуры экспорта-импорта, создавалась в виде поверхности, а не твердого тела. Это означало, что заказчик не сможет в дальнейшем с ней работать.
Проблема совпала с переходом сотрудников КБ на КОМПАС-3D v17, что, конечно, вызвало подозрения в адрес новой версии: «Мало того, что интерфейс изменили, так еще и экспорт сломали!».
Алексей Павлович Греков, ведущий конструктор АО «Свердловский инструментальный завод»:
Диалог с техподдержкой
Алексей Павлович: Мне надо, чтобы модель считывалась твёрдым телом. Причем срочно, т.к. сроки согласования с заказчиком уже прошли.
Техподдержка: К сожалению, в данном случае импорт проходит нештатно, это ошибка в КОМПАС.
Алексей Павлович: И что мне делать???????
Техподдержка: Разработчики признали ошибку, она будет исправлена позднее.
Алексей Павлович: Очень плохо. За последние лет 5-6 не припомню, чтобы компас меня так круто подвёл. :-((( А я на него надеялся.
Ошибка экспорта была зафиксирована и ждала своей очереди на исправление. Но заказчик пресс-формы не собирался ждать, и Алексей Павлович вновь обратился в техподдержку АСКОН.
Алексей Павлович: Описанная проблема встречается всё чаще и чаще, на разных деталях. А необходимость передавать проекты в переходных форматах всё увеличивается по мере разработки новых проектов. Очень просим ускорить устранение обозначенной ошибки.
К запросу подключился Владимир Липин, руководитель Службы техподдержки АСКОН. Он обратил внимание разработчиков, что проблема стала критичной для пользователя.
Изучив ситуацию, разработчики выяснили — дело в математике. Внешне модель пресс-формы выглядела замкнутой, и КОМПАС-3D ее достраивал как замкнутую. На самом деле ребра не сходились, поэтому модель разбивалась и становилась поверхностной. Задача была узкоспециализированной, стандартная математика геометрического ядра С3D, на котором базируется КОМПАС-3D, ее не обсчитывала.
Разработчики предложили обходное решение: изменить геометрию, поправить ребра, чтобы модель замыкалась. Но оказалось, что геометрию изменить невозможно, т.к. очень важна точность. Обходное решение не прошло.
Владимир Липин, руководитель Службы технической поддержки АСКОН:
«Ситуация была эмоциональной: вы не хотите ошибку исправлять и предлагаете нам ребра двигать. У пользователей сложилось впечатление, что в старой версии все было хорошо, а в 17-й версии программисты сделали нечто такое, что модель перестала экспортироваться.
Жизнь такова, что пока конструкторы завода переходили с версии 15 на 17, они существенно доработали свою модель. И дело было не в том, что в КОМПАСе какой-то функционал перестал работать. Модель усложнилась: стали использоваться такие скругления, сгибы, сочетания ребер, которые математика не позволяла обработать».
Математики из подразделения C3D Labs, которое занимается геометрическим ядром, были уже в курсе проблемы, им требовалось время разобраться.
Формула пресс-формы
Детальная диагностика показала, что построенная модель содержала дефекты, которые не препятствовали её редактированию, но были неприемлемы с точки зрения обмена данными.
То, что замкнутая оболочка после передачи через обменные форматы становилась открытой, было обусловлено наличием краевых ребер в модели. Они появились в результате булевой операции: на грани был сформирован контур, выдавлен и приклеен к «основному» телу. Контур немного выступал за габарит грани: это произошло из-за особенностей наложенной системы ограничений.
Александр Спиваков, математик-программист C3D Labs:
«То, что контур выступает, само по себе ошибкой не является. Проблема возникла из-за того, что контур выступал за габарит грани совсем немного: характерный размер выступающей части был сопоставим с величиной погрешности. В результате алгоритм булевой операции шёл по той ветке, где грань не следовало создавать. Грани малого размера являются источником вычислительных проблем в меньшей степени, чем зазоры примерно такого же размера. Это справедливо для задач редактирования тела, но, как оказалось, не для задачи экспорта модели. В данном случае проблему удалось устранить посредством доводки критерия, согласно которому принимается решение о создании или пропуске грани».
Другим источником краевых ребер стала операция скругления. В число исходных данных для операции скругления входят радиус скругления и цепочка ребер, которые следует заместить гранями. Часто операция скругления не локальна: она затрагивает не только те грани, которые примыкают к ребрам скругляемой цепочки, но и другие. Сложные ситуации могут возникать и с крайними ребрами незамкнутой цепочки, поскольку для корректного построения скругления приходится модифицировать грани всех ребер, которые примыкают к крайним вершинам.
Если радиус скругления больше, чем размер грани в «поперечном» (по отношению к ребру) направлении, нужно также модифицировать грани, непосредственно не прилегающие к ребрам, на базе которых строится скругление. Некоторые случаи подобного рода обрабатывались с помощью функционала, предназначенного для модификации граней, примыкающих к крайним вершинам. Другие случаи обрабатывались отдельно, и в результате работы по запросу SD#7109384 корректно обрабатываемых случаев стало больше.
Утром в ядре — вечером в КОМПАС-3D
Найденное математиками решение было сразу включено в новую сборку геометрического ядра С3D и в экспресс-обновление КОМПАС-3D v17, которое поступило конструкторам Свердловского инструментального завода. Оставалось применить команду «Перестроить», выполнить экспорт в обменный формат и проверить результат путем обратного импорта.
Алексей Павлович: Здравствуйте. Скачал. Установил. Для чистоты эксперимента взял деталь, с которой этот запрос и начался, чтобы исключить влияние возможных правок, которые производились после создания запроса.
Сохранил как: x_t; x_b; stp AP214.
Импортировал модель из каждого перечисленного формата. Получил тот же результат, т.е. все три новые модели получились в виде ПОВЕРХНОСТЕЙ.
Отсюда вопрос: А что же вы там исправляли?
Техподдержка: Добрый день, Алексей Павлович! Для решения проблемы необходимо сначала перестроить модель в КОМПАС, затем экспортировать. После этого при импорте получится тело.
Алексей Павлович: УРААААА!!!!!!! Спасибо, получилось. СПАСИБО, спасибо, и ещё раз спасибо. По мере возможностей будем пробовать на других проблемных деталях.
Через некоторое время Алексей Павлович вновь обратился в АСКОН: «Проект, при работе с которым возникла целая цепь запросов, благополучно завершен. Наше предприятие изготовило сложнейшую пресс-форму для получения отливки, с моделью которой и мы, и вы так долго работали. Сегодня прошли испытания изготовленной по проекту оснастки. Результаты положительные. Все эти работы были проведены не зря. Большое спасибо всему вашему коллективу. Прилагаю фотографии того, что получилось в конечном итоге».
Владимир Липин:
«Ситуация с пресс-формой очень показательна с точки зрения взаимодействия пользователя, технической поддержки и разработчиков. Да, у нас есть стандартный регламент, когда подтвержденные ошибки вносятся в базу и затем постепенно исправляются. Но каждый запрос индивидуален. Мы работаем с людьми, и специалисту техподдержки нужно быть максимально внимательным, лишний раз уточнить, устроило предложенное решение или нет. Тот же самый регламент предусматривает привлечение дополнительных ресурсов в сложных ситуациях».
Личный email-адрес Владимир Липина lipin@ascon.ru (в нарушение всех правил инфобезопасности) размещен на сайте АСКОН, чтобы каждый пользователь мог напрямую обратиться со своим вопросом.
«У нашего заказчика не установлен КОМПАС-3D. Модель была нужна ему не только для просмотра (для этого сгодился бы и КОМПАС Viewer), но и для последующей обработки и сборки. Поэтому требовалось корректно провести экспорт-импорт и получить твердотельную модель, а не поверхностную. В предыдущей версии КОМПАСа (у нас была версия 15.2) транслятор в переходные форматы работал гораздо лучше, и подобные ошибки встречались очень редко».