grasshooper manual rus

51

Upload: -

Post on 24-Oct-2014

223 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Grasshooper Manual Rus
Milan
Sticky Note
Перед тем как куда-то ниже приведенный текст публиковать, необходимо поговорить с Сыреновым, т.к. он его переводил.
Page 2: Grasshooper Manual Rus

Первый урок

1. Интерфейс

Данное меню подобно обычному для Windows-приложений меню, за исключением дополнительногоэлемента управления, расположенного справа (B). Онпозволяет быстро переключаться между открытымифайлами, выбирая их из выпадающего списка. Нужнобыть внимательным при использовании сочетаний

А. Главное меню

быть внимательным при использовании сочетанийклавиш. Так как нажатые клавиши обрабатываютсяактивным окном, то им может оказаться окно самогоRhino, окно Gh. или любое другое окно в Rhino.Поскольку команда undo не доступна, то нужно бытьвнимательным с нажатием сочетаний клавиш Ctrl-X, Ctrl-Sи Del.

Как описано выше, данное выпадающее меню можноиспользовать для переключения между открытымифайлами Gh.

Эта область содержит все категории доступных в Gh.компонентов. Каждый компонент относится к

B. Элемент управления"Выбор файлов“

C. Панели компонентов определенной категории (например: панель "Params"

содержит примитивы различных видов, "Curves" -содержит компоненты, относящиеся к работе с кривыми) ивсе категории доступны на отдельных панеляхинструментов. Каждая панель содержит все компоненты,относящиеся к данной категории. Поскольку компонентовочень много, то на панели отображаются только N

компонентов

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

Page 3: Grasshooper Manual Rus

При этом появляетсявыпадающая панель совсеми компонентами данной

Д б

C. Панели компонентов

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

Элементы также можновыбирать по имени,для этого достаточнодважды щелкнуть

бмышью в любом местелиста. Появитсявсплывающее окнопоиска компонента.Вводим названиекомпонета и в спискевидим те компоненты,название которыхсовпадает свведеннымисимволами.

Строка заголовка окна редактора имеет отличия вСтрока заголовка окна редактора имеет отличия вповедении от других диалоговых окон Windows. Еслиокно находится не в максимальном или минимальномсостоянии, то двойной щелчок на строке заголовкасворачивает или разворачивает окно. Это быстрыйспособ переключения между Gh. и Rhino, т.к. окноредактора сворачивается без перемещения внизр З е е о р р о ре ор

D. Строка заголовка окна

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

Page 4: Grasshooper Manual Rus

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

Все инструменты доступны также через меню, поэтому выможете скрыть эту панель инструементов. (Она можетбыть повторно открыта через меню "View")

E. Панель инструментов листа

р р р )

Панель инструментов листа содержит (слева на право):

1. Инструмент рисования:Он работает подобно инструменту карандаш в Photoshop или Paint. Можно настраивать ширину штриха, тип линии и цвет. Однако имеются трудности с изображением прямых линий и фигур. Для решения данной проблемы, нарисуйте любой эскиз на листе. Нажмите на нем правой р у ркнопкой. Выберите из контекстного меню "Load from Rhino" и укажите любую заранее нарисованную в Rhino фигуру. (Это может быть любая 2d фигура, например прямоугольник, окружность, звезда и т.д). После того как вы выбрали фигуру, нажмите Enter, и ваш эскиз будет заменен на выбранную фигуру.

2. Масштаб отображения3. Показать все (выполняет подгонку содержимого листа под размер окна) и 4 кнопки фокусировки на соответсвующих углах вашего дефинишена (схемы).4. Карта навигации открывает маленькое плавающее окно, схематично показывающее содержимое вашего листа и позволяет вам быстро перемещаться по листу без листа и позволяет вам быстро перемещаться по листу без использования масштабирования и панорамирования. Данный инструмент похож на окно навигатора в Photoshop.

5. Список именованных видов (отображает меню, где можно сохранять и вызывать сохраненные виды)6 К 6. Кнопки выравнивания компонентов7. Разрешить просмотр выбранных компонентов (отображает геомерию создаваемую компонентом)

8. Запретить просмотр выбранных компонентов

Page 5: Grasshooper Manual Rus

9. Перестроить дефинишен (выполняет полный пересчет всех построений)

10. Разрешить / запретить решатель (дефинишен не будет расчитываться)

E. Панель инструментов листа

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

14. Кнопка "Hide". Эта кнопка прячет панель инструментов. Вы можете отобразить ее обратно через меню View.

F. Рабочий лист На рабочем листе вы создается и редактируете вашдефинишен. Лист содержит все компоненты, входящие вдефинишен и некоторые виджеты (G).Объекты на листе кодируются цветом, для обеспеченияобратной связи об их состоянии:

A) Параметр. Параметр имеющий предупреждение, отображается оранжевым прямоугольником. Большинство параметров становятся оранжевыми, сразу же как только вы помещаете их на лист т.к. для них не заданы входные объекты или значения, что и вызывает предупреждение.

B) Параметр. Параметр, который не содержит предупреждений или ошибок.

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

Page 6: Grasshooper Manual Rus

D) Компонент. Компонент, не имеющий предупреждений и ошибок.E) Component. Компонент, содержащий минимум 1 ошибку. Ошибка может быть заключена как в самом компоненте, так и во входных параметрах. Более подробно о структурах компонентов в следующих главах.

F. Рабочий лист

Все выбранные объекты отображаются зеленым цветом (на рис. не показано)

В настоящее время доступен тольк один виджет - Компас, отображаемый в правом нижнем углу листа. Компас представляет собой инструмент навигации на листе. Он

G. Виджеты пользовательског ф й (UI)

представляет собой инструмент навигации на листе. Он графически показывает где расположено текущее окно просмотра по отношению ко всему дефинишену. Виджеты включаются/выключаются в меню View.

Строка статуса обеспечивает обратную связь и показывает важные события, происходящие в Gh. Здесь отображается информация о том имеются или нет в

о интерфейса (UI)

H. Строка статуса отображается информация о том имеются или нет в

дефинишене ошибки или предупреждения.

Панель удаленного управления:Поскольку окно Gh. довольно большое, вы можете захотеть чтобы оно не отображалось постоянно на экране. В

статуса

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

Панель удаленного управления также обеспечивает переключение режимов предпросмора, и файлов дефинишенов. Включить/выключить панель можно через менюView главного окна, или через команду Rhino _GrasshopperPanel.

