dpec1982 发表于 2015-6-11 15:00:19

请教,为什么Ent是空的


功能:根据已知的坐标,给块参照加颜色,但语句中的Ent一直是空,而ID是有值的
       private void getBlkForPt(Point3d dataBasePt)
      {
            Document doc = app.DocumentManager.MdiActiveDocument;
            BlockReference Blk = null;
            using (Transaction trans = doc.TransactionManager.StartTransaction())
            {
                BlockTable BlkTab = (BlockTable)trans.GetObject(doc.Database.BlockTableId, OpenMode.ForRead,true) as BlockTable;
                foreach (ObjectId ID in BlkTab)
                {
                  Entity Ent = trans.GetObject(ID,OpenMode.ForRead,true) as Entity;
                  if (Ent != null)
                  {
                        if (Ent is BlockReference)
                        {
                            Blk = (BlockReference)Ent;
                            Point3d pt = Blk.Position;
                            if (pt.DistanceTo(dataBasePt) <= 1)
                            {
                              Blk.Color = Autodesk.AutoCAD.Colors.Color.FromRgb(255, 0, 0);
                            }
                        }
                  }
                }
            }

      }

页: [1]
查看完整版本: 请教,为什么Ent是空的