yanghao1 发表于 2011-9-26 12:57:50

C#如何删除选择集中的一些对象。为什么选择集对象SelectionSet没有添加、删除对象的最

C#如何删除选择集中的一些对象,如何添加另一些对象。为什么选择集对象SelectionSet没有添加、删除对象的最常用功能。

齐天大圣3386 发表于 2011-9-26 19:24:51

我以前用VBA的,所以转到VB上就有这样的疑惑。后来知道了,在NET中选择集是没有这些方法的,得到选择集以后,要新建一个对象集,把选择集中的对象加到对象集中,以后都对对象集操作就行了。

思行合一 发表于 2011-10-7 10:57:56

AcadSelectionSet mySelectionSet;
mySelectionSet = AcadDoc.SelectionSets.Add("NewSelectionSet");

中间是选择条件
mySelectionSet.Erase()

yanghao1 发表于 2011-10-7 12:33:39

思行合一 发表于 2011-10-7 10:57 static/image/common/back.gif
AcadSelectionSet mySelectionSet;
mySelectionSet = AcadDoc.SelectionSets.Add("NewSelectionSet");
...

AcadDoc是什么?

思行合一 发表于 2011-10-7 13:04:18

就是一个文档。
AcadApp = (Autodesk.AutoCAD.Interop.AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application");
    AcadDoc = AcadApp.ActiveDocument;

思行合一 发表于 2011-10-7 13:09:59

acadapp 是获得已经打开的cad,acaddoc 是获得当前的cad空间

思行合一 发表于 2011-10-11 21:28:45

         Microsoft.VisualBasic.Interaction.AppActivate(AcadApp.Caption);
            AcadSelectionSet mySelectionSet;
            string myset = "NewSelectionSet1";
            mySelectionSet = AcadDoc.SelectionSets.Add(myset);
            Int16[] FilterType = new Int16;
            object[] FilterData = new object;
            FilterType = 62;
            FilterData = "256";
            double[] p1 = new double { 0, 0, 0 };
            double[] p2 = new double { 86000, 60600, 0 };
            mySelectionSet.Select(AcSelect.acSelectionSetAll, p1, p2, FilterType, FilterData);
            mySelectionSet.Erase();//这句就是删除选择集中的对像,
          AcadDoc.SelectionSets.Item(myset).Delete();

把上面的代码加在一个命令按钮中就行了
页: [1]
查看完整版本: C#如何删除选择集中的一些对象。为什么选择集对象SelectionSet没有添加、删除对象的最