Page 7: Grasshooper Manual Rus

Обратная связь с окном просмотра:

A) Голубым цветом отображается геометрия, выбранная вами с помощью мыши.

B) Зеленым цветомотображается геометрия выбранных компонентов.C) Красным цветом отображается геометрия невыбранных компонентов.D) Точки отображаются в виде крестиков, чтобы их ) р р ,удобнее было отличать от точек Rhino.

2. ОбъектыGrasshopper

Формулировка названий в Grasshopper может обозначать различные виды объектов, но в начале нам понадобятся только два из них:

- Параметры- Компоненты

Параметры содержат данные, определяющие объект. Компоненты хранят действия, определяющие операции производимые с объектами.

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

Page 8: Grasshooper Manual Rus

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

С. Все выделенные компоненты имеют зеленую окраску.

D. Правильно работающие компоненты.

Е. Компоненты содержащие предупреждение. Поскольку компонент может содержать множество вводимых и

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

F. Компоненты содержащие ошибки. Похоже на компонент содержащий предупреждение, но не допустим для дальнейшей корректной работы алгоритма. Компонент может содержать в предупреждение и ошибку одновременно, но ошибка имеет приоритет над предупреждением (объект будет красным).

G. Соединения. Всегда присутствуют между вводимыми и д д р у у ду двыводимыми параметрами. Нет ограничения на количество связей параметров. Некорректные соединения приводят к окрашиванию параметра в красный цвет, либо автоматически обрываются Gh.

Д б бСоставные части компонентов

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

А. Три вводимых параметра компонента Division(деление). По умолчанию параметры имеют очень короткое название, но могут быть переименованы р , у рпользователем.В. Пространство компонента Division(деление).С. Три выводимых параметра компонента Division(деление).

Page 9: Grasshooper Manual Rus

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

Использование контекстного меню Popup.

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

На изображении вы видите главное меню компонента, с каскадными меню "R" вводимого параметра. Меню обычно начинается с редактируемого текстового поля, в котором располагается название объекта. Вы можете изменить название на что-то более описательное для данного компонента,

Page 10: Grasshooper Manual Rus

но умолчанию все имена очень короткие, чтобы свести кминимуму нерациональное использование области экрана.Второй пункт в меню (просмотр флага) показывает, будетли видна в окнах Rhino геометрияпроизведенная/определеная этом объектом. ОтключениеPreview для компонентов , которые не содержат важнойинформации позволит ускорить работу. Если Preview дляпараметра или компонента отключено, он будет окрашенслабой белой заливкой. Не все параметры / компонентымогут быть изображены в рабочих окнах (например числа)и в этих случаях пункт Preview, как правило, отсутствуют.Контекстное меню для "R" вводимого параметра содержиторанжевый значок предупреждения, которая в своюоранжевый значок предупреждения, которая в своюочередь, содержит список (только 1 предупреждение вэтом случае) на все предупреждениякоторые былисгенерированы по этому параметру.

3. Управление постоянными

Такого типа параметры используются только дляхранения информации, большинство данных можнохранить двумя различными способами: изменяемые иданными хранить двумя различными способами: изменяемые ипостоянные. Изменяемые данные «достаются понаследству» от исходных параметров и будут уничтожены,как только начинается новая операция. Постоянныеданные специально устанавливаются пользователем.Когда параметр подключен к источнику вводимых данных,постоянные данных не учитывается, но и неуничтожаются. (Исключением здесь являются выводимыеданные, которые не сохранили постоянные записини определить набор источников. Выводимые параметрыполностью под контролем компонент, который владеетими.) Постоянные данные доступны через меню, и взависимости от типа параметра имеют разные менеджеры.Векторные параметры, например позволяютр р р , р рустанавливать как одно так и несколько векторов черезменю. Но, давайте вернемся на несколько шагов назад ипосмотрим, как ведут себя параметры по умолчанию.Выбросим в рабочее поле vector parametr:

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

Page 11: Grasshooper Manual Rus

Нажав на любой из этих пунктов меню «кузнечика» окноисчезнет и вам будет предложено выбрать вектор в одном изисчезнет и вам будет предложено выбрать вектор в одном извидовых окон Rhino.

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

Теперь параметр может использовать какТеперь параметр может использовать как«первоисточник» для многих объектов с одинаковымивекторами.

Page 12: Grasshooper Manual Rus

4. Наследование изменяемых данных

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

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

После этого, мышь (пока вы удерживаете левую кнопку нажатой)«парит» над потенциальной мишенью «параметром» проволока«парит» над потенциальной мишенью «параметром», проволокаприсоединится и станет сплошной. Это не постоянноесоединение пока вы не отпустите кнопку мыши:

Page 13: Grasshooper Manual Rus

Вы можете сделать туже процедуру с «Y» параметром PtGrid, а также с «А» и «В» параметрами компонента Line: щелкнул+перетащил+отпустил…)

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

Page 14: Grasshooper Manual Rus

соединение, вы должны сделать что-то особенное, чтобыопределить несколько источников. Если вы держите Shift приперетаскивании соединительного провода, курсор изменитсядля указания этого поведения:

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

Page 15: Grasshooper Manual Rus

Вы также можете отсоединить (но не присоединить) источник через меню параметра:

Кузнечик также имеет возможность беспроводнойпередачи информации на основе использованияприемника, который можно найти в специальнойподкатегории вкладки Params. Вы можете сделатьподключения к ресиверу, так же, как с любым другимкомпонентом. Однако, как только вы отпустите левуюкнопку мыши, соединение у проводов автоматическикнопку мыши, соединение у проводов автоматическиисчезает. Это происходит потому, что настройкаприемника по умолчанию использует только пунктирнуюсвязь проводов при выборе приемника. Вы можетещелкнуть правой кнопкой мыши на приемник иустановить соединение проводов, чтобы показать толькотогда, когда приемник «выбран", либо "всегда" или"никогда" не показывать соединения проводов Вы можетеникогда не показывать соединения проводов. Вы можетеподключить «выход» приемник как и многие другиекомпоненты по мере необходимости.

Здесь вы видите соединительную пунктирную проволоку, потому что компонент ресивер выделен.

Page 16: Grasshooper Manual Rus

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

Сопоставление данных5. Соответствия потока данных

Сопоставление данных

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

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

Page 17: Grasshooper Manual Rus

