isicad.ru :: портал САПР, PLM и ERP :: версия для печати

Статьи

1 декабря 2009

Создание конструктивной концепции в Rhino 3D

Дмитрий УшаковДмитрий Ушаков

Часть I. Проектирование сборок и анализ кинематики механизмов

English version

Введение

Rhinoceros1 (англ. носорог) - популярная трехмерная система автоматизированного проектирования (САПР) для платформы Windows, разрабатываемая компанией Robert McNeel and Associates (Сиэтл, США) с 1992 г. Более известную под сокращенным именем «Райно» (англ. Rhino), её используют как минимум 150 тысяч профессионалов по всему миру2, которые ценят эту САПР за развитые возможности моделирования поверхностей свободной формы. Лицензия за одно рабочее место стоит меньше тысячи евро, хотя аналогичную функциональность можно найти только в программных продуктах, стоящих в 20, а то и в 50 раз дороже. (Пробная версия системы Rhino может быть свободно загружена с веб-сайта компании RMA.) Rhino основана на открытом формате данных 3DM, свободно доступном любому программисту для чтения/записи в рамках инициативы openNURBS3. В результате такой политики Райно имеет более 120 подключаемых модулей (плагинов, от англ. plug-in), созданных независимыми разработчиками4. Своим интерфейсом, набором конструктивных элементов и команд, эта система похожа на другие САПР, что упрощает процесс обучения и позволяет легко решать сложные задачи трехмерного проектирования. Однако у Rhino отсутствует одна важная особенность: в этой системе нельзя задать желаемое поведение при изменении трехмерной геометрии.

Трехмерная модель, создаваемая в большинстве САПР, это не просто набор трехмерных форм; любая модель обычно содержит важную информацию, называемую конструктивной концепцией (англ. design intent). Эта информация используется для управления взаимоотношениями между геометрическими элементами внутри детали и между деталями в сборке. Конструктивная концепция определяет поведение модели при ее изменении в будущем. Обычно изменение формы или положения одного геометрического элемента в модели требует соответствующих интеллектуальных изменений других её частей. Конструктивная концепция отвечает на такие вопросы, как «Что случится, если диаметр этого отверстия будет изменен?», «Что произойдет при увеличении длины этого ребра?», или «Какова будет реакция механизма на перемещение этого звена?»

В Rhino можно создать трехмерную модель, но нельзя задать ее конструктивную концепцию. Чтобы исправить такое положение дел, российская компания ЛЕДАС решила создать набор инструментов для Rhino, объединенных общим названием Driving Dimensions (англ. управляющие размеры). С помощью этих инструментов пользователи Rhino могут добавить конструктивную концепцию к любой трехмерной модели и использовать эту информацию для интеллектуального редактирования её геометрии. Первый инструмент в линейке Driving Dimensions для Rhino носит название Rhino Assembly. Этот подключаемый модуль работает внутри привычного окружения Rhino и позволяет пользователям этой системы использовать геометрические ограничения и управляющие размеры для интеллектуальной модификации трехмерных сборок, состоящих из деталей с фиксированной геометрией. После установки плагина Rhino Assembly пользователи могут легко собирать сложные механизмы и анализировать их кинематику, рассматривая с разных точек зрения работу движущихся частей. Простота пользовательского интерфейса Rhino Assembly скрывает лежащие в его основе сложные математические алгоритмы для одновременного разрешения сотен и тысяч геометрических ограничений. Соответствующие наукоемкие инновационные технологии разрабатываются компанией ЛЕДАС с 2001 г. Зрелость данных технологий подтверждается их использованием в многочисленных системах классов CAD (автоматизированное проектирование), CAE (инженерный анализ) и CAM (подготовка производства), большинство из которых уже представлены на рынке5,6,7,8,9,10.

