О Том, Как Легко Мастеру Мечтать С 3D Ядром

Валерий Голованев, инженер-аналитик и программист, разработчик приложений для КОМПАС-3D, рассказывает, как используется геометрическое 3D-ядро при разработке приложений для САПР.

С лирическим вступлением и глубоким погружением в мир механических передач.



О том, как легко мастеру мечтать с 3D ядром

Ремесленниками были мой прапрадед Ефим Степанович (пахарь, бондарь и плотник), мой прадед Трифон Ефимович (пахарь и плотник) и дедушка Михаил Трифонович (кузнец, плотник, плотник, бондарь).

И я ремесленник.

Инженер и плотник-любитель.

Трудно любому мастеру.

Трудно без интересных задач, сложно, когда недостаточно возможностей для их реализации.

Настоящему мастеру свойственно ставить перед собой задачи, которые порой кажутся трудновыполнимыми, и реализовывать их.

Когда шесть лет назад, летом 2012 года, я вернулся к своему детищу - библиотеке КОМПАС-Вал для проектирования тел вращения (ныне приложение «Валы и механические передачи 3D» для КОМПАС-3D), то на распечатке моего ИП я изобразил пару конусов с круглым зубцом.

В тот момент я только мечтал, что когда-нибудь смогу сделать их в 3D – это был скорее символ.

С возрастом все больше внимания обращаешь на знаки и символы судьбы.

Цель материализовалась! От червячного колеса к гипоидной передаче в КОМПАС-3D С чего все началось? С желанием! Мне очень хотелось дать конструктору настоящие 3D модели механических передач, а не какие-то «сходства», чтобы он мог:

  1. Создайте шестерню, червячное колесо или звездочку на основе 3D-модели.

    Или наконечник с круглым зубом, или (ох мечты.

    ) гипоидная пара.

  2. Увидеть в 3D сборке не обычные «кракозубры», а настоящие модели.

  3. И далее.

    Почему, собственно, необходимо ориентировать механические трансмиссии на возможности (ограничения) обычной техники? Неправильно нарушать дизайн по технологии.

    Необходимо изготавливать правильные передачи с оптимальной с точки зрения эксплуатации 3D-геометрией активных рабочих поверхностей, а технология должна обеспечивать их изготовление.

    И такая технология, называемая аддитивной, уже существует! Современные промышленные 3D-принтеры позволяют печатать изделия, нагруженные металлом, и эксперименты заходят далеко: скоро детали, созданные аддитивными методами, станут обычным явлением в машиностроительной продукции, если не массового производства, то уж точно мелкосерийного.

Прошло около трёх лет и весной 2015 года я решил сделать настоящее червячное колесо с помощью COMPASS API. Принцип реализации в этой задаче мне был давно ясен: необходимо обметать инструментом тело заготовки, т. е.

смоделировать обработку в КОМПАС-3D. Не скажу, что это было легко.

Делать рез, используя набор многочисленных позиций инструмента, неправильно и требует много времени.

Необходимо сформировать набор поверхностей положения инструмента и создать на их основе огибающую поверхность выреза.

Что, в общем-то, сработало, но работало очень медленно.

Кроме того, необходимо было добавить процессу реалистичности, т.е.

учесть допуски при генерации 3D-геометрии.

В общем, решив одну задачу, захотелось большего - большей точности, измерений зуба червячного колеса и формирования выносок на чертежах с профилем этого зуба (а вдруг технологи-инструментальщики захотят изготовить измерительные шаблоны?).

Кстати, в этом же году завод «Казцинкмаш» изготовил на основе моей модели две пары червячных колес, которые были успешно установлены в рабочие агрегаты и получили положительные отзывы.



О том, как легко мастеру мечтать с 3D ядром



О том, как легко мастеру мечтать с 3D ядром

Вперед, продолжать! Осенью 2015 года, с поощрения (или пинка) Владимира Панченко, начальника отдела приложений КОМПАС-3D, и под опекой Алексея Султанова, я начал изучать программирование на ядре C3D, математика которого КОМПАС-3D. На основе 3D. Цель – обрести свободу! И я получил это.

Я больше не был ограничен количеством операций и процедур, которые мог выполнить.

Все произошло довольно быстро.

На выходе у меня получился корпус — массив вырезов из заготовки червячного колеса.

Ну а дальше все просто: булева операция и червячное колесо готово.



О том, как легко мастеру мечтать с 3D ядром

Николай Голованов, руководитель разработки C3D Labs

Некоторые приложения системы КОМПАС-3D, в том числе приложение «Валы и механические передачи 3D», работают напрямую с геометрическим ядром C3D. Это позволяет разработчикам приложений более гибко подходить к своим задачам за счет расширения функционала (работа с низкоуровневыми функциями) и приемов построения геометрических объектов.

Если вы пишете приложение для КОМПАС-3D и хотите использовать возможности C3D напрямую, имеет смысл обратиться к ядру, встроенному в сам КОМПАС-3D. У этого метода есть единственное ограничение: необходимо использовать только C++, так как сам КОМПАС написан на этом языке.

