明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 758|回复: 1

通过Objectd能获得对象吗

[复制链接]
发表于 2014-12-18 12:26:37 | 显示全部楼层 |阅读模式
          Autodesk.AutoCAD.EditorInput.Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;           
           Database db = HostApplicationServices.WorkingDatabase;         
           PromptSelectionResult pkf = ed.SelectImplied();
            if (pkf.Status != PromptStatus.OK) return;
            ObjectId[] objIds = pkf.Value.GetObjectIds();
            if (objIds.Length > 1)
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("\n请选择一个对象");
            else
            {
               
                using (Transaction trans = db.TransactionManager.StartTransaction())
                {
                    ObjectId id = objIds[0];
                    Entity ent = trans.GetObject(id, OpenMode.ForWrite) as Entity;
                    ent.ColorIndex = 1;                  
                    trans.Commit();
                }

            }

选择一个对象后,知道该对象的ObjectID,能获取该对象的一些属性吗?每次执行都出错在Entity ent = trans.GetObject(id, OpenMode.ForWrite) as Entity;这句话。希望大侠帮忙看看。不要因为太简单不理我哦
 楼主| 发表于 2014-12-18 14:48:31 | 显示全部楼层
但我这么写,就能得到这个对象实体
        public void OpenEnt()
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            ed.WriteMessage("通过ObjectId打开对象\n");
            PromptEntityOptions entOps = new PromptEntityOptions("选择要打开的对象\n");
            PromptEntityResult entRes;
            entRes = ed.GetEntity(entOps);
            if (entRes.Status != PromptStatus.OK)
            {
                ed.WriteMessage("选择对象失败,退出");
                return;
            }
            ObjectId objId = entRes.ObjectId;
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                Entity ent = trans.GetObject(objId, OpenMode.ForWrite) as Entity;
                ent.ColorIndex = 1;
                trans.Commit();
            }

        }
方法都是一样的啊,就连得到的ObjectID的值也是一样的,为什么楼上的写法就出错呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:26 , Processed in 0.157502 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表