我用的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" }; 却能取到图中的线,为什么呢,难道块参照不能通过过滤方式取得吗??
|