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

规范插件目录

在上一章节中我们提到了将插件放在Plugins目录下,
我们继续来看看怎么优雅的将自己的代码放在Plugins目录下。
我们打开Plugins目录,看看系统默认的插件格式。

从个上面这个目录可以看出每个插件在目录中的形式是:
一个文件夹和一个.rb的文件
在这个文件夹中存放的是我们插件的文件
而这个.rb文件的功能就是加载文件夹中插件的主文件

插件示例

我们来把之前的插件整理一下,跟软件默认保持一致
在Plugins目录下创建了一个lwt_load.rb文件及lwt_plug文件夹。如图1:

插件图标

在上一章节的插件中我们是没有给它添加工具图标的。其代码如下:

cmd.large_icon = cmd.small_icon = "lwt_plug/image/toolSphere.png"

我们可以自己制作一个自己喜欢的图标,由于本人比较懒,所以在这里给大家推荐两个下载图标的连接:
链接一:https://www.easyicon.net/
链接二:https://www.iconfont.cn/
我们将下载好的图标放在image文件夹下,如图:

到这里我们准备工作已经做好了。

lwt_load.rb文件

1、加载shpere.rb文件

path = File.dirname(__FILE__).force_encoding('utf-8')
files = [File.join(path, 'lwt_plug/sphere.rb'),
]
files.each{|file|next unless File.file?(file)load file
}

把文件路径存放在files数组中,这样写的好处在于后期新增插件时,直接将路径追加到files中即可。
2、创建工具条

menu = UI.menu('Extensions')
toolbar = UI::Toolbar.new "老顽童工具条"
cmd = UI::Command.new("create_sphere"){LWT.create_sphere # 调用创建球体插件
}
cmd.large_icon = cmd.small_icon = "lwt_plug/image/toolSphere.png"
cmd.tooltip = "创建球体"
cmd.status_bar_text = "这是创建球体的插件"
toolbar.add_item cmd
toolbar.show
menu.add_item cmd

在上一章节中为了方便大家理解,我将这部分代码放在了sphere.rb文件中,现在把这部分代码抽离出来是为了后期新增工具时不用再创建工具条,直接追加在这个工具条中。

sphere.rb文件

在这个文件中只存放功能代码,方便阅读及新增功能。

class LWTdef 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
end

我们把这个方法封装为一个类,也是为了尽可能规范代码,增加可读性。

工具条效果

带有图标的工具就完成了

老顽童与小东邪公众号

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

下期预告

讲解SketchUp API Tools类

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

SketchUp扩展程序规范相关推荐

  1. 分享几个实用的Chrome扩展程序

    前言 吐槽一下自己,最近变懒了,博客已经变成月更了.这次分享几个自己工作这几年下来,平常用的比较多的几个谷歌浏览器的扩展程序. AdBlock 最受欢迎的 Chrome 扩展,拥有超过 6000 万用 ...

  2. safari 扩展_为什么构建Safari应用扩展程序是2020年的噩梦

    safari 扩展 Safari App Extensions is the new way of Apple to develop Safari Extensions along with Coco ...

  3. 使用 Serverless 为后端服务开发一个有趣的 Chrome 扩展程序

    何遇 「何遇」是一款Chrome扩展程序,其主要的功能是当你在 Chrome 浏览器中打开一个新的Tab页面时,空白页会展示出一些有趣的插图.句子.电影截图等,给苦涩的搬砖生活增添一丝乐趣,效果如下: ...

  4. 如何将非官方扩展程序加入chrome的白名单

    从https://github.com/haotian-wang/google-access-helper下载下来的文件夹解压 访问chrome://extensions,勾选☑开发者模式,点击&qu ...

  5. Chrome资深粉热衷的10个必备扩展程序

    如果你是Chrome用户,你应该很清楚扩展程序架构可以扩充功能,让Chrome不只是浏览器.事实上,有了合适的一组扩展程序,Chrome可以变成一种生产力很高的手段.不相信我?只要看看Chrome W ...

  6. 获取当前横竖屏_Chrome扩展程序一键生成网页骨架屏

    对于依赖接口渲染的页面,在拿到数据之前页面往往是空白的,为了提示用户当前正在加载中,往往会使用进度条.loading图标或骨架屏的方式.对于前两种方案而言,实现比较简单:本文主要研究骨架屏的应用及实现 ...

  7. Selenium启动Chrome浏览器提示“请停用以开发者模式运行的扩展程序”的解决办法

    安装了selenium,python运行下面代码: from selenium import webdriverbrowser = webdriver.Chrome() browser.get('ht ...

  8. 如何删除Safari浏览器的扩展程序 大神教你搞定

    对于 Mac 用户来说,在 Safari 浏览器中添加扩展程序是非常有用的,用苹果的话来说就是"让你用自己想要的方式来探索网络".那么问题来了,我们应该如何删除这些扩展程序呢?如果 ...

  9. 用 TS + Vue 写了一个在 Chrome 中运行 Prettier 格式化的扩展程序

    在介绍 prettier-chrome 之前请允许我先介绍一下什么是 Prettier 如果你已经知道这是什么了并且已经会配置了,那么你可以直接跳到 prettier-chrome 的介绍 什么是 P ...

最新文章

  1. 用Python就可以给你的头像戴上圣诞帽,别@微信团队了!
  2. Input.GetTouch 获取触摸
  3. layui table 单元格适应宽高
  4. 【Linux】一步一步学Linux——man命令(有问题找男人)(13)
  5. 图像特效——摩尔纹 moir
  6. cordic ip核 vivado_Xilinx Vivado CORDIC IP求解atan 反正切
  7. Thrift介绍与应用(三)—hbase的thrift接口
  8. 步步为营,重构出模式(2)
  9. VB 判断当前是否连接网络API实现
  10. uat测试用例和sit测试用例_测试理论——SIT测试 和 UAT测试概念
  11. 在JMP中拆分数据集有烦恼?这些实用妙招试试看!
  12. 2021-02-19
  13. Python+Opencv检测模糊图片
  14. Magicodes.IE在.NET Core中通过请求头导出多种格式文件
  15. WISP Client+AP WDS  的区别
  16. Oracle数据库之PL/SQL程序设计基础
  17. SQL语言-更新操作命令
  18. 【有利可图网】PS实战系列:用ps做出雨中油画的质感
  19. 用Python制作一个文件加密器(支持中文)
  20. 读书笔记: 《亿级流量网站架构核心技术》(开涛的那本)

热门文章

  1. android mtk6592 添加led三色灯,红色蓝色绿色
  2. 超高人气机型 诺基亚N78手机图赏及评测
  3. 【180720】打字游戏源码
  4. ios8.1.2耗电情况严重的解决方法
  5. awesome图标库
  6. 【华为Hilink SDK Linux系统开发】第三章:华为hilink SDK Linux系统网关适配
  7. ubuntu安装budgie桌面
  8. 知乎7000赞的通识教育书单
  9. ​专注制造业云SRM,携客云“多快好省”助力智能制造
  10. web端分屏异显实现-Angular+Electron