С 1999 г. компания ЛЕДАС специализируется в создании параметрических процессоров (решателей геометрических ограничений) для САПР (CAD/CAM/CAE) и других графических и инженерных приложений. Недавно компания анонсировала собственную линейку конечно-пользовательских продуктов под торговой маркой Driving Dimensions. Продукты этой линейки являются плагинами для популярных систем трехмерного моделирования, таких как SketchUp (разработка компании Google) и Rhino. Приложения Driving Dimensions основаны на оригинальной технологии вариационного прямого моделирования11, которая позволяет редактировать геометрическую модель, не имея информации об истории её построения. Традиционные подходы к редактированию геометрии без истории построения состоят либо в применении эвристических методов распознавания конструктивных элементов, с помощью которых была построена геометрическая модель, либо в использовании операций прямого редактирования граничных элементов модели. Оба этих подхода имеют общий недостаток: они не способны полноценно поддержать конструктивную концепцию исходной модели. Эвристическая реконструкция истории построения позволяет восстановить лишь часть конструктивных элементов сложной модели, а операции прямого редактирования используют крайне ограниченную (в основном, локальную) информацию о конструктивной концепции. В то же время, технология вариационного прямого моделирования позволяет редактировать геометрическую модель с полным контролем ее конструктивной концепции, выражаемой с помощью явных и неявных (т.е. автоматически распознанных) геометрических ограничений и управляющих размеров (линейных, угловых и радиальных). Для эффективного разрешения системы одновременных геометрических и размерных ограничений используются геометрические решатели LGS 2D/3D12,13, которые компания ЛЕДАС предлагает для лицензирования всем разработчикам САПР.

Настоящая статья представляет функциональность Rhino Assembly, первого плагина из линейки Driving Dimensions для Rhino, и описывает концептуальные идеи, лежащие в его основе. В конце статьи мы очертим перспективы других продуктов этой линейки.

Как задать конструктивную концепцию без дерева истории?

Опытные пользователи «механических» САПР (MCAD) найдут интерфейс системы Rhino похожим на инструменты, предлагаемые другими серийными системами этого класса. Следуя обычной процедуре, конструктор создает объемную модель: сначала чертит двумерный контур, затем вытягиванием превращает его в призму, скругляет острые кромки, «вырезает» отверстия и т.д. (рис. 1).

Рис. 1. Объемное моделирование в Rhino: (a) создание двумерного контура, (b) вытягивание его в трехмерное тело, (c) скругление острых ребер, и (d) добавление отверстий

Существует, однако, существенное различие между Rhino и другими MCAD-системами, такими как Pro/ENGINEER или SolidWorks. Различие состоит не в том, как создаются трехмерные формы, а в том, как они редактируются. Например, в Rhino нельзя изменить диаметр отверстия простым щелчком «мыши». Rhino не позволяет пользователям изменить радиус однажды созданного скругления. А если вы измените двумерный контур, лежащий в основе трехмерного тела, то это никак не повлияет на форму последнего. Пользователи серийных MCAD-систем будут неприятно удивлены таким поведением, и, скорее всего, откажутся от использования Rhino.

Причину такого поведения объяснить несложно: в то время как большинство MCAD-систем основано на истории построения модели, Rhino не поддерживает такую информацию. Rhino не пытается запомнить изменения, которые пользователь вносит в модель. Эти изменения, известные как история построения, лежат в основе задания конструктивной концепции модели. История построения подобна медицинскому или кулинарному рецепту: когда вы хотите изменить что-то в своей модели, вы сначала модифицируете рецепт ее построения, а потом CAD-система автоматически перестраивает вашу модель в соответствии с измененным рецептом. Обычно такой рецепт имеет вид дерева построения, которое реализуется в виде надстройки над «немой» геометрией, так называемым граничным представлением твердого тела (BRep, от англ. boundary representation).

Задание конструктивной концепции с помощью истории построения является общим местом почти всех современных MCAD-систем, хотя существует альтернативная возможность спецификации желаемого поведения модели в окружении, которое не сохраняет историю построения. Эта альтернатива состоит в применении геометрических ограничений, управляющих размеров, инженерных уравнений и других подобных декларативных спецификаций непосредственно между элементами BRep-модели. (Для упрощения изложения все подобные спецификации мы будем далее называть ограничениями.)

