Rhinoceros®
NURBS моделирование для Windows
или “РУССКИЙ НОСОРОГ”
Справочное руководство
Перевод с английского, дополнение и редакция: Борис Фомин (BORN)
Основной источник: Training Manual Level 1 (© Robert McNeel & Associates)
ПЕРЕВЕДЕНО, ПРОВЕРЕНО, ДОПОЛНЕНО, ДОСТУПНО и ИСЧЕРПЫВАЮЩЕ!!!
Борис Фомин
“Rhinoceros. NURBS моделирование для Windows или Русский носорог” (Перевод с английского с дополнениями и исправлениями).
По общим вопросам обращайтесь по электронномуадресу: Rhino_rus@mail.ru
Rhinoceros 3D – это профессиональная система моделирования в основном с помощью NURBSтехнологий. Rhino позволяет создавать, редактировать, анализировать кривые, поверхности и твердые тела,
иполноценно работать с NURBS-объектами. Система эффективно работает с объектами любой сложности
иразмеров. Это может быть моделирование как техническое от клапана до лайнера, так и моделирование биологических объектов от мышонка до человека. У данного программного продукта непривычный интерфейс, но он достаточно прост в освоении, гибок и обеспечивает неизменно высокий результат моделирования. Вы можете создавать и редактировать любую комбинацию кривых, поверхностей, геометрических тел, а затем экспортировать созданные модели в любой формат. Rhino — превосходный моделер, получивший широкую известность и стал незаменимым инструментом многих профессиональных дизайнеров.
Если вы хотите познать и овладеть всеми возможностями этой уникальной программы и сделать ее своим верным помощником в достижении своих целей и реализации творческих идей, вам немедленно надо приступить к ее изучению. А данное руководство по максимуму будет способствовать наилучшему, быстрому и эффективному освоению Rhino. Почти 600 цветных иллюстраций, десятки заметок, полезных советов, огромное количество примеров, пояснений, доступных описаний большинства инструментов программы и ГЛАВНОЕ — 70 УНИКАЛЬНЫХ УПРАЖНЕНИЙ с подробным освещением всей последовательности действий, выполняя которые вы ещё на стадии обучения сможете добиться внушительных результатов. Все эти особенности руководства помогут вам освоить на практике методы и приемы работы над трехмерной моделью и составят прочный фундамент для дальнейшей самостоятельной работы и постепенного развития профессиональных навыков.
Данное издание можно ПОРЕКОМЕНДОВАТЬ АБСОЛЮТНО ВСЕМ, будь то любопытный среднестатистический пользователь или опытный дизайнер, повседневно работающий с программами трехмерного моделирования. Каждый сможет найти для себя в этом руководстве что – нибудь полезное.
Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм.
Все права защищены. Никакая часть настоящего руководства ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения автора перевода (Борис Фомин) или издательства (© Robert McNeel & Associates).
Информация, содержащаяся в данном руководстве, получена из источников, рассматриваемых автором как надёжные. Тем не менее, имея в видувозможные человеческие или технические ошибки, автор не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности з а возможные ошибки, связанные с использованием руководства.
Copyright © 2006 by Boris Fomin.
Original English language edition Copyright © 2001 Robert McNeel & Associates.
ОГЛАВЛЕНИЕ
Предисловие |
-8- |
|||
Что такое Rhinoceros 3D |
-8- |
|||
Структура руководства |
-8- |
|||
Для кого это руководство |
-8- |
|||
Упражнения |
-9- |
|||
Благодарности |
-9- |
|||
От автора |
-9- |
|||
ЧАСТЬ 1: |
ВВЕДЕНИЕ |
-10- |
||
1 |
НАПУТСТВИЕ |
-10 |
||
2 |
ОСНОВЫ |
-10- |
||
Интерфейс Rhino для ОС Windows |
-10- |
|||
Рабочая область Rhino |
-11- |
|||
Меню |
-12- |
|||
Панели инструментов |
-12- |
|||
Подсказки |
-12- |
|||
Разворачивающиеся списки |
-12- |
|||
Графическая область |
-13- |
|||
Окна проекций |
-13- |
|||
Командная строка |
-14- |
|||
Функции мышки |
-14- |
|||
Команды |
-14- |
|||
Ввод команд |
-14- |
|||
Завершение названия команды |
-14- |
|||
Повторное выполнение последней команды |
-14- |
|||
Отмена команд |
-15- |
|||
Справка |
-15- |
|||
Отображение истории команд |
-15- |
|||
Отображение недавно выполненных команд |
-15- |
|||
Упражнение 1 – Основы Rhino |
-15- |
|||
Навигация вокруг модели |
-20- |
|||
Панорамирование (Pan) |
-20- |
|||
Масштабирование (Zoom) |
-21- |
|||
Масштабирование до заполнения (Zoom Extents) |
-22- |
|||
Перемещение объектов |
-22- |
|||
Копирование объектов (Copy) |
-24- |
|||
ЧАСТЬ 2: |
СОЗДАНИЕ ГЕОМЕТРИИ |
-26- |
||
3 |
СОЗДАНИЕ ДВУ – РАЗМЕРНЫХ ОБЪЕКТОВ |
-26- |
||
Рисование линий |
-26- |
|||
Упражнение 2 – Рисование линий |
-26- |
|||
Рисование кривых свободной формы |
-28- |
|||
Упражнение 3 – Рисование Кривых произвольной формы |
-28- |
|||
Упражнение 4 – Рисование кривых с контрольными точками |
-28- |
|||
Вспомогательные средства моделирования (ВСМ) |
-29- |
|||
Упражнение 5 – Рисование линий и кривых с использованием ВСМ |
-29- |
|||
Настройка программы (Options) |
-29- |
|||
Сохранение модели |
-31- |
|||
Слои (Layers) |
-32- |
|||
Упражнение 6 – Слои |
-32- |
|||
Упражнение 7 – Выделение объектов |
-34- |
|||
Удаление объектов |
-36- |
|||
Упражнение 8 – Попрактикуемся в использовании операции удаления и команд |
||||
выделения |
-36- |
|||
От теории к практике |
-37- |
|||
4 |
ТОЧНОЕ МОДЕЛИРОВАНИЕ |
-40- |
||
Абсолютные координаты |
-40- |
|||
Упражнение 9 — Создание новой модели |
-40- |
|||
Упражнение 10 – Ввод абсолютных координат |
-40- |
|||
Относительные координаты |
-41- |
|||
Упражнение 11 – Ввод относительных координат |
-41- |
|||
Осевые координаты |
-42- |
|||
Упражнение 12 – Ввод относительных осевых координат |
-42- |
|||
Использование клавиши Shift для переключения режима |
||||
Ортогональной привязки |
-44- |
|||
Упражнение 13 – Ввод ограничений на значения расстояния |
-44- |
|||
Упражнение 14 – Ввод ограничений на значения угла и расстояния |
-44- |
|||
Упражнение 15 – Закрепление навыков использования ограничений на |
значения |
-45- |
||
угла и расстояния (1) |
||||
Окна проекций |
-47- |
|||
Конструкционные плоскости |
-48- |
|||
Упражнение 16 – Моделирование в трехмерном пространстве (3D) |
-48- |
|||
Режим элеватора (Elevator Mode) |
-48- |
|||
Упражнение 17 – Закрепление навыков использования ограничений на значения |
||||
угла и расстояния (2) |
-54- |
|||
Объектовая привязка (Osnap) |
-55- |
|||
Упражнение 18 – Использование Объектовой привязки |
-57- |
|||
Команды анализа (Analyze) |
-60- |
|||
Рисование Окружностей |
-63- |
|||
Опции Окружностей |
-63- |
|||
Упражнение 19 – Рисование Окружностей |
-63- |
|||
Упражнение 20 – Тренируемся рисовать Окружности |
-67- |
|||
Упражнение 21 –Применение Объектовых привязок к окружности |
-69- |
|||
Рисование Дуг |
-70- |
|||
Упражнение 22 – Тренируемся рисовать Дуги (1) |
-71- |
|||
Упражнение 23 – Тренируемся рисовать Дуги (2) |
-74- |
|||
Рисование Эллипсов и Многоугольников |
-76- |
|||
Опции Эллипсов |
-76- |
|||
Опции Многоугольников |
-77- |
|||
Упражнение 24 — Тренируемся рисовать Эллипсы и Многоугольники |
-77- |
|||
Моделирование с помощью кривых произвольной формы |
-81- |
|||
Опции Кривых произвольной формы |
-81- |
|||
Упражнение 25 – Тренируемся рисовать Кривые |
-82- |
|||
Упражнение |
26 |
– Рисование кривых произвольной формы |
-86- |
||
5 |
ОТОБРАЖЕНИЕ |
-90- |
|||
Изменение видов на модель |
-90- |
||||
Еще раз про окна проекций |
-90- |
||||
Параллельные и перспективные способы отображения |
-90- |
||||
Панорамирование и Масштабирование |
-90- |
||||
Восстановление вида |
-91- |
||||
Упражнение |
27 |
– Опции отображения |
-91- |
||
6 |
РЕДАКТИРОВАНИЕ ОБЪЕКТОВ |
-96- |
|||
Кромка (Fillet) |
-96- |
||||
Опции Кромки |
-96- |
||||
Упражнение |
28 |
– Кромка |
-96- |
||
Фаска (Chamfer) |
-102- |
||||
Опции Фаски |
-102- |
||||
Упражнение |
29 |
– Фаска |
-103- |
||
Упражнение |
30 |
– Тренируемся в применении |
|||
Кромки и Фаски |
-106- |
||||
Перемещение (Move) |
-108- |
||||
Упражнение |
31 |
– Перемещение |
-108- |
||
Копирование (Copy) |
-110- |
||||
Опции Копирования |
-110- |
||||
Упражнение 32 |
– Копирование |
-110- |
|||
Повтор и отмена (Undo, Redo) |
-112- |
||||
Вращение (Rotate) |
-112- |
||||
Упражнение 33 |
– Вращение |
-112- |
|||
Группировка (Group) |
-113- |
||||
Упражнение 34 |
– Группировка |
-113- |
|||
Зеркальное отражение (Mirror) |
-114- |
||||
Упражнение 35 |
– Зеркальное отражение |
-114- |
|||
Объединение (Join) |
-115- |
||||
Упражнение 36 |
— Объединение |
-116- |
|||
Масштабное соотношение (Scale) |
-116- |
||||
Упражнение 37 |
– Масштабное соотношение |
-116- |
|||
Массив (Array) |
-120- |
||||
Упражнение 38 |
– Массив |
-120- |
|||
Обрезка (Trim) |
-124- |
||||
Упражнение 39 |
– Обрезка |
-125- |
|||
Разбиение (Split) |
-126- |
||||
Упражнение 40 |
– Разбиение |
-126- |
|||
Продолжение (Extend) |
-129- |
||||
Упражнение 41 |
– Продолжение (удлинение) |
-129- |
|||
Смещение (Offset) |
-132- |
||||
Опции Смещения |
-132- |
||||
Упражнение 42 |
– Смещение |
-132- |
|||
Упражнение 43 |
– Большая тренировка (1) |
-138- |
|||
Упражнение 44 |
– Большая тренировка (2) |
-139- |
|||
Упражнение 45 – Большая тренировка (3)
Упражнение 46 – Большая тренировка (4)
7 ТОЧЕЧНОЕ РЕДАКТИРОВАНИЕ
Общие сведения Упражнение 47 – Редактирование контрольных точек
Упражнение 48 – Тренируемся редактировать кривые с помощью контрольных точек
ЧАСТЬ 3: ТРЕХМЕРНОЕ МОДЕЛИРОВАНИЕ И РЕДАКТИРОВАНИЕ 8 СОЗДАНИЕ ДЕФОРМИРУЕМЫХ ФОРМ
Общие сведения Упражнение 49 – Создание игрушечной утки
9 МОДЕЛИРОВАНИЕ ТЕЛ
Общие сведения Упражнение 50 – Моделирование вывески с текстом
10 СОЗДАНИЕ ПОВЕРХНОСТЕЙ
Общие сведения Упражнение 51 – Основные приемы создания поверхностей
Упражнение 52 – Выдавливание поверхностей (моделирование радиотелефона) Упражнение 53 – Лофтинг поверхностей.
Упражнение 54 – Поверхности вращения Упражнение 55 – Использование вращения по направляющей
Упражнение 56 – Использование команды растягивания по направляющей Упражнение 57 — Использование команды растягивания по 2 направляющим
Упражнение 58 – Использование сетки кривых для создания поверхностей
Упражнение 59 – Тренируемся в использовании Растягивания по 1 направляющей (моделирование стола)
Упражнение 60 – Создание игрушечного молотка
Упражнение 61 – Создание пластиковой бутылки.
11 ИМПОРТ И ЭКСПОРТ МОДЕЛЕЙ
Общие сведения
Импорт и экспорт файлов в Rhino
Упражнение 62 – Экспорт моделей Создание сеток
Упражнение 63 – Тренируемся создавать сетки для экспорта
12 ВИЗУАЛИЗАЦИЯ
Общие сведения Упражнение 64 – Тренируемся визуализировать модель
13 РАЗМЕТКА
Типы разметки Упражнение 65 – Тренируемся применять разметку
Двухмерное представление трехмерной модели Упражнение 66 – Тренируемся создавать двухмерные изображения модели
14 ПЕЧАТЬ
Упражнение 67 – Тренируемся распечатывать
ЧАСТЬ 4: НАСТРОЙКА РАБОЧЕЙ ОБЛАСТИ И ПАНЕЛЕЙ ИНСТРУМЕНТОВ
15 НАСТРОЙКА RHINO
-140-
-141- -141- -141- -142-
-149- -151-
-151- -151- -152- -169- -169- -170- -181- -181- -182- -186- -198- -201- -201- -203- -206- -210-
-211- -216-
-237- -255- -255- -256- -256- -259- -259- -261- -261- -261- -272- -272- -273- -275- -275- -276-
-276-
-279- -279-
Опции |
-279- |
||
Упражнение 68 – Тренируемся работать с опциями |
-279- |
||
Свойства документа |
-283- |
||
Упражнение 69 – Тренируемся работать со свойствами документа |
-283- |
||
16 |
ПАНЕЛИ ИНСТРУМЕНТОВ |
-283- |
|
Упражнение 70 – Настройка панелей инструментов |
-283- |
||
Заключение |
-290- |
||
Предисловие
Уважаемый читатель! Спасибо за то, что выбрали это руководство. Надеюсь, что вы найдете в нем все необходимое.
Работу над данным изданием я начал накануне зимней сессии, уделяя по несколько часов в день переводу англоязычного текста, разработке иллюстраций и редактированию. Сказать точно, что послужило поводом для начала работой над этим изданием я не смогу. Наверное, сыграло свою роль то, что когда – то после долгой работы с 3D Max я заинтересовался найденным в Интернете описанием возможностей Rhinoceros 3D, и меня привлекла эта программа, что послужило поводом знакомства с ней. В принципе, сложностей в ее освоении у меня не возникало, все происходило методично и последовательно, но я, как и многие другие столкнулся с проблемой нехватки информации, практических примеров и упражнений. Все описания и какие – либо источники с информацией по Rhino были скудны или на английском языке. Вскоре мне под руку попал файл с англоязычным руководством от Robert McNeel, после прочтения которого, я был удовлетворен стилем изложения и полезностью в практическом применении информации представленной в нем. Одновременно с этим я задумался над идеей сделать перевод мануала и дополнить некоторые моменты, чтобы все настоящие и будущие русскоговорящи е (и читающие на русском) пользователи Rhino смогли беспрепятственно, легко и эффективно познавать возможности этой программы и с максимальной полезностью применять их. Надеюсь, у меня получилось сделать это качественно и доступно, и искренне хотелось бы, чтобы с помощью этого руководства вы с легкостью смогли овладеть программой и начать творить, создавать и воплощать! Желаю приятного чтения!
Что такое Rhinoceros 3D
Я не буду пересказывать техническое описание и характеристики этой программы, так как вы без труда сможете найти их сами, если уже не сделали этого ранее. На основании своих впечатлений от работы с Rhino, я могу сказать, что эта программа прекрасно подходит для создания (с помощью NURBS технологий) высоко детализированных и точных (преимущественно технических) моделей, которые потом можно с легкостью экспортировать в другой формат и дорабатывать в специализированных редакторах. Вместе с тем, Rhino, как вы вскоре в этом убедитесь (и, надеюсь, согласитесь со мной) проста в использовании, легка в освоении и обладает приятным, удобным, легко настраиваемым интерфейсом . К тому же расход компьютерных ресурсов на работу в Rhinoceros минимален, чего нельзя сказать про другие трехмерные редакторы. Еще эту программу отличает стабильность в работе (при прав ильном использовании ее инструментов), но, не смотря на это, не стоит полагаться на кажущуюся безупречность и лучше подстраховываться, сохраняя почаще свою работу. Говоря в общем, я остался под приятным впечатлением от работы с данным программным продуктом и часто использую Rhino для своих нужд. Думаю, что вы вскоре тоже последуете моему примеру.
Структура руководства
В этом издании, несмотря на его относительно небольшой размер, сосредоточены сведения о почти о всех (по крайней мере о большей части) инструментах Rhino. Здесь приводятся необходимые теоретические данные в достаточном объеме и без излишеств. Наряду с тем, как я убедился на личном опыте, лучший путь к познанию чего – либо – это практика. Поэтому в руководстве представлено большое количество п олных, подробных упражнений, выполнение которых позволит вам очень быстро освоиться в программе. В целом, после прочтения настоящего издания вы приобретете достаточный уровень знаний, чтобы в полной мере начать работу над собственными проектами, повышая ур овень своего мастерства.
Для кого это руководство
Я думаю, ответ на этот вопрос не требует особых разъяснений, так как данное издание пригодится, как совсем неопытному, начинающему пользователь (благодаря подробному изложению материала), так и профессиональным дизайнерам, желающим пополнить копилку освоенных программ еще одной новинкой.
Упражнения
Для выполнения почти всех практических заданий, представленных в этом руководстве потребуются тренировочные (исходные) файлы, которые идут в комплекте с анг лоязычной версией. Я думаю вы без труда найдете их в Интернете.
Благодарности
Прежде всего, Спасибо всем читателям за выбор данного руководства!
Хочу поблагодарить издательство Robert McNeel за предоставленную (исходную) версию руководства, которая легла в основу данного издания.
Также я искренне благодарен всем создателям прекрасной программы Rhinoceros.
Огромное спасибо говорю моей девушке, за то, что она терпела все мои многочасовые (иногда ночные) «просиживания» за компьютером и не устаю повторять, ч то я люблю ее больше чем клавиатуру, мышку или монитор (не смотря на ее эпизодические опровергающие это высказывания).
Ну и конечно же, скромное (не хочу показаться тщеславным) спасибо мне, за мои труды.
От автора
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты: Rhiho_rus@mail.ru (Борис Фомин).
Буду рад услышать ваше мнение и ответить на все интересующие вас вопросы.
ЧАСТЬ 1: ВВЕДЕНИЕ
1 НАПУТСТВИЕ
Это руководство содержит тренировочный курс, который покажет вам, как создавать 3D модели, используя геометрию NURBS (Non — Uniform Rational B — Splines).
Для достижения лучших результатов, практикуйтесь в Rhino, используя этот мануал или файл помощи (F1) для получения дополнительной информации.
Цель руководства:
С помощью тренировочного курса вы научитесь:
-использовать функциональные возможности пользовательского интерфейса в Rhino;
-настраивать рабочую среду программы, для удобства моделирования;
-создавать простейшие графические объекты – Линии (Lines), Окружности (Circles), Дуги (Arcs), Кривые
(Curves), Тела (Solids) и Поверхности (Surfaces);
-моделировать с высокой точностью, использую ввод координат и инструменты Привязки объектов (Object Snaps);
-изменять кривые и поверхности с помощью команд меню Правка (Edit);
-использовать Контрольные точки (Control point) для редактирования формы кривых и поверхностей;
-анализировать вашу модель;
-отображать все части вашей модели;
-экспортировать и импортировать модели, в том числе, из файлов (в файлы) других форматов;
-Визуализировать (Render) модель.
2 ОСНОВЫ
Интерфейс Rhino для ОС Windows
До начала изучения конкретных инструментов программы, мы должны познакомиться с интерфейсом программы. По мере изучения Rhino, вы будете часто использовать такие элементы интерфейса программы как: рабочее окно Rhino, Окна проекций (Viewports), Меню (Menus), Панели инструментов (Toolbars), и
Окна диалогов (Dialog boxes).
Существует множество способов активизировать те или иные команды в Rhino – с помощью клавиатуры, меню или панели инструментов.
Для запуска Rhino:
Используйте двойной щелчок ЛКМ на иконке программы.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
All the guides available for developing for Rhino or Grasshopper.
General
Guides that apply across platforms and SDKs
Overview
- Developing Software In Public
- Rhino Technology Overview
- Frequently Asked Questions (FAQ)
Getting Started
- Developer Prerequisites
- Contributing
Fundamentals
- What is a Rhino Plugin?
- Rhino Installer Engine
- Simple Command Macros
- Rhino Package Manager
Essential Mathematics
- Introduction
- Vector Mathematics
- Matrices and Transformations
- Parametric Curves and Surfaces
- Download Essential Mathematics for Computational Design as a single PDF
This Site
- How This Site Works
- Getting Started with Developer Docs
- Developer Docs Style Guide
RhinoCommon
The cross-platform .NET plugin SDK for Rhino.
Overview
- What is RhinoCommon?
- What are Mono & Xamarin?
- What’s New/Changes?
Getting Started
- Installing Tools (Windows, Mac)
- Your First Plugin (Windows, Mac, Cross-Platform)
- Plugin Installers (Windows, Mac)
- Distributing a Rhino Plug-In with the Package Manager
Fundamentals
- Object Selection with Options
- Plugin User Data
- Registering Plugins (Windows)
- Commas & Periods
- Event Watchers
- Adding Commands to Projects
- Loading Tool Palettes (Mac)
- Uninstalling Plugins (Mac)
Rendering
- Render Engine Integration — Introduction
- Render Engine Integration — Modal
- Render Engine Integration — ChangeQueue
- Render Engine Integration — Interactive Viewport
Advanced
- Changes to Tabbed Panels
- Creating and Deploying Plugin Toolbars
- Localizing Plugin Toolbars
- Options Pages Best Practices
- Run a Rhino command from a Plugin
- Supporting High DPI Displays
- Using NuGet
- Using RhinoCommon from Python
- Creating a Skin (Windows)
- Display Conduits
- Wrapping Native Libraries
- Procedurally Generate Toolbars
- Using methodgen
- Interacting with Rhino Accounts
Zoo
- What is a LAN Zoo Plugin?
- Creating LAN Zoo Plugins
- Creating Plugins that use the LAN Zoo
- Digitally Signing LAN Zoo Plugins
Cloud Zoo
- Creating Plugins that use Cloud Zoo
- Register as an Issuer in Cloud Zoo
- Add Products to Cloud Zoo
- Implement HTTPS Callbacks
- Modify Plug-In licensing code to support Cloud Zoo
- Optional Cloud Zoo endpoints for License Management
Rhino.Python
Quickly add functionality to Rhino or automate repetitive tasks.
Overview
- What is Rhino.Python?
Getting Started
- Your First Python Script in Rhino (Windows, Mac, Grasshopper)
- Where to get help…
- Troubleshooting Installation
Python Editor for Windows
- Running a Python script in Rhino
- Canceling a Python script in Rhino
- Editing a Python script in Rhino
Python in Grasshopper
- Your First Python Script in Grasshopper
- An Overview of the GhPython Component
- An Overview of the GhPython Editor
- Debugging GhPython components Visual Studio
- GhPython Common Questions and Answers
- Creating Global Sticky Variables
- Node in Code from Python.
- Custom GhPython Baking Component
- Grasshopper data trees and Python
Fundamentals
- Python Basic Syntax
- Python Procedures
- Python Data Types
- Python Variables
- Python Conditionals
- Python Looping
- Python Operators
- Python Code Conventions
- Python Dictionaries
Python in Rhino
- RhinoScriptSyntax in Python
- Points in Python
- List of Points in Python
- Colors in Python
- Lines in Python
- Vectors in Python
- Planes in Python
- Rhino objects in Python
- Point and Vector Methods
- Line and Plane Methods
- Rhino NURBS Geometry Overview
- Creating Rhino Commands Using Python
Rhino.Python 101
Introduction
Where to find help
1. What’s it all about?
2. Python Essentials
3. Script anatomy
4. Operators and functions
5. Conditional execution
6. Tuples, Lists and Dictionaries
7. Classes
8. Geometry
Download the Rhino.Python 101 Primer as a single PDF
Intermediate
- How to read and write a simple file
- How to read and write a CSV files
- How to use JSON
- Using Python Dictionary as a database
- How to get user input in a script
- Creating a script and module
- APIs Available to Python
- Calling Overloaded Methods from Python
- Generating Random Numbers in Python
- Providing Arguments for By-Reference Parameters
Custom Dialogs in Eto
- Writing Custom Eto forms in Python
- Eto Controls in Python
- Eto Layouts in Rhino.Python
Other Resources
- Rhino Scripting Forum (Discourse)
- Rhino.Python Samples
- Rhino.Python Developer Samples GitHub
- Designalyze Python Tutorials
- Plethora Project
- Steve Baer’s Blog
- Python Beginner’s Guide
- Tutorials Point Python Series
- Rhino.Python Dash Docset
- Nature of Code Video Tutorials
openNURBS
Read/Write Rhino 3dm files in your application.
Overview
- NURBS Geometry Overview
- What is openNURBS?
- What is Rhino3dmIO?
Getting Started
- Getting Started
- Linking with openNURBS
- What’s New and Update Guide
Fundamentals
- Brep Loop & Edge Directions
- Getting Object Attributes
- Importing Lightweight Extrusions
- Periodic Curves & Surfaces
- Reading Render Meshes
- Reading Subdivision Surfaces
- Superfluous Knots
- Traversing Instance Definitions
Advanced
- Creating Linear Dimensions
- Data from Ellipses
- Finding an Annotation object’s font
- Instance References with Non-Uniform Scales
- Reading Per-Face Render Materials
- Testing for Object Visibility
C/C++
Native SDK for Rhino for Windows plugins.
Overview
- What is the C/C++ SDK?
- What’s New?
- License Agreement
Getting Started
- Installing Tools (Windows)
- Creating your first C/C++ plugin for Rhino
- Defining New Plugin Commands
- Migrate your plugin project to Rhino 7
- Plugin Installers (Windows)
- Migrate your plugin project to Rhino 6 manually
- Migrate your Options, Document Properties and Object Properties Pages
Fundamentals
- Adding a Custom Menu
- Adding a NURBS Curve from Control Points
- Adding Command Line Options
- Adding Curve Objects
- Adding Mesh Objects
- Adding User Strings to Objects
- Adjusting Isocurve Density
- Annotation Objects
- Applying Non-Uniform Transformations to Objects
- Archiving Curves to a File
- Avoiding Buffer Overruns in String Functions
- Calculating the Angle Between Two Points
- Clear Undo and Redo Lists
- Create Principal Curvature Curves
- Creating Blocks
- Creating Leaders
- Creating Sublayers
- Determining Curve Object Types
- Determining if a Brep is a Box
- Determining the Active Viewport
- Determining the Normal Direction of a Brep Face
- Finding Points on Curves at Arc Length Distances
- Finding Rhino’s Installation Folder
- Finding the Parameter of a Curve at a Point
- Getting Layer Objects
- Getting Object UUIDs
- Getting the Units of the Active Document
- Iterating the Geometry Table
- Logging Debug Info
- Mesh Types
- Modify an Object’s Color
- Modifying a Light’s Color
- Offsetting Curves on Surfaces
- Open a 3DM file
- Orienting Objects on Surfaces
- Picking Brep Components
- Picking Point Objects
- Picking Surface Point
- Picking Text Dots
- Pre- and Post-Picking Objects
- Printing a Layer’s Full Path
- Registering Plugins (Windows)
- Renaming Layers
- Running Rhino Commands from Plugins
- Saving Persistent Settings
- Selecting Objects
- Setting Viewport Titles
- Transforming Breps
- Type Casting Rhino Objects
- User Data
- Using the sizeof operator with TCHAR and wchar_t
- Window Selecting
- Writing to Text Files
- Object Types
- Brep Data Structure
Advanced
- Adding Online Help to Your Plugin
- Adding RhinoScript Support
- Adding to Rhino’s File Search Path
- Adjusting Clipping Planes from Conduits
- Calculating the Lengths of NURBS Curves
- Canceling Long Processes with ESC
- Changing Display Precision
- Crash Dump Analysis
- Creating a Custom Color Picker
- Creating a Custom CRhinoGetObject Class
- Creating and Deploying Plugin Toolbars
- Creating Points from Text Objects
- Custom Picking Grip Objects
- Custom Undo Events
- Determining Language Setting
- Draft Angle Contouring
- Drawing Arrowheads in Display Conduits
- Duplicating Objects with Group
- Dynamically Drawing Geometry when Picking Points
- Dynamically Drawing Polylines
- Dynamically Drawing Text Strings
- Dynamically Inserting Blocks
- Enabling Orthogonal Mode
- Extracting Curve Edit Points
- Extracting Thumbnail Preview Images
- Getting Script-Added Objects
- Handling Enter and Escape from Modal Dialogs
- Highlighting Objects in Conduits
- Loading Plugins at Startup
- Localizing Plugin Toolbars
- Lofting Surfaces that Maintain Tangency
- Making Plugins That Expire
- Modifying Advanced Display Settings
- Moving Curve and Surface Grips
- Moving Mesh Vertices
- Object Properties Page Icons
- Picking Objects without CRhinoGetObject
- Plugin Loading
- Plugin Search Order
- Project Curves onto Breps
- Projecting Points to Breps
- Retrieving Rhino Data from the Clipboard
- Running Rhino from the Command Line
- Setting Up a Cage Edit
- Shading Individual Objects
- Showing Objects Transforming Dynamically
- Supporting High DPI Displays
- Testing for Curves on Surfaces
- Toggling the Status Bar
- Tracking Camera Changes with Conduits
- Triangulating Polygons
- Unifying Mesh Normals
- Using ActiveX Controls
- Writing Code for 32- and 64-bit Compilers
- Creating a Skin
Rendering (RDK)
- RDK Automatic UI
- RDK Current Environment
- RDK Decals
- RDK Dithering
- RDK Document Contents
- RDK Ground Plane
- RDK Linear Workflow
- RDK Post Effect Classes
- RDK Render Content
- RDK Rendering
- RDK Safe Frame
- RDK Skylight
- RDK Sun
- RDK Tasks
- What is the RDK?
- Scripting Methods for RDK (Windows)
- Your First Renderer Plugin (Windows)
- Textures and Mappings
- Light Attenuation
- RDK Render Content Editors
Zoo
- What is a LAN Zoo Plugin?
- Creating Plugins that use the LAN Zoo
- Digitally Signing LAN Zoo Plugins
Troubleshooting
- Do NOT Test for Equality
- FPU Issues
Grasshopper
Create custom Grasshopper components and plugins.
Overview
- What is a Grasshopper Component?
Getting Started
- Installing Tools (Windows, Mac)
- Your First Component (Windows, Mac)
- Distributing a Grasshopper Plug-In with the Package Manager
Fundamentals
- Simple Component
- Simple Mathematics Component
- Simple Geometry Component
- Simple Data Types
- Simple Parameters
Advanced
- List Components
- Extending the GUI
- Task Capable Components
- Custom Attributes
- Custom Component Options
- Components with a variable number of parameters
In Depth
- Grasshopper Data Types
- Multi-threaded components
- The Why and How of Data Trees
- Grasshopper Icons
- Component Installers (Windows)
Python in Grasshopper
- Your First Python Script in Grasshopper
- An Overview of the GhPython Component
- An Overview of the GhPython Editor
- Debugging GhPython components Visual Studio
- GhPython Common Questions and Answers
- Creating Global Sticky Variables
- Node in Code from Python.
- Custom GhPython Baking Component
- Grasshopper data trees and Python
RhinoScript
RhinoScript is a scripting tool based on Microsoft’s VBScript language. With RhinoScript, you can quickly add functionality to Rhino for Windows, or automate repetitive tasks.
Overview
- What are VBScript and RhinoScript?
RhinoScript 101
Introduction
Where to find help
1. What’s it all about?
2. RhinoScript Essentials
3. Script anatomy
4. Operators and functions
5. Conditional execution
6. Arrays
7. Geometry
Download the RhinoScript 101 Primer as a single PDF
Fundamentals
- VBScript Statements
- VBScript Procedures
- VBScript Variable Hoisting
- VBScript Variables
- VBScript Data Types
- VBScript Conditionals
- VBScript Logic
- VBScript Looping
- VBScript Passing Parameters
- VBScript Constants
- VBScript Operators
- VBScript Code Conventions
- VBScript Dictionaries
- VBScript Err Objects
- VBScript Err Objects
- VBScript String Literals
Intermediate
- Array Dimensions & Upper Bounds
- ByRef vs ByVal
- Calculating Permutations
- Comparing Arrays
- Converting GUIDs to Strings
- Creating GUIDs
- Disposing of Variables
- Finding Duplicate Strings
- Finding Perfect Squares
- Generating Random Numbers
- Including Scripts
- Lengths of Curves
- Modifying Object Colors
- Multidimensional Arrays
- Nothing vs Empty vs Null
- Optional Arguments
- Parentheses Error
- Parsing Text Files
- Reversing Arrays
- Selecting Curves by Type
- Using .NET Classes
Advanced
- Accessing Databases
- Adding Curvature Circles
- Archimedean Spirals
- Array Utilities
- Cancelling Scripts
- Closest Axis Point
- Converting Text to Geometry
- Converting to Grayscale
- Copying to Excel
- Curve Osculating Planes
- Disconnected Recordset Sorting
- Distance on a Curve from a Point
- Efficient Script Loading
- Error Handling
- Fibonacci Numbers
- Getting & Setting Locale
- Hot & Cold Colors
- Importing Points from Text Files
- Isometric Views
- Linear Regression
- Offsetting Meshes
- Padding Digits
- Persistent Settings
- Quadratic Solver
- Quick Sort Key Value Pairs
- Read & Write UTF-8 Files
- Reading Excel Files
- Replacing Points with Blocks
- Rounding Numbers
- Saving File Summary Info
- Script Demand Loading
- Shortest Line between two Lines
- Skipping current iteration in a For loop
- Sorting VBS Arrays with .NET
- Testing for Empty Arrays
- Trimming Curves
- Uncommon Numeric Conversions
- VBScript RegExp Objects
- VBScript RegExp Objects
Troubleshooting
- Failed to Create VBScript Error
Other Resources
- Pascal Golay’s scripted utilities for Rhino
- RhinoScript Samples on GitHub
- RhinoScript Dash Docset
- RhinoScript Help File On-Line
Compute
Getting Started
- Compute: Features
- Running and Debugging Compute Locally
- Calling Compute with Python
- Calling Compute with JavaScript
- Calling Compute with .NET
- Extending Compute with Custom Endpoints
Production Deployment
- Licensing & Billing
- How to create a virtual machine (VM) on Azure
- How to create a virtual machine (VM) on Amazon Web Service
- Deployment to Production Servers
- Configure Compute to use HTTPS
Hops
- What is Hops
- How Hops Works
- The Hops Component
Developer Services
Localization
Our regional office in Europe provides a translation and localization service for third-party developers and anyone else interested in translating their products to French, German, Italian, Spanish, etc. Details…
Marketing Support
If you have developed a Rhino add-on that you would like to make available to other Rhino users, food4Rhino is the place to post the details about your plug-ins for Rhino and Grasshopper. Food4Rhino is the Plug-in Community Service by McNeel. Users can find the newest Rhino Plug-ins, Grasshopper Add-ons, Materials, Textures and Backgrounds, Scripts and much more. It is free. See the frequently asked questions…
- Manuals
- Brands
- RHINOCEROS Manuals
- Compact Excavator
- XN08