这一章的话,主要是介绍如何将自已写的插件添加到草图的菜单内。
01.下面,我们开始吧,先将代码复制到 Ruby 代码编辑器 内测试运行。
mod = Sketchup.active_model # 打开模型
ent = mod.entities # 模型中的所有实体
sel = mod.selection # 当前选择
#============创建自定义菜单==============
cmd = UI::Command.new('绘制球体'){
#============创建工具窗口==============
prompts = ['半径(mm)']
defaults = [@radius.to_f]
title = '创建球体'
input = UI.inputbox(prompts,defaults,title)
#============创建球体==============
qx1 = ent.add_circle [0,0,0],[0,1,0],15.cm
qx1m = ent.add_face qx1
qx2 = ent.add_circle [0,0,0],[0,0,1],16.cm
qx1m.followme qx2
ent.erase_entities qx2
}
menu = UI.menu('extensions')
menu.add_item(cmd)
02.运行完毕后,我们会在扩展重新那一栏找到我们刚才添加的那个名字为 绘制球体 的菜单。
03.点击菜单后、弹出的对话框效果如下。
下面、我们来对代码进行一下讲解吧。
前3行:Ruby 代码编辑器 的默认代码,这一块我们先不进行任何改动。
第5-17行(如下):
cmd = UI::Command.new('绘制球体'){
#============创建工具窗口==============
prompts = ['半径(mm)']
defaults = [@radius.to_f]
title = '创建球体'
input = UI.inputbox(prompts,defaults,title)
#============创建球体==============
qx1 = ent.add_circle [0,0,0],[0,1,0],15.cm
qx1m = ent.add_face qx1
qx2 = ent.add_circle [0,0,0],[0,0,1],16.cm
qx1m.followme qx2
ent.erase_entities qx2
}
cmd = UI::Command.new(‘绘制球体’) :这一段中、.new 后面括号里面的是我们在菜单里面看到的插件名称,注意名称两侧要带上英文单引号。
{ } :大括号内则是点击这个菜单以后要执行的命令,这里添加的是一个对话框。
prompts 是那个对话框内的文字提示内容,然后 defaults 是文字内容后方的输入框、用来输入我们要进行设置的数值,title 是弹出的这个对话框的名称,这些都是定义UI界面的内容的代码,下面的 input 是创建对话框。
接着下面就是上一章提到的 创建球体 的代码了。
倒数第二行 menu = UI.menu(‘extensions’) 这一行是用来设置我们的菜单要出现在哪一个菜单栏菜单里面的、比如 extensions 就是 扩展程序 菜单,下面将其它菜单的相关英文名称都列出来了,在使用时可以参考一下。
文件(F) | 编辑(E) | 视图(V) | 相机(C) | 绘图(R) | 工具(T) | 窗口(W) | 扩展程序 | 帮助(H) |
File | Edit | View | Camea | Draw | Tools | Window | Extensions | Help |
最后一行 这一行则是将我们设定好的菜单添加到菜单栏菜单里面去。
明白了代码组成,我们可以在此基础上做到更多:
如下方的代码,就是在上面的基础上,将对话框输入的数值指定为我们的圆半径大小。
cmd = UI::Command.new('绘制球体'){
#============创建工具窗口==============
prompts = ['半径(mm)']
defaults = [@radius.to_f]
title = '创建球体'
input = UI.inputbox(prompts,defaults,title)
#============创建球体==============
qx1 = ent.add_circle [0,0,0],[0,1,0],input[0] # input [0]的意思是指获取到对话框输入的数组的的第0个值。
qx1m = ent.add_face qx1
qx2 = ent.add_circle [0,0,0],[0,0,1],16
qx1m.followme qx2
ent.erase_entities qx2
}
menu = UI.menu('extensions')
menu.add_item(cmd)
或者是像下面这样,让我们的圆球的半径和段数都能自已定义。
mod = Sketchup.active_model # 打开模型
ent = mod.entities # 模型中的所有实体
sel = mod.selection # 当前选择
#============创建自定义菜单==============
cmd = UI::Command.new('绘制球体2'){
#============创建工具窗口==============
prompts = ['半径(mm)','段数']
defaults = [@radius.to_f,24]
title = '创建球体'
input = UI.inputbox(prompts,defaults,title)
#============创建球体==============
qx1 = ent.add_circle [0,0,0],[0,1,0],input[0],input[1]
qx1m = ent.add_face qx1
qx2 = ent.add_circle [0,0,0],[0,0,1],16,input[1]
qx1m.followme qx2
ent.erase_entities qx2
}
menu = UI.menu('extensions')
menu.add_item(cmd)
本文结束,水平有限,仅供参考。。。
本文是根据 一片叶 大佬的视频来进行操作的,可以前往大佬的B站查看视频教程。
另外,也参考了知乎大佬 nicaicai 的文章。
暂无评论
要发表评论,您必须先 登录