三、Sketchup用ruby进行二次开发--实体类和构件图类
2014-08-02 16:38
375 查看
实体类是所有可画图形的子类,如下图所示。实体类的主要子类是构件图类,构件图类是我们今后重点学习的类,包括Image、Text、Edge、Face、Group、Component
Definition和Component Instance。下面对这两个类做简要说明。
1、实体类(Entity)
如上图所示,实体类位于继承关系的顶部,他包含的方法可以被他的所有子类所继承,其中一些方法提供了实体的基础信息,如:
•entityID——返回识别一个实体的唯一ID。
•typename——定义实体的类别(边,面等)。
•valid?/deleted?——定义这个实体是否能够被访问。
•model——返回设计的模型对象。
构件图类是所有Edge, Face, Group, Image, Text,Component Definition和 Component Instance类的父类。它包含的一些方法用于如何把元素图形在Sketchup中显示出来,并设置一些元素的属性信息,例如阴影、组成材质等。
构件图类提供的一个最有用的方法叫bounds,这个方法返回一个BoundingBox对象。它的用法如下所示。
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,一个用于得到边的长度,另一个用于分割边,用法如下:
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] --> #<Sketchup::Edge:0x767be50> test_line.typename --> Edge test_line.entityID --> 18952、构件图类(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] <pre name="code" class="html">--><span style="font-family: Arial, Helvetica, sans-serif;"> #<Sketchup::Edge:0x767ab18></span>box = new_line.bounds
--> <span style="font-family: Arial, Helvetica, sans-serif;">#<Geom::BoundingBox:0x76784d8></span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="csharp">box.center <pre name="code" class="html">--><span style="font-family: Arial, Helvetica, sans-serif;"> Point3d(1, 1, 2.5)</span>box.diagonal
--><span style="font-family: Arial, Helvetica, sans-serif;"> 5.74456264653803</span>
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 <pre name="code" class="html">--><span style="font-family: Arial, Helvetica, sans-serif;"> 6.70820393249937</span>new_line = line.split [4, 2, 0]line.length
--><span style="font-family: Arial, Helvetica, sans-serif;"> 4.47213595499958</span>line.start.position
--><span style="font-family: Arial, Helvetica, sans-serif;"> Point3d(0, 0, 0)</span>line.end.position
--><span style="font-family: Arial, Helvetica, sans-serif;"> Point3d(4, 2, 0)</span>new_line.length
--><span style="font-family: Arial, Helvetica, sans-serif;"> 2.23606797749979</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="ruby">new_line.start.position
--><span style="font-family: Arial, Helvetica, sans-serif;"> Point3d(4, 2, 0)</span>new_line.end.position
--><span style="font-family: Arial, Helvetica, sans-serif;"> Point3d(6, 3, 0)</span>
相关文章推荐
- 五、Sketchup用ruby进行二次开发--创建图形(面及pushpull、followMe方法的应用)
- 六、Sketchup用ruby进行二次开发--创建球体
- 一、Sketchup用ruby进行二次开发--简述
- 七、Sketchup用ruby进行二次开发--利用Transformation实现Move工具(平移、旋转和缩放)
- 一、Sketchup用ruby进行二次开发--简述
- 四、Sketchup用ruby进行二次开发--Edge Arrays: Curves, Circles, Arcs和 Polygons
- 二、Sketchup用ruby进行二次开发--Sketchup转换操作符
- Sketchup二次开发之利用Ruby绘制直线
- SketchUp + Ruby 二次开发初识
- Sketchup二次开发之利用Ruby绘制直线
- control-m中 利用 bmc 公司提供的api 进行二次开发 介绍
- 利用C#进行AutoCAD的二次开发(三)
- 在Delphi中进行指纹仪的二次开发
- 适用nb6进行ruby开发的视频教程
- 用VC++进行MapX二次开发
- 在Delphi中进行指纹仪的二次开发
- 如何进行ArcIMS的二次开发
- 继承父类进行二次开发
- 利用C#进行AutoCAD的二次开发
- 用VC++进行MapX二次开发::之二------使用MapX的基石