Если вы решите работать с отдельной копией ядра внутри собственного приложения, то вам будет доступен как C#, так и, в некоторых случаях, JavaScript.

Далее следовали цилиндры с внешней передачей.

Казалось бы, просто, но между тем в случае с косозубой передачей и операцией резания по винту в КОМПАС-3D отработка API тоже заняла довольно много времени.

Теперь эти шестеренки можно сформировать с настоящей подложкой.

Ну а в конце 2015 года начался процесс работы над типсами с круглым зубом.

К тому времени алгоритм был разработан с использованием API КОМПАС.

Первые модели с не очень хорошей геометрией были созданы еще до наступления чистого времени.

Здесь просто подмести поверхности было недостаточно.

Создавались конические передачи качения, и необходимо было сформировать колесо, обработав его прототипом зуборезной головки.

Затем, используя полученную 3D-геометрию, сформируйте и сохраните прототип зубчатого инструмента, снимите со всего этого контролируемые размеры и перенесите на чертеж.

Далее на шестерне, учитывая, что она оказалась идеально приработанной, необходимо было локализовать контакт, т. е.

обеспечить правильное положение и размер пятна контакта в шестерне.

Сложная и очень интересная задача.

Время от времени Николай Голованов и его команда корректировали функциональность C3D на основе моих комментариев.

Таким образом, мои шишки тоже оказались хорошей проверкой ядра.



О том, как легко мастеру мечтать с 3D ядром

Николай Голованов, руководитель разработки C3D Labs

Недавно в геометрическом ядре C3D лофт-поверхности, построенные по сечениям, подверглись значительной переработке.

Они использовались для моделирования точек контакта шестерен.

Наконечники на основе моих моделей неоднократно изготавливались на разных предприятиях и работают в реальных агрегатах.

Разработан алгоритм локализации.



О том, как легко мастеру мечтать с 3D ядром

Но остановиться на этом было сложно.

Эта локализация меня не устроила.

Обеспечить ее было слишком сложно.

А уже весной 2018 года пришла идея «более простого» способа локализации.

Вообще-то идея не моя, я подсмотрел ее в материалах фирмы Клингельнберг - они ее называют профиль и продольное венчание .



О том, как легко мастеру мечтать с 3D ядром

Я назвал это «сделать зуб бугорком», и именно это и произошло.

В каждом участке профиля выреза производился перерасчет, и насыпь удалась.

Коэффициенты локализации стали проще и понятнее.



О том, как легко мастеру мечтать с 3D ядром

Коротко о результате: пятно контакта, а это совокупность мгновенных площадей контакта на зубе шестерни за один цикл ее вращения = 360/количество зубьев шестерни, ТЕПЕРЬ ВСЕГДА лежит посередине активной поверхности зуба ( на вершине «кургана»), его размер составляет более 60% всей поверхности.

Что это дает:
  • трансмиссии станут более долговечными и надежными
  • шум трансмиссии будет уменьшен
  • трансмиссия будет менее чувствительна к ошибкам установки.

Правда, пока их можно изготавливать только на станках с ЧПУ, но в будущем подтянутся и аддитивные технологии.

Ну и под конец.

В этом году осуществилась трансмиссия мечты, моя самая сложная мечта-задача на сегодняшний день - это гипоидные трансмиссии.

Многое пришлось сделать, чтобы добиться этого.

Шесть лет пути после возвращения в САПР-разработку.

Хотя на самом деле путь начался еще в 1991 году с заказного проекта по созданию программного обеспечения для расчета конических шестерен с круглым зубом.



О том, как легко мастеру мечтать с 3D ядром

Естественно, в них реализован и зубной «бугор».



О том, как легко мастеру мечтать с 3D ядром



О том, как легко мастеру мечтать с 3D ядром

Владимир Панченко, руководитель направления «Приложения КОМПАС-3D», АСКОН

Использование ядра в приложении «Валы и механические передачи» было продиктовано отзывами Казцинкмаша.

Для меня было очевидно, что строительство можно вести быстрее; оставалось только убедить в этом Валерия.

Отягчающим обстоятельством было то, что Валерий не любил C++, а функции C3D в контексте КОМПАС-3D можно использовать только на этом языке программирования.

Пришлось делать макет, спасибо Алексею Султанову.

Простой перевод кода сразу дал заметный выигрыш в скорости: точная модель зуба червячного колеса была построена за 10 секунд. На создание червячного колеса с использованием API ушло около часа.

Ну а затем мастерство Валерия позволило ему создать коронки на круглый зуб.

Так мы вывели проект «Валы и шестерни» на совершенно новый уровень.

