suggested exercise
Создание параметрической вазы — это отличный способ начать изучение Dynamo.
В ходе данного рабочего процесса вы получите следующие навыки:
применение регуляторов чисел для управления переменными в проекте;
создание и изменение геометрических элементов с помощью узлов;
визуализация результатов проектирования в реальном времени.
Прежде чем приступить к работе в Dynamo, следует создать концепцию будущей вазы.
Предположим, что необходимо спроектировать глиняную вазу с учетом гончарных методов производства. Обычно для изготовления цилиндрических ваз используется гончарное колесо. Оказывая давление на те или иные участки вазы, гончар меняет ее форму, придает ей различные очертания.
Для определения формы вазы в этом упражнении используется аналогичная методика. Создаются 4 окружности разного радиуса на разной высоте, а затем вдоль этих окружностей создаются поверхности-сечения.
Скачайте файл с примером, щелкнув ссылку ниже.
Полный список файлов с примерами можно найти в приложении.
Необходимо выбрать узлы в качестве последовательности действий, выполняемых приложением Dynamo. Поскольку требуется создать окружность, начните с поиска узла, позволяющего сделать это. Используйте поле Поиск или перейдите в библиотеку, найдите узел Circle.ByCenterPointRadius и добавьте его в рабочее пространство.
В поле поиска введите «Окружность».
Выберите ByCenterPointRadius.
Узел отобразится в рабочем пространстве.
Рассмотрим подробнее данный узел. С левой стороны расположены входные данные узла (centerPoint и radius), а с правой — выходные данные узла (Circle). Обратите внимание на линии голубого цвета в полях входных данных. Это означает, что используются значения по умолчанию. Для получения дополнительных сведений о входных данных наведите указатель на название того или иного параметра. Для параметра radius требуется значение с типом double, а значение по умолчанию равно 1.
Оставьте значение по умолчанию для параметра centerPoint и добавьте регулятор Number Slider для управления радиусом. Подобно узлу Circle.ByCenterPointRadius используйте библиотеку для поиска элемента Number Slider и его добавления в график.
Данный узел отличается от предыдущего наличием регулятора. Используйте интерфейс для изменения выходного значения регулятора.
Регулятор можно настроить с помощью кнопки раскрывающегося списка в левой части узла. Укажите 15 в качестве максимального значения регулятора.
Разместите его слева от узла Circle.ByCenterPointRadius и объедините узлы. Для этого выберите выходной параметр Number Slider и соедините его с входным параметром Radius.
Дважды щелкните имя узла и измените Number Slider на Top Radius.
Продолжите добавлять узлы и соединения для определения логики создания вазы.
Скопируйте эти узлы 4 раза, чтобы создать соответствующие окружности для поверхности, и измените имена Number Slider, как показано на изображении ниже.
Для создания окружности требуются центральная точка и радиус.
Сейчас отсутствует ключевой параметр создания вазы — ее высота. Для управления высотой вазы создайте еще один регулятор чисел. Кроме того, добавьте узел Code Block. Такие блоки кода позволяют добавлять персонализированные фрагменты кода в рабочий процесс. Используйте узел Code Block для умножения регулятора высоты на различные коэффициенты, чтобы расположить окружности по высоте вазы.
С помощью узла Geometry.Translate разместите окружности на требуемой высоте. Поскольку окружности необходимо распределить по высоте вазы, используйте узлы Code Block для умножения параметра высоты на коэффициент.
2. С помощью переменной окружности преобразуются (перемещаются) по оси Z.
Чтобы создать поверхность с помощью узла Surface.ByLoft, необходимо объединить все преобразованные окружности в список. С помощью узла List.Create можно объединить все окружности в один список, а затем вывести данный список в узел Surface.ByLoft для просмотра результатов.
Отключите предварительный просмотр в других узлах, чтобы отображался только узел Surface.ByLoft.
3. Поверхность создается путем лофтинга преобразованных окружностей.
Рабочий процесс готов! Теперь регуляторы чисел, определенные в сценарии, можно использовать для создания различных проектов ваз.
Точки притяжения можно использовать для экспериментов с геометрическими узорами. Их можно применять для постепенного изменения объектов на основании расстояния.
В ходе данного рабочего процесса вы получите следующие навыки:
создание, редактирование списков и управление ими;
перемещение точек в окне 3D-просмотра с помощью непосредственной манипуляции;
изменение режима выполнения.
В рамках этого упражнения требуется создать окружность (цель), в которой входные значения радиуса определяются расстоянием до ближайшей точки (связь).
Точка, определяющая отношение на основе расстояния, обычно называется точкой притяжения. В данном случае расстояние до точки притяжения будет использоваться для определения размера окружности.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Наметив цели и связи, можно приступать к созданию графика. Необходимо выбрать узлы, которые будут представлять последовательность действий, выполняемых приложением Dynamo. Сначала добавьте следующие узлы: Number, Number Slider, Point.ByCoordinates, Geometry.DistanceTo, Circle.ByCenterPointRadius.
Input > Basic > Number
Input > Basic > Number Slider
Geometry > Points > Point > By Coordinates(x,y,z)
Geometry > Modifiers > Geometry > DistanceTo
Geometry > Curves > Circle > ByCenterPointRadius
Разместив узлы, необходимо соединить их порты с помощью проводов. Эти соединения будут определять поток данных.
От узла Number к узлу Point.ByCoordinates
От узла Number Sliders к узлу Point.ByCoordinates
От узла Point.ByCoordinates (2) к узлу DistanceTo
От узлов Point.ByCoordinates и DistanceTo к узлу Circle.ByCenterPointRadius
После того как мы определили последовательность потока данных, нам остается только дать Dynamo команду на выполнение программы. После выполнения программы (автоматически или путем нажатия кнопки «Выполнить в ручном режиме») передача данных будет осуществляться по проводам, а результаты появятся в области 3D-просмотра.
Нажмите «Выполнить». Если на панели выполнения задан ручной режим, необходимо нажать кнопку «Выполнить», чтобы запустить выполнение графика.
Просмотр узла: при наведении указателя на поле в правом нижнем углу узла появится всплывающее окно результатов.
3D-просмотр: если какой-либо узел создает геометрию, то она будет отображаться в области 3D-просмотра.
Геометрия вывода в узле создания.
Если программа работает правильно, то в области 3D-просмотра должна появиться окружность, проходящая через точку притяжения. Теперь можно добавить дополнительные подробности или элементы управления. Настройте входные данные для узла окружности, чтобы было можно регулировать их влияние на радиус. Добавьте еще один узел Number Slider в рабочую область, а затем дважды щелкните в пустой области рабочего пространства, чтобы добавить узел Code Block. Отредактируйте поле в узле Code Block, указав значения X/Y
.
Code Block
От узлов DistanceTo и Number Slider к узлу Code Block
От узла Code Block к узлу Circle.ByCenterPointRadius
Чтобы процесс пошаговой разработки программы был эффективен, рекомендуется начинать с простой структуры, которую затем можно постепенно усложнять. Если программа позволяет успешно создавать одну окружность, то ее можно усложнить и использовать для создания сразу нескольких окружностей. Для этого вместо одной центральной точки можно задать сетку точек, данные из которой будут использоваться в итоговой структуре. В результате каждая из полученных окружностей будет иметь уникальное значение радиуса, определяемое калибруемым расстоянием до точки притяжения.
Добавьте узел Number Sequence и замените входные данные узла Point.ByCoordinates. Щелкните правой кнопкой мыши узел Point.ByCoordinates и выберите «Переплетение» > «Перекрестная ссылка».
Добавьте узел Flatten после узла Point.ByCoordinates. Чтобы выровнять список полностью, оставьте для входа
amt
значение по умолчанию (-1
).Область 3D-просмотра обновляется, и в ней появляется сетка окружностей.
Манипуляции с числами не всегда являются оптимальным подходом. Теперь геометрию точки можно корректировать вручную при навигации по области фонового 3D-просмотра. Также можно управлять другой геометрией, построенной на основе точки. Например, узел Sphere.ByCenterPointRadius также поддерживает режим непосредственного манипулирования. Для управления положением точки можно задать наборы значений X, Y и Z с помощью узла Point.ByCoordinates. Однако с помощью метода непосредственного манипулирования можно обновлять значения регуляторов путем перемещения точки вручную в режиме навигации по области 3D-просмотра. Это обеспечивает более интуитивный способ управления набором отдельных значений, которые определяют положение точки.
Для использования метода Непосредственное манипулирование выберите панель точки для перемещения. Над выбранной точкой появятся стрелки.
Переключитесь в режим Навигация по области 3D-просмотра.
Наведите курсор на точку. Появятся оси X, Y и Z.
Чтобы переместить соответствующую ось, щелкните и перетащите цветную стрелку. При перемещении точки вручную значения в узле Number Slider динамически обновляются.
Обратите внимание, что до перехода в режим Непосредственное манипулирование с компонентом Point.ByCoordinates был соединен только один регулятор. При перемещении точки вручную в направлении по оси X автоматически создается новый узел Number Slider для указания входных данных по оси X.
В этом разделе представлены простые рабочие процессы, помогающие приступить к работе с Dynamo.