Ограничения не имеют ничего общего с историей построения. Они могут быть добавлены к модели на любом этапе проектирования: когда вы создаете вашу модель или когда модифицируете ее. Важно, что ограничения можно добавить к любой «немой» геометрической модели, полученной из самых разных источников: загруженной из публичного каталога трехмерных моделей, импортированной из другой CAD-системы, оттранслированной в один из нейтральных форматов IGES/STEP, и т.п. Основная проблема с историей построения состоит в том, что её нельзя добавить к существующей модели (можно лишь эвристически угадать какие-то ее фрагменты), так как история создается при проектировании модели «с нуля». Поэтому во всех вышеперечисленных ситуациях подход на основе истории не может работать полноценно.

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

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

Таким образом, геометрические ограничения и управляющие размеры полностью заменяют собой конструктивные элементы при редактировании геометрии. Ограничения представляют собой мощный способ выражения конструктивной концепции в окружении без истории построения. Вы можете легко добавлять, удалять и модифицировать их на любом этапе проектирования. Вы можете комбинировать их с другими средствами спецификации инженерных знаний (формулами, правилами, оптимизационными алгоритмами и проч.) В оставшейся части статьи мы рассмотрим реализацию данной концепции, выполненной в компании ЛЕДАС в рамках плагина Rhino Assembly.

Проектирование сборок в Rhino с использованием геометрических ограничений и управляющих размеров

Проектирование сборок – типичное приложение САПР, в котором геометрические и размерные ограничения используются даже в системах с историей построения. Плагин Rhino Assembly – первое приложение линейки Driving Dimensions, созданное компанией ЛЕДАС для Rhinoceros. Оно было выбрано в качестве стартового потому, что соответствующая функциональность знакома пользователям MCAD-систем.

Хорошо известно два подхода, используемых в MCAD для проектирования сборок: нисходящий и восходящий. При нисходящем подходе вы начинаете с проектирование механизма «с нуля», по очереди создавая геометрию его частей и размещая ее в соответствии с конструктивной концепцией вашего механизма. Используя такой подход, вы можете спроектировать простую сборку в Rhino, например, представленную на рис. 2 упрощенную модель одноцилиндрового двигателя внутреннего сгорания.

Рис. 2. Упрощенная модель одноцилиндрового двигателя в Rhino

Но эта модель не содержит описания конструктивной концепции моделируемого механизма – как и любая модель, создаваемая в Rhino. Например, если вы передвинете поршень внутри цилиндра, ваша модель станет некорректной (рис. 3а), в то время, как в системах с поддержкой конструктивной концепции смещение поршня ведет к вращению коленчатого вала, соединяемого с поршнем посредством шатуна и поршневого пальца (рис. 3b). Как добиться такого поведения от Rhino?

Рис. 3. Перемещение поршня: (a) конструктивная концепция нарушена (поведение Rhino по умолчанию), (b) конструктивная концепция сохраняется благодаря использованию плагина Rhino Assembly

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

Рис. 4. Как собрать вместе разрозненные части двигателя?

Как сохранить конструктивную концепцию при перемещении деталей механизма? Как упростить и ускорить процесс восходящего проектирования? Плагин Rhino Assembly дает четкие ответы на эти вопросы. Вы можете получить 30-дневную ознакомительную версию этого плагина, свободно скачав ее с нашего сайта в Интернете по адресу www.DrivingDimensions.com.

После инсталляции плагина и запуска Rhino вы увидите новую инструментальную линейку в знакомом окружении:

Рис. 5. Инструментальная линейка Rhino Assembly

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

Восходящее проектирование

Предположим, перед вами стоит задача сборки двигателя из уже готовых частей. (Вы можете загрузить модель одноцилиндрового двигателя в сборе с нашего веб-сайта; для того, чтобы совершить описанные далее манипуляции, вам необходимо удалить все ограничения из этой модели и вручную разобрать сборку, переместив все детали на достаточное расстояние друг от друга. Вы также можете собрать аналогичный двигатель, создав собственные детали в Rhino.) Давайте начнем со сборки поршня, поршневого пальца и шатуна (рис. 6а). Чтобы поместить палец внутрь цилиндрического отверстия поршня, вам нужно только три щелчка «мыши»:

  1. Щелкните на иконке «Add Concentricity» (добавить концентричность) , третьей слева в инструментальной линейке Rhino Assembly.
  2. Щелкните в любом месте цилиндрической поверхности отверстия в поршне.
  3. Щелкните на цилиндрической поверхности пальца.

