最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
.NET 开发AutoCAD2006指南(二)
时间:2022-07-02 10:54:40 编辑:袖梨 来源:一聚教程网
在上一篇文章中向大家简单讲了.NET开发AutoCAD的流程,其中介绍了我编写的一个简化程序开发的ZHFARX库。下面向大家介绍ZHFARX库中的主要函数及如何用它来编写.NET程序。关于ZHFARX库的所有函数的说明,请大家参考本章附件中的ZHFARX帮助文档。
在介绍ZHFARX库之前,让我们首先来了解一下有关的基本概念。你可以把AutoCAD看作为一个数据库,而AutoCAD中有关的东西都放在这个数据库的相关表中。例如,你用Line命令在AutoCAD的模型空间中添加了一条直线,那么AutoCAD会创建一个直线类的实例并把它加入到数据库的模型空间块表记录中。在传统的C++编写ObjectARX程序的时候,你必须首先打开当前数据库的块表(因为模型空间是在块表中的),然后打开模型空间对应的块表记录,在记录中加入直线类的实例,然后分别关闭块表和模型空间块表记录。而在.NET程序中,相应的代码编写是这样的:
Database db= Application.DocumentManager.MdiActiveDocument.Database;
//获得当前数据库
DBTransMan tm=db.TransactionManager;
//获取事务处理
using(Transaction trans=tm.StartTransaction())//开始事务处理
{
BlockTable bt=(BlockTable)tm.GetObject(db.BlockTableId,OpenMode.ForRead,false);
//打开当前数据库的块表
BlockTableRecord btr=(BlockTableRecord)tm.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite,false);
//打开模型空间块表记录
btr.AppendEntity(ent);//在记录中加入实体
tm.AddNewlyCreatedDBObject(ent,true);//
trans.Commit();//提交事务
在介绍ZHFARX库之前,让我们首先来了解一下有关的基本概念。你可以把AutoCAD看作为一个数据库,而AutoCAD中有关的东西都放在这个数据库的相关表中。例如,你用Line命令在AutoCAD的模型空间中添加了一条直线,那么AutoCAD会创建一个直线类的实例并把它加入到数据库的模型空间块表记录中。在传统的C++编写ObjectARX程序的时候,你必须首先打开当前数据库的块表(因为模型空间是在块表中的),然后打开模型空间对应的块表记录,在记录中加入直线类的实例,然后分别关闭块表和模型空间块表记录。而在.NET程序中,相应的代码编写是这样的:
Database db= Application.DocumentManager.MdiActiveDocument.Database;
//获得当前数据库
DBTransMan tm=db.TransactionManager;
//获取事务处理
using(Transaction trans=tm.StartTransaction())//开始事务处理
{
BlockTable bt=(BlockTable)tm.GetObject(db.BlockTableId,OpenMode.ForRead,false);
//打开当前数据库的块表
BlockTableRecord btr=(BlockTableRecord)tm.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite,false);
//打开模型空间块表记录
btr.AppendEntity(ent);//在记录中加入实体
tm.AddNewlyCreatedDBObject(ent,true);//
trans.Commit();//提交事务
相关文章
- 王者荣耀星之破晓先遣测试停服 12-04
- 光遇12.4大蜡烛在哪里 光遇12月4日大蜡烛位置攻略 12-04
- 无限暖暖公测兑换码有哪些 无限暖暖公测版本兑换码介绍 12-04
- 绝区零当三明治来敲门怎么玩 绝区零当三明治来敲门活动介绍 12-04
- 奇迹暖暖绮彩木马搭配攻略 奇迹暖暖绮彩木马过关攻略 12-04
- 光遇12.4每日任务怎么做 光遇12月4日每日任务做法攻略 12-04