Привет, Хабр! Меня зовут Евгений Песков, я работаю аналитиком в команде разработки САПР техпроцессов ВЕРТИКАЛЬ. Рискну поднять тему, из‑за которой сломали уже не одну сотню копий, — идеальная аналитическая статья. Возможно ли сконструировать ее шаблон? Чтобы материал был удобен в использовании всем участникам команды разработки, а я, как автор, минимизировал трудоемкость по его написанию и сопровождению.
Во что компилятор C++ превращает код, или ускоряем код безопасно
Привет, Хабр! Меня зовут Алексей Салтыков, я инженер-программист в команде КОМПАС-3D. Решил поделиться соображениями насчет оптимизаций в С++ глазами обычного разработчика. Хочется сразу предупредить, что статья никого ни к чему не призывает. Цель – наглядно показать, как незначительные трансформации кода могут помочь компилятору лучше оптимизировать код и насколько это вообще эффективно.
История одного ядра от Андрея Туманина: «Без нашего ядра всё было бы по-другому»
В рубрике «История одного ядра» рассказываем о людях, которые своим трудом и талантом создают историю C3D Labs. Мы поговорили с Андреем Туманиным, руководителем отдела разработки геометрического ядра C3D Modeler, и узнали, как Андрей прошел путь от романтики судостроительной отрасли к руководству командой математиков-программистов ядра.
— Андрей, расскажи, где прошло твоё детство?
Детство прошло в Нижегородской области.
— Мечтал ли ты стать математиком? Или, может, пошел по стопам родителей?
Стать математиком не мечтал, родители тоже к этой сфере не относятся. Мне повезло, у меня в школе были хорошие педагоги по математике — Лилия Михайловна Владимирская и Нина Константиновна Владимирская, которые привили любовь к точным наукам. Разумеется, была склонность к техническим предметам. В целом класса с 8-го я был нацелен на мехмат ННГУ, занимался в заочной математической школе при этом факультете.
— Ты учился на механико-математическом факультете ННГУ им. Лобачевского. Сложно ли было поступить и учиться?
Для меня поступить было сложнее, чем учиться. В студенческие годы жил в общежитии. Первые три курса сосредоточился на учебе, а потом работал. С четвертого курса уже работал.
Путь астрофотографа, часть 2: красим туманности и практикуем астропейзажи
Снова привет, Хабр! Меня зовут Евгений Сергеев, я работаю инженером-программистом в АСКОН, а в свободное время увлекаюсь астрофотографией. В предыдущем посте я уже рассказывал о первых шагах в этом хобби и доступной аппаратуре, а теперь расскажу подробнее о недавней поездке и поделюсь советами с новичками.
Об изменениях в процессе доставки геометрического ядра C3D
Анна Ладилова, руководитель команды DevOps в C3D Labs, раскрывает причины возрастающей роли Linux в разработке, описывает связанные с этим изменения, которые происходят в процессе доставки ядра C3D, а также делится планами дальнейшего развития.
В 2022 году компания C3D Labs начала собирать геометрическое ядро C3D на базе платформы «Эльбрус».
Истории
Астрофотография: от советского объектива до автоматизированного управления телескопом
Привет, Хабр! Меня зовут Евгений Сергеев, я работаю инженером-программистом в АСКОН, а в свободное время увлекаюсь астрофотографией. Именно ей будет посвящена статья. Я не буду затрагивать слишком много технических деталей, поскольку невозможно все охватить в рамках одного материала. Тем более, что на Хабре есть и другие статьи об астрофотографии. Я расскажу о своем опыте: как познакомился с этим увлекательным хобби и как можно начать самому без траты целого состояния.
Антипаттерны в процессе разработки
Несмотря на то, что наши сегодняшние процессы выглядят достаточно устойчиво, хотелось бы, во-первых, иметь возможность вовремя увидеть возможные негативные тенденции и причины их возникновения, а во-вторых, оставаться открытыми к полезным инициативам.
Всё это сподвигло нас к анализу накопленного опыта и имеющихся материалов в области процессов разработки с акцентом на взаимоотношения в коллективах. Мы — это Евгений Филимонов и Андрей Клюйков, инженеры по тестированию КОМПАС-3D.
В ходе проработки содержания статьи мы решили сгруппировать попарно антипаттерны, являющиеся крайними проявлениями одной сущности, и придать им гротескную форму. Мы посчитали, что через призму таких антипаттернов будет проще обратить внимание на те области наших процессов, которые имеют потенциал к улучшениям и оптимизации. Особенно это актуально, когда масштабы задач непрерывно растут и наблюдаются достаточно высокие темпы роста штата сотрудников.
И наконец, чтобы приблизиться к пониманию актуальности темы антипаттернов, решили провести небольшой опрос среди коллег, результаты которого приведены в конце статьи.
C3D Web Vision: функциональность и планы по развитию компонента
Сергей Климкин, руководитель группы C3D Web Vision, C3D Labs, рассказывает о том, что из себя представляет модуль Web Vision, освещает текущие рабочие проекты и знакомит с планами по развитию компонента.
Web Vision — это клиент-серверный модуль, предназначенный для визуализации в браузере. Он включает процессы управления камерой, такие как панорамирование, вращение, зумирование, причем как с помощью компьютерной мыши, так и с помощью жестов на сенсорном экране. Процесс поиска геометрии можно осуществлять как в режиме поиска под курсором, так и рамкой — секущей и объединяющей. Кроме того, имеются функции управления видимостью, масштабирования камеры и динамического сечения.
Web Vision состоит из двух частей. Первый, frontend-часть, представляет собой npm-пакет, поставляющийся для внедрения в браузер разработчика. В него входит Type Script API для управления свойствами визуализации — скрытия объекта, его покраски и других способов взаимодействия с графикой. Второй компонент, серверная часть, в большей степени ориентирован на управление данными. Серверная часть используется для конвертации, подготовки данных для визуализации, получения атрибутной информации, метаданных и т. д. Управление сервисом происходит с помощью REST API, это сделано для интеграции с микросервисной архитектурой.
Как обеспечить качественный бэклог
Что для нас качественный бэклог? Под самим словом бэклог будем понимать список задач, в частности пользовательских историй, которые должна реализовать команда разработки в определенные сроки. Как правило, появляются они в результате декомпозиции функциональности. Что касается качества, то его основным критерием здесь будет результат выполнения этих задач. Другими словами, если мы достаточно точно, с учетом рисков и приоритетов, можем спрогнозировать сроки и результаты выполнения разрабатываемой функциональности, то бэклог можно назвать качественным. О нем и поговорим. На связи Владислав Филимонов, инженер-аналитик КОМПАС-3D.
Инструменты системного аналитика: методология, софт, сервисы
В данной статье представлен небольшой обзор инструментов, которые я активно использую в своей работе. Меня зовут Андрей Канивец, я аналитик систем жизненного цикла изделий.
Типы инструментов можно разделить на методологические инструменты и программные средства, которые в свою очередь подразделяются на программы для работы с аудио и видео, текстовые редакторы, инструменты для быстрой разработки и прототипирования, а также инструменты искусственного интеллекта для распознавания речи и обработки текста.
C3D Vision: новая функциональность и интеграция с математическим ядром
Эдуард Максименко, руководитель команды разработки C3D Vision, к.т.н., C3D Labs, знакомит с новыми возможностями основного компонента визуализации — C3D Vision — и представляет усовершенствования для инструментов, которые давно находятся в распоряжении пользователей.
Прежде чем перейти к основным темам, давайте уточним, что такое C3D Vision. C3D Vision — это кроссплатформенная графическая библиотека (SDK), которая дает возможность визуализировать практически любое полигональное представление геометрии. Графическая библиотека Vision ориентирована на систему автоматизированного проектирования, и основной функционал включает:
Эволюция API: от монолита к открытой платформе
Привет, Хабр. Меня зовут Сергей Синяков, тимлид команды спецификации в разработке КОМПАС-3D, занимаюсь вопросами управления данными об изделии и формированием документа Спецификации. И сегодня мы поговорим про API.
Любой программный продукт не существует в вакууме и предназначен для взаимодействия с пользователем через пользовательский интерфейс (UI) и/или с внешним приложением через API. Учитывать будущий интерфейс приложения чрезвычайно важно еще на этапе проектирования, т.к. требования к UI и API могут накладывать существенные ограничения на архитектуру продукта. Не зря классическая пользовательская история, поступающая в разработку, звучит так: "Я как пользователь, выполнив определенные действия с UI, ожидаю получить соответствующий результат". Если же спроецировать пользовательские истории на API, получим сценарий для автотестов и разработку через тестирование - TDD, когда перед началом разработки структуры данных, функции API и их ожидаемое поведение фиксируются в тестах, а разработка фокусируется на обеспечении их корректного прохождения.
Инженерные расчёты: кто пасётся на лугу?
Правильный ответ — конечные элементы, если отгадывает самый маленький инженер-прочнист, или контрольные объёмы, если инженеру ближе механика жидкости и газа. Ну, а если за дело берется менеджер по продажам, то для него там пасутся компании, которые этот софт для расчётов методом конечных элементов или контрольных объёмов разрабатывают и продают. На этот раз предлагаю посмотреть, с замещением каких продуктовых брендов можно столкнуться при внедрении российских САЕ-продуктов, какие у них есть сильные и слабые стороны.
Книжный клуб АСКОН: что читают разработчики САПР?
Сегодня в АСКОН работает больше тысячи человек: от Санкт-Петербурга до Владивостока, часто разработчики одного продукта могут не знать своих коллег из других команд и тем более сотрудников региональных офисов, которые занимаются внедрением разработанного ПО. Что может объединить людей в большой компании помимо общего работодателя?
Из этих соображений и родился книжный клуб АСКОН. Чтение – это универсальное занятие, способное свести в одном чате людей с самым разным бэкграундом, разных поколений и с разными вкусами. А как сделать так, чтобы все были на связи, но ни для кого клуб не был обязательным? Конечно, организовать его онлайн в телеграме!
Ближайшие события
Parasolid inside: новые форматы и другие доработки C3D Converter
Александр Спиваков, руководитель команды разработки C3D Converter, C3D Labs, описывает роль конвертера в качестве части C3D Toolkit, представляет сценарии использования C3D Converter — миграция и MultiCAD — в пользовательских приложениях, знакомит с доработками решения, сделанными в контексте этих задач, и планами развития конвертера.
Что собой представляет C3D Converter в составе C3D Toolkit и зачем он нужен? Глобально перед нами стоят две задачи.
C3D Solver: принципы параметрического черчения 2D-паттернов и улучшения для 3D-моделирования сборок
Александр Алахвердянц, ведущий математик-программист, C3D Labs, знакомит с новинками в двухмерных и трехмерных решателях — продуктах, которые разрабатываются в группе C3D Solver.
Что такое решатели? Решатели — это библиотеки, которые позволяют накладывать связи на геометрические объекты. Эти связи мы называем ограничениями. Они бывают двух видов: логические (касания, симметрии, совпадения) и размерные (угловой и линейный размеры, паттерны). Кроме того, мы предоставляем функционал анализа степеней свободы, минималистичного драггинга и логирования вызовов API. Логирование вызовов API значительно помогает при составлении баг-репортов.
Первая и главная новинка группы C3D Solver в этом году — это появление нового типа объектов, а именно двумерных паттернов.
8 вопросов про CAE: точность, скорость, железо и импортозамещение
Последние лет десять я так или иначе участвую в процессе продажи программного обеспечения для инженерных расчётов. Общаюсь с менеджерами по продажам и непосредственно с клиентами, и у меня накопился список вопросов, которые задают чаще всего и на которые зачастую не так легко ответить. А ещё, поскольку направление инженерных расчётов в АСКОН довольно молодое, в этот список я включил вопросы, касающиеся особенностей программного обеспечения, которое мы считаем в АСКОН частью комплексного PLM-решения консорциума «Развитие». Итак, поехали!
C3D Collision Detection: представление детектора столкновений в составе C3D Toolkit
Сергей Белёв, старший математик‑программист, C3D Labs, знакомит с новым компонентом C3D Toolkit — модулем C3D Collision Detection, рассказывает о том, что детектор столкновений представляет собой изнутри, и о том, какие возможности он предоставляет пользователям.
Детектор столкновений — новый компонент инструмента C3D Toolkit. В статье перечислим математические задачи, которые поставлены перед детектором, узнаем его основной функционал, рассмотрим несложный пример, демонстрирующий интерфейс модуля, и обратимся к планам и дорожной карте.
Обнаружение столкновений подразумевает постановку следующих математических задач. Первая — это возможность уметь находить пересечения между собой среди множества объектов и делать это быстро, без поиска самого пересечения. Требуется оперативно отвечать на соответствующий вопрос — «да, пересекаются» / «нет, не пересекаются». Следующая задача состоит в классификации касаний между собой этого множества объектов. Каждое касание является пересечением, но не наоборот, и важно уметь выделять этот частный случай пересечения. Помимо этого, актуальна задача поиска минимального расстояния между сборками тел и телами, а также задача классификации взаимного расположения объектов. Примером служит детектирование «вложения тел» («тело в теле»), недавно внедренное нами в ответ на многочисленные запросы пользователей. Важно отметить, что все эти задачи нужно уметь решать как в статике, так и в динамике.
Модуль C3D Collision Detection, во‑первых, реализует «эффективные» алгоритмы решения всех поставленных задач — как в статических сценах, например контроль зазоров, так и в динамических сценах, в частности контроль соударений между элементами сборки. Во‑вторых, у нас есть возможность тонкой настройки всех формулируемых задач — можно даже создавать их комбинации. В‑третьих, исходя из необходимости быстро детектировать касание/пересечение, применяется принципиально иной подход, чем в булевой операции: мы не строим какие‑либо дополнительные объекты.
Стажерская программа глазами бывшего стажера
В разработке КОМПАС-3D действует программа студенческих стажировок: начинающие специалисты изучают теорию, практикуются на реальных задачах, учатся взаимодействовать в командах. Мы взяли интервью у выпускницы программы, Екатерины Малышевой, инженера-программиста КОМПАС-3D.
Работа с файлами других САПР в КОМПАС-3D. Часть 3. Добавление компонентов в сборку без предварительного открытия
«В предыдущих сериях» (часть 1 и часть 2) мы рассказали, какие практические сценарии работы с файлами моделей из других CAD-систем существуют в КОМПАС-3D. Разобрали, как открывать файлы открытых и проприетарных форматов для просмотра, создавать с них конструкторскую документацию, редактировать модели.
В этой, заключительной части объясняем, как добавить компонент из другой CAD-системы в сборку КОМПАС-3D таким образом, чтобы при изменении исходного файла модели эти изменения отображались в сборке автоматически.