Когда вы щелкаете по иконке «Add Concentricity» или подобной, Rhino Assembly предлагает вам выбрать аргументы для создаваемого ограничения. Как только вы выберете аргументы, ограничение немедленно создается и автоматически удовлетворяется (одновременно с другими ограничениями, если вы задали ранее таковые). Поэтому сразу после создания ограничения концентричности вы увидите, что плагин Rhino Assembly автоматически изменил положение деталей в сборке, поместив палец внутрь цилиндрического отверстия в поршне (рис. 6b). Чтобы поместить его целиком внутрь поршня, вам необходимо добавить ограничение касания между торцевой гранью пальца и цилиндрической поверхностью поршня. (Воспользуйтесь иконкой «Add Tangency» из инструментальной линейки Rhino Assembly и еще три раза щелкните «мышкой».)

Следующий шаг состоит в том, чтобы соединить палец с шатуном. Сначала добавьте ограничение концентричности между маленьким отверстием на шатуне и цилиндрической поверхностью пальца. Вам придется воспользоваться встроенными командами Rhino для панорамирования, приближения и вращения, чтобы упростить процедуру выбора соответствующих поверхностей. В результате получится что-то подобное изображенному на рис. 6d.

Вам осталось только сдвинуть шатун вдоль оси пальца, чтобы отцентрировать его. Для этого можно задать ограничение инцидентности (совпадения) между соответствующими плоскими гранями на поршне и шатуне (рис. 6e). Итак, всего 12 щелчков мыши (плюс команды панорамирования, приближения, вращения) позволяют вам собрать поршень с пальцем и шатуном!

Рис. 6. Сборка поршня: шаг за шагом

Важно отметить, что плагин Rhino Assembly – это не просто средство для однократного позиционирования деталей друг относительно друга. Если вы попробуете переместить или повернуть поршень (используя встроенные команды трансформаций Rhino), вы увидите, что палец и шатун в точности следуют за поршнем, куда бы вы его не перемещали. Это свидетельствует о том, что созданная вами модель содержит не только геометрию, но и конструктивную концепцию проектируемого изделия.

Однако наша сборка еще не закончена: поршень необходимо поместить внутри цилиндра. Теперь вы уже знаете, как этого добиться (требуется связать ограничением концентричности внешнюю поверхность поршня и внутреннюю поверхность цилиндра). Плагин Rhino Assembly рассматривает все поверхности как бесконечные, поэтому после предыдущего шага у вас может получиться что-то подобное изображению на рис. 7a. В этом случае просто переместите поршень мышкой в нужное положение. Вы уже знаете, что перемещение поршня вызовет автоматическое перемещение пальца и шатуна. Но теперь в модель добавилось больше интеллекта: как бы вы ни двигали поршень, цилиндр всегда остается концентричным ему. Это позволяет легко передвинуть детали механизма в требуемую позицию (рис. 7b).

Рис. 7. Перемещение собранного поршня внутрь цилиндра

Чтобы добавить в сборку коленчатый вал, наложите ограничение концентричности между цилиндрической поверхностью на его конце и большим отверстием шатуна. Переместите коленвал вдоль оси (или задайте ограничение инцидентности между его торцом и плоской гранью шатуна), чтобы окончательно позиционировать его относительно всей сборки. В результате у вас может получиться ситуация с самопересечением деталей (рис. 8a). Чтобы ее исправить, просто перетащите «мышкой» коленвал или цилиндр, чтобы избежать пересечения их объемов. Так как ваша модель содержит описание конструктивной концепции, любое перемещение деталей «мышкой» становится интеллектуальным: двигатель никогда не распадется на отдельные части, пока вы перемещаете его детали друг относительно друга, используя оставшиеся степени свободы.

Рис. 8. Завершающие шаги сборки одноцилиндрового двигателя

