Ruby for SketchUp之Entities对象

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

Entities对象及Entity类

Entities对象

SketchUp中的每个几何对象都代表着一个Entitiy类或者它的子类,包括点,线,面,图片,文字,组件和群组。在设计中管理和修改Entity对象,我们需要接入主要设计的Entities容器,主要是对Entity对象进行增加、移动、选择、缩放及删除操作。
其操作实例如下:

model = Sketchup.active_model
entities = model.acive_entities
# 添加点
pt1 = Geom::Point3d.new(100,200,300)
point= entities.add_cpoint pt1
# 添加线
line = entities.add_line [100,0,0],[200,0,0]
# 删除线
entities.erase_entities line

还有很多的方法,在后期编程中我们都能用到。

Entity类

Entity类是在SketchUp中所有可绘制图形的超类。下面显示了Entity的所有子类:

Entity是一个顶级类,它下面的每一个子类都继承了它的方法。其中很多方法提供了Entity的基本信息,如下:

entityID - 返回Entity的唯一标识符

typename - Entity的几何类型 (线, 面等)

valid?/deleted? - Entity是否还可以访问

model - 返回设计的Model对象

这里我们来看一下如何调用这些方法:

1、首先在entities容器中添加一条线
添加边线
2、获取Entity的唯一标识符
线ID
3、获取Entity的几何类型(点、线、面等)
几何类型
在entity类中还有很多方法,需要我们去熟悉,去运用到我们的开发中。

实现方盒子功能

思路:要想实现一个方盒子,首先需要一个面,然后将个面推拉起来。由于面是由点跟线构成的,所以我们需要一组点。具体实现如下:
1、获取当前活动模型的句柄

model = Sketchup.active_model

2、获取当前模型实体句柄

entities = model.active_entities

3、在模型中添加face

# 添加face的点组
points = [
    Geom::Point3d.new(0,   0,   0),
    Geom::Point3d.new(1.m, 0,   0),
    Geom::Point3d.new(1.m, 1.m, 0),
    Geom::Point3d.new(0,   1.m, 0)
]
# 利用add_face方法把点组构成face
face = entities.add_face(points)

4、把创建好的face推拉为box

# 利用pushpull方法完成推拉操作
face.pushpull(-1.m)

到这里我们就完成了一个box的创建。完整代码:

model = Sketchup.active_model
entities = model.active_entities
# 添加face的点组
points = [
    Geom::Point3d.new(0,   0,   0),
    Geom::Point3d.new(1.m, 0,   0),
    Geom::Point3d.new(1.m, 1.m, 0),
    Geom::Point3d.new(0,   1.m, 0)
]
# 利用add_face方法把点组构成face
face = entities.add_face(points)
# 利用pushpull方法完成推拉操作
face.pushpull(-1.m)

公众号

下面的是我的公众号二维码图片,欢迎关注。
ruby sketchup
如果你觉得对你有帮助,欢迎赞赏,有你的支持,小东邪动力十足!

下期预告

讲解API中部分类方法

引用
参考|一米网校
微信公众号:老顽童与小东邪
欢迎关注我,一起学习,一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值