SketchUp二次开发模块介绍及使用

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

SketchUp模块介绍及使用

SketchUp模块

几乎所有的SketchUp开始都会访问三种基本的数据结构:SketchUp、Model和Entities。当我们明白他们运行原理,就可以开始使用代码来进行SketchUp扩展程序开发了。
这里我们来看看第一种数据结构SketchUp,它是一个模块,与我们在编程中接触到的类比较相似。后面我们将讨论模块的详细细节,现在我们只需要知道模块包含了一系列的方法及可以了。
SketchUp模块的方法访问属性涉及到SketchUp整个应用。我们来查看它如何运行的。

Ruby控制台

启动SketchUp,打开菜单栏中【窗口】中的【Ruby控制台】,如下图:
SketchUp二次开发模块介绍及使用_第1张图片

SketchUp方法

我们打开Ruby for SketchUp API 会发现在Sketchup模块下有很多的子模块、类及方法。在这里我们来看看在Ruby控制台中方法的调用。
如我们要查看当前SketchUp的版本号,我们则在控制台输入Sketchup.version,将会显示SketchUp的当前版本:
SketchUp二次开发模块介绍及使用_第2张图片
我们也可以输入Sketchup.os_language查看当前的语言或者使用Sketchup.get_locale查看应用的安装路径。
如果想查看所有的方法可以使用Sketchup.methods。
在Sketchup中最重要的一个方法是active_model,该方法返回当前我们所有的设计模型对象,下面是代码的使用实例:
model = Sketchup.active_model

Model对象

前面说了Sketchup模块涉及了整个SketchUp的应用,Model对象就代表了一个独立的SketchUp文件(*.skp),更准确的说是所有文件中的设计信息。当我们在SketchUp中打开一个文件时,所有的Sketchup模块的属性都是相同的,但是在活动的Model对象中都是一样的。
Model类中的方法提供关于当前设计的所有信息。
例如modified?方法是用来检测最后一次保存的文件是否有修改过。调用方法如下:

model = Sketchup.active_model
model.modified?

还有title方法返回当前设计的标题,description方法返回当前的文本描述,path方法返回当前设计文件的路径。还有一系列关于Model类的方法。
这些方法我大都使用来访问当前设计的对象容器。我们可以将Model当做一个容器。在这个容器对象中包含了许多的子容器对象,子容器对象又包含了许多的容器对象。如下图:
SketchUp二次开发模块介绍及使用_第3张图片
在Model容器中包含了六个子容器,在后面的章节中会一一介绍各个子容器对象。

代码案例分析

代码编辑器

在这里给新手推荐一款很好用的编辑器【Ruby Code Editor】,这款代码编辑器插件也是一位前辈开发的。
下载地址:http://pan.baidu.com/s/1ADdcM
安装方法:我们下载下来是以.rbz结尾的插件形式,可以直接打开SketchUp的【扩展程序管理器】安装扩展程序。

代码案例

今天我们来看一下SketchUp官网中的一张图片,在这里我们将对以下代码进行剖解分析
SketchUp二次开发模块介绍及使用_第4张图片
代码如下:

model = Sketchup.active_model
selection = model.selection.to_a
faces = selection.grep(Sketchup::Face)
faces.each do |face|
  face.pushpull(rand(20))
end

这里总共6句代码,其主要完成的功能是对选中的面进行一个随机值20以内的推拉操作。
第1句主要是获取当前所有设计模型对象;
第2句中返回选中的模型对象并且转换成数组;
第3句中获取到当前数组中所有的面数组;
最后each循环获取到的所有faces,对每个face执行pushpull操作。
rand(20)是获取一个20以内的随机数。

关注公众号

SketchUp二次开发模块介绍及使用_第5张图片
关注我了解更多

你可能感兴趣的:(Sketchup)