为了账号安全,请及时绑定邮箱和手机立即绑定

Sketchup 程序自动化(一)基本结构

标签:
Ruby

image

在文章开始之前,我向说明以下两点:

1、我们怎么编写Sketchup 的Ruby脚本程序 ?脚本如何执行 ?

进行 Sketchup 二次开发的主要工具,是通过一款文本编辑插件rubyeditor,代码编写完成后,可通过点击运行按钮就可以在Sketchup界面看到运行的结果,控制台也会显示相关信息,比如报错信息等等。

在程序代码编写完毕后,我们可通过编辑插件进行保存,保存为.rb文件,Sketchup程序执行的目录为 Plugins 文件夹,我们需要把.rb文件放入其中。

# 找到本机的 Plugins 文件夹UI.openURL("file:///#{Sketchup.find_support_file('Plugins')}")

这样我们就可以控制台调用我们所编写的程序。在控制台输入:

# 后面为 Plugins 文件夹下的路径load "mycode/001.rb"

2、注释和程序调试

注释是我们对自己代码的备注,有利于提高我们代码的可读性,Sketchup 开发中可使用 “#” 号对单行代码进行注释,也可以使用“ =begin  =end” 的方式进行批量注释。

程序调试,主要是通过 “put” 方法对一些相关关键点进行打印输出,根据输出内容进行判断代码是否正确,当然我们也可以用来输出一些数据。比如:

# Sketchup 名称puts Sketchup.name# Sketchup 版本puts Sketchup.version# 当前加载模型的名字puts model.title# 这个档案是否进行存储puts model.modified?# 答应这个档案的位置puts model.path# 输出曲线的长度puts curve.length

进入正文,在开始对Sketchup进行二次开发时,我们首先需要了解 Sketchup 官方给出的主要的类族,整体结构有个认识。
对于实际开发而言,主要是对 Sketchup Module -> Model -> Entities 这三者有个清晰的认识。

image

Sketchup Module :是Sketchup专属的模组,处理软件层级的信息,比如设置本机的Sketchup设置选项,输出当前软件的语言,版本等等。

Model :Sketchup.active_model 返回的Model物件,是对当前Sketchup中物件的容器,我们主要使用它来处理容器中的这些物件。

image

# layers 图层:包含了所有的图层信息layers = model.layers# definitions 物件关联的元件定义definitions = model.definitions# materials 材质信息materials = model.materials# options 有关模型的设定选项options = model.options# pages 场景书面信息pages = model.pages# 返回了容器中所有的图形信息,这也是我们进行二次开发的主要战场。entities :model.entities

entities 数组中包含的是许多 Entity 对象,或者具体的说是Entity及其子类对象,每个 Entity 就是一个物件,比如点、线、面等等。

image

Entity 类也是一个超级类,提供了许多建立具体物件的方法,其中子类中的Drawingelement  为我们二次开发提供了大量对具体物件的操作API,画线画面等基本操作就是在这一层提供的,比如:add_line 、add_circle 返回一个Edge实体对象,add_face 返回face实体对象,这些对象都是Entity的子类Drawingelement的子类。



作者:ZhengRongXing
链接:https://www.jianshu.com/p/648089caf25f

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消