Command Macros and Scripting (Макросы Команд и Разработка Сценариев)

Где я могу найти эту команду?

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

Меню

Клавиша сокращения

Command Macros and Scripting (Макросы Команд и Разработка Сценариев)

Все команды Rhino могут быть использованы при записи макросов. Макрос команд может быть запущен вводом команды в командную строку, кнопкой из панели инструментов, клавишей сокращения , псевдонимом команды (command aliases), командой ReadCommandFile (ЧитатьКомандныйФайл), или вставив в поток команд Rhino нужную из Буфера Обмена, например, командой Paste (Вставить).

Запись Макросов Команд

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

Специальные символы

Символ

Значение в макросе

*
(звёздочка)

Заставляет команду повторятся автоматически, без нажатия клавиши Enter для перезапуска.

!
(восклицательный знак)

Отменяет предыдущую команду.

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

_
(underscore)

Выполняет команду в её исходном английском написании.

Rhino может быть локализован на многие языки. У неанглийских версий будут команды, подсказки, опции команды, диалоговые окна, меню, и т.д., переведенные на их соответствующие языки. Английские команды не будут работать в этих версиях.

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

Например: В английской версии Rhino, работает следующий макрос:

Circle 3Point 0,0,0 1,1,0 0,3,0

Но во французской версии Rhino, это не будет работать. Вместо этого Вы нуждаетесь в одном из этих макросов:

Cercle 3Point 0,0,0 1,1,0 0,3,0
_Circle _3Point 0,0,0 1,1,0 0,3,0

Чтобы удостовериться в работоспособности макроса по всему миру, напишите иго на английском языке и поместите _ перед всеми названиями команд и опциями.

-
(дефис)

Подавляет диалоговое окно.

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

'
(апостроф)

Следующая команда - гнездовая команда.

Манипуляции с проекциями (view), плоскостью конструирования (construction plane) и объектовыми привязками (object snaps) - гнездовые (nestable). Команды создания геометрии - негнездовые (not nestable).

Однократные объектовые привязки (One-shot object snaps) и подчинённые объекты (sub-object), указанные фильтрами (filters) автоматически определяются как гнездовые и не требуют апострофа.

\
(наклонная черта влево)

Если первый символ в макросе инструментальной панели не "!" и последний символ " \", то скрипт выполняется в командной строке без Enter, таким образом может быть добавлена подробная информация.

Эта особенность полезна для создания командной строки из таких частей, как цифры, десятичные точки, углы (такой как "<45") , которые находятся на кнопках, делая "цифровую клавиатуру" на экране.

~
(тильда)

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

;

(точка с запятой)

Комментарий.

Строки, начинающиеся точкой с запятой (;) не являются командной частью макроса, но позволяет Вам документировать макрос или пробовать альтернативный ввод (alternative input).

Например:

; Это тестовый макрос
_Circle 0,0,0 15
_Line 0,0,0 pause ;15,0,0
; Line 0,0,0 0,15,0
_Line 0,0,0 -15,0,0

Примеры

Построение окружности (circle)

Этот скрипт создает окружность с центром в точке с координатами 5,5 и радиусом 10:

! _-Circle 5,5 10

Пробелы между элементами - те же места, где бы Вы нажали Enter, вводя команду вручную.

Снять выделение с объектов и запустить команду Move (Переместить)

Этот макрос запускает команду Move (Переместить), но удостоверяется, что никакие объекты не являются выделенными, прежде, чем запросить выбор объектов для перемещения:

! _SelNone _Move

Создать кривую, проходящую через точки

Этот макрос создаёт набор из трёх точек, затем выдёляет их все и создаёт полилинию, подгоняя её так, чтобы она проходила через эти точки:

! _SelAll _Points _Pause _Pause _Pause _Enter _Invert _CurveThroughPt _EnterEnd

Вот как этот скрипт работает:

! _SelAll

Останавливает выполнение всех предыдущих команд и выделяет все объекты в текущей модели.

_Points

Выполняет команду Points (Точки).

_Pause

_Pause

_Pause

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

_Enter

Имитрирует нажатие клавиши Enter, которое останавливает создание точечных объектов.

_Invert

