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

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

SketchUp模块介绍及使用

SketchUp模块

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

Ruby控制台

启动SketchUp,打开菜单栏中【窗口】中的【Ruby控制台】,如下图:
控制台

SketchUp方法

我们打开Ruby for SketchUp API 会发现在Sketchup模块下有很多的子模块、类及方法。在这里我们来看看在Ruby控制台中方法的调用。
如我们要查看当前SketchUp的版本号,我们则在控制台输入Sketchup.version,将会显示SketchUp的当前版本:
版本查看
我们也可以输入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当做一个容器。在这个容器对象中包含了许多的子容器对象,子容器对象又包含了许多的容器对象。如下图:
model对象容器
在Model容器中包含了六个子容器,在后面的章节中会一一介绍各个子容器对象。

代码案例分析

代码编辑器

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

代码案例

今天我们来看一下SketchUp官网中的一张图片,在这里我们将对以下代码进行剖解分析
示例效果
代码如下:

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以内的随机数。

关注我了解更多

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值