Алгоритм «длинного списка» сохраняет соединениямежду входными данными до тех пор пока все каналы неиссякнут. Этот компонент стоит в настройках поумолчанию.

И последний алгоритм, «перекрестная ссылка» - методиспользующий все возможные комбинации.у

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

Представьте, у нас есть точки компонент, которыхнаследуют X, Y и Z значения из удаленныхпараметров, которые содержат следующие данные:

Координаты х: (0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0) Координаты Y: (0.0, 1.0, 2.0, 3.0, 4.0) Координата Z: (0 0 1 0)Координата Z: (0,0, 1,0)

Если объединить эти данные в «короткий список», мы получаем только две точки с «Z координатой», которые содержат только два значения. Так как это кратчайший список определяет степень решения:

Page 18: Grasshooper Manual Rus

"С й й ""Самый длинный список" алгоритм создаст десять очков,переработка самых высоких возможных значенийиз Y и Z направлениям:

«перекрестные связи" соединят все значения X со всемизначениями Y и Z, в результате чего получаем 10 × 5 × 2 = 100точек:

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

Page 19: Grasshooper Manual Rus

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

Page 20: Grasshooper Manual Rus

Второй урок.

6. Виды вычислительные

Вычислительные компоненты используются дляразличных математических операций исостоят из:

)компоненты. А) Констант. Постоянные значения, такие как Пи, "золотое сечение", и т.д...

C) Интервалами. Используется для разделения числовых крайностей (или областей) на интервалы частей. Существует много компонентов во вкладке Intervals, у укоторые позволят вам создавать или разделять на различные типы интервалов.

D) Операторы. Используется в математических операциях, таких как добавление, вычитание, умножение и т.д...и т.д...

Е) Полиномов. Используется для повышения числовые значения некоторого множества. В математике, многочлены или полиномы от одной переменной -функции вида*

,где ci фиксированные коэффициенты, а x — переменная. Многочлены составляют один из важнейших классов элементарных функций.

F) тригонометрические. Тригонометрические значения, такие как синус, косинус, касательные и т.д...

G) Утилиты – анализ (оценка полезности). Использоваться для оценки двух или более численных значений.

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

Операторы

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

Page 21: Grasshooper Manual Rus

Создадим определения подобранные случайным образом: • Params/Special/Numeric Slider - перетащим ползунок числовых значений на холсте. • Двойной щелчок по слайдеру вызовет настройки:

- нижний предел: 0,0р д ,- верхний предел: 100,0 - значение: 50,0 (Примечание: эта величина

произвольная и может быть изменена на любое значение в границах верхнего и нижнего пределов) • Выберите тип слайдера и Ctrl + C (копировать) и Ctrl + V (вставить), чтобы создать дубликат слайдер • Params/Primitive/Integer - перетащить два • Params/Primitive/Integer перетащить два целочисленных компонентов на холст • Подключить 1 ползунок на первый компонент Integer • Подключить слайдер от 2 ко второму компоненту Integer

Слайдер по умолчанию имеет значение с плавающейточкой (в результате чего мы имеем десятичные числовыезначения) Подсоединив слайдер к компоненту Integer мызначения). Подсоединив слайдер к компоненту Integer, мыможем округлить значение с плавающей точкой, илилюбое целое число. Когда мы подключим Post-It панель(Params/Special/Panel) к выводимому значению каждогокомпонента Integer, мы увидим преобразования в режимереального времени. Переместите ползунок слева и справаи значения плавающей точки будут округлены в целое

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

• Scalar/Operators/Add – перетащить-добавить компонент на холст • Подключение первого Integer компонента к Add A• Подключение второго Integer компонента к Add B р g• Params/Special/Panel – перетащить панель Post-it на холст • Подключаем Add-R к выходу Post-it, и видим суммирование значений двух чисел на Post-itпанели.

Page 22: Grasshooper Manual Rus

• Перетаскивание остальные скалярные операторы на поле: - Вычитание - Умножение Деление - Деление

- Модуль - Степень • Подключим первого компонента Integer к каждому из Operator's-А входных значений. • Подключим второго компонента Integer к каждому из Operator's-B входных значений.

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

Условные операторы

Вы, наверное, заметили, что существует несколько компонентов, в подкатегории Operator вкладки Scalar, которые мы не рассмотрели в последнем разделе. Существуют 4 компонента (новые версии 0.6.0007), которые действуют несколько иначе, чем математические операторы, для того что бы продемонстрировать это, сравним два списка данных вместо выполнения алгебраических выражений. Четыре компонента Equality, Similarity, Larger Than, and Smaller Than (равенство, сходство, превышение и меньше чем) объясняются более подробно ниже.

Page 23: Grasshooper Manual Rus

А) Equality(равенство) имеет два компонента списка исопоставляет первый пункт списка A с первым пунктомcписка В. Если эти два значения совпадают, то True(верно) создается булево значение, и наоборот, если двазначения не равны, то False создается логическоезначение. Компоненты цикла в списках в соответствуютзаданным данными алгоритма сопоставления (позаданным данными алгоритма сопоставления (поумолчанию установленных в Longest List). Есть двавыхода для этого компонент. Первый возвращает списокбулевых значений показывая, какие значения в спискебыли равны друг другу. Второй выход возвращает списокпоказывая, какие значения не равны друг другу - илисписок обратный первому.

Б) Similarity (сходство) оценивает два компонента спискаданных и проверяет сходство между двумя числами. Этопочти идентично тому, как компонент Equality сравниваетдва cписка, за одним исключением ... тем, что имеетпроцент ввода, который определяет отношение списка А исписка В, список имеет право отступать перед, р у р дпредполагается неравенство. Similarity компонент такжеимеет выводимые параметры, которые определяютабсолютное значение расстояния между двумя входнымисписки.

C) Larger than (больше чем) компонент берет два спискиданных и сопоставляет первый пункт списка А и первыйданных и сопоставляет первый пункт списка А и первыйпункт из списка B. Двумя выходами позволяет вам датьоценку двух списков в соответствии с критериями"больше" (>) или больше и равно (> =) состоянии.

D) Smaller than (меньше чем) компонент выполняетпротивоположное действие компоненту Larger Than.Компонент Smaller than определяет будет ли список АКомпонент Smaller than определяет, будет ли список Аменьше списка В и возвращает список булевых значений.Кроме того, два выхода позволяют вам оценить каждыйсписок в соответствии со следующими критериями -меньше чем (<) или меньше или равно (<=).