Инвертирует (Invert) выделение. Все видимые объекты в сцене, были выделены в начале скрипта, а после инвертирования будут выделены только вновь созданные точечные объекты.

_CurveThroughPt

Создаёт полилинию, проходящую через только что созданные точечные объекты.

_EnterEnd

Завершает команду.

Обход диалогового окна

! -_Rebuild _Pause _Points=10 _Degree=3 _Enter

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

Попробуйте эти скрипты

Выделите подходящий макрос из этого раздела Справки.

Нажмите Ctrl + C для копирования его в Буфер Обмена.

Кликните в командной строке Rhino и нажмите Ctrl + V для вставки макроса.

Специальные скриптовые команды

Pause

Останавливает выполнение макроса для ввода данных пользователем.

Пример

! _Circle _Pause 50

Этот макрос запрашивает точку, а затем чертит окружность с радиусом 50 единиц с центром в этой точке.

Enter

Имитирует изнутри макроса нажатие клавиши Enter.

Эта командане не повторяет предыдущую команду, которая будто тоже делает нажатие Enter.

EnterEnd

Завершает команду.

SetRedrawOff

Предотвращает перерисовку экрана, изменения конструкционной плоскости или камеры во время выполнения макросов.

SetRedrawOn

Включает перерисовку экрана снова после SetRedrawOff (ОтключитьПерерисовку).

NoEcho

Отключает отображение на экране команд макроса в окне хронологии команд.

Echo

Включает отображение на экране команд макроса в окне хронологии команд.

Примечание: Если Вы не знаете, как напечатать скрипт, выполните написанную через дефис версию команды. Выделите и скопируйте последовательность команды и вставьте ее в Ваш текст скрипта как отправную точку.

MacroEditor (Редактор Макрокоманд)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда MacroEditor (Редактор Макрокоманд)

Открывает окно редактирования для создания и тестирования макроса.

Панель Macro Editor (Редактор Макрокоманд)

Панель Свойств (Panel Options)

Шаги

Введите команды в окно Macro Editor (Редактор Макрокоманд).

Чтобы протестировать макрос, кликните треугольник Run (Выполнить).

Чтобы удалить макрос, кликните крестик Delete (Удалить).

Примечания

Выделите некоторую часть текста и кликните Run (Выполнить). Будет выполнена только выделенная часть макроса.

Можно пользоваться контекстным меню щелчка правой кнопки мыши для выделения всего (selecting all), копирования (copy), вставки (paste), удаления (delete), выполнения (run) и т.д.

ReadCommandFile (ЧитатьКомандныйФайл)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда ReadCommandFiles (ЧитатьКомандныйФайл)

Читает и выполняет макрос команд из текстового файла.

Шаги

В диалоговом окне Open Text File (Открыть Текстовой Файл) выберите файл для чтения.

Содержимое файла будет скопировано в командную строку и строки командного файла будут интерпретированы, как будто бы они были введены с клавиатуры в командную строку.

Примечания

Создавая командные файлы, используйте команду Enter, эквивалентную нажатию клавиши Enter, используемой для выполнения команды.

Если Вы часто выполняете считывание из определённого файла, назначаете команду ReadCommandFile (ЧитатьКомандныйФайл) на кнопку панели наряду с именем этого файла. Например:

-readcommandfile myfile.txt

Если имя файла содержит пробелы, заключите текст в кавычки. Например:

-readcommandfile "my file.txt"

Пример

Сделайте текстовый файл по примеру следующего, у которого есть команды для того, чтобы создать все Ваши кривые в этом случае, и затем создать кривые все вместе с ReadCommandFile (ЧитатьКомандныйФайл).

! _interpcrv
23,5,0
23.2,5,0
23.7,5.2,1
_Enter
_interpcrv
26.1,4.9,1.1
26.8,4.9,1.0
27.1,4.8,0.9
_Enter

и так далее.

Echo (Эхо)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда Echo (Эхо)

Включает отображение выполнения команд макроса в окне хронологии команд.

Для отключения отображения, используйте команду NoEcho (БезЭхо).

NoEcho (БезЭхо)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда NoEcho (БезЭхо)

Отключает отображение выполнения команд макроса в окне хронологии команд.

Для включения отображения, используйте команду Echo (Эхо).

