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

插件目录Plugins

我们想要在SketchUp平台上进行二次开发,就要了解它的基本规则。这里我们先来了解下我们插件安装后存放代码的地方,即Plugins文件夹。如图:

它被放置在用户目录中,所以只有只有用户安装了插件,在SketchUp菜单栏中才会出现【Extensions】或【扩展程序】菜单。如图:

否则看到的是这样的。如图:

总之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】的子菜单。我们运行一下代码查看效果:

有效的的菜单名有“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工具条上。

示例程序

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

def self.create_spheremod = Sketchup.active_model # Open modelent = mod.entities # All entities in modelgroup = ent.add_groupcircle = 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 cmdtoolbar.showmenu.add_item cmdfile_loaded(__FILE__)
end

我们来执行代码来看一下效果:

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

打包并安装插件

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

公众号

下面的是我的公众号二维码图片,欢迎关注。

下期预告

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

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

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

  1. python工作台_FreeCAD二次开发-创建Python工作台,添加菜单栏和工具条,FreeCAD命令

    FreeCAD作为一款基于OpenCasCAD内核的开源CAD软件,可以在GitHub上下载源代码.阅读源代码,有助于我们学习CAD软件架构,了解底层几何算法. 由博主Caesar卢尚宇自学整理(纯粹 ...

  2. [Eclipse]GEF入门系列(六、添加菜单和工具条)

    我发现一旦稍稍体会到GEF的妙处,就会很自然的被它吸引住.不仅是因为用它做出的图形界面好看,更重要的是,UI中最复杂和细微的问题,在GEF的设计中无不被周到的考虑并以适当的模式解决,当你了解了这些,完 ...

  3. eclipse安装、优化、配置、插件添加整理

    文章目录 说明 资料 下载安装 启动优化 配置 修改编码格式 设置字体大小 修改背景色 自定义new菜单 显示内存 复制上一行快捷键 自定义注释 增加插件下载dns 插件 安装svn 安装class查 ...

  4. sketchup 插件_SketchUp和Rhino插件现已可用于Unity Reflect

    sketchup 插件 New Unity Reflect release features plug-ins for SketchUp and Rhino, an Android Viewer, c ...

  5. php添加导航,wordpress网站导航栏如何添加导航菜单栏

    一个网站,一般都会有自己的导航菜单栏,这样方便用户分类查找.那么,在使用wordpress建站时,导航菜单一般都是能直接在后台设置的,也不需要其他插件或动作.现在我就以个人经验教大家wordpress ...

  6. su必备插件_建模必备逆天Sketchup插件I

    原标题:建模必备逆天Sketchup插件I 本周马克笔设计留学的安老师还是将给大家继续分享有关Sketchup的小知识.接下来几周将和大家分享几款在Sketchup中扮演着重要角色的逆天小插件,当你使 ...

  7. 如何使用WordPress插件添加约会预约日历

    约会预订插件可以轻松地以井井有条的方式管理访客,约会和日程. 诸如沙龙,水疗中心,律师事务所,医院和诊所之类的企业可以从这种系统中受益. 在本教程中,我将向您展示一种简单的添加方法. 如果您的业务需要 ...

  8. Mac电脑隔空投递如何添加到菜单栏?

    Mac隔空投递怎么添加到菜单栏?Mac系统想要将隔空投送这个功能显示在菜单栏,该怎么操作呢?下面我们就来看看详细的教程吧,需要的朋友欢迎参考! 具体步骤如下 1.在苹果电脑上,打开左上角苹果菜单,在菜 ...

  9. sketchup插件管理器速图外挂SuTool

    速图外挂SuTool是一款国人开发的sketchup插件管理器,原开发者为郑州大学建筑系一老师(校友哦!),利用该插件能方便的管理草图大师sketchup插件,其内置了很多常用的插件,比如2DTool ...

最新文章

  1. apache日志分析简介
  2. python计算文件中字母出现次数_python – 计算文本文件中字母的频率
  3. AD备份文件安装额外域控制器
  4. 工程师姓什么很重要!别再叫我“X工”!!!
  5. OPK修改操作系统信息 --oobe.xml
  6. 怎么关闭左下角的GL VERTS
  7. I2C原理及应用实例
  8. 《Python machine learning and practice》—— 良\恶性乳腺癌肿瘤预测
  9. 2018.08.29 NOIP模拟 pmatrix(线性筛)
  10. golang strconv包(类型转换、保留小数位)
  11. 职场80后新人修炼五诀
  12. Android AdapterViewFlipper
  13. go语言ATM小案例
  14. Matlab2016A安装步骤
  15. FSMC实现8080时序驱动SSD1963(LCD驱动芯片)--原理->编码
  16. 学计算机的看图写话,小老鼠上网看图写话
  17. Unity的读表,存档,读档
  18. js如何打开本地html文件,html、js获取本地文件夹路径,打开本地应用程序
  19. 助你掌握搜索神器,10个实用的Elasticsearch查询技巧
  20. 大数据要学什么?看看这份大数据课程大纲

热门文章

  1. 实验室服务器SSH连接问题的解决
  2. 【算法设计与分析】活动安排问题(动态规划和贪心算法)
  3. 【AT2291】Tournament
  4. 泛微OA-指定部门隐藏字段
  5. ManualResetEvent使用
  6. 解决800A0046没有权限问题
  7. canvas.drawArc
  8. iOS 开发常用辅助工具
  9. 啊哈c语言第四章第六节练习1
  10. DC-DC转换器参数-电源技术基础---和讯康讲堂