Диапазоны серии Диапазоны, серии и интервалы – компоненты, создающие йДиапазоны, серии

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

Page 24: Grasshooper Manual Rus

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

Range

определен от нуля до одного, так как регуляторустановлен в положение 1. Второй ползунок определяетряд шагов по разделению домена, который в данномслучае был установлен на 10. Таким образом, на выходеполучаем список из 11 номеров равноудаленных на 1.(Примечание: второй слайдер, установлен на 10, чтоопределяет количество делений между 0 и 1, который вопределяет количество делений между 0 и 1, который вконечном счете создает 11 чисел, а не 10)

Компонент Series создает набор дискретных чисел,Series д р д р ,базирующихся на начальное значение, размере шагаи количестве значений в серии. Пример сериидемонстрирует три числовых слайдера связанных скомпонентом Series. Первый ползунок, подключенный кSeries-S на входе, определяет отправную точку для рядачисел. Второй слайдер, установленный на 10, определяетзначение шага для серии Итак в начале значение было

Series

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

Page 25: Grasshooper Manual Rus

Компонент Interval создает целый ряд всевозможныхчисел между нижним и верхним номерами. КомпонентInterval похож на числовой домен, который мыопределили для компонент Range. Основное различиезаключается в том, что компонент Range создает диапазонпо умолчанию числового домена между 0 и введенымзначением. В компоненте Interval, низшее и высшеезначения определяют вводимые параметры А и В. Вприведенном выше примере, мы определили диапазонвсех возможных значений между 10 и 20, установленныхдвумя числовыми ползунками. Выходное значение длякомпонента Interval показывает значения от 10,0 до 20,0которые отражают наш новый числовой домен. Есликоторые отражают наш новый числовой домен. Еслитеперь соединить Interval-I выхода с Range-D, мы можемсоздать ряд чисел в интервале значений. Как и впредыдущем примере с компонентом Range, мыустанавливаем число шагов 10, и видим 11 значенийравномерно распределенным по интервалу от нижнегозначения 10,0 до верхнего 20,0. (Примечание: Естьнесколько способов чтобы определить интервал и вынесколько способов, чтобы определить интервал, и выможете увидеть некоторые другие методы, перечисленныево вкладке Scalar/Interval. Мы лишь определили простойкомпонент Interval, о некоторых других интервальныхметодов будет рассказано в следующих главах)

Рандомные Итак, к примеру, мы решили сделать хаотическид(случайные)данные

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

Компонент Random производит 10 случайных чисел,количество которых контролируются Numeric slider, азатем этот список перемешиваются компонентом Jitter(Logic/Sets/Jitter) по Y координате в первом пункте, и поZ координат во втором, иначе получилась бы простоструктура внутри вашей сетки. Все точки распределены впространстве между 0 и 1 для каждого направленияпространстве между 0 и 1 для каждого направления.Чтобы изменить ареал точек мы должны изменитьчисленный домен компонента Random. Это можно сделатьвручную, установив «область случайных чисел» в окнеRhino или при помощи числового слайдера.

Page 26: Grasshooper Manual Rus