Enter

где можно найти эту команду?

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

МенюMenus

Клавиша сокращения

Команда Enter

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

Пример

Этот скрипт устанавливает конструкционную плоскость по трем указанным точкам:

'_CPlane _3Point

_Pause _Pause _Pause _Enter

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

EnterEnd (ЗавершитьВыполнениеСкрипта)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда EnterEnd (ЗавершитьВыполнениеСкрипта)

Действует подобно нажатию клавиши Enter для завершения строки с командами при использовании в макросах или при программировании кнопок панелей инструментов. EnterEnd удобна когда команда находится в глубине настроек, таких как Options (Настройки) или DocumentProperties (НастройкиДокумента) и Вы хотите выйти после изменения одной из них, минуя множество задействований команды Enter, вернуться к пустой комадной строке. Например:

! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01

потребует, по крайней мере, два или три задействования Enter для выхода из выполнения команды. Используя EnterEnd (ЗавершитьВыполнениеСкрипта) команда завершается сразу, как только Вы этого пожелаете.

Пример

! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01 _EnterEnd

Exit (Выйти)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда Exit (Выйти)

Завершает текущую сессию Rhino.

Pause (Пауза)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда Pause (Пауза)

Останавливает выполнение макроса для ввода данных пользователем.

Пример

Этот скрипт запрашивает точку (point), а затем чертит окружность с радиусом 50 единиц с центром в этой точке.

! _Circle _Pause 50

Run (Выполнить)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда Run (Выполнить)

Запускает другое приложение изнутри Rhino.

Шаги

Введите путь и имя файла для запуска.

SetRedrawOff (ОтключитьПерерисовку)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда SetRedrawOff (ОтключитьПерерисовку)

Отключает перерисовку экрана (screen), плоскости конструирования (construction plane) или изменения камеры (camera) во время выполнения скриптов (scripts).

Для включения перерисовки назад, используйте команду SetRedrawOn (ВключитьПерерисовку).

SetRedrawOn (ВключитьПерерисовку)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда SetRedrawOn (ВключитьПерерисовку)

Включает перерисовку экрана (screen), плоскости конструирования (construction plane) или изменения камеры (camera) во время выполнения скриптов (scripts).

Для отключения перерисовки экрана, используйте команду SetRedrawOff (ОтключитьПерерисовку).

Scripting (Написание Скриптов (Сценариев))

RhinoScript это плагин (plug-in) для выполнения скриптов. Языки разработки скриптов позволяют задействовать циклы (loops), имена переменных (variable names), просмотр файлов (browsing for files), запросы (queries) и другое.

Команды для использования:

LoadScript (ЗагрузитьСкрипт)

RunScript (ВыполнитьСкрипт)

EditScript (РедактироватьСкрипт)

Основные шаги

Напишите сценарий функции.

RhinoScripts использует расширение файла .rvb.

Выполните команду LoadScript (ЗагрузитьСкрипт) для загрузки скрипта в оперативную память.

Используйте команду RunScript (ВыполнитьСкрипт) для запуска фукции с заданным именем.

Примечание: Перетаскивание файла с расширением .rvb в окно Rhino повлечёт загрузку и выполнение этого скрипта.

Для получения более детальной помощи по разработке сценариев

В меню Help (Справка) программы Rhino кликните по строке Plug-ins (Плагины), затем кликните по RhinoScript.

Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.

LoadScript (ЗагрузитьСкрипт)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда LoadScript (ЗагрузитьСкрипт)

Читает файл скрипта с диска, загружает в интерпретатор скриптов (script interpreter), и запускает этот скрипт.

Примечание: Перетаскивание файла с расширением .rvb в окно Rhino повлечёт загрузку и выполнение этого скрипта.

Шаги

В диалоговом окне Load Script File (Загрузка Файла Скрипта) кликните кнопку Help (Справка).

Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.

Ссылка на он-лайн Справку по программированию в RhinoScript: http://www.rhino3d.com/5/rhinoscript/index.html

RunScript (ВыполнитьСкрипт)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда RunScript (ВыполнитьСкрипт)

Запускает предварительно загруженный скрипт.

Примечание: Перетаскивание файла с расширением .rvb в окно Rhino повлечёт загрузку и выполнение этого скрипта.

