Недавно мы выпустили новое приложение КОМПАС-Эксперт для поиска ошибок в чертежах и моделях, разработанных в КОМПАС-3D. Идеей для него послужил анализатор кода PVS-Studio. Что общего в продуктах для программистов и инженеров и как классифицируются ошибки проектирования, рассказывает Олег Волков.
В свое время меня вдохновил Viva64 для проверки кода C++ (сейчас этот прекрасный продукт называется PVS-Studio). Он выполняет анализ кода на различные правила: логические/нелогические, конструктор/деструктор, сравнение переменных и другие. Возникла мысль применить похожую идеологию в КОМПАС-3D: на выходе проверять результат — чертеж или 3D-модель — некими правилами. Тем более, что в других САПР подобные проверки реализованы.
Вообще в IT инфраструктура разработки налажена гораздо лучше, чем в инженерном проектировании. Подробно описано, как сдавать код, как его верифицировать, как версионировать, в какие моменты какие проверки проводить (SWEBOOK вам в помощь). Почему бы не применить этот подход к работе конструктора в САПР?
В свое время, когда компьютеры были большими и рабочее время за ними дорогим, среди программистов было принято не допускать ошибки на этапе написания кода, чтобы он проходил с первого раза. Сейчас мы лишний раз проведем компиляцию, она выдаст кучу ошибок, исправим, еще раз проведем. Так и в работе конструктора — не надо пытаться с первого раза получить идеальный чертеж. Перед тем как идти получать подпись, проверь, исправь, еще раз проверь. Думать надо над своим изделием, а не над оформлением чертежа, «Эксперт» поможет.
Все возможные ошибки (дефекты документа) мы разбили на области знаний и стали под них «подкладывать» конкретные проверки. На данный момент в проекте сделано более 140 проверок.
Первыми для реализации были выбраны проверки оформления. Начиная работать над «Экспертом», мы естественно посмотрели какие решения на данный момент есть у конкурентов. В основном аналогичные системы выполняют стандартные проверки по стилям оформления: стиль линии, названия и цвета слоев, вид стрелки, стиль шрифта и т.д. В нашем приложении мы решили пойти дальше и проверять действительно по стандартам, поскольку КОМПАС-3D всегда отличался близостью к ним. Разработчиками приложения решено было эту традицию поддержать и сделать полноценные проверки исходя из стандартов ЕСКД.
В проверке на соответствие тому или иному стандарту прописываются нормы этого стандарта. Если в документе есть элементы, относящиеся к стандарту, то они проверяются на соответствие — допустим, оформление размеров, стилистика оформления, простановка предельных отклонений, квалитетов, простановка шероховатостей, сварных обозначений. В качестве справочных материалов в проверках приведены ссылки на стандарты. Мы работаем с сайтом «ТехЭксперт» (http://www.cntd.ru/), на котором выложена фундаментальная база стандартов ГОСТ. Если пользователь хочет убедиться в ошибке, которую показал КОМПАС-Эксперт, он может перейти на конкретный стандарт, конкретный его пункт, по которому выполнялась проверка.
В проверках оформления проделана большая работа по интеллектуализации анализа текстов. В любом конструкторском документе обязательно должны присутствовать технические требования. ГОСТ рекомендует определенную последовательность при их перечислении: сначала данные по материалу, затем размеры, качество поверхности и покрытие, настройка изделия и далее до особых условий эксплуатации. Мы сделали проверку на правильность составления техтребований. Есть набор ключевых слов, которые ищутся в техтребованиях. Если оказывается, что ключевое слово по покрытию находится раньше, чем по материалу, то выдается предупреждение об ошибке.
Предприятия могут выдвигать собственные стандарты оформления документации: шаблоны слоев, единые корпоративные стили (кто работал со строительными чертежами в AuotCAD, поймет).
Также пользователь может сужать рекомендуемые ГОСТом требования исходя из располагаемого инструмента и оборудования. Это касается как размеров и их допусков, резьб, параметров шероховатостей (если не позволяет станочный парк), так и форматов листов для вывода документов на печать (если банально нет большого плоттера). Такие внутренние «сужения» стандартов могут быть заданы в КОМПАС-Эксперте самими пользователями.
Это тот класс ошибок, который никогда не увидит нормоконтроль, проверяющий «бумагу». Даже если документ внешне соответствует стандартам, неправильное применение инструмента усложняет работу самого конструктора и тех специалистов, которые получают от него документы.
Одно из таких правил — объект «Осевая линия» вместо отрезков со стилем «Осевая линия». При использовании параметризации объект сразу правильно параметризуется, правильно укладывается в модель. Отрезок этими свойствами не обладает и будет нагружать параметрическую модель в эскизе, затрудняя работу пользователя.
Кстати в старых версиях КОМПАС-3D объекта «Осевая линия» еще не было. Поэтому имеет смысл проверять чертежи, взятые в работу из архива, во избежание тиражирования таких вынужденных ошибок.
Другие подобные правила — использование ассоциативности в аннотационных объектах, включение текстовой автосортировки, использование, где надо, текстовых гиперссылок.
Уж если вы считаете себя профессионалами, то и инструмент используйте профессионально.
Практически на всех предприятиях есть специально обученные люди, главной задачей которых является «Бдить» (кое где они даже собраны в «Специальные Отделы» и являются представителями «Органов»). Так вот, держаться подальше от таковых в сфере их профессионального интереса поможет КОМПАС-Эксперт.
Чтобы предотвратить непредумышленные утечки информации, предусмотрены проверки на неудаленные «черновики», скрытые объекты, ссылки на закрытые ресурсы предприятия.
Например, потенциальная ошибка — вставить вид с документа с именем файла C:\\Отдел ААА\Проект БББ\чертеж изделия №ХХХХ.cdw и отправить «на сторону» (а у вас разве по другому организована «структура проекта»?).
Обнаружен скрытый компонент
Тут все как у программистов: основная беда — использование «копипастинга». Еще хуже — «копипастинг» с чертежа, содержащего ошибки. Как правило, его автор «Великий Гуру» и его компетентность во всех вопросах не подлежит сомнению, а выпущенная Им документация «по умолчанию» не проверяется на ошибки.
Еще проблема — чертят чуть-ли не «от руки»: не по размерам, без привязок и т.д, а затем сдают этот «эскиз» как чертеж. Однако, контура не собираются, размеры не перестраиваются, линии выноски отваливаются. Зато «сдали» вовремя.
В этом направлении мы только начинаем двигаться. Особенно хотелось бы сделать технологические проверки в 3D-моделях, чтобы на этапе создания конструкции выявлять потенциальные сложности с ее изготовлением. А для этого нужно знать технологию производства. Например, если деталь будет изготавливаться литьем, нужно анализировать толщину ее стенок.
И собственно, как выглядит и работает продукт. Для пользователя «Эксперт» реализован в виде web-приложения. Работает независимо от КОМПАС-3D, но его наличие на рабочем месте необходимо. После запуска загружается страница, содержащая панель инструментов и окно результатов.
Документ можно проверять прямо в процессе работы над ним в КОМПАС-3D, в режиме «двух окон» (а лучше — двух мониторов). Либо указать перечень файлов или рабочую папку своего проекта и запустить проверку. На 8-ядерном процессоре проверка 200 документов занимает 3-5 минут.
Результаты проверки
Результат выдается в виде списка ошибок, разделенных на группы. Если выбрать конкретную ошибку, то проверенный документ откроется в КОМПАС-3D с указанием места/объекта, где эта ошибка обнаружена. Согласившись с рекомендацией «Эксперта», пользователь может сразу перейти к внесению исправлений.
Заключение
1. Сразу после выхода приложения нам стали поступать запросы: «Хотим получать статистику — сколько документов проверено, сколько ошибок выявлено». Теоретически «Эксперт» мог бы давать такую оценку, но мы намеренно отказываемся делать его карательным инструментом и не рекомендуем использовать в нормоконтроле. Пусть конструктор сам проверит, исправит и отдаст документ без ошибок.
2. Использование КОМПАС-Эксперта никоим образом не отменяет других техник/методик проверки технической документации? существующих (или планируемых) на предприятии. Тем более, что есть в основной надписи загадочная графа с надписью «Проверил». Но об этом в следующий раз.
Олег Волков, начальник отдела программирования, дивизион Приложения Аскон.
В свое время меня вдохновил Viva64 для проверки кода C++ (сейчас этот прекрасный продукт называется PVS-Studio). Он выполняет анализ кода на различные правила: логические/нелогические, конструктор/деструктор, сравнение переменных и другие. Возникла мысль применить похожую идеологию в КОМПАС-3D: на выходе проверять результат — чертеж или 3D-модель — некими правилами. Тем более, что в других САПР подобные проверки реализованы.
Вообще в IT инфраструктура разработки налажена гораздо лучше, чем в инженерном проектировании. Подробно описано, как сдавать код, как его верифицировать, как версионировать, в какие моменты какие проверки проводить (SWEBOOK вам в помощь). Почему бы не применить этот подход к работе конструктора в САПР?
В свое время, когда компьютеры были большими и рабочее время за ними дорогим, среди программистов было принято не допускать ошибки на этапе написания кода, чтобы он проходил с первого раза. Сейчас мы лишний раз проведем компиляцию, она выдаст кучу ошибок, исправим, еще раз проведем. Так и в работе конструктора — не надо пытаться с первого раза получить идеальный чертеж. Перед тем как идти получать подпись, проверь, исправь, еще раз проверь. Думать надо над своим изделием, а не над оформлением чертежа, «Эксперт» поможет.
Все возможные ошибки (дефекты документа) мы разбили на области знаний и стали под них «подкладывать» конкретные проверки. На данный момент в проекте сделано более 140 проверок.
Стандарты оформления конструкторской документации (ГОСТ/ЕСКД)
Первыми для реализации были выбраны проверки оформления. Начиная работать над «Экспертом», мы естественно посмотрели какие решения на данный момент есть у конкурентов. В основном аналогичные системы выполняют стандартные проверки по стилям оформления: стиль линии, названия и цвета слоев, вид стрелки, стиль шрифта и т.д. В нашем приложении мы решили пойти дальше и проверять действительно по стандартам, поскольку КОМПАС-3D всегда отличался близостью к ним. Разработчиками приложения решено было эту традицию поддержать и сделать полноценные проверки исходя из стандартов ЕСКД.
В проверке на соответствие тому или иному стандарту прописываются нормы этого стандарта. Если в документе есть элементы, относящиеся к стандарту, то они проверяются на соответствие — допустим, оформление размеров, стилистика оформления, простановка предельных отклонений, квалитетов, простановка шероховатостей, сварных обозначений. В качестве справочных материалов в проверках приведены ссылки на стандарты. Мы работаем с сайтом «ТехЭксперт» (http://www.cntd.ru/), на котором выложена фундаментальная база стандартов ГОСТ. Если пользователь хочет убедиться в ошибке, которую показал КОМПАС-Эксперт, он может перейти на конкретный стандарт, конкретный его пункт, по которому выполнялась проверка.
В проверках оформления проделана большая работа по интеллектуализации анализа текстов. В любом конструкторском документе обязательно должны присутствовать технические требования. ГОСТ рекомендует определенную последовательность при их перечислении: сначала данные по материалу, затем размеры, качество поверхности и покрытие, настройка изделия и далее до особых условий эксплуатации. Мы сделали проверку на правильность составления техтребований. Есть набор ключевых слов, которые ищутся в техтребованиях. Если оказывается, что ключевое слово по покрытию находится раньше, чем по материалу, то выдается предупреждение об ошибке.
Корпоративные стандарты оформления документации
Предприятия могут выдвигать собственные стандарты оформления документации: шаблоны слоев, единые корпоративные стили (кто работал со строительными чертежами в AuotCAD, поймет).
Также пользователь может сужать рекомендуемые ГОСТом требования исходя из располагаемого инструмента и оборудования. Это касается как размеров и их допусков, резьб, параметров шероховатостей (если не позволяет станочный парк), так и форматов листов для вывода документов на печать (если банально нет большого плоттера). Такие внутренние «сужения» стандартов могут быть заданы в КОМПАС-Эксперте самими пользователями.
Правила использования КОМПАС-3D
Это тот класс ошибок, который никогда не увидит нормоконтроль, проверяющий «бумагу». Даже если документ внешне соответствует стандартам, неправильное применение инструмента усложняет работу самого конструктора и тех специалистов, которые получают от него документы.
Одно из таких правил — объект «Осевая линия» вместо отрезков со стилем «Осевая линия». При использовании параметризации объект сразу правильно параметризуется, правильно укладывается в модель. Отрезок этими свойствами не обладает и будет нагружать параметрическую модель в эскизе, затрудняя работу пользователя.
Кстати в старых версиях КОМПАС-3D объекта «Осевая линия» еще не было. Поэтому имеет смысл проверять чертежи, взятые в работу из архива, во избежание тиражирования таких вынужденных ошибок.
Другие подобные правила — использование ассоциативности в аннотационных объектах, включение текстовой автосортировки, использование, где надо, текстовых гиперссылок.
Уж если вы считаете себя профессионалами, то и инструмент используйте профессионально.
Защита информации
Практически на всех предприятиях есть специально обученные люди, главной задачей которых является «Бдить» (кое где они даже собраны в «Специальные Отделы» и являются представителями «Органов»). Так вот, держаться подальше от таковых в сфере их профессионального интереса поможет КОМПАС-Эксперт.
Чтобы предотвратить непредумышленные утечки информации, предусмотрены проверки на неудаленные «черновики», скрытые объекты, ссылки на закрытые ресурсы предприятия.
Например, потенциальная ошибка — вставить вид с документа с именем файла C:\\Отдел ААА\Проект БББ\чертеж изделия №ХХХХ.cdw и отправить «на сторону» (а у вас разве по другому организована «структура проекта»?).
Обнаружен скрытый компонент
Небрежность и проектирование в режиме «давай побыстрей»
Тут все как у программистов: основная беда — использование «копипастинга». Еще хуже — «копипастинг» с чертежа, содержащего ошибки. Как правило, его автор «Великий Гуру» и его компетентность во всех вопросах не подлежит сомнению, а выпущенная Им документация «по умолчанию» не проверяется на ошибки.
Еще проблема — чертят чуть-ли не «от руки»: не по размерам, без привязок и т.д, а затем сдают этот «эскиз» как чертеж. Однако, контура не собираются, размеры не перестраиваются, линии выноски отваливаются. Зато «сдали» вовремя.
Технологический контроль
В этом направлении мы только начинаем двигаться. Особенно хотелось бы сделать технологические проверки в 3D-моделях, чтобы на этапе создания конструкции выявлять потенциальные сложности с ее изготовлением. А для этого нужно знать технологию производства. Например, если деталь будет изготавливаться литьем, нужно анализировать толщину ее стенок.
Как это работает
И собственно, как выглядит и работает продукт. Для пользователя «Эксперт» реализован в виде web-приложения. Работает независимо от КОМПАС-3D, но его наличие на рабочем месте необходимо. После запуска загружается страница, содержащая панель инструментов и окно результатов.
Документ можно проверять прямо в процессе работы над ним в КОМПАС-3D, в режиме «двух окон» (а лучше — двух мониторов). Либо указать перечень файлов или рабочую папку своего проекта и запустить проверку. На 8-ядерном процессоре проверка 200 документов занимает 3-5 минут.
Результаты проверки
Результат выдается в виде списка ошибок, разделенных на группы. Если выбрать конкретную ошибку, то проверенный документ откроется в КОМПАС-3D с указанием места/объекта, где эта ошибка обнаружена. Согласившись с рекомендацией «Эксперта», пользователь может сразу перейти к внесению исправлений.
Заключение
1. Сразу после выхода приложения нам стали поступать запросы: «Хотим получать статистику — сколько документов проверено, сколько ошибок выявлено». Теоретически «Эксперт» мог бы давать такую оценку, но мы намеренно отказываемся делать его карательным инструментом и не рекомендуем использовать в нормоконтроле. Пусть конструктор сам проверит, исправит и отдаст документ без ошибок.
2. Использование КОМПАС-Эксперта никоим образом не отменяет других техник/методик проверки технической документации? существующих (или планируемых) на предприятии. Тем более, что есть в основной надписи загадочная графа с надписью «Проверил». Но об этом в следующий раз.
Олег Волков, начальник отдела программирования, дивизион Приложения Аскон.
mickvav
Осталось — документы в git, сабж — на precommit-hook
kompas_3d Автор
Ну для этого у нас PLM-системы есть: ЛОЦМАН, Pilot-Ice.