Java教程第9章块和属性_第1页
Java教程第9章块和属性_第2页
Java教程第9章块和属性_第3页
Java教程第9章块和属性_第4页
Java教程第9章块和属性_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、块和属性,主讲人:李恒凯 联系电话电子邮件: QQ:20297327,本次课内容,1 创建不带属性的块 2 创建带属性的块 3 插入块参照 4 遍历参照中的实体 5 在当前文件中插入外部文件中的块,1 创建不带属性的块,说明 思路 步骤 效果 小结,说明,介绍如何创建不带属性的简单块。实例将会创建一个名为Room的块,它是由四条多段线组成的矩形,用来表示一个房间。,思路,AutoCAD的块是存储在块表记录中的实体对象的集合。 每个块从一个BlockBegin对象开始,紧接着是一个或多个Enity对象,最后以BlockEnd对象结束。,创建块的基本步骤,创建一个Bloc

2、kTableRecord对象并设置块的名称。 利用Transaction类的GetObject()函数获得当前图形的块表对象。 创建组成块的实体对象。 调用BlockTableRecord类的成员函数AppendEntity将组成块的实体写入块表记录中。 调用BlockTable类的Add函数将创建的块表记录写入当前图形的块表中。,步骤,新建一个类库项目,添加引用,添加CreateBlock函数,用于创建一个块。 指定基点。 注册命令CB,用于调试CreateBlock函数。,见VS.NET,效果,小结,BlockTableRecord类的常用属性与方法。 创建块的基本步骤。 通过Polyli

3、ne2d类创建多段线。,2 创建带属性的块,说明 思路 步骤 效果 小结,说明,介绍如何创建带属性的块。 实例会创建一个名为RMNUM的块,它是在上一节创建的Room块的基础上再加上一个表示房间号码的属性NUMBER。,思路,属性块由构成块的实体和附加信息(属性)组成。因此,定义属性块主要包括块和属性的定义。 其中块的定义与上一节不带属性的简单块完全相同,属性的定义主要是通过调用表示属性的AttributeDefinition类的有关属性和函数来实现。,具体方法,创建AttributeDefinition属性定义类对象的实例并设置对象的属性值。 由于块的属性定义也可以看作为块中的实体,可以通过

4、块表记录类的成员函数AppendEntity()将属性定义附加到块中。,属性定义的属性值主要包括,属性文字的插入点、高度、旋转角度、对齐方式和宽度。 属性提示(Prompt)。 属性的默认值。 属性的模式,如不可见方式(Invisible)、常量方式(Constant)、验证方式(Verify)、 预置方式(Preset)。 属性标签名(Tag)。,步骤,添加CreateBlockWithAttributes函数,用于创建一个带属性的图块。 在MyBlock类中注册命令CBWA,用于调试CreateBlockWithAttributes函数。,效果,小结,块属性的定义及设置 创建属性块的基本步

5、骤 属性定义类AttributeDefinition的使用,3 插入块参照,说明 思路 步骤 效果 小结,说明,如何将块插入到AutoCAD的图形中? 介绍插入参照块的方法。,思路,DatabaseServices命名空间中的BlockReference类代表块参照。 public BlockReference(Autodesk.AutoCAD.Geometry.Point3d position, Autodesk.AutoCAD.DatabaseServices.ObjectId blockTableRecord),position参数表示块参照的插入点,blockTableRecord参数

6、是块参照所属的块对象的0bjectId。,思路,块参照的插入与一般实体的插入过程是一样的, 都是先后调用BlockTableRecord类的AppendEntity函数及Transaction类的AddNewlyCreatedDB0bject函数来进行。 块参照中的属性实体由DatabaseServices命名空间中的AttributeReference类表示,它其实是一个单行文本对象,由DBText类派生。,块参照添加属性实体的步骤,打开块参照所属的块表记录对象; 对块表记录对象中的实体进行循环遍历, 如果实体是属性定义对象, 则根据它的标识(Tag属性)为块参照属性对象设置属性值; 获取块

7、参照对象的属性集合对象来为块参照添加新创建的属性参照对象。,步骤,打开上一节创建的类库项目, 在MyBlock类中添加InsertBlockRef函数, 用于在AutoCAD图形中插入不带属性的块参照。 在MyBlock类中添加InsertBlockRefWithAtt函数,用于在AutoCAD图形中插入带属性的块参照。,效果,小结,块参照的定义 块属性参照的定义 在当前图形中加入块参照及属性,4 遍历块参照中的实体,说明 思路 步骤 效果 小结,说明,介绍如何对块参照中的实体进行浏览与修改。实例主要介绍了对块参照属性的操作,块参照中的非属性实体的操作与之类似。,思路,块参照中的非属性对象是不

8、能通过块参照访问的,只能先通过BlockReference类的BlockTableRecord属性获得块参照所属的块表记录对象的ObjectId,然后通过事务处理对象来对块表记录中的实体对象进行访问。 块参照的属性由BlockReference类的AttributeCollection属性提供,它是一个集合对象,因此可以使用循环语句对其包含的对象进行遍历,以达到访问它们的目的。,步骤,打开上一节创建的类库项目,注册BrowseBlock命令,用来显示中选择的块参照对象的有关信息 添加ChangeBlock函数,用来改变块参照的相关属性。 注册ChangeBlockAtt命令,用来调用Chang

9、eBlock函数。,效果,小结,块参照中属性的遍历 块参照中属性的修改,5 在当前文件中插入外部文件中的块,说明 思路 步骤 效果 小结,说明,将介绍如何在当前AutoCAD数据库中导入其他文件中的块,但文件本身是不会被当作一个块导入的。,思路,首先定义一个数据库对象来表示包含块的文件, 该数据库对象会被加载到内存中但不会被显示在AutoCAD窗口中。 调用Database类的ReadDwgFile函数将外部Dwg文件读入到新创建的数据库对象中。 调用Database类的WblockCloneObjects函数将外部Dwg文件中的块对象复制到当前数据库中。,步骤,添加ImportBlocksFromDw9函数, 用于导入外部文件中的块, 其中输入参数sou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论