Чтобы закончить сборку, зафиксируйте положение цилиндра и оси вращения коленвала. Щелкните по иконке «Add Fixation» (добавить фиксацию) и выберете цилиндр. Создайте еще одно ограничение фиксации, выбрав в этот раз в качестве аргумента одну из цилиндрических поверхностей коленвала (кроме той, что соединена с шатуном).

Управление ограничениями и размерами

Чтобы обозреть список ограничений, добавленных в модель Rhino, щелкните по иконке «Show Assembly Manager» (показать менеджер сборки) на инструментальной панели Rhino Assembly. Появившееся окно (рис. 9) удобно прикрепить к одной из боковых сторон рабочей области Rhino.

Рис. 9. Окно Assembly Manager (Менеджер Сборки)

Когда вы щелкаете «мышкой» по любому ограничению в окне менеджера сборки, его аргументы (ребра и грани геометрической модели) автоматически выделяются в графической области Rhino. Эта особенность позволяет вам увидеть конструктивную концепцию вашей модели. Более того, так как ограничения сохраняются вместе с моделью в файле .3DM, вы можете делиться этой информацией с вашими коллегами; любой из них, установивший плагин Rhino Assembly, может открыть вашу модель и увидеть ее конструктивную концепцию.

Менеджер сборки не только показывает вам ограничения, добавленные в модель, но также позволяет редактировать их. Простейшим редактированием является изменение имени ограничения, данного ему по умолчанию при создании. Например, вы можете захотеть переименовать «Concentricity 1» в «Концентричность пальца и поршня», чтобы упростить передачу знаний от вас другим русскоязычным пользователям этой модели. Чтобы переименовать ограничение, сделайте двойной щелчок «мышкой» по его имени в окне менеджера сборки. Вы увидите окно «Constraint Properties» (свойства ограничения), изображенное на рис. 10, в поле «Name» (имя) которого вы можете вписать новое название. Пока окно свойств остается открытым, вы можете выбирать другие ограничения одинарным щелчком. Полезно открыть окно свойств и прикрепить его к верхней или нижней части окна менеджера сборки – это позволит легко редактировать все ваши ограничения в будущем (конфигурация окон сохраняется и при перезапуске Rhino).

Рис. 10. Окно свойств ограничения

С помощью менеджера сборки можно удалять ограничения, которые стали ненужными вследствие изменения конструктивной концепции. Например, когда мы помещали палец внутрь поршня, мы применили ограничение касания между торцом пальца и цилиндрической поверхностью поршня. Такое описание является упрощением, так как в реальности палец должен быть помещен заподлицо с поверхностью поршня – чтобы его концы не царапали цилиндр. Теперь вы можете исправить эту «ошибку»: для начала удалите ограничение касания путем щелчка по нему в окне менеджера сборки и последующего нажатия клавиши Del на клавиатуре. Сейчас мы заменим ограничение касания управляющим размером.

Управляющие размеры (англ. driving dimensions) – еще одно мощное средство, появившееся в Rhino благодаря плагину Rhino Assembly. В отличие от обычных чертежных размеров, которые управляются геометрией и измеряются заново каждый раз, когда геометрия меняется, управляющий размер имеет фиксированное значение параметра, которое заставляет геометрию изменяться (управляет геометрией), чтобы соблюсти заданный пользователем размер. Управляющие размеры подобны геометрическим ограничениям, описанным выше (таким как концентричность, касание, инцидентность), но отличаются от них одной важной деталью: они имеют параметрическое значение. Давайте изучим управляющие размеры на примере задания расстояния между торцом пальца и внешней поверхностью поршня.

Щелкните «мышкой» по иконке «Add Distance» (добавить расстояние) на инструментальной линейке Rhino Assembly и выберете те же самые поверхности, что и в случае ограничения касания: торцевую поверхность пальца и внешнюю поверхность поршня. После этого вам будет предложено ввести значение параметра расстояния; введите желаемое значение, чтобы увидеть немедленный эффект в виде изменения взаимного положения деталей (рис. 11).

Рис. 11. Использование управляющего размера для контроля точного положения пальца внутри поршня