Шаги

В диалоговом окне Run Script Subroutine (Выполнить Подпрограмму Скрипта) кликните по кнопке Help (Справка).

Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.

EditScript (РедактироватьСкрипт)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда для создания Макросов и разработки Сценариев (Скриптов)

Открывает утилиту текстового редактора для редактирования файлов RhinoScript.

Шаги

В диалоговом окне Edit Script (Редактировать Скрипт) щёлкните по кнопке Help (Справка).

Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.

RunPythonScript (ВыполнитьPythonСкрипт)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда RunPythonScript (ВыполнитьPythonСкрипт)

Запускает скрипт, написанный на языке Python.

Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.

Ссылка на он-лайн Справку по программированию в Rhino.Python:

http://www.rhino3d.com/5/ironpython/index.html

-RunPythonScript (ВыполнитьPythonСкрипт)

Опция

ResetEngine (ПерезагрузитьДвижок)

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

EditPythonScript (РедактироватьPythonСкрипт)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда EditPythonScript (РедактироватьPythonСкрипт)

Редактирует Python-скрипт.

Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://wiki.mcneel.com/developer/python.

SetUserText (УстановитьПользовательскийТекст)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда SetUserText (УстановитьПользовательскийТекст)

Прикрепляет информационный текст к объекту.

Эта информация сохраняется в формате ключ/значение (key/value), подобно тому, как Windows использует Реестр.

Получить введённую информацию можно с помощью команды GetUserText (ПолучитьТекстПользователя). Эта информация может также быть прикреплена к .NET-плагинам и VisualBasic-скриптам.

Эта информация также упрощает доступ к .NET и Visual Basic скриптам.

Пример

Text key = Weight (Текстовой ключ = Вес)

Text = Kilograms (Текст = Килограммы)

Шаги

Выделите объекты.

Введите текстовой ключ.

Введите текст.

Для удаления ключа

Выделите объекты.

Введите текстовой ключ.

Введите "" (двойные кавычки).

Опции

AttachTo (ПрикрепитьК)

Object (Объект)

Прикрепляет текстовую информацию к геометрическим объектам.

Если информация тесно связана с геометрией, то прикрепите её к геометрии. Например, радиус окружности должен быть прикреплён к геометрии, поскольку информация будет некорректной, если окружность (circle) будет отредактирована с помощью контрольных точек (control-point) и превратится в NURBS-кривую(NURBS curve).

Attributes (Свойства)

Прикрепляет текстовую информацию к свойствам объекта.

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

GetUserText (ПолучитьПользовательскийТекст)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда GetUserText (ПолучитьТекстПользователя)

Восстанавливает информационный текст, прикрепленный к объекту с использованием команды SetUserText (УстановитьПользовательскийТекст). Эта информация может также быть восстановлена из .NET-плагинов и VisualBasic-скриптов.

Шаги

Выделите объекты.

Введите текстовой ключи или нажмите клавишу Enter для любых ключей.

SetDocumentUserText (УстановитьПользовательскийТекстДокументу)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда SetDocumentUserText (УстановитьПользовательскийТекстДокументу)

Прикрепляет текстовую информацию к .3dm-файлу Rhino.

Эта информация сохраняется в формате ключ/значение (key/value), подобно тому, как Windows использует Реестр.

Получить введённую информацию можно с помощью команды GetDocumentUserText (ПолучитьПользовательскийТекстДокумента). Эта информация может также быть прикреплена к .NET-плагинам и VisualBasic-скриптам.

Эта информация также упрощает доступ к .NET и Visual Basic скриптам.

Шаги

Введите текстовой ключ.

Введите текст.

GetDocumentUserText (ПолучитьПользовательскийТекстДокумента)

Где можно найти эту команду?

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

Меню

Клавиша сокращения

Команда GetDocumentUserText (ПолучитьПользовательскийТекстДокумента)

Восстанавливает информационный текст, прикрепленный с использованием команды SetDocumentUserText (УстановитьПользовательскийТекстДокументу). Эта информация может также быть восстановлена из .NET-плагинов и VisualBasic-скриптов.

Шаги

Введите текстовой ключ или нажмите клавишу Enter для любых ключей.