SketchUp Ruby API

SketchUpRuby APIで選択エンティティの属性表示をやろうとして必要になったところ。

メニューに項目追加

...
if (not file_loaded?("test.rb"))
  # メニュー
  tools_menu = UI.menu("Tools")
  tools_menu.add_separator
  tools_menu.add_item("Hoge") { UI.messagebox("Hoge") }
  # コンテキストメニュー
  UI.add_context_menu_handler do |context_menu|
    context_menu.add_separator
    context_menu.add_item("Piyo") { UI.messagebox("Piyo") }
  end
end

file_loaded("test.rb")

ダイアログ

  • メッセージボックスは UI.messagebox
  • 単純な入力用ダイアログがほしければ UI.inputbox
  • 独自のダイアログを作るなら UI::WebDialog

選択エンティティを取得

  model = Sketchup.active_model
  model.selection.each do |entity|
    entity.attribute_dictionaries.each do |ad|
      # ad.name、ad.keys、ad[key] とか
      ...
    end
  end

その他プラグイン周り

  • リロードはRubyコンソールでload "test.rb"