Как работает 3D-ядро при моделировании механической трансмиссии Используются наиболее распространенные операции из основного функционала: создание плоскости, построение эскиза/поверхности/пересечения поверхностей и т.д. Для примера рассмотрим последовательность операций, необходимых для формирования 3D-модели выреза конического колеса с круговыми зубьями (именно колеса, а не шестерни):
  1. Формируем поверхности конусов – разделительного конуса, конуса вершин и конуса впадин.

    Для этого на соответствующих расчетных расстояниях создают плоскости и строят по ним эскизы окружностей расчетных диаметров, а затем на их основе конусов.

  2. Построим точки центров разделительного конуса и конуса впадин.

  3. Далее формируют касательную плоскость к конусу впадин (1) и плоскость по средней точке колеса в впадине (2).

    В месте пересечения плоскости (1) и плоскости XOY образуется ось пересечения (3), а в месте пересечения плоскости (2) и плоскости (1) образуется ось пересечения (4).

  4. На пересечении этих осей будет точка, через которую проходит вершина зуборежущей головки.



    О том, как легко мастеру мечтать с 3D ядром

  5. Отсюда, зная средний угол наклона зубьев (именно в этой точке), вычисляем центр зубчаторежущей головки.

  6. Нашими ориентирами будут проекции полудуги зуборезной головки на конусы впадин (5) и делительный конус.

    По этой направляющей (5) будет строиться базовая поверхность реза (по чердаку по трем сечениям с расчетным профилем зуборезной головки).



    О том, как легко мастеру мечтать с 3D ядром

  7. Далее, имея порядок выполнения аналогичной операции при разных углах поворота зуборежущей головки при обработке колеса, получаем массив поверхностей выреза (6).



    О том, как легко мастеру мечтать с 3D ядром

  8. После этого в достаточном количестве участков (не менее 20) в нормальных к направляющей плоскостях (проекции полудуги зуборезной головки на делительный конус) будут найдены множества линий пересечения массива поверхностей.

    полученный.



    О том, как легко мастеру мечтать с 3D ядром

  9. Математическая обработка полученного набора линий пересечения позволит получить их огибающую, которая и будет одним из участков фактического выреза зуба колеса.



    О том, как легко мастеру мечтать с 3D ядром

  10. По совокупности этих участков вырезов будет построен окончательный лофт – вырез зуба колеса.



    О том, как легко мастеру мечтать с 3D ядром



    О том, как легко мастеру мечтать с 3D ядром



    О том, как легко мастеру мечтать с 3D ядром

  11. Из полученной геометрии автоматически будут взяты контрольные размеры и сам профиль зуба (строится зуб, делается разрез с помощью плоскости сечения и по нему рассчитывается) и все это переносится на чертеж.



    О том, как легко мастеру мечтать с 3D ядром



    О том, как легко мастеру мечтать с 3D ядром

  12. Все довольно просто, хотя в данном конкретном случае и без учета «мелких» нюансов математических расчетов, скрытых от глаз читателей.

Что еще нужно мастеру в этом случае? Пространственное воображение, воображение и умение мечтать в конце концов!

О том, как легко мастеру мечтать с 3D ядром

Владимир Панченко, руководитель направления «Приложения КОМПАС-3D», АСКОН
Что быстрее API КОМПАС-3D или C3D? Вопрос звучит парадоксально.

C3D — геометрическое ядро КОМПАС-3D! Как работает ядро, так и КОМПАС-3D. Но при ближайшем рассмотрении, особенно в контексте разработчика приложений, все становится на свои места.

Стандартная схема для разработчика выглядит так.

Вызов API-функции КОМПАС-3D приводит к добавлению объекта в модель документа, а затем вызывает C3D для создания геометрии.

Далее по цепочке в обратном порядке данные возвращаются обратно в API, и теперь интерфейс созданного объекта оказывается в руках разработчика.

При этом на каждом шаге с данными что-то происходит: в API они упаковываются в COM, в модели документа проверяются на корректность в текущем контексте, добавляются атрибуты и данные рендеринга.

Разумеется, все эти действия оптимизированы и занимают совсем немного времени.

Если разработчику необходимо получить цилиндрическую ступеньку вала, то он создает эскиз и операцию выдавливания в КОМПАС-3D — всего два объекта и два вызова по цепочке.

Но ситуация радикально меняется в случае геометрии конической передачи с круглым зубом.

Для этого нужно создать множество вспомогательных кривых, поверхностей (и все это не аналитические цилиндры и конусы, а NURBS) и их пересечений.

Перекачка данных начинает занимать значительное количество времени.

В этом случае ядро будет преимущественно простаивать.

Чтобы избежать потерь времени, взаимодействие с API и моделью документа сведено к минимуму — добавьте операцию с телом и примите тело, смоделированное в C3D. Получаем один проход в C3D и оптимально создаем всю вспомогательную геометрию в стеке, пересекаем то, что нужно, и получаем результат. Работает только ядро и работает оно очень быстро.



О том, как легко мастеру мечтать с 3D ядром

Валерий Голованев , инженер-аналитик и программист, Курган, пос.

Теплый Стан.

Теги: #CAD #CAD #CAD/CAM #compass-3d #geometric kernel #compass #c3d #c3dkernel

Вместе с данным постом часто просматривают: