如何将SketchUp插件添加到菜单栏及工具条

微信公众号:老顽童与小东邪
关注可了解更多的教程及编程技巧。问题或建议,请加好友留言;
如果你觉得对你有帮助,欢迎赞赏

插件目录Plugins

我们想要在SketchUp平台上进行二次开发,就要了解它的基本规则。这里我们先来了解下我们插件安装后存放代码的地方,即Plugins文件夹。如图:
如何将SketchUp插件添加到菜单栏及工具条_第1张图片

它被放置在用户目录中,所以只有只有用户安装了插件,在SketchUp菜单栏中才会出现【Extensions】或【扩展程序】菜单。如图:
图1
否则看到的是这样的。如图:
图2
总之Plugins插件目录对于开发者来说非常重要!!!

SketchUp之UI模块

UI模块包含许多用于从SketchUp Ruby脚本创建简单UI元素的方法及常用的类。如:

menu - 该方法通过给定的名称检索SketchUp的菜单对象

toolbar - 该方法用于按名称获取SketchUp工具栏

messagebox - 该方法返回消息窗口

常用的类还有Command、HtmlDialog、Toolbar等。

菜单栏menu

菜单栏就是SketchUp标题栏下面的水平栏,包含了文件、编辑、视图、相机等下拉菜单。
如图1、图2所示。
在这里我们重点来看插件怎么放在这些菜单栏中。
先来看一下实例:

tool_menu = UI.menu("Tools")
tool_menu.add_item("Cheese Tool") {
   UI.messagebox("Cheese activated.")
}

这段代码的功能是在菜单栏中的工具栏中添加了一个名为【Cheese Tool】的子菜单。我们运行一下代码查看效果:
如何将SketchUp插件添加到菜单栏及工具条_第2张图片

有效的的菜单名有“File”, “Edit”, “View”, “Camera”, “Draw”, “Tools”, “Window”, “Extensions” and “Help”.在上面的示例代码中我们用的Tools。一般我们自己开发的扩展程序放在Extensions中比较合适。
注意:在SketchUp2015以前是Plugins而并非Extensions,为了保持兼容Plugins依旧有效。

工具条Toolbar

Toolbar类包含在Ruby中创建和操作SketchUp工具条的方法。工具条是按钮的集合,可用于激活自定义工具或ruby脚本。
从工具条调用这些命令时,我们需要去学习一下Command对象。
Command类是把工具添加到菜单栏或工具条的首选类,就是我们最好先创建命令对象。然后将这个命令添加到菜单栏或工具条中。我们结合下面的代码来理解一下:

    toolbar = UI::Toolbar.new "Test"                   # 创建一个名为Test工具条
    cmd = UI::Command.new("Test") {                    # 创建一个工具名为Test的命令
      UI.messagebox "Hello World"
    }
    cmd.small_icon = "ToolPencilSmall.png"             # 工具在工具条上显示的图标
    cmd.large_icon = "ToolPencilLarge.png"
    cmd.tooltip = "Test Toolbars"                      # 对该工具的一些说明
    cmd.status_bar_text = "Testing the toolbars class" # 在状态栏中显示的内容
    toolbar = toolbar.add_item cmd                     # 将这个命名添加到工具条上
    toolbar.show                                       # 在SktchUp中显示该工具条

我们再来看一下这个效果,这样我们就讲这个工具放到了SketchUp工具条上。
如何将SketchUp插件添加到菜单栏及工具条_第3张图片

示例程序

学习了这一章,我们来将前面写的创建球体的代码放到工具条和扩展菜单中。

def self.create_sphere
   mod = Sketchup.active_model # Open model
   ent = mod.entities # All entities in model
   group = ent.add_group
   circle = group.entities.add_circle(ORIGIN, X_AXIS, 1.m, 48)
   face = group.entities.add_face(circle)
   face.reverse!
   path = group.entities.add_circle(ORIGIN, Z_AXIS, 2.m, 48)
   face.followme(path)
   group.entities.erase_entities(path)
end
unless file_loaded?(__FILE__)
  menu = UI.menu('Extensions')
  toolbar = UI::Toolbar.new "老顽童工具条"
  cmd = UI::Command.new("create_sphere"){
    self.create_sphere
  }
  cmd.large_icon = cmd.small_icon = "ToolPencilSmall.png"
  cmd.tooltip = "创建球体"                      
  cmd.status_bar_text = "这是创建球体的插件" 
  toolbar1 = toolbar.add_item cmd
  toolbar.show
  menu.add_item cmd
  file_loaded(__FILE__)
end

我们来执行代码来看一下效果:
如何将SketchUp插件添加到菜单栏及工具条_第4张图片

在执行代码后SketchUp菜单栏新增了扩展程序菜单,SketchUp工作区中新增了工具条。

打包并安装插件

在SketchUp中安装的扩展程序是以.rbz后缀的文件,我们将写好的插件压缩为.rbz即可。
然后在SketchUp中点击【扩展程序管理器】安装就可以了。
另一种把你保存的代码文件放在Plugins文件夹下,重启SketchUp就可以了。

公众号

下面的是我的公众号二维码图片,欢迎关注。
如何将SketchUp插件添加到菜单栏及工具条_第5张图片

下期预告

讲解工具条插件图标及插件目录格式

引用
声明|原创
公众号:老顽童与小东邪
欢迎关注我,一起学习,一起进步!

你可能感兴趣的:(Sketchup)