Command Macros and Scripting (Макросы Команд и Разработка Сценариев)
Панели инструментов |
Меню |
Клавиша сокращения |
Command Macros and Scripting (Макросы Команд и Разработка Сценариев)
Все команды Rhino могут быть использованы при записи макросов. Макрос команд может быть запущен вводом команды в командную строку, кнопкой из панели инструментов, клавишей сокращения , псевдонимом команды (command aliases), командой ReadCommandFile (ЧитатьКомандныйФайл), или вставив в поток команд Rhino нужную из Буфера Обмена, например, командой Paste (Вставить).
Запись макросов осуществляется по тем же правилам, что и ввод последовательности команд в командной строке. В командной строке знак пробела между символами или переход на новую строку будет воспринят, как нажатие клавиши Enter.
Специальные символы
Символ |
Значение в макросе |
* |
Заставляет команду повторятся автоматически, без нажатия клавиши Enter для перезапуска. |
! |
Восклицательный знак (!) и пробел в начале скрипта отменяют любую предыдущую команду. В других местоположениях это отменяет макрос. В случае необходимости, восклицательный знак может использоваться в конце макроса. |
_ |
Выполняет команду в её исходном английском написании. 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 Чтобы удостовериться в работоспособности макроса по всему миру, напишите иго на английском языке и поместите _ перед всеми названиями команд и опциями. |
- |
Все команды способны работать в режиме скрипта, через командную строку (даже команды, у которых есть диалоговые окна по умолчанию). Чтобы подавить диалоговое окно и использовать опции командной строки, ставьте префикс перед названием команды с дефисом (-). |
' |
Следующая команда - гнездовая команда. Манипуляции с проекциями (view), плоскостью конструирования (construction plane) и объектовыми привязками (object snaps) - гнездовые (nestable). Команды создания геометрии - негнездовые (not nestable). Однократные объектовые привязки (One-shot object snaps) и подчинённые объекты (sub-object), указанные фильтрами (filters) автоматически определяются как гнездовые и не требуют апострофа. |
\ |
Если первый символ в макросе инструментальной панели не "!" и последний символ " \", то скрипт выполняется в командной строке без Enter, таким образом может быть добавлена подробная информация. Эта особенность полезна для создания командной строки из таких частей, как цифры, десятичные точки, углы (такой как "<45") , которые находятся на кнопках, делая "цифровую клавиатуру" на экране. |
~ |
Подавляет отображение опций команды, предотвращая помехи для обратной связи команд. Опции всё также работают, как и обычно. |
; (точка с запятой) |
Строки, начинающиеся точкой с запятой (;) не являются командной частью макроса, но позволяет Вам документировать макрос или пробовать альтернативный ввод (alternative input). Например: ; Это тестовый макрос |
Примеры
Построение окружности (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 (Редактор Макрокоманд)
Панели инструментов |
Меню Commands (Команды) Macro Editor (Редактор Макрокоманд) |
Клавиша сокращения |
Команда MacroEditor (Редактор Макрокоманд)
Открывает окно редактирования для создания и тестирования макроса.
Панель Macro Editor (Редактор Макрокоманд)
Панель Свойств (Panel Options)
Шаги
Введите команды в окно Macro Editor (Редактор Макрокоманд).
Чтобы протестировать макрос, кликните треугольник Run (Выполнить).
Чтобы удалить макрос, кликните крестик Delete (Удалить).
Примечания
Выделите некоторую часть текста и кликните Run (Выполнить). Будет выполнена только выделенная часть макроса.
Можно пользоваться контекстным меню щелчка правой кнопки мыши для выделения всего (selecting all), копирования (copy), вставки (paste), удаления (delete), выполнения (run) и т.д.
ReadCommandFile (ЧитатьКомандныйФайл)
Панели инструментов |
Меню Commands (Команды) Read from File (Читать из Файла) |
Клавиша сокращения |
Команда 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 (Эхо)
Включает отображение выполнения команд макроса в окне хронологии команд.
Для отключения отображения, используйте команду NoEcho (БезЭхо).
Панели инструментов |
Меню |
Клавиша сокращения |
Команда NoEcho (БезЭхо)
Отключает отображение выполнения команд макроса в окне хронологии команд.
Для включения отображения, используйте команду Echo (Эхо).
Панели инструментов |
Меню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 (Пауза)
Останавливает выполнение макроса для ввода данных пользователем.
Пример
Этот скрипт запрашивает точку (point), а затем чертит окружность с радиусом 50 единиц с центром в этой точке.
! _Circle _Pause 50
Панели инструментов |
Меню |
Клавиша сокращения |
Команда 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) и другое.
Команды для использования:
EditScript (РедактироватьСкрипт)
Основные шаги
Напишите сценарий функции.
RhinoScripts использует расширение файла .rvb.
Выполните команду LoadScript (ЗагрузитьСкрипт) для загрузки скрипта в оперативную память.
Используйте команду RunScript (ВыполнитьСкрипт) для запуска фукции с заданным именем.
Примечание: Перетаскивание файла с расширением .rvb в окно Rhino повлечёт загрузку и выполнение этого скрипта.
Для получения более детальной помощи по разработке сценариев
В меню Help (Справка) программы Rhino кликните по строке Plug-ins (Плагины), затем кликните по RhinoScript.
Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.
Панели инструментов |
Меню Rhino Script Load (Загрузить) |
Клавиша сокращения |
Команда LoadScript (ЗагрузитьСкрипт)
Читает файл скрипта с диска, загружает в интерпретатор скриптов (script interpreter), и запускает этот скрипт.
Примечание: Перетаскивание файла с расширением .rvb в окно Rhino повлечёт загрузку и выполнение этого скрипта.
Шаги
В диалоговом окне Load Script File (Загрузка Файла Скрипта) кликните кнопку Help (Справка).
Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.
Ссылка на он-лайн Справку по программированию в RhinoScript: http://www.rhino3d.com/5/rhinoscript/index.html
Панели инструментов |
Меню Rhino Script Run (Выполнить) |
Клавиша сокращения |
Команда RunScript (ВыполнитьСкрипт)
Запускает предварительно загруженный скрипт.
Примечание: Перетаскивание файла с расширением .rvb в окно Rhino повлечёт загрузку и выполнение этого скрипта.
Шаги
В диалоговом окне Run Script Subroutine (Выполнить Подпрограмму Скрипта) кликните по кнопке Help (Справка).
Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.
EditScript (РедактироватьСкрипт)
Панели инструментов |
Меню Rhino Script Edit (Редактировать) |
Клавиша сокращения |
Команда для создания Макросов и разработки Сценариев (Скриптов)
Открывает утилиту текстового редактора для редактирования файлов RhinoScript.
Шаги
В диалоговом окне Edit Script (Редактировать Скрипт) щёлкните по кнопке Help (Справка).
Для получения более детальной информации по разработке специфических Rhino-скриптов, смотрите: http://www.rhino3d.com/scripting/.
RunPythonScript (ВыполнитьPythonСкрипт)
Панели инструментов |
Меню Python Script (Python-скрипт) Run (Выполнить) |
Клавиша сокращения |
Команда 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Скрипт)
Панели инструментов |
Меню Python Script (Python-скрипт) Edit (Редактировать) |
Клавиша сокращения |
Команда 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 (ПрикрепитьК)
Прикрепляет текстовую информацию к геометрическим объектам.
Если информация тесно связана с геометрией, то прикрепите её к геометрии. Например, радиус окружности должен быть прикреплён к геометрии, поскольку информация будет некорректной, если окружность (circle) будет отредактирована с помощью контрольных точек (control-point) и превратится в NURBS-кривую(NURBS curve).
Прикрепляет текстовую информацию к свойствам объекта.
Если информация более высокого уровня свойств, таких как цвет, то такую информацию лучше прикреплять к свойствам объекта. Информация свойств сохранится даже, если объект будет редактирован в контрольных точках и изменится, обрежется, скопируется и т.д.
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 для любых ключей.