明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2196|回复: 5

[求助]遍历图纸空间和模型空间

[复制链接]
发表于 2010-9-7 20:43:00 | 显示全部楼层 |阅读模式
向大家请教一个问题,我想遍历图纸空间和模型空间,按照一定的条件找出一些entity
下面是我写的代码,发现得到的layout信息并不是读入的dwg文件对应的,不知道是为什么?
在QQ群里呼叫多次,没有解决
  1. Database mDatabase = new Database();
  2. try
  3. {
  4. mDatabase.ReadDwgFile(filename, System.IO.FileShare.Read, true, null);
  5. using (Transaction tr = mDatabase.TransactionManager.StartTransaction())
  6. {
  7. BlockTable bt = (BlockTable)tr.GetObject(mDatabase.BlockTableId, OpenMode.ForRead, false);
  8. printdata = printdataList.AddFileToPrint(filename);
  9. foreach (ObjectId btrId in bt)
  10. {
  11. BlockTableRecord btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForRead);
  12. if (btr.IsLayout) //layoutsToPlot.Add(btId);
  13. {
  14. Layout lo = (Layout)tr.GetObject(btr.LayoutId, OpenMode.ForRead);
  15. LayoutData layoutData = new LayoutData();
  16. layoutData.LayoutName = lo.LayoutName;
  17. foreach (ObjectId item in btr)
  18. {
  19. Entity ent = tr.GetObject(item, OpenMode.ForRead) as Entity;
  20. if (!EntityIsTuKuang(ent)) continue;
  21. Polyline pl = ent as Polyline;
  22. Extents3d ext3D = pl.GeometricExtents;
  23. Extents2d ext2D = new Extents2d(ext3D.MinPoint.X, ext3D.MinPoint.Y, ext3D.MaxPoint.X, ext3D.MaxPoint.Y);
  24. layoutData.WinowAreas.Add(PublicMethod.Ext2DToRange(ext2D));
  25. }
  26. if (layoutData.WinowAreas.Count != 0)
  27. printdata.AddLayoutData(layoutData);
  28. }
  29. }
  30. }
  31. dgvAddRow(printdata);
  32. }
发表于 2010-9-7 21:29:00 | 显示全部楼层

打印方面的很少有人弄哈

我是没搞过这东东

 楼主| 发表于 2010-9-7 21:38:00 | 显示全部楼层

上面的代码和打印的关系不大

 

我需要做的就是,读入一个dwg的数据库,然后遍历所有的图纸空间和模型空间。比如说我现在的dwg有两个layout:“model”,“我的布局”,但是通过以上代码得到却不是这两个layout,很奇怪

 楼主| 发表于 2010-9-7 21:38:00 | 显示全部楼层
同样的代码在当前数据库中却有效果,能够得到想要的值
发表于 2010-9-7 21:43:00 | 显示全部楼层

估计你获取的是当前文档的layout?、

试下设置当前数据库?

HostApplicationServices.WorkingDatabase = mDatabase;

记得做完要还原

 楼主| 发表于 2010-9-8 09:15:00 | 显示全部楼层
Database mDatabase = new Database(false,true); OK
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 00:44 , Processed in 0.189170 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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