Если вы не знаете требуемого значения расстояния, просто примите предлагаемое по умолчанию значение, нажав клавишу Enter. После этого вы можете подобрать подходящее значение в окне свойств ограничения, которое в случае управляющего размера имеет вид, показанный на рис. 12. Используйте кнопки прокрутки, расположенные справа от числа в поле ввода «Value» (значение), чтобы увеличить или уменьшить значение размера с заданным шагом. Каждый раз, когда вы увеличиваете или уменьшаете параметр управляющего размера, ваша модель автоматически обновляется, чтобы удовлетворять новому значению.

Рис. 12. Окно свойств управляющего размера

***

Давайте просуммируем, что мы узнали к текущему моменту о Rhino Assembly:
  1. Rhino Assembly упрощает восходящий подход к проектированию. Время вашей работы над проектом существенно сокращается, теперь вы можете собрать простой одноцилиндровый двигатель или подобные механизмы за дюжину щелчков «мышки»!
  2. Rhino Assembly добавляет конструктивную концепцию к геометрической модели. Теперь вы имеете интеллектуальный контроль над проектом: когда вы перемещаете отдельные детали, они двигаются в соответствии с заданными вами геометрическими ограничениями сборки и управляющими размерами. Механизм всегда остается собранным – он никогда на распадется на совокупность несвязанных между собой деталей.
Плагин Rhino Assembly поддерживает широкий набор геометрических ограничений и управляющих размеров: фиксацию, концентричность, инцидентность, параллельность, перпендикулярность, касание, расстояние, угол, жесткую связь двух и более деталей друг с другом. В виду невозможности обозреть всю функциональность плагина в одной статье, мы отсылаем интересующихся к детальной технической справке, доступной на нашем сайте в Интернете по адресу www.DrivingDimensions.com/Rhino/help.php.

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

Моделирование кинематики

Если вы проектируете механизмы с движущимися деталями в Rhino или другом пакете MCAD, вы наверняка хотите увидеть их в действии. Очень важно проанализировать траектории двигающихся деталей – еще до того, как ваш механизм будет построен в реальности! Ведь желаемые и действительные траектории могут не совпасть; вы можете обнаружить взаимопроникновение части деталей друг в друга, либо недостижимость желаемых предельных позиций. В этом случае вы должны изменить взаимное положение частей механизма или даже вернуться на уровень задания их геометрических форм и размеров.

Плагин Rhino Assembly позволяет динамически моделировать кинематику механизмов. В настоящей главе мы рассмотрим эту функциональность на примере одноцилиндрового двигателя. Чтобы задать вращение коленчатого вала вокруг своей оси, необходимо создать угловой управляющий размер, контролирующий угол поворота. Щелкните по иконке «Add Angle» (добавить угол) и выберете плоские грани на коленвале и цилиндре (рис. 13). До того как принять предложенное по умолчанию значение для угла, выберете ось, вокруг которой угол будет измеряться. Обычно углы в трехмерном пространстве между двумя плоскостями могут принимать значения от 0° до 180°, но если выбрать ось измерения, ортогональную обеим плоскостями, то диапазон значений угла может быть расширен до 360°. Чтобы выбрать ось, нажмите клавишу «c» на клавиатуре и выберете цилиндрическую поверхность, соосную оси вращения коленвала. Затем введите желаемое значение угла.

Рис. 13. Создание углового управляющего размера между деталями двигателя

После создания углового управляющего размера вы можете редактировать его значение, используя кнопки прокрутки в окне свойств. Нажатие и удерживание одной из кнопок позволяет вам немедленно увидеть механизм в действии. Однако существует лучший и еще более удобный способ задать движение, состоящий в использовании возможностей анимации, реализованных в плагине Rhino Assembly.

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

