五、Sketchup用ruby进行二次开发--创建图形(面及pushpull、followMe方法的应用)

本文介绍了如何使用SketchUp的Ruby API进行二次开发,讲解了创建面、运用push/pull和followMe方法创建三维体的过程。详细讨论了add_face方法创建面的要点,包括点的顺序对生成面的影响,以及classify_point方法的使用。此外,还探讨了pushpull方法的拉伸原理,并通过示例展示了如何利用该方法进行切割操作。最后,提到了followMe方法沿着路径扩展面的功能,并给出多个实例来说明其用法。
摘要由CSDN通过智能技术生成

在上一节讲到了如何创建直线、曲线、圆及弧线,本节讲如何创建面和使用push/pull和Follow Me方法对面进行推拉创建三维体。

1、创建面

创建面使用的方法是add_face,也是继承于Entities父类。add_face的参数是由一系列用逗号分割开的点或边,下面看看代码如何实现。

# 先创建五个点
pt1 = [0, 1, 0]
pt2 = [-0.951, 0.309, 0]
pt3 = [-0.588, -0.809, 0]
pt4 = [ 0.588, -0.809, 0]
pt5 = [ 0.951, 0.309, 0]
# 用这五个点画一个面
pent = Sketchup.active_model.entities.add_face pt1, pt2, pt3,
pt4, pt5
# 打印出这五个点的坐标信息
puts "Point 0: " + pent.vertices[0].position.to_s
puts "Point 1: " + pent.vertices[1].position.to_s
puts "Point 2: " + pent.vertices[2].position.to_s
puts "Point 3: " + pent.vertices[3].position.to_s
生成的图形就是一个五边形

特别注意的是点的顺序非常重要,如果把pt2和pt3的顺改变一下,这个图形看起来就不像一个五边形了。但改变点的顺时针方向或逆时针方向是没有关系,依然是五边形。

有趣的是生成的面的正面符合右手定理,即如果点的顺序是顺时针方向,它的正面向量就是(0,0,-1),我可以用代码验证一下。面的方向在push和pull中会用到&#x

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值