乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 38|回复: 1

通过Objectd能获得对象吗

[复制链接]

32

主题

73

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
201
发表于 2014-12-18 12:26:00 | 显示全部楼层 |阅读模式
Autodesk..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;这句话。希望大侠帮忙看看。不要因为太简单不理我哦
回复

使用道具 举报

32

主题

73

帖子

2

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
201
发表于 2014-12-18 14:48:00 | 显示全部楼层
但我这么写,就能得到这个对象实体
        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的值也是一样的,为什么楼上的写法就出错呢
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 18:13 , Processed in 0.621944 second(s), 67 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表