Вы уже заметили, что окно свойств управляющего размера (рис. 12) имеет секцию «Animation» (анимация). Два первых поля ввода этой секции позволяют задать желаемое число кадров анимации и ее продолжительность в секундах. Другие поля задают начальное и конечное значения варьируемого управляющего размера (в нашем случае надо ввести туда 0 и 360, чтобы задать полный поворот коленвала). Щелкнув по кнопке «Animate» (анимировать) в окне свойств углового управляющего размера, вы увидите окно анимации сборки (рис. 14); одновременно в фоновом режиме начнется процесс расчета кадров, продолжительность которого зависит от вычислительной мощности вашего компьютера. Как правило, пользователь не замечает никакой задержки. Внешний вид и кнопки окна анимации сборки хорошо знакомы каждому пользователю аудио- и видеопроигрывателей. Проигрывание анимации осуществляется кнопкой «Play» (синий треугольник), которая после этого превратится в копку «Pause» (пауза), нажав на которую, можно в любой момент приостановить воспроизведение анимации. Другие знакомые кнопки позволяют вам перейти непосредственно к первому и последнему кадрам анимации, либо вручную пролистывать кадр за кадром вперед и назад. Переместиться в произвольную точку анимации поможет ползунок в верхней части панели. Полезно установить галочку «Repeat» (повторить), что позволит вам просматривать анимацию непрерывно, пока вы не остановите ее принудительно.

Рис. 14. Окно анимации сборки

Важной частью функциональности плагина Rhino Assembly является возможность пользования командами панорамирования, приближения и вращения во время воспроизведения анимации. Это позволяет вам наблюдать полноценную трехмерную анимацию, динамически меняя точку наблюдения. Тем самым вы получаете реалистичный опыт анализа кинематики вашего механизма.

***

Давайте расширим список ценностей, которые плагин Rhino Assembly добавляет к функциональности базового пакета (мы начали этот список в конце предыдущей главы):

  1. Rhino Assembly моделирует кинематику механизмов, содержащих двигающиеся части. С помощью управляющих размеров вы можете контролировать взаимное позиционирование его частей, наблюдая за автоматической реакцией системы на ваши изменения.
  2. Развитые возможности анимации Rhino Assembly позволяют вам проводить виртуальные реалистичные эксперименты. Вы можете исправить или улучшить ваш механизм еще до того, как начнется его производство.
Чтобы узнать больше о возможностях анимации плагина Rhino Assembly, посетите страницу технической справки на нашем сайте в Интеренете по адресу www.DrivingDimensions.com/Rhino/help.php, где вы найдете детальное описание каждого инструмента.

Что дальше

Предварительная бета-версия плагина Rhino Assembly, выпущенная в июне 2009 г., разошлась тиражом более трех тысяч экземпляров14. Именно столько пользователей Rhino загрузили ее с сайта www.DrivingDimensions.com. Разработчики компании ЛЕДАС благодарны бета-тестерам, реселлерам и сотрудникам компании Robert McNeel & Associates за полезные комментарии, в результате которых и появилась первая коммерческая версия Rhino Assembly 1.0. Некоторые высказанные идеи отложены до версии 2.0, которая обязательно будет выпущена в 2010 г. Однако об одной важной будущей функциональности стоит объявить прямо сейчас.

Как мы отметили выше, плагин Rhino Assembly работает с деталями фиксированной геометрической формы; в процессе удовлетворения ограничений он не модифицирует внутреннюю геометрию деталей, а лишь меняет их взаимное положение друг относительно друга. В некоторых случаях этого недостаточно. Например, вы можете захотеть изменить длину шатуна, чтобы избежать столкновения цилиндра с коленвалом.

В новом продукте линейки Driving Dimensions для Rhino, над которыми мы уже работаем, в процессе удовлетворения ограничений будут изменяться геометрические формы деталей. Конечно, не произвольно, а в точном соответствии с заданной вами конструктивной концепцией. Мы планируем детально описать эту функциональность во второй части нашей статьи. Первая бета-версия соответствующего продукта для Rhino увидит свет до конца 2009 г. Следите за анонсами на сайте www.DrivingDimensions.com!

Об авторе

Dmitry Ushakov Дмитрий Ушаков обладает 15-летним опытом разработки вычислительного ПО для различных приложений САПР.

Окончив Новосибирский государственный университет в 1993 г. по специальности «математика и прикладная математика», Дмитрий Ушаков затем получил степени магистра математики (1995) и кандидата физико-математических наук по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей» (1998) в том же университете.

До создания компании ЛЕДАС Д. Ушаков являлся научным сотрудником Российского НИИ искусственного интеллекта, где занимался теоретическим обоснованием методов удовлетворения ограничений, а также разработкой универсального объектно-ориентированного расширяемого решателя задач удовлетворения ограничений и оптимизации в ограничениях.

