C#操做CAD-读取和修改数据

咱们操做cad最主要的目的就是读取和修改或者删除数据,由于内容较多,在此咱们先讲一下基础,后续慢慢讲解。数据库

一、cad数据读取和修改前都要进行锁定操做,以免一个文档被多个用户修改而发生冲突。spa

复制代码
Database db = HostApplicationServices.WorkingDatabase; //当前数据库 
            using (Transaction tr = db.TransactionManager.StartTransaction()) //using,自动调用Dispose方法
            { 
                //处理过程
                tr.Commit(); 
                //事务提交
            }
复制代码

二、咱们在处理过程当中输入本身想要的代码就能够正常操做了,要否则会报错的。code

而后咱们就要进行图形数据的读取了,可是由于内容太多,因此会后续更新,在此简单附上一个在屏幕上选择单个实体的代码。blog

复制代码
public static Entity Select(string word)
        {
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database; Editor ed = doc.Editor;
            Entity entity = null;
            PromptEntityResult ent = ed.GetEntity(word);
            if (ent.Status == PromptStatus.OK)
            {
                using (Transaction transaction = db.TransactionManager.StartTransaction())
                {
                    entity = (Entity)transaction.GetObject(ent.ObjectId, OpenMode.ForWrite, true);
                    transaction.Commit();
                }
            }
            return entity;
        }
复制代码

三、咱们读取的数据通常都是多个,因此要进行遍历筛选处理。事务

复制代码
using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                foreach (DBObject ob in texts)
                {
                    DBText text = (DBText)transaction.GetObject(ob.ObjectId, OpenMode.ForWrite, true);
                    ………………………………操做内容
                }
                trans.Commit();
            }
复制代码
相关文章
相关标签/搜索