Ruby учебник "Hello World!"

Этот учебник создан для новичков. Он научит Вас писать Ruby скрипты для SketchUp.

Содержание

  1. Обзор
  2. Первая версия
  3. Создание функции
  4. Запуск функции
  5. Как поместить функцию в меню?

Обзор

Это руководство предполагает, что вам ничего не известно о Ruby и почти ничего о программировании.

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

Этот самый первый Ruby скрипт будет отображать окно сообщения со словами "Hello World" в нем.

Первая версия

  1. Во-первых, используя текстовый редактор, нам надо создать текстовый файл HelloWorld.rb в кодировке ASCII.
  2. Запустите текстовый редактор и введите следующий текст:
    UI.messagebox("Hello World!")
    Если Вы не любите печатать, то просто можно скопировать и вставить текст прямо из этой статьи.
  3. Сохраните файл.
    Ruby скрипты должны иметь расширение ".rb". Любой скрипт сохраненный в папке установки SketchUp в подпапке "plugins" автоматически загружаться и исполняться при запуске SketchUp. На большинстве windows машин это будет здесь:
    С:\Program Files\Google\Google SketchUp 6
  4. Итак, сохраните файл, как:
    С:\Program Files\Google\Google SketchUp 6\ HelloWorld.rb
  5. Запустите скрипт:
    Запустите SketchUp, и программа должна выполнить ваш скрипт и вывести на экран окно со словами "Hello World!".
  6. Нажмите кнопку OK в появившемся окне.

Создание функции

Вот и все! Однако это слишком легко, поэтому сейчас давайте сделаем некоторые изменения в скрипте. При каждом запуске SketchUp этот скрипт показывает окно с надписью "Hello World!". Это очень раздражает!

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

Ruby функция определяется словом def, а заканчиваются словом end.

  1. Снова откройте текстовый редактор и загрузите файл HelloWorld.rb, который вы создали.
  2. В самое начало файла добавьте: def hello. Так будет объявлена новая функция по имени hello.
  3. В конец файла добавьте слово end.
  4. Ваш файл теперь должен выглядеть так:
    def hello UI.messagebox("Hello World!") end
  5. Сохраните файл и снова запустите SketchUp.
    При запуске SketchUp ничего не должно произойти. Если Вы что-то пропустили или неправильно напечатали, то при запуске SketchUp появится сообщение об ошибке. Если оно появилось, то исправьте ошибку, сохраните файл и опять перезапустите SketchUp.

Запуск функции

Чтобы запустить функцию hello, надо открыть Ruby Console (Ruby консоль) и ввести имя функции.

  1. Откройте Ruby Console. Это последний пункт меню Window.
  2. Внизу окна Ruby Console в белой области введите имя вашей функции, hello, и нажмите на клавиатуре Enter.
  3. Должно появиться окно "Hello World"!

Как поместить функцию в меню?

Конечно, Вы не хотите, чтобы пользователю каждый раз для запуска функции надо было открывать Ruby Console и печатать имя функции. Это не удобно! Сейчас мы напишем код, который поместит нашу функцию в меню "plugins". Измените файл со скриптом, чтобы он стал таким, как показано ниже.

Я добавил комментарии, которые помогут вам понять за новый код. Добавляйте комментарии во все свои программы, чтобы потом, просматривая код, сразу понять, что к чему. Чтобы не наделать ошибок, удалите все из вашего файла, скопируйте этот здоровенный кусок кода и вставьте его в ваш файл.

#Make sure this ruby file is loaded # ("require" will load a file only if it is not loaded yet) require "sketchup.rb" #Make sure this ruby file is loaded #Our hello function def hello UI.messagebox("Hello World!") end #The function "hello" only gets run if you type in: hello #other code gets run whenever the .rb file is loaded # define our file name so we will know when we load it twice filename="HelloWorld.rb" #run this code the first time this script is loaded #If it is loaded again, file_loaded!(filename) will return true if !file_loaded?(filename) # get the SketchUp plugins menu plugins_menu = UI.menu("Plugins") # add a seperator and our function to the "plugins" menu if plugins_menu plugins_menu.add_separator plugins_menu.add_item("Hello World") { hello} end # Let Ruby know we have loaded this file file_loaded(filename) end

Теперь, когда вы вновь запустите SketchUp, в меню плагинов (Plugins) появится пункт "Hello World". Выбираем пункт "Hello World", и наша функция запускается!

Сайт управляется системой uCoz