Валерий Голованев, инженер-аналитик и программист, разработчик приложений для КОМПАС-3D, рассказывает, как используется геометрическое 3D-ядро при разработке приложений для САПР.
С лирическим вступлением и глубоким погружением в мир механических передач.
Ремесленниками были мой прапрадед Ефим Степанович (пахарь, бондарь и плотник), мой прадед Трифон Ефимович (пахарь и плотник) и дедушка Михаил Трифонович (кузнец, плотник, плотник, бондарь).
И я ремесленник.
Инженер и плотник-любитель.
Трудно любому мастеру.
Трудно без интересных задач, сложно, когда недостаточно возможностей для их реализации.
Настоящему мастеру свойственно ставить перед собой задачи, которые порой кажутся трудновыполнимыми, и реализовывать их.
Когда шесть лет назад, летом 2012 года, я вернулся к своему детищу - библиотеке КОМПАС-Вал для проектирования тел вращения (ныне приложение «Валы и механические передачи 3D» для КОМПАС-3D), то на распечатке моего ИП я изобразил пару конусов с круглым зубцом.
В тот момент я только мечтал, что когда-нибудь смогу сделать их в 3D – это был скорее символ.
С возрастом все больше внимания обращаешь на знаки и символы судьбы.
Цель материализовалась! От червячного колеса к гипоидной передаче в КОМПАС-3D С чего все началось? С желанием! Мне очень хотелось дать конструктору настоящие 3D модели механических передач, а не какие-то «сходства», чтобы он мог:
- Создайте шестерню, червячное колесо или звездочку на основе 3D-модели.
Или наконечник с круглым зубом, или (ох мечты.
) гипоидная пара.
- Увидеть в 3D сборке не обычные «кракозубры», а настоящие модели.
- И далее.
Почему, собственно, необходимо ориентировать механические трансмиссии на возможности (ограничения) обычной техники? Неправильно нарушать дизайн по технологии.
Необходимо изготавливать правильные передачи с оптимальной с точки зрения эксплуатации 3D-геометрией активных рабочих поверхностей, а технология должна обеспечивать их изготовление.
И такая технология, называемая аддитивной, уже существует! Современные промышленные 3D-принтеры позволяют печатать изделия, нагруженные металлом, и эксперименты заходят далеко: скоро детали, созданные аддитивными методами, станут обычным явлением в машиностроительной продукции, если не массового производства, то уж точно мелкосерийного.
смоделировать обработку в КОМПАС-3D. Не скажу, что это было легко.
Делать рез, используя набор многочисленных позиций инструмента, неправильно и требует много времени.
Необходимо сформировать набор поверхностей положения инструмента и создать на их основе огибающую поверхность выреза.
Что, в общем-то, сработало, но работало очень медленно.
Кроме того, необходимо было добавить процессу реалистичности, т.е.
учесть допуски при генерации 3D-геометрии.
В общем, решив одну задачу, захотелось большего - большей точности, измерений зуба червячного колеса и формирования выносок на чертежах с профилем этого зуба (а вдруг технологи-инструментальщики захотят изготовить измерительные шаблоны?).
Кстати, в этом же году завод «Казцинкмаш» изготовил на основе моей модели две пары червячных колес, которые были успешно установлены в рабочие агрегаты и получили положительные отзывы.
Вперед, продолжать! Осенью 2015 года, с поощрения (или пинка) Владимира Панченко, начальника отдела приложений КОМПАС-3D, и под опекой Алексея Султанова, я начал изучать программирование на ядре C3D, математика которого КОМПАС-3D. На основе 3D. Цель – обрести свободу! И я получил это.
Я больше не был ограничен количеством операций и процедур, которые мог выполнить.
Все произошло довольно быстро.
На выходе у меня получился корпус — массив вырезов из заготовки червячного колеса.
Ну а дальше все просто: булева операция и червячное колесо готово.
Николай Голованов, руководитель разработки C3D Labs
Некоторые приложения системы КОМПАС-3D, в том числе приложение «Валы и механические передачи 3D», работают напрямую с геометрическим ядром C3D. Это позволяет разработчикам приложений более гибко подходить к своим задачам за счет расширения функционала (работа с низкоуровневыми функциями) и приемов построения геометрических объектов.Далее следовали цилиндры с внешней передачей.Если вы пишете приложение для КОМПАС-3D и хотите использовать возможности C3D напрямую, имеет смысл обратиться к ядру, встроенному в сам КОМПАС-3D. У этого метода есть единственное ограничение: необходимо использовать только C++, так как сам КОМПАС написан на этом языке.
Если вы решите работать с отдельной копией ядра внутри собственного приложения, то вам будет доступен как C#, так и, в некоторых случаях, JavaScript.
Казалось бы, просто, но между тем в случае с косозубой передачей и операцией резания по винту в КОМПАС-3D отработка API тоже заняла довольно много времени.
Теперь эти шестеренки можно сформировать с настоящей подложкой.
Ну а в конце 2015 года начался процесс работы над типсами с круглым зубом.
К тому времени алгоритм был разработан с использованием API КОМПАС.
Первые модели с не очень хорошей геометрией были созданы еще до наступления чистого времени.
Здесь просто подмести поверхности было недостаточно.
Создавались конические передачи качения, и необходимо было сформировать колесо, обработав его прототипом зуборезной головки.
Затем, используя полученную 3D-геометрию, сформируйте и сохраните прототип зубчатого инструмента, снимите со всего этого контролируемые размеры и перенесите на чертеж.
Далее на шестерне, учитывая, что она оказалась идеально приработанной, необходимо было локализовать контакт, т. е.
обеспечить правильное положение и размер пятна контакта в шестерне.
Сложная и очень интересная задача.
Время от времени Николай Голованов и его команда корректировали функциональность C3D на основе моих комментариев.
Таким образом, мои шишки тоже оказались хорошей проверкой ядра.
Николай Голованов, руководитель разработки C3D Labs
Недавно в геометрическом ядре C3D лофт-поверхности, построенные по сечениям, подверглись значительной переработке.Наконечники на основе моих моделей неоднократно изготавливались на разных предприятиях и работают в реальных агрегатах.Они использовались для моделирования точек контакта шестерен.
Разработан алгоритм локализации.
Но остановиться на этом было сложно.
Эта локализация меня не устроила.
Обеспечить ее было слишком сложно.
А уже весной 2018 года пришла идея «более простого» способа локализации.
Вообще-то идея не моя, я подсмотрел ее в материалах фирмы Клингельнберг - они ее называют профиль и продольное венчание .
Я назвал это «сделать зуб бугорком», и именно это и произошло.
В каждом участке профиля выреза производился перерасчет, и насыпь удалась.
Коэффициенты локализации стали проще и понятнее.
Коротко о результате: пятно контакта, а это совокупность мгновенных площадей контакта на зубе шестерни за один цикл ее вращения = 360/количество зубьев шестерни, ТЕПЕРЬ ВСЕГДА лежит посередине активной поверхности зуба ( на вершине «кургана»), его размер составляет более 60% всей поверхности.
Что это дает:Правда, пока их можно изготавливать только на станках с ЧПУ, но в будущем подтянутся и аддитивные технологии.
- трансмиссии станут более долговечными и надежными
- шум трансмиссии будет уменьшен
- трансмиссия будет менее чувствительна к ошибкам установки.
Ну и под конец.
В этом году осуществилась трансмиссия мечты, моя самая сложная мечта-задача на сегодняшний день - это гипоидные трансмиссии.
Многое пришлось сделать, чтобы добиться этого.
Шесть лет пути после возвращения в САПР-разработку.
Хотя на самом деле путь начался еще в 1991 году с заказного проекта по созданию программного обеспечения для расчета конических шестерен с круглым зубом.
Естественно, в них реализован и зубной «бугор».
Владимир Панченко, руководитель направления «Приложения КОМПАС-3D», АСКОН
Использование ядра в приложении «Валы и механические передачи» было продиктовано отзывами Казцинкмаша.Как работает 3D-ядро при моделировании механической трансмиссии Используются наиболее распространенные операции из основного функционала: создание плоскости, построение эскиза/поверхности/пересечения поверхностей и т.д. Для примера рассмотрим последовательность операций, необходимых для формирования 3D-модели выреза конического колеса с круговыми зубьями (именно колеса, а не шестерни):Для меня было очевидно, что строительство можно вести быстрее; оставалось только убедить в этом Валерия.
Отягчающим обстоятельством было то, что Валерий не любил C++, а функции C3D в контексте КОМПАС-3D можно использовать только на этом языке программирования.
Пришлось делать макет, спасибо Алексею Султанову.
Простой перевод кода сразу дал заметный выигрыш в скорости: точная модель зуба червячного колеса была построена за 10 секунд. На создание червячного колеса с использованием API ушло около часа.
Ну а затем мастерство Валерия позволило ему создать коронки на круглый зуб.
Так мы вывели проект «Валы и шестерни» на совершенно новый уровень.
- Формируем поверхности конусов – разделительного конуса, конуса вершин и конуса впадин.
Для этого на соответствующих расчетных расстояниях создают плоскости и строят по ним эскизы окружностей расчетных диаметров, а затем на их основе конусов.
- Построим точки центров разделительного конуса и конуса впадин.
- Далее формируют касательную плоскость к конусу впадин (1) и плоскость по средней точке колеса в впадине (2).
В месте пересечения плоскости (1) и плоскости XOY образуется ось пересечения (3), а в месте пересечения плоскости (2) и плоскости (1) образуется ось пересечения (4).
- На пересечении этих осей будет точка, через которую проходит вершина зуборежущей головки.
- Отсюда, зная средний угол наклона зубьев (именно в этой точке), вычисляем центр зубчаторежущей головки.
- Нашими ориентирами будут проекции полудуги зуборезной головки на конусы впадин (5) и делительный конус.
По этой направляющей (5) будет строиться базовая поверхность реза (по чердаку по трем сечениям с расчетным профилем зуборезной головки).
- Далее, имея порядок выполнения аналогичной операции при разных углах поворота зуборежущей головки при обработке колеса, получаем массив поверхностей выреза (6).
- После этого в достаточном количестве участков (не менее 20) в нормальных к направляющей плоскостях (проекции полудуги зуборезной головки на делительный конус) будут найдены множества линий пересечения массива поверхностей.
полученный.
- Математическая обработка полученного набора линий пересечения позволит получить их огибающую, которая и будет одним из участков фактического выреза зуба колеса.
- По совокупности этих участков вырезов будет построен окончательный лофт – вырез зуба колеса.
- Из полученной геометрии автоматически будут взяты контрольные размеры и сам профиль зуба (строится зуб, делается разрез с помощью плоскости сечения и по нему рассчитывается) и все это переносится на чертеж.
- Все довольно просто, хотя в данном конкретном случае и без учета «мелких» нюансов математических расчетов, скрытых от глаз читателей.
Владимир Панченко, руководитель направления «Приложения КОМПАС-3D», АСКОН
Что быстрее API КОМПАС-3D или C3D? Вопрос звучит парадоксально.C3D — геометрическое ядро КОМПАС-3D! Как работает ядро, так и КОМПАС-3D. Но при ближайшем рассмотрении, особенно в контексте разработчика приложений, все становится на свои места.
Стандартная схема для разработчика выглядит так.
Вызов API-функции КОМПАС-3D приводит к добавлению объекта в модель документа, а затем вызывает C3D для создания геометрии.
Далее по цепочке в обратном порядке данные возвращаются обратно в API, и теперь интерфейс созданного объекта оказывается в руках разработчика.
При этом на каждом шаге с данными что-то происходит: в API они упаковываются в COM, в модели документа проверяются на корректность в текущем контексте, добавляются атрибуты и данные рендеринга.
Разумеется, все эти действия оптимизированы и занимают совсем немного времени.
Если разработчику необходимо получить цилиндрическую ступеньку вала, то он создает эскиз и операцию выдавливания в КОМПАС-3D — всего два объекта и два вызова по цепочке.
Но ситуация радикально меняется в случае геометрии конической передачи с круглым зубом.
Для этого нужно создать множество вспомогательных кривых, поверхностей (и все это не аналитические цилиндры и конусы, а NURBS) и их пересечений.
Перекачка данных начинает занимать значительное количество времени.
В этом случае ядро будет преимущественно простаивать.
Чтобы избежать потерь времени, взаимодействие с API и моделью документа сведено к минимуму — добавьте операцию с телом и примите тело, смоделированное в C3D. Получаем один проход в C3D и оптимально создаем всю вспомогательную геометрию в стеке, пересекаем то, что нужно, и получаем результат. Работает только ядро и работает оно очень быстро.
Валерий Голованев , инженер-аналитик и программист, Курган, пос.
Теплый Стан.
Теги: #CAD #CAD #CAD/CAM #compass-3d #geometric kernel #compass #c3d #c3dkernel
-
Что Такое Группа Новостей Usenet?
19 Oct, 24 -
Как Казалось
19 Oct, 24 -
Что Такое Хороший Дизайнер?
19 Oct, 24 -
Хостинг Pci Dss: Что Вам Нужно Знать
19 Oct, 24 -
My.opera.com Любит Хабрахабр
19 Oct, 24