Python news тривимірне моделювання з використанням sketchup і eclipse частина 2

Тривимірне моделювання з використанням SketchUp і Eclipse: Частина 2. Програмування на мові сценаріїв SketchUp

Програмування на мові сценаріїв SketchUp: У цій статті описана сукупність основних класів, які використовуються в сценаріях SketchUp, а також наводяться приклади їх використання. За допомогою цих класів можна побудувати будь-яку тривимірну (далі - 3-D) фігуру, що складається з відрізків і граней.

Часто використовувані скорочення

  • API: Application programming interface (інтерфейс програмування додатків)
  • DHTML: Dynamic Hypertext Markup Language (динамічний мову розмітки гіпертексту)
  • UI: User interface (призначений для користувача інтерфейс)

З огляду на популярність мови програмування Java ™ та згадка Eclipse в назві статті, я вважаю, що ви знайомі з Java. Ruby далеко не такий популярний, тому я коротко поясню деякі їх подібності та відмінності. Я сподіваюся, що після цього ви будете почувати себе з цією мовою досить комфортно і зможете спробувати його і написати кілька елементарних команд.

Пам'ятаючи про ці правила, можна починати експерименти з кодом Ruby. У SketchUp натисніть Window> Ruby Console. Потім спробуйте виконати будь-яку (або всі) з наступних команд:

  • 2 * (5 + 5) / 4 * 1.0
  • 6.class
  • print 'Hello world'; puts '!'
  • m = Time.new; m.month
  • x = [4, true, 'hi there!']
  • puts x [2] .to_s + "is a" + x [2] .class.to_s

В останній команді метод to_s класу Object Ruby виконує ту ж функцію, що і метод ToString () класу Object Java: він повертає String. представляє Object. На малюнку 1 показана консоль програми SketchUp (Ruby Console) з результатами виконання цих команд.


Малюнок 1. Висновок в Ruby Console

Python news тривимірне моделювання з використанням sketchup і eclipse частина 2

Ці команди можуть здатися простими, але Ruby надає можливості, зовсім не схожі на те, що можна побачити в мовах Java, C або C ++. До таких унікальних можливостей можна віднести блоки ітераторів, паралельне присвоювання та дивовижі на кшталт класу Range. Але якщо говорити про SketchUp API, можна просунутися дуже далеко, маючи лише загальне уявлення про мову. Цей API докладно розглядається в наступному розділі.
SketchUp API

У першій статті серії наводиться приклад сценарію SketchUp і розповідається, як його виконати, використовуючи команду load SketchUp і додаток SketchUp Bridge. Але в цій статті не пояснюється, як працює сценарій. Команди сценарію є частиною SketchUp API - предмета цього розділу. Спочатку я уявляю фундаментальні структури даних SketchUp (Sketchup і Model), а потім поясню, як створити об'єкти Edge (ребро) і Face (грань). Після цього я поясню два методу екструзії (pushpull і followme) і закінчу описом застосування до об'єктів матеріалів (materials) SketchUp.

Кожен модуль Ruby є колекцією методів; модуль Sketchup є найбільш важливим модулем в SketchUp API. Його методи надають інформацію, пов'язану з повною установкою SketchUp. П'ять з них перераховані нижче:

  • os_language - повертає назву операційної системи, на якій працює SketchUp.
  • locale - повертає код мови для поточної локалі.
  • find_support_files - повертає шлях до файлів каталогу верхнього рівня SketchUp.
  • version_number - повертає версію SketchUp.
  • active_model - повертає об'єкт Model. представляє поточний проект.

Аналогічно статичного методу в мові Java, для виклику методу модуля Ruby необхідно вказати ім'я модуля з точкою і ім'ям методу. Наприклад, щоб знайти версію додатка SketchUp, можна в Ruby Console ввести наступну команду: Sketchup.version_number.

З усіх методів модуля Sketchup найважливішим є метод active_model. Він повертає об'єкт Model. який містить всю інформацію поточного проекту SketchUp. Кожен проект має один об'єкт Model. і кожен об'єкт Model втілює один проект. Говорячи "всю інформацію", я маю на увазі, що об'єкт Model зберігає розташування кожної вершини, колір кожної фігури, стилі, доступні для проекту, і багато іншого. Model зберігає інформацію в послідовності об'єктів-контейнерів. які включають в себе наступні компоненти:

  • Entities - всі фігури в поточному проекті.
  • Materials - кольору і текстури.
  • Layers - графічні шари проекту.
  • Styles - налаштування зовнішнього вигляду проекту.

Взагалі кажучи, метою сценарію SketchUp є зміна даних в об'єктах-контейнерах. Для цього викличте відповідний метод в класі Model. Ці методи легко запам'ятати: метод layers повертає об'єкт Layers. метод styles повертає об'єкт Styles. метод entities повертає об'єкт Entities і т.д. Наприклад, наступний код витягує контейнер Entities поточного об'єкта Model: