Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Dynamo — это среда визуального программирования, которая позволяет пользователям создавать процессы обработки данных. Данные — это числа или текст. Но это также и геометрия. С точки зрения компьютера, геометрия (иногда ее также называют вычислительной геометрией) — это данные, которые можно использовать для создания эстетичных, детализированных или высокопроизводительных моделей. Для этого нужно сначала внимательно изучить различные типы геометрии, доступные для использования.
Точка определяется одним или несколькими значениями, которые называют координатами. Количество значений координат, необходимых для определения точки, зависит от системы координат или контекста, в котором она находится.
Самый распространенный тип точки в Dynamo существует в трехмерной мировой системе координат и имеет три координаты: [X,Y,Z] (3D-точка в Dynamo).
2D-точка в Dynamo имеет две координаты — [X,Y].
Параметры кривых и поверхностей являются непрерывными и выходят за пределы заданной геометрии. Поскольку формы, определяющие параметрическое пространство, находятся в трехмерной мировой системе координат, параметрическую координату можно всегда легко преобразовать в «мировую». Например, точка [0.2, 0.5] на поверхности соответствует точке [1.8, 2.0, 4.1] в системе мировых координат.
Точка в предполагаемой системе мировых координат XYZ.
Точка, представленная относительно заданной системы координат (цилиндрической).
Точка, представленная координатами UV на поверхности.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Если геометрия — это язык модели, то точки — ее алфавит. Точки являются основой для создания всех прочих объектов геометрии. Для создания кривой требуется не менее двух точек, для создания полигона или грани сети — не менее трех и т. д. Определение положения, порядка и связей между точками (например, с помощью функции синуса) позволяет работать с геометрией более высокого порядка, в том числе с такими элементами, как окружности или кривые.
Окружность, построенная с помощью функций
x=r*cos(t)
иy=r*sin(t)
.Синусоидальная кривая, построенная с помощью функций
x=(t)
иy=r*sin(t)
.
Точки также могут существовать в двумерной системе координат. В зависимости от типа рабочего пространства, могут использоваться различные буквенные обозначения — [X,Y] на плоскости или [U,V] на поверхности.
Точка в евклидовой системе координат: [X,Y,Z]
Точка в системе координат параметров кривой: [t]
Точка в системе координат параметров поверхности: [U,V]
Геометрия — это язык, на котором осуществляется разработка. Если в основе языка или среды программирования лежит геометрия, это открывает широкие возможности для создания точных и надежных моделей, автоматизации процессов разработки и итерации проектов на основе алгоритмов.
Зная типы геометрии и то, как они связаны друг с другом, можно легко ориентироваться в наборе узлов Geometry, доступных в библиотеке. Узлы Geometry располагаются в алфавитном порядке, а не по иерархическому принципу. Здесь они отображаются примерно так же, как и в интерфейсе Dynamo.
Кроме того, эти знания позволят упростить и сделать более понятым процесс создания моделей в Dynamo, а также соотнесение потока данных в графике с изображением в области предварительного просмотра.
Обратите внимание на предполагаемую систему координат, представленную сеткой и цветными осями.
Выбранные узлы визуализируют соответствующую геометрию (если узел создает геометрию) в фоновом режиме.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
В обычном понимании геометрия — это исследование формы, размера, относительного положения фигур и свойств пространства. Эта дисциплина имеет богатую историю, берущую свое начало тысячи лет назад. Благодаря появлению компьютеров мы получили мощный инструмент для описания, изучения и генерирования геометрических объектов. В настоящее время можно с легкостью рассчитать сложнейшие геометрические взаимодействия, и ни для кого не секрет, что мы активно используем эти возможности.
Если вы хотите узнать, насколько разнообразной и сложной может быть геометрия, разрабатываемая с помощью компьютеров, введите словосочетание «Стенфордский кролик» в любой поисковой системе. Это каноническая модель, которая используется для тестирования алгоритмов.
Перспектива применения геометрии в контексте алгоритмов, компьютерных вычислений и повышенной сложности может показаться пугающей. Однако есть несколько относительно простых ключевых принципов, освоив которые, мы сможем приступить к изучению более сложных вариантов применения геометрии.
Геометрия —это данные, поэтому с точки зрения компьютера и приложения Dynamo геометрический кролик практически ничем не отличается от обычного числа.
Геометрия основана на абстракции: по сути, все геометрические элементы описываются с помощью чисел, отношений и формул в заданной пространственной системе координат.
Геометрия имеет иерархию: точки образуют линии, линии образуют поверхности и т. д.
Геометрия одновременно описывает часть и целое: если есть кривая, то она представляет собой и форму, и все возможные точки вдоль нее.
На практике эти принципы означают, что пользователи должны понимать, над чем они работают (тип геометрии, как она была создана и т. д.). Это понимание позволит нам с легкостью конструировать, разбирать и снова собирать различные геометрические объекты в ходе разработки сложных моделей.
Давайте рассмотрим геометрию с точки зрения принципов абстракции и иерархии. Хоть это и не всегда очевидно, эти принципы тесно взаимосвязаны, и если в этом не разобраться, то при разработке детализированных рабочих процессов и моделей можно столкнуться с серьезным препятствием. Для начала давайте воспользуемся понятием пространственным измерений в качестве основной характеристики моделируемых нами объектов. Зная количество измерений, необходимых для описания формы, мы сможем приблизиться к пониманию иерархического устройства геометрии.
Точка (определяемая координатами) не имеет измерений. Она описывается только числами, соответствующими каждой из координат.
Отрезок (определяемый двумя точками), в свою очередь, имеет одно измерение: мы можем перемещаться вдоль отрезка вперед (положительное направление) и назад (отрицательное направление).
Плоскость (определяемая двумя линиями) имеет два измерения: мы можем перемещаться не только вперед и назад, но и влево или вправо.
Параллелепипед (определяемый двумя плоскостями) имеет три измерения: в дополнение к указанному выше, мы можем перемещаться вверх и вниз.
Пространственные измерения — это удобный способ классификации геометрический объектов, но не всегда самый лучший. В конце концов, при моделировании используются не только точки, отрезки, плоскости и параллелепипеды. Что, если нужен изогнутый объект? Кроме этого, существует еще одна категория геометрических типов, которые являются полностью абстрактными: они определяют такие свойства, как ориентация, объем или связи между отдельными частями объекта. Такой объект, как вектор, например, абсолютно неосязаем. Так как же описать его относительно того, что мы видим в пространстве? Нужна более подробная классификация иерархии геометрических объектов, которая должна отражать разницу между абстрактными типами (вспомогательными средствами), которые можно сгруппировать по выполняемой ими функции, и типами, которые используются для описания формы элементов модели.
Создание моделей в Dynamo не ограничено объектами, которые можно создать с помощью узлов. Есть несколько способов расширить возможности использования геометрии.
Dynamo позволяет импортировать файлы: используйте файлы CSV для создания облаков точек или файлы SAT для добавления поверхностей.
При работе с Revit можно ссылаться на элементы Revit, чтобы использовать их в Dynamo.
В Dynamo Package Manager реализованы дополнительные функции, поддерживающие расширенный набор типов геометрии и операций. Ознакомьтесь с возможностями пакета Mesh Toolkit.
Кривые — это первый из рассматриваемых здесь типов геометрических данных с привычным набором свойств, определяющих форму объекта (степень изгиба, длина и т. д.). Следует помнить, что основной единицей при построении любых объектов — от отрезка до сплайна и всех прочих типов кривых — остаются точки.
Отрезок
Полилиния
Дуга
Окружность
Эллипс
NURBS-кривая
Сложная кривая
NURBS — это модель, используемая для точного представления кривых и поверхностей. Создайте синусоидальную кривую в Dynamo с помощью двух различных методов создания кривых NURBS и сравните результаты.
Узел NurbsCurve.ByControlPoints в качестве управляющих точек использует список точек.
Узел NurbsCurve.ByPoints создает кривую по списку точек.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Под термином кривая обычно понимаются все типы криволинейных форм (даже если они являются прямолинейными). Таким образом, кривая — это родительская категория, в которую входят все эти типы форм: отрезки, окружности, сплайны и т. д. В техническом плане кривая описывает все возможные точки, которые можно найти, путем ввода параметра «t» в набор простых (x = -1.26*t, y = t
) или высших математических функций. Независимо от типа кривой, искомым свойством является данный параметр, условно обозначаемый как «t». Кроме этого, все кривые, независимо от своей формы, также имеют начальную и конечную точки, которые соответствуют минимальному и максимальному значениям «t», используемым для создания кривой. Это также позволяет определить направленность кривой.
Важно помнить, что в Dynamo область значений «t» для кривой охватывает диапазон от 0,0 до 1,0.
Все кривые также имеют ряд свойств или характеристик, которые можно использовать для их описания или анализа. Если расстояние между начальной и конечной точками равно нулю, кривая будет замкнутой. Кроме этого, каждая кривая имеет несколько управляющих точек. Если все эти точки расположены в одной плоскости, то кривая будет плоской. Некоторые свойства применяются ко всей кривой, другие — только к определенным точкам на кривой. Например, планарность является глобальным свойством, а вектор касательной при заданном значении — локальным.
Отрезки — это простейшая форма кривых. Хотя они могут не выглядеть изогнутыми, на самом деле, это кривые, у которых просто отсутствует кривизна. Существует несколько способов создания отрезков, наиболее простым из которых является создание отрезка от точки A до точки B. Форма отрезка AB заключена между этими точками, но математически она бесконечно продолжается в обоих направлениях.
При соединении двух отрезков создается полилиния. На этом изображении наглядно показано, что собой представляет управляющая точка. При изменении положения любой из этих точек изменится и форма полилинии. Если полилиния замкнута, получится полигон. Если длина всех ребер полигона одинакова, он будет правильным.
Постепенно усложняя параметрические функции, определяющие форму, можно построить не просто отрезок, но и дугу, окружность, эллиптическую дугу или эллипс, задав один или два радиуса. Отличие между дугой и окружностью или эллипсом состоит только в том, что последние две формы являются замкнутыми.
NURBS (неоднородные сплайны с рациональной основой ) — это математические представления, которые позволяют точно смоделировать любую форму: от простого двумерного отрезка, окружности, дуги или прямоугольника до сложнейшей трехмерной органичной кривой произвольной формы. Благодаря своей гибкости (плавной интерполяции, в зависимости от заданной степени, при относительно небольшом количестве управляющих точек) и точности (достигаемой за счет сложных математических вычислений) модели NURBS можно использовать в любом процессе, будь то презентация, анимация или производство.
Степень: степень кривой определяет диапазон влияния управляющих точек на кривую (чем выше степень, тем больше диапазон). Степень — это положительное целое число. Обычно это число 1, 2, 3 или 5, но вместо него может использоваться любое другое положительное целое число. NURBS-отрезки и полилинии обычно имеют степень 1, а кривые произвольной формы — степени 3 или 5.
Управляющие точки: список точек в количестве не меньшем, чем «степень + 1». Одним из самых простых способов изменения формы NURBS-кривой является перемещение ее управляющих точек.
Вес: с управляющими точками связано определенное число, которое называется весом. Обычно вес является положительным числом. Если для управляющих точек кривой установлен одинаковый вес (обычно 1), кривая называется нерациональной. В противном случае она считается рациональной. Большинство NURBS-кривых являются нерациональными.
Узлы: список чисел (степень+N-1), где N — количество управляющих точек. Узлы используются вместе со значениями веса для управления влиянием управляющих точек на итоговую кривую. Одной из функций узлов является создание точек излома в определенных точках кривой.
Степень = 1
Степень = 2
Степень = 3
Обратите внимание, что чем выше значение степени, тем больше управляющих точек используется для интерполяции полученной кривой.
Вектор — это представление величины и направления. Его можно изобразить в виде стрелки, которая движется в определенном направлении с заданной скоростью. Векторы являются ключевым компонентом при разработке моделей в Dynamo. Обратите внимание, что поскольку они относятся к категории вспомогательных средств, то при создании векторы не отображаются в области фонового просмотра.
В качестве замены вектору в области предварительного просмотра можно использовать отрезок.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Плоскость — это двумерная поверхность. Ее можно изобразить в виде плоской поверхности, уходящей в бесконечность. Каждая плоскость имеет исходную точку и направления по осям X, Y и Z (вверх).
Хотя плоскости являются абстрактными, они имеют исходную точку, что позволяет определить их положение в пространстве.
В Dynamo плоскости визуализируются в области фонового просмотра.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Система координат — это система для определения местоположения точек и других геометрических элементов. На изображении ниже показано, как это выглядит в Dynamo, и что представляет каждый цвет.
Хотя системы координат являются абстрактными, они имеют исходную точку, что позволяет определить их положение в пространстве.
В Dynamo системы координат визуализируются в области фонового просмотра в виде точки (начало координат) и линий, определяющих оси (согласно принятым нормам, ось X обозначается красным цветом, Y — зеленым, а Z — синим).
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Векторы, плоскости и системы координат составляют основную группу абстрактных типов геометрии. Они помогают задавать расположение, ориентацию и пространственный контекст для других геометрических объектов, определяющих формы. Представим себе человека, который находится в Нью-Йорке на пересечении 42-й улицы и Бродвея (система координат), стоит на тротуаре (плоскость) и смотрит на север (вектор). Мы только что описали местонахождение человека с помощью вспомогательных абстрактных средств. Таким же образом можно задать местонахождение любого объекта, от чехла телефона до небоскреба. Это контекст, необходимый для разработки любой модели.
Вектор — это геометрическая величина, описывающая направление и величину. Векторы являются абстрактными, т. е. они представляют собой некоторую величину, а не геометрический элемент. Векторы легко спутать с точками, поскольку они также состоят из списка значений. Однако существует одно важное отличие: точки описывают положение в заданной системе координат, а векторы описывают относительную разницу в положении, что аналогично понятию направления.
Если идея относительной разницы не вполне ясна, представьте, что вектор AB означает следующее: вы стоите в точке A и смотрите в точку B. Направление от одной точки (A) до другой (B) и будет вектором.
Рассмотрим подробнее структуру векторов на примере вектора AB.
Начальная точка вектора называется его началом.
Конечная точка вектора называется его концом или направлением.
Вектор AB и вектор BA — это два разных вектора, поскольку они указывают в противоположных направлениях.
Чтобы отдохнуть от слишком формальных и абстрактных определений вектора и посмеяться, посмотрите классическую комедию «Аэроплан!» (Airplane!), где есть следующая знаменитая цитата:
Roger, Roger. What's our vector, Victor? (Роджер, Роджер. Каков наш вектор, Виктор?)
Плоскости являются двумерной абстрактной вспомогательной геометрией. Плоскости по определению являются «плоскими» и бесконечно расширяются в двух направлениях. Обычно они визуализируются в виде небольшого прямоугольника в начале координат.
Но постойте, скажете вы. Начало координат? Как в системе координат, которая используется для моделирования в САПР?
Совершенно верно. В большинстве программ моделирования используются плоскости построения, или «уровни», с помощью которых определяется локальный двумерный контекст для создания черновиков чертежей. XY, XZ, YZ или, возможно, более знакомые вам «север», «юго-восток», «план» — все это плоскости, определяющие бесконечный «плоский» контекст. Плоскости не имеют глубины, но они помогают описать направление.
Если мы с вами освоили плоскости, то разобраться с системами координат нам не составит труда. Плоскость состоит из тех же компонентов, что и система координат, при условии что это стандартная евклидова система координат или система координат XYZ.
Однако имеются и другие альтернативные системы координат, например цилиндрические или сферические. Как будет показано в следующих разделах, системы координат можно также применять к другим типам геометрии для указания положения в пределах этой геометрии.
Можно добавить альтернативные системы координат — цилиндрические и сферические.
Поверхность в модели используется для представления объектов, которые мы видим в нашем трехмерном мире. Несмотря на то, что кривые не всегда являются плоскими и по сути трехмерны, пространство, определяемое ими, всегда является одномерным. Поверхности позволяют придать модели дополнительное измерение, а также включают набор специальных свойств, которые можно использовать при выполнении других операций моделирования.
Импортируйте в Dynamo и проанализируйте объект Surface в конкретном параметре, чтобы узнать, какие сведения можно извлечь.
Surface.PointAtParameter возвращает объект Point в заданной координате UV.
Surface.NormalAtParameter возвращает вектор нормали в заданной координате UV.
Surface.GetIsoline возвращает изопараметрическую кривую в координате U или V (обратите внимание на порт ввода isoDirection).
Скачайте файлы примеров, щелкнув ссылку ниже.
Полный список файлов примеров можно найти в приложении.
Поверхность — это математическая форма, определяемая функцией и двумя параметрами. Вместо параметра t
, используемого для кривых, здесь для описания соответствующего пространства используются параметры U
и V
. Это означает, что при работе с геометрией этого типа появляются дополнительные данные для использования. Например, у кривых есть касательные векторы и плоскости нормали (которые могут поворачиваться или скручиваться вдоль кривой), а у поверхностей есть векторы нормали и касательные плоскости с последовательной ориентацией.
Поверхность
Изолиния U
Изолиния V
Координата UV
Перпендикулярная плоскость
Вектор нормали
Область поверхности: определяется как диапазон параметров (U,V), каждый из которых соответствует трехмерной точке на этой поверхности. Область в каждом измерении (U или V) обычно описывается двумя числами: (от U мин. до U макс.) и (от V мин. до V макс.).
Хотя поверхность может не выглядеть как прямоугольник, а некоторые ее участки могут отличаться более или менее плотным расположением изолиний, «пространство», определяемое областью поверхности, всегда является двумерным. В Dynamo всегда подразумевается, что область поверхности определяется диапазоном значений U и V, где минимальное значение равно 0.0, а максимальное — 1.0. У плоских или обрезанных поверхностей могут быть разные области.
Изолиния (или изопараметрическая кривая): кривая, определяемая постоянным значением для одного направления (U или V) на поверхности и областью значений для другого направления (V или U, соответственно).
Координата UV: точка в пространстве параметров UV, определяемая значениями U, V и иногда W.
Перпендикулярная плоскость: плоскость, перпендикулярная изолиниям U и V в заданной координате UV.
Вектор нормали: вектор, определяющий направление «вверх» относительно перпендикулярной плоскости.
Поверхности NURBS очень похожи на NURBS-кривые. Такую поверхность можно представить в виде сетки из NURBS-кривых, идущих в двух направлениях. Форма поверхности NURBS определяется набором управляющих точек и степенью сглаживания этой поверхности в направлениях U и V. Те же алгоритмы используются для вычисления формы, нормалей, касательных, кривизны и других свойств с помощью управляющих точек, весов и степени сглаживания.
В случае с поверхностями NURBS для геометрии подразумеваются два направления, поскольку эти поверхности являются прямоугольными сетками из управляющих точек, хотя они могут выглядеть совсем по-другому. Эти направления во многих случаях задаются произвольным образом на основе мировой системы координат, однако они часто используются для анализа моделей или создания других геометрических объектов на основе поверхности.
Степень сглаживания (U,V) = (3,3)
Степень сглаживания (U,V) = (3,1)
Степень сглаживания (U,V) = (1,2)
Степень сглаживания (U,V) = (1,1)
Полиповерхности состоят из нескольких поверхностей, кромки которых соединены. Полиповерхности обеспечивают более детализированные сведения, нежели простое двумерное определение UV, благодаря чему их можно использовать для перехода по соединенным формам посредством их топологии.
Термин «топология» в большинстве случаев используется для обозначения того, как различные элементы связаны и взаимодействуют друг с другом. В Dynamo топология (Topology) также является типом геометрии. Topology является родительской категорией таких объектов, как поверхности (Surface), полиповерхности (Polysurface) и тела (Solid).
Объединение поверхностей таким образом (иногда называемое замыканием) позволяет создавать более сложные формы, а также детализировать стыки. К кромкам объекта Polysurface можно применять операции сопряжения или фаски.
В сфере вычислительного моделирования представляют собой одну из наиболее распространенных форм представления 3D-геометрии. Геометрия сети обычно состоит из набора четырехугольников или треугольников. Она может быть простой и гибкой альтернативой работе с поверхностями NURBS. Сети используются во всех областях, от визуализации до цифрового производства и 3D-печати.
Приложение Dynamo определяет сети, используя структуру данных «грань—вершина». На элементарном уровне эта структура представляет собой набор точек, сгруппированных по полигонам. Точки сети называются вершинами, а полигоны, похожие на поверхности, — гранями.
Для создания сети требуется список вершин и система, позволяющая группировать эти вершины в грани, называемая группой индексов.
Список вершин
Список групп индексов для определения граней
В библиотеке также содержатся инструменты для изменения сетей, их восстановления или извлечения горизонтальных срезов для использования в производстве.
Сеть — это набор четырехугольников и треугольников, образующих геометрию поверхности или тела. Как и в случае с телами, структура объекта-сети включает в себя вершины, ребра и грани. Существуют свойства, которыми обладают только сети, например нормали.
Вершины сети
Ребра сети (ребра, у которых только одна прилегающая грань, называются открытыми; все остальные ребра являются закрытыми)
Грани сети
Вершины сети представляют собой обычный список точек. Индекс вершин очень важен при создании сети или получении информации о структуре сети. У каждой вершины также есть соответствующая нормаль вершины (вектор), задающая усредненное направление прилегающих граней и позволяющая определить ориентацию сети «внутрь» или «наружу».
Вершины
Нормали вершин
Грань представляет собой упорядоченный список из трех или четырех вершин. Таким образом, представление грани сети зависит от положения индексируемых вершин. Благодаря наличию списка вершин, образующих сеть, вместо указания отдельных точек для определения грани достаточно использовать индекс вершин. Это также позволяет использовать одну и ту же вершину в нескольких гранях.
Квадратная грань, созданная на основе индексов 0, 1, 2 и 3
Треугольная грань, созданная на основе индексов 1, 4 и 2 (обратите внимание, что очередность групп индексов может быть изменена: если очередность следует направлению против часовой стрелки, то грань будет определена правильно)
В чем отличие геометрии сети от геометрии NURBS? Когда следует использовать геометрию каждого из этих типов?
В предыдущей главе мы узнали, что NURBS-поверхности определяются набором NURBS-кривых, идущих в двух направлениях. Эти направления обозначаются как U
и V
и позволяют осуществлять параметризацию поверхности NURBS в соответствии с областью определения двумерной поверхности. Сами кривые хранятся на компьютере в виде формул, что позволяет рассчитывать итоговые поверхности с произвольно малой степенью точности. Тем не менее скомбинировать несколько NURBS-поверхностей достаточно сложно. Объединение двух NURBS-поверхностей приведет к созданию сложной поверхности, причем разные сегменты геометрии будут иметь различные параметры UV и определения кривых.
Поверхность
Изопараметрическая кривая
Управляющая точка поверхности
Управляющей полигон поверхности
Изопараметрическая точка
Рамка поверхности
Сеть
Открытое ребро
Сетка сети
Ребра сети
Нормаль вершины
Грань сети/нормаль грани сети
Сети состоят из дискретного количества точно заданных вершин и граней. Сетка вершин, как правило, не может быть определена простыми координатами UV
, а так как грани дискретны, степень точности уже встроена в сеть и ее можно изменить только путем уточнения сети и добавления дополнительных граней. Отсутствие математических описаний у сетей обеспечивает гибкость при работе со сложными геометрическими объектами в пределах одной сети.
Еще одно важное отличие заключается в том, насколько локальные изменения геометрии сети или геометрии NURBS влияют на всю форму. Перемещение одной вершины сети влияет только на грани, прилегающие к этой вершине. В NURBS-поверхностях механизм влияния более сложен и зависит от степени, а также веса и узлов управляющих точек. Однако в целом при перемещении одной управляющей точки на NURBS-поверхности изменения в геометрии будут более сглаженными и масштабными.
NURBS-поверхность: перемещение управляющей точки влияет на всю форму.
Геометрия сети: перемещение влияет только на прилегающие элементы.
В качестве аналогии можно сравнить векторное изображение (состоящее из отрезков и кривых) с растровым изображением (состоящим из отдельных пикселей). При увеличении векторного изображения кривые остаются плотными и четкими, а при увеличении растрового изображения увеличивается размер отдельных пикселей. В этом случае NURBS-поверхности можно сравнить с векторным изображением, так как здесь работает плавная математическая связь, а сеть ведет себя так же, как растровое изображение с заданным разрешением.
Отрезок состоит из набора точек. В каждом отрезке должно быть не менее 2 точек. Один из наиболее распространенных способов создания отрезка в Dynamo — использование Line.ByStartPointEndPoint
для создания отрезка в Dynamo.
Возможности работы с сетями в Dynamo можно расширить за счет установки пакета . Dynamo Mesh Toolkit содержит инструменты для импорта сетей из внешних файлов в других форматах, создания сетей из геометрических объектов Dynamo и построения сетей вручную по вершинам и индексам.
Ознакомьтесь с на основе данного пакета.
Для создания сложных моделей, которые невозможно получить из одной поверхности, или определения явного объема необходимо научиться работе с телами (и полиповерхностями). Даже для самого простого куба требуется целых шесть поверхностей, по одной на каждую грань. Тела позволяют получить доступ к двум ключевым концепциям, не доступным при работе с поверхностями, а именно к уточненным топологическим описаниям (граням, кромкам, вершинам) и логическим операциям.
Для изменения тел применяются логические операции. Попробуйте использовать несколько логических операций для создания шара с шипами.
Sphere.ByCenterPointRadius: создание базового объекта тела Solid.
Topology.Faces, Face.SurfaceGeometry: запрос граней тела и преобразование в геометрию поверхности (в данном случае сфера имеет только одну грань).
Cone.ByPointsRadii: построение конусов, используя точки на поверхности.
Solid.UnionAll: объединение конусов со сферой.
Topology.Edges: запрос кромок нового объекта Solid.
Solid.Fillet: сглаживание кромок шара с шипами.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Логические операции сложны, и их вычисление может занимать много времени. Замораживание можно использовать, чтобы приостановить выполнение операций в выбранных узлах, а также следующих за ними узлах.
1. Используйте контекстное меню, чтобы «заморозить» операцию объединения тел.
2. Выбранный узел и все следующие за ним узлы отображаются светло-серым полупрозрачным цветом, а все затронутые провода отображаются в виде прерывистых линий. Предварительный просмотр соответствующей геометрии также будет полупрозрачным. Теперь можно изменить значения в узлах, предшествующих выбранному, не перегружая приложение расчетом логической операции объединения.
3. Чтобы разморозить узлы, щелкните правой кнопкой мыши и снимите флажок «Заморозить».
4. Все затронутые узлы и изображения предварительного просмотра связанных геометрических объектов обновляются и возвращаются к стандартному виду.
Подробные сведения о замораживании узлов см. в разделе Узлы и провода.
Тела состоят из одной или нескольких поверхностей, внутри которых заключен объем, определенный замкнутым контуром, который отделяет то, что внутри тела, от того, что снаружи. Независимо от количества используемых поверхностей, для того чтобы объект считался телом, содержащийся в нем объем должен быть полностью замкнутым. Тела можно создавать путем объединения поверхностей или полиповерхностей либо с помощью таких операций, как лофтинг, сдвиг и вращение. Такие примитивы, как сфера, куб, конус и цилиндр, также являются телами. Объект Cube, у которого отсутствует хотя бы одна грань, считается полиповерхностью, которая уже не является телом, хотя и обладает многими аналогичными свойствами.
Плоскость состоит из одной поверхности и не является телом.
Сфера состоит из одной поверхности и является телом.
Конус состоит из двух соединенных поверхностей и является телом.
Цилиндр состоит из трех соединенных поверхностей и является телом.
Куб состоит из шести соединенных поверхностей и является телом.
Элементы, из которых состоят тела, делятся на три типа: вершины, кромки и грани. Грани — это поверхности, образующие тело. Кромки — это кривые, обозначающие области соединения смежных граней, а вершины — это начальные и конечные точки этих кривых. Эти элементы можно запросить с помощью узлов Topology.
Грани
Кромки
Вершины
Тела можно изменять путем применения скруглений и фасок к кромкам, чтобы тем самым сгладить острые углы. Операция фаски создает поверхность соединения между двумя гранями, а операция сопряжения сглаживает переход между гранями для сохранения касательности.
Твердотельный куб
Куб с фасками
Скругленный куб
Логические операции для тел — это методы, позволяющие объединить несколько тел в одно. Каждая логическая операция включает в себя четыре операции:
Пересечение двух или более объектов.
Разделение их в местах пересечения.
Удаление ненужных частей геометрии.
Объединение оставшихся частей.
Объединение: несколько тел объединяются в одно с удалением перекрывающихся частей.
Разность: одно тело вычитается из другого. Тело, которое вычитается, называется инструментом. Обратите внимание, что для сохранения обратного объема вычитаемое и подвергающееся вычитанию тела можно поменять местами.
Пересечение: при пересечении сохраняются только перекрывающиеся части двух тел.
UnionAll: операция объединения для сферы и повернутых наружу конусов.
DifferenceAll: операция разности для сферы и повернутых внутрь конусов.
Благодаря этому использование логических операций для тел позволяет значительно сэкономить время. Существует три логические операции для тел, позволяющие определить, как части геометрии должны сохраняться.
В дополнение к этим трем операциям в Dynamo доступны узлы Solid.DifferenceAll и Solid.UnionAll для выполнения операций разности и объединения с несколькими телами.