¬аше окно в мир —јѕ–
 
Ќовости —татьи јвторы —обыти€ ¬акансии Ёнциклопеди€ –екламодател€м
—татьи

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


ƒобавить комментарий

„итайте также:


¬акансии:

јктуальное обсуждение

RSS-лента комментариев

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: „то такое +20%: Ёффект внедрени€ BIM? –ост выручки ƒассо?...
ѕроект ЂЌародное —јѕ–-интервьюї

—лучайна€ стать€:

isicad Top 10

—амые попул€рные материалы

   ‘орумы isicad:

isicad-2010 isicad-2008
isicad-2006 isicad-2004

ќ проекте

ѕриглашаем публиковать на сайте isicad.ru новости и пресс-релизы о новых решени€х и продуктах, о проводимых меропри€ти€х и другую информацию. јдрес дл€ корреспонденции - info@isicad.ru

ѕроект isicad нацелен на

  • укрепление контактов между разработчиками, поставщиками и потребител€ми промышленных решений в област€х PLM и ERP...
ѕодробнее

»нформаци€ дл€ рекламодателей


¬се права защищены. © 2004-2019 √руппа компаний «Ћ≈ƒј—»

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