Перейдя в 1999 г. в только что образованную компанию ЛЕДАС, Д.Ушаков был отправлен в долгосрочную командировку во Францию, где – в рамках соглашения между компаниями ЛЕДАС и Dassault Systemes – занимался разработкой вычислительных программных компонентов для системы CATIA V5, на основе которых был создан ряд приложений, последовательно применяющих вариационный подход к параметризации.

В 2001-2008 гг., работая в должности директора по технологии, Д.Ушаков координировал выполнение проектов по разработке библиотек вычислительных подпрограмм для решения геометрических и инженерных задач, осуществлявшихся в компании ЛЕДАС.

С 2008 г. Дмитрий Ушаков занимает пост директора по управлению продуктами компании ЛЕДАС. Он является автором более пятидесяти научных работ.

О компании ЛЕДАС

ЗАО «ЛЕДАС» — независимая софтверная компания, образованная в Новосибирском Научном Центре (Академгородке) Сибирского отделения Российской Академии Наук в 1999 г. Являясь лидером в области вычислительных технологий, основанных на аппарате математических ограничений, ЛЕДАС хорошо известен как поставщик программных компонентов PLM (систем управления жизненным циклом изделия): решателя геометрических ограничений для САПР (CAD/CAM/CAE), оптимизирующего процессора для систем управления проектами, планирования рабочей силы и организации собраний, интервальных технологий для организации баз знаний и совместного проектирования в САПР.

Компания также предоставляет услуги в области PLM+ERP: разработка ПО, консалтинг, распространение продуктов партнеров, образовательные тренинги.

Подробная информация о компании ЛЕДАС доступна по адресу www.ledas.ru.

Rhino Assembly, Driving Dimensions и LGS являются торговыми марками ЗАО «ЛЕДАС». Все другие торговые марки являются собственностью их соответствующих владельцев.


1 Rhinoceros® NURBS modeling for Windows. http://www.rhino3d.com/
2 Interview with Robert McNeel, CEO of McNeel and Associates (Rhino 3D). http://blog.novedge.com/2007/03/an_interview_wi_3.html
3 openNURBS™ Initiative. http://www.opennurbs.org/
4 Rhinoceros - Related Products and Services http://www.rhino3d.com/resources/
5 Геометрический решатель ЛЕДАС лицензирован Joe Gibbs Racing http://isicad.ru/ru/press_releases.php?press_num=13293
6 CD-adapco лицензирует вариационный геометрический решатель LGS 2D российской компании ЛЕДАС http://isicad.ru/ru/press_releases.php?press_num=12979
7 Swiss AWV Company succeeds with LEDAS geometric solvers http://ledas.com/group/press_releases/?press_num=69
8 ЛЕДАС внедряет решения LGS в секторе ЧПУ в партнерстве с Tecnos G.A. http://isicad.ru/ru/news.php?news=11225
9 ADEM Technologies интегрирует LGS 3D, программную компоненту компании ЛЕДАС, в свое новое решение ADEM 8.0 http://isicad.ru/ru/news.php?news=10221
10 Профишиенси лицензировала LGS 2D - двухмерный вариационный решатель компании Ледас http://isicad.ru/ru/news.php?news=10037
11 Дмитрий Ушаков. Вариационное прямое моделирование, или как сохранить намерения проектировщика в САПР без истории построения. http://isicad.ru/ru/articles.php?article_num=12711
12 LGS 2D, LEDAS Geometric Solver. http://ledas.com/products/lgs2d/
13 LGS 3D, LEDAS Geometric Solver. http://ledas.com/products/lgs3d/
14 ЛЕДАС добавляет в Rhino возможности по проектированию сборок и анализа кинематики механизмов http://isicad.ru/ru/press_releases.php?press_num=13428


Все права защищены. © 2004-2024 Группа компаний «ЛЕДАС»

Перепечатка материалов сайта допускается с согласия редакции, ссылка на isicad.ru обязательна.
Вы можете обратиться к нам по адресу info@isicad.ru.