明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2497|回复: 4

如果按图框为边界将包含多个图的DWG文件拆分成单图文件

[复制链接]
发表于 2008-8-1 19:50:00 | 显示全部楼层 |阅读模式

我用的CAD的Com接口,最近碰到的问题是:

1、需要做一个工具,能把包含多个图的DWG文件拆分成几个单图文件,源DWG文件中包含几个图,而图框可能是多线段,也可能是块参照,或者是个矩形对象,请问有什么方法取得每个图的边界呢,块参照有时候其参照点都不只在图框某个角上,而且块没有对应属性能取得其尺寸。亨通科技有个图纸拆分工具就能做到把任意封闭边界的内容拆分到单图文件中,甚至我画几个三角,它也能准确拆分,不知道是怎么做到的。 请哪位大哥提供点思路。

2、顺便帮我看看下面的C#代码
   //打开文件
   AcadDocument sourceDocument = a.Documents.Open(filePathName, null, null);
   a.Application.ZoomAll();

   //准备通过选择过滤的方式得到图中所有的块参照对象
   double[] StartPos = new double[] { -1000000000000, -1000000000000, 0 };
   double[] EndPos = new double[] { 1000000000000, 1000000000000, 0 };
   object gpCode = new short[] { 0 };
   object dataValue = new object[] { "BlockReference" };
   object filterCode = gpCode;
   object filterValue = dataValue;

   AcadSelectionSet selObjs = sourceDocument.SelectionSets.Add("SS2");
   selObjs.Select(AcSelect.acSelectionSetWindow, StartPos, EndPos, filterCode, filterValue);
明明DWG文件里有块参照,却怎么也取不到,而如果是取直线,改成

   object gpCode = new short[] { 0 };
   object dataValue = new object[] { "Line" };

却能取到图中的线,为什么呢,难道块参照不能通过过滤方式取得吗??

 楼主| 发表于 2008-8-1 20:56:00 | 显示全部楼层

在线等啊,我的第2个问题简化一下:

怎样获得图中所有块参照的选择集

发表于 2008-8-4 14:01:00 | 显示全部楼层
本帖最后由 作者 于 2008-8-4 14:05:30 编辑

为什么中国的教科书不只出版一种高级语言呢.既然各种语言都能达到同一效果,就不充许出其它开发语言的书,这样反而有利于软件业的发展

vba程序是这样的,获得各图块名称:

    Dim objBlk As AcadBlock
    For Each objBlk In ThisDrawing.Blocks
      
        If StrComp(Left(objBlk.Name, 1), "*") <> 0 Then
            MyBlock (i)=objBlk.Name

             i=i+1
        End If
    Next objBlk

发表于 2008-8-4 14:23:00 | 显示全部楼层

   FilterType(0) = 2
   FilterData(0) = "TK" '是块名

   FilterType(1) = 8
   FilterData(1) = "0"  '图层是0

用过滤选择直接得到

发表于 2008-8-5 00:59:00 | 显示全部楼层

object dataValue = new object[] { "BlockReference" };
改成
object dataValue = new object[] { "INSERT" };
试试

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

本版积分规则

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

GMT+8, 2024-11-26 06:30 , Processed in 0.146526 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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