wangwang3504 2020-05-03 18:23 采纳率: 0%
浏览 544

autocad.net(C#)自定义的命令只能调用一次,再次调用,出现如下错误:eNullObjectId

autocad.net(C#)自定义的命令只能调用一次,将第一次画的直线删除后,再次调用画直线就不给画了,出现如下错误:eNullObjectId。
刚刚学习编程,比较菜,请高手指点一下。
下面是我写画直线的函数

   public static ObjectId drawLine2pt(Point3d Pt1,Point3d Pt2,Color LineColor,ObjectId LayerId)
        {
            MyDoc doc = MyApp.DocumentManager.MdiActiveDocument;
            MyEditor ed = doc.Editor;
            Mydatabase db = doc.Database;
            ObjectId obid = ObjectId.Null ;
            using(Transaction trans=db.TransactionManager .StartTransaction())
            {
                try
                {
                    BlockTable bt;
                    bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;

                    BlockTableRecord btr;
                    btr = trans.GetObject(bt[BlockTableRecord.ModelSpace] , OpenMode.ForWrite) as BlockTableRecord;

                    Line ln = new Line(Pt1, Pt2);
                    ln.Color = LineColor;
                    ln.LayerId = LayerId;
                    obid = btr.AppendEntity(ln);
                    trans.AddNewlyCreatedDBObject(ln, true);
                    trans.Commit();

                }
                catch (System.Exception ex)
                {
                    ed.WriteMessage("发生如下错误:" + ex.Message);
                    trans.Abort ();
                }
            }
            return obid;
        }
  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-03 18:38
    关注

    btr = trans.GetObject(bt[BlockTableRecord.ModelSpace] , OpenMode.ForWrite) as BlockTableRecord;
    调试下这里BlockTableRecord.ModelSpace是不是有问题,没有找到对象

    评论

报告相同问题?

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器