在前面的几个章节中我们主要是给小 伙伴们展示了我们能在SkecthUp中 做些什么,重在展示视觉方面,所见 即所得。讲得是比较实用的技能。 接下来 我们具体来看看代码应该怎么写,点 、线面、群组、组件、组件定义、图 层等实体对象。探究它们是如何从点 线面组变成高楼大厦的。 这章就聊聊【点、线、面】
0 1、点【Point3d】对象 Point3d类使您可以处理3D空间中的 点。该点基本上只是一系列代表x,y 和z坐标的值。参数值指定为[x,y,z]。 调用方法: #无参数时,在原点创建一个点
pt1 = Geom::Point3d.new# 创建一个x为100,y为200,z为300的点
pt2 = Geom::Point3d.new(100,200,300)
除了下面的方法之外,Array类还包含 一系列与几何相关的方法,因为 Point3d对象也可以表示为3元素数组 调用方法: # 也可以用三维数组来创建一个点
pt3 = [100,200,300]
在Point3d对象中常用的方法: 1、计算两个点之间的距离 #distance(point2) ⇒ Length
调用方法: point1 = Geom::Point3d.new(1,1,1)
point2 = Geom::Point3d.new(10,10,10)
distance = point1.distance(point2) # =>~ 396 mm
2、通过向量偏移点并返回新点。 向量的长度不能为零。点本身不变 #offset(vector, length = vector.length) ⇒ Geom::Point3d
会改变点本身 #offset!(vector, length = vector.length) ⇒ Geom::Point3d
调用方法: point1 = Geom::Point3d.new(10,10,10)
vector = Geom::Vector3d.new(0, 0, 1)
point2 = point1.offset(vector) # point1本身不改变
point3 = point1.offset!(vector) # point1本身被改变
还有很多比重要的方法如: transform、project_to_line、project_to_plane、on_line?、on_plane? 小伙伴可以下去实践一下,在后期的制作中也会讲解到
0 2、线【Edge】类 Edge类包含修改和 提取边缘信息的方法 它继承于Drawingelement类 它的创建方法在entities对象提供 edge = entities.add_line pt1, pt2
在Edge类中常用的方法很多: 用来检索连接到边的所有实体,包括边本身 2、两条边的公共面 #common_face(edge2) ⇒ Sketchup::Face?
示例: 3、边相连的所有面 4、边平滑 #smooth=(value) ⇒ Boolean #设置平滑边#smooth? ⇒ Boolean #判断边是否被平滑
5、边柔化 #soft=(value) ⇒ Boolean # 设置柔化边#soft? ⇒ Boolean #判断边是否被柔化
6、边的所有端点 注意:返回顶点对象的数组并不是Point3d对象。 在这一部分很有趣,小伙伴可以动手熟悉一下这些方法。 03、面【Face】类 在SketchUp中面是指有三边 或更多边的封闭的多边形。 我们知道面是有点和线构成的,所以 在Face类中提供了获取面信息的方法 跟edge一样face的创建由entities提供 创建方法: face = entities.add_face(points) # points是一组有序的点
face = entities.add_face(edges) # edges是一组有序的边
同样在Face类中也提供了很多方法: 1、连接到face上的所有实体,包括face本身 2、面上的材质 model = Sketchup.active_model
sel = model.selection.first # 选中一个face
sel.material = "red" # 给face正面赋材质
sel.back_material = "blue" # 给face反面赋材质
效果: 3、跟随followme model = Sketchup.active_model
sel = model.selection
face = sel.find{|e| e if e.is_a?(Sketchup::Face)} # 找到face
edges = sel.select{|e| e if e.is_a?(Sketchup::Edge) } # 找到要跟随的路径
face.followme(edges)
效果: 在Face类中还有edges、loops、 normal、outer_loop、pushpull、 vertices等比较重要的方法。在编程 中用到的也很多需要我们牢牢的掌握 欢迎关注 公众号‘老顽童与小东邪’ 往期推荐
|