Настройка домена значений компонента Random, Interval(Scalar/Interval/Interval), чтобы увеличить ареал точек.Подключим Numeric slider к входу-R компонента Random,он просто регулирует верхний интервал области (с

Последовательность Фибоначчи

он просто регулирует верхний интервал области (снижним интервалом равным 0).

А что если сделать сетку точек равномернорасположенных с увеличением значения? ДавайтеФибоначчипосмотрим на доступные компоненты. Нам необходимасерия номеров, которые быстро увеличивают своезначение, для чего нам понадобится компонент Fibonacci(Logic/Sets/Fibonacci).

Числовой ряд Фибоначчи – последовательность с двумяпервыми определенные значениями (например, 0 и 1), апервыми определенные значениями (например, 0 и 1), аследующий номер представляет собой сумму двухпредыдущих чисел.

N (0) = 0, N (1) = 1, N (2) = 1, N (3) = 2, N (4) = 3, N (5)= 5, ..., N (I) = N (I-2) + N (I-1)Вот некоторые из номеров этой серии: 0, 1, 1, 2, 3, 5, 8,13 21 34 55 8913, 21, 34, 55, 89, ...

Как можно заметить, числовая последовательность быстрорастет. Здесь мы используем серию Fibonacci (Logic/Component /Fibonacci) для получения постепенноувеличивающихся последовательности и соединяем ее скомпонентом Point XYZ (cross reference).

Page 27: Grasshooper Manual Rus

Функции и булевы операции

Почти каждый язык программирования имеет метод дляоценки условных положений. В большинстве случаевпрограммист создает кусок кода, чтобы задать простойВопрос "что если?" Что делать, если 9 / 11террористических нападений никогда не случалось? Чтотеррористических нападений никогда не случалось? Чтоделать, если цена на газ $ 10/gallon? Это важныевопросы, которые представляют собой более высокийуровень абстрактного мышления. Компьютерныепрограммы также имеют возможность анализироватьвопрос "что если?" и принимать меры в зависимости отответа на этот вопрос. Давайте взглянем на очень простыеусловные заявления о том, что программа можетинтерпретировать:

Если объект представляет собой кривую, удалите его.

В начале часть кода «смотрит» на объект и определяетодно из значение для булевых операций, представляет лиобъект собой кривую. Среднего значения непредусмотрено. Булево значение True (верно), еслиобъект представляет собой кривую, или False (ложно),если объект не является кривой. Вторая часть заявлениявыполняет действия в зависимости от результатаусловного заявление, в данном случае, если объектпредставляет собой кривую, то он будет удален. Этор д р у , уд удусловный оператор называется If / Else. Если объектсоответствует определенным критериям, делать что-то,если нет, то сделать что-то другое. Кузнечик имеет такуюже способность к анализу условных операторов спомощью компонентов Function F(x).

Page 28: Grasshooper Manual Rus

В приведенном выше примере, мы подключили числовойслайдер к X-входу одной переменной составляющейфункцию (Logic/Script/F1). Кроме того, условныйоператор был подключен к F-входу функции,определяющий вопрос: "X больше 5?«, Если числовойслайдер установлен выше 5, то r-выход для функциипоказывает логическое значение True Если числовойпоказывает логическое значение True. Если числовойслайдер ниже 5, то r-вывод изменится на значение False.После того как мы определили булево значение функции,можно вставить True/False шаблон информации вкомпонент Dispatch (Logic/List/Dispatch) для выполненияопределенных действий.

К Di t h б б бКомпонент Dispatch работ путем обработки перечняинформации (в нашем примере мы подключаем числовойслайдер информации к входу Dispatch-L) и фильтрацииданных основанных на результате булевой операцииодной переменной функцией. Если модель показываетзначение True, список информации будут передан вDispatch-А выход. Если модель показывает значениеFalse, список информацию передается в Dispatch-Bвывода. Например, мы решили создать круг ТОЛЬКО еслизначение больше 5. Мы соединяем компонент Circle(Curve/Primitive/Circle) c выходом Dispatch-А, так что кругс указанным радиусом на числовом слайдере будетсоздана только тогда, когда булево значение, передаст вкомпонент сообщение True. Поскольку ни один компоненто о е сообще е ue ос о у од о о ене был подсоединен к Dispatch-B выходу, то логическоезначение False не к чему не приведет, и круг не будетсоздан.

В дальнейшем мы сможем определить эту разницу,присоединив N-Sided Polygon (Curve/Primitive/Polygon) rвыходу Dispatch-B, убедившись, что подключениеосуществлено к входу Polygon-R, для задания радиусаполигона. Теперь, если числовой слайдер имеет значениениже 5, то пятисторонний многоугольник с радиусомкоторый определяется значением слайдера будет созданокоторый определяется значением слайдера будет созданов начальной точке. Если мы возьмем слайдер, значениекоторого превышает 5, то будет создан круг. По этомуметоду, можно начинать создавать сколько угодно If / Elseположений по мере необходимости добавлятьинформацию на всем протяжении нашего определения.

Page 29: Grasshooper Manual Rus

Функции и номерные данные

Компонент Function (функция) является очень разносторонними,так как они могут быть использованы в различных вариантахприложений. Мы уже обсуждали, как можно использоватькомпонент Function для оценки условных положений икомпонент Function для оценки условных положений ивыполнения булевых операций для выводимых данных. Тем неменее, мы также можем использовать компоненты Function длярешения сложных математических алгоритмов и отображениячисловых данных в выводимых значениях.

Создание определения с нуля:• Logic/Sets/Range – выберем в перетащим компонент Range на рабочее поле Params/Special/Slider выберем в перетащим числовой • Params/Special/Slider - выберем в перетащим числовой слайдер на рабочее поле• щелкнув правой кнопкой мыши по слайдеру введем следующие данные:o Name(название): Crv Lengtho Slider Type(тип слайдера): Floating Point (по умолчанию)o Lower Limit(нижний предел): 0.1o Upper Limit(верхний предел): 10.0o Value(значение): 2.5• Далее щелкнув правой кнопкой мыши по второму слайдеру введем следующие данные :o Name: Num Pts on Crvo Slider Type: Integerso Lower Limit: 1.0o Upper Limit: 100.0o Value: 100.0• Соединим Crv Length слайдер с входными даннымиRange-D• Соединим Num Pts on Crv с входными данными Range-N

Page 30: Grasshooper Manual Rus

Нами был создан диапазон данных содержащий 101 значение, который расположен в пределах от 0 до 2,5, который может быть подключен к компоненту Function.• Logic/Script/F1 - выберем в перетащим на рабочее поле компонент Function• щелчком правой кнопки мыши по F-input компонентащ р pFunction откроем Expression Editor(редактор значений).• в окне Expression Editor введем следующее значение:o x*sin(5*x)Если введенный алгоритм не содержит ошибок, вы увидите сообщение "No syntax errors detected in expression« (т.е. выражение не содержит ошибок).o щелчком ОК подтверждаем алгоритмo щелчком ОК подтверждаем алгоритм.

• выделяем компонент Function и нажимаем Ctrl+C (скопировать), Ctrl+V (вставить) для создания дубликата FunctionFunction• щелчком правой кнопки мыши по F-input компонентавторой Function откроем Expression Editor(редактор значений).• в Expression Editor (редактор значений) вводим следующее выражение:o x*cos(5*x)Примечание: единственное отличие от предыдущей это то Примечание: единственное отличие от предыдущей это то что функция cos.o жмем ОК для подтверждения• Соединяем выход Range-R со входом x обеих компонентом Function

Итак мы получили 101 значение созданное компонентом Range в компоненте Function, который решает математические алгоритмы и выводит список новых числовых данных. При наведении указателя мыши на R выходе каждой функции, мы видим результат каждого уравнения.

Page 31: Grasshooper Manual Rus

• Vector/Point/Point XYZ – выберем и перетащим компонентPoint XYZ на рабочее поле• соединим первый выводимый параметр Function-r с входным значением X компонента Point• соединим второй выводимый параметр Function-r с д р д р рвходным значением Y компонента Point• соединим выводимый параметр Range-R с входным значением Z компонента PointТеперь, если вы посмотрите в окно Rhino, вы увидите множество точек, образующих спираль. Вы можете менять значения двух числовых слайдеров, чтобы изменить количество точек по спирали или длину спираликоличество точек по спирали или длину спирали.• Curve/Spline/Curve – выберем и перетащим компонент Curve на рабочий стол• соединим выводимый параметр Point-Pt с входным параметром Curve-V

Мы создали одну кривую, которая проходит через все точки спирали Щелкнув правой кнопкой мыши наточки спирали. Щелкнув правой кнопкой мыши навкладке Curve-D в наборе кривых степени; кривая 1 степени будет создавать прямые отрезки между каждой точкой и гарантирует, что кривая фактически проходит через каждую точку. Кривая 3 степени создаст гладкую кривую Безье, где точки спирали будут выступать в качестве контрольных точек для кривой, однако, линия не будет фактически проходит через каждую точку.

Page 32: Grasshooper Manual Rus

Тригонометрические кривые

Как уже было показано, мы можем использоватькомпонент Function для оценки сложных формул, длясоздания спиралей и других математических кривых,однако Кузнечик также имеет набор тригонометрическихкомпонентов, встроенных в семью скалярных компонент.Тригонометрические функции такие как синус(Sin)Тригонометрические функции, такие как синус(Sin),косинус(Cos) и тангенс(Tan) являются важнымиинструментами математиков, ученых и инженеров,поскольку они определяют отношение между двумясторонах прямоугольного треугольника, содержащийконкретную угол, называемый тета(Theta). Эти функцииважны в векторном анализе, который мы рассмотрим впоследующих главах Тем не менее мы можем такжепоследующих главах. Тем не менее, мы можем такжеиспользовать эти функции, чтобы определитьпериодические явления, как синусоидальные волновыефункции часто встречающиеся в природе в виде морскойволны, звуковые волны, а световые волны. В 1822, ЖозефФурье, французский математик, обнаружил, чтосинусоидальная волна может быть использована вкачестве простых строительных блоков для создания иописания практически любых периодических колебания.Этот процесс называется Фурье-анализ. В следующемпримере мы создадим синусоидальную форму волны, гдечисло точек на кривой, длина волны, частота и амплитудамогут контролироваться путем набора числовыхслайдеров.д р

Создание определения с нуля:• Params/Special/Slider – выберем и перетащим на рабочий стол 3 p р р рчисловых слайдера• выберем первый слайдер и зададим следующие параметры:o Name: Num Pts on Curve (название – количество тчк на кривой)o Slider Type: Integers (целочисленные значения)o Lower Limit: 1 (нижний предел)o Upper Limit: 50 (верхний предел)o Value: 40 (значение)o Value: 40 (значение)• выберем второй слайдер и зададим следующие параметры :o Name: Wave Length (длина волны)o Slider Type: Integerso Lower Limit: 0o Upper Limit: 30o Value: 10

Page 33: Grasshooper Manual Rus

• выберем третий слайдер и зададим следующие параметры :o Name: Frequency (название - частота)o Slider Type: Integers (целочисленные значения)o Lower Limit: 0 (нижний предел)o Upper Limit: 30 (верхний предел)o Value: 12 (значение)

Logic/Sets/Range выберем и перетащим 2 компонента Range• Logic/Sets/Range – выберем и перетащим 2 компонента Range на рабочий стол• соединим Wave Length (длина волны) слайдер с первым Range-D входом• соединим Frequency (частота) слайдер со вторым Range-D входом• соединим Num Pts on Curve (количество точек на кривой)слайдер с обеими Range-N входами.

Сейчас мы создали два списка данных (Range); первый –диапазон чисел от 0 до 10 , а второй список - числа от 0 до 12.• Scalar/Trigonometry/Sin – выберем и перетащи • Scalar/Trigonometry/Sin выберем и перетащи компонент Sin на рабочий стол• соединим второй Range-R выход со входом x компонента Sin• Vector/Point/Point XYZ - выберем и перетащи компонентPoint XYZ на рабочий стол• соединим первый Range-R выход с X входом компонентаPoint XYZPoint XYZ• соединим выход y компонента Sin с Y входом компонента Point XYZ

Если вы посмотрите в окно Rhino, вы увидите ряд точек ввиде синусоиды. С того момента как первые данныекомпонента Range (диапазон), будут передаваться во

бвход X компонента Point, без подсоединения к компонентутригонометрической функции, значение x точек будетоставаться постоянным и равномерно распределенным.Однако, мы имеем компонент Sin (синус), который подаетданные на вход Y компонента Point, поэтому видимизменения в значениях точек; которые в конечном итогеобразуют волновой структуру. Теперь можно изменяяр у ру уру рзначения числовых ползунков изменять форму волновойструктуры.

• Curve/Spline/Interpolate – выберем и перетащим на рабочий стол компонент Interpolated Curve

Page 34: Grasshooper Manual Rus

• соединим выход Point-Pt со входом Curve-VНа этом момент, ваша схема должна выглядеть какскриншот ниже. Мы создали наше определениеиспользовав Num Pts on Curve, Wave Length, and Frequencysliders, но мы пока не можем управлять амплитудойсинусоиды.

• Params/Special/Slider – выберем и перетащим еще одинnumber slider на рабочий стол• щелчком правой кнопкой мыши зайдем в меню и введем следующие настройки:o Name: Amplitude (название - амплитуда)p ( уд )o Slider Type: Floating Point (плавающее значение тчк)o Lower Limit: 0.1 (нижний предел)o Upper Limit: 5.0 (верхний предел)o Value: 2.0 (значение)• Scalar/Operators/Multiplication - выберем и перетащим компонент Multiplication (умножение) на рабочий стол• соединим слайдер Amplitude со входом Multiplication-A• соединим слайдер Amplitude со входом Multiplication A• соединим выход-У компонента Sin с входом Multiplication-B• соединим выход Multiplication-r с входом-Y компонента Point XYZ

Это соединение должно заменить существующие связи, которые ранее были подключены к выходу компонента которые ранее были подключены к выходу компонента Sin. Слайдер Amplitude - просто умножение значений Sinпо шкале факторов. Слайдер управляет Y-значениями нашей синусоиды, когда вы увеличиваете значение амплитуды вы, в свою очередь, увеличивает амплитуду кривой.

• Vector/Point/Point XYZ – выберем и перетащим компонентPoint XYZ на рабочий стол• соединим первый выход Range-R со входом X новой точки Point XYZ• Curve/Primitive/Line – выберем и перетащим на рабочий стол компонент Line• соединим первую точку Point-Pt со входом Line-Bр у у• соединим вторую точку Point-Pt со входом Line-A

В последней части описания, мы создали второй набор равномерно расположенных вдоль оси Х точек, которые соответствуют значениям X-координаты кривой синус.

Page 35: Grasshooper Manual Rus

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

Мы показали, как создать синусоиду волны, однако вы можете генерировать другие синусоидальные кривые, как косинус или тангенс, путем замены компонента синус косинус или тангенсом которые вы найдете во вкладке у р д дScalar/Trigonometry.

Простые примеры использования математических функций

Создание параметрической окружности.- Выберем и перетащим на рабочий стол числовой ползунок (Param/Special/NumericSlider), который задает количество опорных точек для окружности

функций - компонент Range (Logig/Sets/…) сформирует диапазон точек (ареал распространения по умолчанию от 0 до1)- компонент Function (Logic/Script/…) со значением 2Pi*xозначает, что диапазон чисел будет от 0 до 2 Pi и опишет полный круг.- компоненты Sin и Cos (Scalar/Trig/…) зададут угловую координату точеккоординату точек- компонент Pt XYZ сформирует структуру круга

Page 36: Grasshooper Manual Rus

3 урок

Геометрические структуры

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

Геометрическая структура Мечети Шейха Лотфолах (Исфахан, Иран) выложенная изразцами, имеющих структуру простого паттерна, который создается простыми математико-геометрическими вычислениями.

Page 37: Grasshooper Manual Rus

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

Простой линейный паттерн

Начнем с того, что выберем и перетащим на рабочий столкомпонент Series (Logic/Sets/Series), который будетконтролировать количество точек и размер шага междуними, а их значение будет задаваться числовымислайдерами с соответствующими названиями.

- Компонент Function (функция) определяет угловуюкоординату наших точек (y=-x/3; y=x; y=x/3; y=x+(x/3)),значение x задает числовой слайдер.-Компоненты Point XYZ создадут четыре набора точексвязанные значением Series, которое контролируетколичество точек и расстояние между ними.для создания «зиг заг» линии между точками нам нужно- для создания «зиг-заг» линии между точками нам нужноотсортировать их компонентом Cull Pattern с фильтромTrue/False и False/True и затем соединить их.

- После того как все четыре набора точек отсортированыих нужно «слить» в четыре потока в этом нам поможетих нужно «слить» в четыре потока, в этом нам поможеткомпонент Merge (Logic/Stream/Merge)Если полученные потоки соединить поли линией, то мы неполучим желаемый результат, т.к. программа не понимаетв какой последовательности их соединять.Потоки нужно проанализировать и отсортировать внужном нам порядке.

Page 38: Grasshooper Manual Rus

В получившейся структуре значения У остаются не измены, а Х постепенно увеличивается…как выбрать

? Д подходящие нам по номеру точки? Для этого нужно выделить из потока координату Х для интересующих нас точек.- Компонент Decompose (Vector/Point/…) выделит X коорд.- Компонент Sort (Logic/List/…) отсортирует компоненты по значению Х координаты.- Компонент Poly Line (Curve/Spline/PolyLine) отобразит интересующий нас результат- для отображения полученного рисунка на сцене, выделяем компоненты PLine и нажмем Bake Selected («испечь» выделенное)

Page 39: Grasshooper Manual Rus

Круглая структура (паттерн)

Отправной точкой этой структуры является набор данных,который производит группу точек расположенных покругу. Этот набор данных может быть масштабированотносительно центра и с помощью него можно создатьнесколько групп вокруг одного центра. Они будутотобраны нами тем же образом, как и в предыдущемпримере. Затем мы сгенерируем повторяющиеся 'Зиг-Заг'шаблон из этих масштабированных «звезд».Дублирование этих звезд создает определенный мотив, ас использованием различных сочетаний моделей Cullможно сделать его более интересным.

При условии, что группа точек находится в диапазоне от 0 до 2Pi и использует функции Sin и Cos. Первый числовой слайдер задает количество точек, второй изменяет радиус круга.

Увеличение значения функции Sin/Cos на числовым слайдере создает набор точек большего радиуса.

Page 40: Grasshooper Manual Rus

Для того, чтобы отсортировать точки, мы можем простоиспользовать компонент Cull pattern с фильтром значенийTrue / False, как в предыдущем примере. Но как намправильно отсортировать списки точек, ведь если мыподсоединим отсортированные точки поли линией мы неполучим форму звезды. Здесь лучше отсортироватьэлементы по их порядковому номеру вэлементы по их порядковому номеру впоследовательности. Так как точки были сгенерированыкомпонентом <range>, здесь нам понадобится компонент<series> для снабжения точек в списке индексами. Nпараметр фактора <range> определяет число шаговдиапазона, при этом <range> производит N+1 шаг. И намнужно значение <series> с N + 1 шагом индексов точек и

ботобрать и отсортировать эти моменты на основе ихпоказателей (на рис. показано генерирование индексовномеров точек).

Нам необходимо отобрать точки с одинаковымипоказатели и объединить их вместе. Хотя результатслияния для <series> может быть вновь целочисленныйнабор данных, и поэтому мы сортируем и индексами инабор данных, и поэтому мы сортируем и индексами и«ключами». Единственная вещь, которую остаетсясделать это подключить компонент Poly Line.

Page 41: Grasshooper Manual Rus

Создание поли линии по отсортированным точкам.

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

Page 42: Grasshooper Manual Rus

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

Трансформации

как результат к созданию новой формы. Существуютразличные виды преобразований, но мы не будем ихклассифицировать, можно разделить их на основныеотраслей, первый отдел линейных преобразований ивторое пространственных. Линейные преобразованиявыполняются в 2D пространстве, пространственные в 3D.

В фВ другом смысле мы можем классифицировать по статусупреобразования исходного объекта; преобразования, какперемещение, вращение и отражение, сохраняютпервоначальную форму, но масштабируют и сдвигают егоотносительно первоначального положения. Есть такженелинейные преобразования. В дополнение кперемещению, вращению и отражению, у нас разные типысдвига и неоднородные преобразования масштаба в 3D-пространстве, а также спиральных и винтовыхпреобразований и проецирования, которые создаютбольше вариаций в 3D-пространстве.

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

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

"Вектор" является математическим/геометрическимВ Вектор является математическим/геометрическимобъектом, который имеет величину (или длину),направление и значение. Начинается из точки, переходитк другой с определенной длиной и конкретнымнаправлением. Векторы имеют широкое применение вразличных областях науки, геометрии.

Векторы

Page 43: Grasshooper Manual Rus

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

Page 44: Grasshooper Manual Rus

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

Рандомные (случайные) перемещения

Думаю есть несколько путей создания этой модели.Начнем, создадим круг как основание для кривых,разделим на требуемое количество частей. Сгенерируемнекоторое рандомное количество кривых через эти точкии затем создадим Pipe (трубу) по кривым.Да, но как это сделать в Кузнечике?-Компонент круг (Curve/Primitive/Circle), числовойслайдер присоединенный к R-входу контролирует егорадиус.- Присоединяем наш круг к компоненту деления(Curve/Division/Divide Curve), и здесь мы контролируем(Curve/Division/Divide Curve), и здесь мы контролируемчисло делений при помощи ползунка.Мы сгенерировали первый массив точек, которые будутначалом наших трубок.

Следующим шагом будет создание второго массива точек,но они уже должны быть распределены случайнымно они уже должны быть распределены случайнымобразом. Для этого нам нужно задать случайные векторыв Z направлении и переместить первый массив точек вэтих случайных направлениях.- Компонент Random (Logic/Sets/Random), и компонентUnit Z (Vector/Constants/Unit Z) сформируютразнонаправленные векторы.

Page 45: Grasshooper Manual Rus

Итак, все готово для перемещения точек этими векторами.- Используем компонент Move (Xform/Euclidian/Move), восновном он перемещает геометрию по заданномувектору, им можно также перемещать группу объектов, онработает по образу команды Copy в самом Rhino. Для того

б бчтобы увидеть как работает эта команда, нужноприсоединить компонент Line.

Как видно на изображении, линии получилисьвертикальные, для того чтобы сделать их взаимнопересекающимися нам нужно перемешать точки припомощи компонента Jitter (Logic/Sets/Jitter)помощи компонента Jitter (Logic/Sets/Jitter)

Остальной процесс очень прост, думаю трех сегментов линиибудет достаточно. Повторим перемещение и перемешиваниеточек для второго и третьего массива.Итак мы получили базовую геометрия Добавим компонент PipeИтак, мы получили базовую геометрия. Добавим компонент Pipe(Surface/Freeform/Pipe) и соединим наши линии. Добавимчисловой ползунок, для контроля радиуса трубы.

Page 46: Grasshooper Manual Rus

Для более удобного контроля результата можновоспользоваться Remote Control Panel, котораявключается во вкладке View.

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

Page 47: Grasshooper Manual Rus

Точечные аттракторы

Начнем с того, что сформируем массив точек, которыепотом станут центрами полигонов. Поставимдополнительную отдельную точку которая будет служитьаттрактором для нашего массива, и опишем вокруг нееокружность.

Алгоритм очень прост: основываясь на дистанции междуаттрактором и массивом точек, нам нужно влиять нарадиус полигонов в зависимости от их расстояния доточки притяжения, что будет определяться компонентомDistance. Но, так как расстояние может быть слишкомбольшое, нам пригодится компонент Divide с числовымползунком для контроля.

Расстояние делится на числа контролирующие силуаттрактора. Для удобства можно объединить компонентыточки притяжения (точку, окружность и слайдер) вкластер (выделить нужные элементы и нажать Ctrl+G иличерез меню Arrange. Разгруппировать элементы Ctrl+U).

Page 48: Grasshooper Manual Rus

Diagrid (диагональная сетка) - конструкция дляпостроения больших зданий из стали. Создается изтреугольной структуры, т.е. с диагональнорасположенными опорными балками. Она требует меньшеконструктивной стали, чем обычная стальная рама. БашняHearst в Нью-Йорке, спроектированный сэром НорманомФостером по сообщениям использует на 21 процент

Структура поверхности Diagrid

Фостером, по сообщениям, использует на 21 процентменьше стали, чем стандартный проект. Diagrid такжеустраняет необходимость в больших колоннах по углам иобеспечивает лучшее распределение нагрузки в случаеугрозы безопасности. Другое здание, спроектированноесэром Норманом Фостером, Swiss Re (деловой центр),известный как "Огурчик", также использует этуструктурную систему.

Page 49: Grasshooper Manual Rus

Раньше во всех версиях Кузнечика(Gh), до версии 0.6.00xx,данные внутри параметра хранились в одном списке индексов, икак таковой он был не нужен. Однако, произошли коорденальныеизменения, когда параметры Gh смогли иметь несколько списковданных внутри себя. Поэтому, когда доступны несколько списков,то встала необходимость идентификации каждого отдельногосписка На схеме созданной Дэвидом Руттеном представлено

Структура ветвления данных.

списка. На схеме созданной Дэвидом Руттеном, представленодостаточно сложное, но хорошо структурированное дерево-диаграмма.

В изображении выше есть один основной ствол(основнаяВ изображении выше, есть один основной ствол(основнаяветвь) по пути {0}. Этот путь не содержит данных, ноимеет 3 ответвления. Каждое из которых наследуетиндекс основного ствола {0} и добавляет свойсобственный суб-индекса (0;1) или (0;2) соответственно.Было бы неправильно называть это "индекс", потому чтоэто не просто единственное число. Лучше называть это"путь" поскольку это похоже на структура папок впуть , поскольку это похоже на структура папок вдиске. Вторичные ветви также не содержат в себеинформации, аналогично и с троичными ветвями. Покамы не достигнем уровня вложенности 4 т.е. {0;0;0;1},здесь мы наконец столкнемся с некоторыми данными(списки представлены в виде красочных толстых линии,данные в них являются яркими точками). Каждая

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

Page 50: Grasshooper Manual Rus

Для дальнейшего изучения структуры дерева, рассмотримочень простой пример. Начнем с двух кривых, на которыемы ссылаемся в кузнечике. Разделим кривые компонентомDivide (Curve/Division/Divide Curve) на 20 отдельныхсегментов, что в конечном счете, дает нам 21 пунктов накаждой кривой, а список из 42 пунктов. Давайте соединимвсе эти точки поли линией компонентом Polyline (Curve/все эти точки поли линией компонентом Polyline (Curve/Spline/Polyline), которая создаст новую линию,проходящая через точки.

Если бы мы использовали Gh более ранней версии, кривая полилиния соединила бы только одной линией, все наши точки,которых в результате такого разделения компонента кривойполучилось 42 И это только потому что все точки хранились вполучилось 42. И это только потому, что все точки хранились водном списке (без индексов и путей), т.е. это выглядело бы так:

Однако, теперь Gh имеет возможность включать пути и ветви, имы можем использовать эти индексы для управления поведениемкомпонентов. Компонент Polyline создаст 2 поли линии, посколькуон знает что есть 2 пути каждый разделен на 20 сегментовон знает, что есть 2 пути, каждый разделен на 20 сегментов.Структуру дерева можно посмотреть с помощью параметраViewer (Params/Special/Param Viewer). Ниже приведен PrtScr изэтого примера, который показывает, что наша структура имеет 2пути (0, 0) и (0; 1), каждый из которых производит 1результирующую кривую.

Page 51: Grasshooper Manual Rus

Индексы точек для двух результирующих линий выглядят примерно так:

Но, если бы мы все таки хотели один путь для наших точек, а недва, Gh имеет ряд новых структур дерева, вкладка Logicсодержит параметры которые помогут нам в работе ссодержит параметры которые помогут нам в работе светвлениями. Компонент Flatten Tree (Logic/Tree/Flatten Tree)обрежет всю структуру дерева, т.е. все данные будут перенесеныв онин список.На PrtScr ниже можно увидеть, что компонент Flatten убралданные о двух кривых, в результате у нас одна поли линия содним списком значений.

Также вкладка PopUp компонента Polyline содержит возможность упрощения списка данных(ветвления).