三、Sketchup用ruby进行二次开发--实体类和构件图类

    实体类是所有可画图形的子类,如下图所示。实体类的主要子类是构件图类,构件图类是我们今后重点学习的类,包括Image、Text、Edge、Face、Group、Component

Definition和Component Instance。下面对这两个类做简要说明。

    1、实体类(Entity)

如上图所示,实体类位于继承关系的顶部,他包含的方法可以被他的所有子类所继承,其中一些方法提供了实体的基础信息,如:

•entityID——返回识别一个实体的唯一ID。

•typename——定义实体的类别(边,面等)。

•valid?/deleted?——定义这个实体是否能够被访问。

•model——返回设计的模型对象。

test_line = Sketchup.active_model.entities.add_line [0,0,0], [1,1,1]
-->  #
test_line.typename
--> Edge
test_line.entityID
--> 1895
   2、构件图类(The Drawingelement Class)

构件图类是所有Edge, Face, Group, Image, Text,Component Definition和 Component Instance类的父类。它包含的一些方法用于如何把元素图形在Sketchup中显示出来,并设置一些元素的属性信息,例如阴影、组成材质等。

构件图类提供的一个最有用的方法叫bounds,这个方法返回一个BoundingBox对象。它的用法如下所示。

new_line = Sketchup.active_model.entities.add_line [0,0,0], [2,2,5]
--> #
box = new_line.bounds
--> #
box.center
--> Point3d(1, 1, 2.5)
box.diagonal
--> 5.74456264653803
 
  
 
  
 2.1边类(Edge) 
  

对于众多的构件图类,最容易理解是的边类(Edge),两点成线,这就是边。下面的语句是添加一条起点为(5,0,0),止点为(10,0,0)的边。

Sketchup.active_model.entities.add_line [5, 0, 0], [10, 0, 0]

在Sketchup中,边的端点用Vertex对象来表示,边类的一些方法就是用来处理端点的:

• vertices ——返回边的两个节点对象( Vertex )• start/end ——返回边的起点或止点对象• other_vertex —— 用边的一个节点得到边的另一个端点• used_by? ——表示一个节点是否在边上

下面再说说边类另外两个方法length和split,一个用于得到边的长度,另一个用于分割边,用法如下:

line = Sketchup.active_model.entities.add_line [0, 0, 0], [6, 3, 0]
line.length
--> 6.70820393249937
new_line = line.split [4, 2, 0]line.length
--> 4.47213595499958
line.start.position
--> Point3d(0, 0, 0)
line.end.position
--> Point3d(4, 2, 0)
new_line.length
--> 2.23606797749979
new_line.start.position
--> Point3d(4, 2, 0)
new_line.end.position
--> Point3d(6, 3, 0)

 
  
 
   
  


你可能感兴趣的:(Sketchup+ruby开发)