zzrxtt 发表于 2016-3-8 13:44:18

您好,请问如何遍历当前DWG文件中的尺寸或者文本呢?

请教各位大神,通过c#如何获取dwg文件中的尺寸或者文本呢?谢谢

雪山飞狐_lzh 发表于 2016-3-8 19:36:37

选择集+过滤器

zzrxtt 发表于 2016-3-9 18:43:53

// 获取当前数据库,启动事务
            Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Database acCurDb = acDoc.Database;

            using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                // 以读模式打开块表
                BlockTable acBlkTbl;
                acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,OpenMode.ForRead) as BlockTable;

                // 以读模式打开块表记录模型空间
                BlockTableRecord acBlkTblRec;
                acBlkTblRec = acTrans.GetObject(acBlkTbl,OpenMode.ForRead) as BlockTableRecord;
                int nCnt = 0;
                acDoc.Editor.WriteMessage("\n 对象:");

                // 遍历模型空间里的每个对象,并显示找到的对象的类型
                foreach (ObjectId acObjId in acBlkTblRec)
                {
                  //尺寸
                  if (acObjId.ObjectClass.DxfName.Equals("DIMENSION"))
                  {
                        //以写的方式打开选择的对象
                        Entity acEnt = acTrans.GetObject(acObjId,OpenMode.ForWrite) as Entity;
                        if (acEnt != null)
                        {
                            acDoc.Editor.WriteMessage("\n " + acObjId.ObjectClass.DxfName);
                        }
                  }
                  else if (acObjId.ObjectClass.DxfName.Equals("TEXT"))
                  {
                        acDoc.Editor.WriteMessage("\n " + acObjId.ObjectClass.DxfName);
                  }
                  nCnt = nCnt + 1;
                }

                // 如果没发现对象则显示提示信息
                if (nCnt == 0)
                {
                   acDoc.Editor.WriteMessage("\n 没有对象!");
                }
               
                // 关闭事务
            }

我已经读出来了,但我要获取尺寸的内容,就不知道怎么弄了

Leo1980 发表于 2018-1-29 14:46:56

看看这个类:Dimension,所有的标注继承此类,尺寸内容可能是:public virtual double Dimtxt { set; get; }
页: [1]
查看完整版本: 您好,请问如何遍历当前DWG文件中的尺寸或者文本呢?