CAD关于图层得到图层上所有对象操作(com接口c#语言)

我们通过构造选择集,使用图层名过虑来得到某个层上所有对象,关于选择集的类说明参考:http://www.mxdraw.com/help/frames.htm?frmname=topic&frmfile=IMxDrawSelectionSet.htm

例如代码 C#:

private List<Int64> GetAllObjectsOnLayer(String sLayerName)
        {
            // 创建一个过滤数据连表对象。
            MxDrawResbuf filter = new MxDrawResbuf();
            // 把层名加入过滤条件,8是DXF组码,它代表sLayerName表示是的是一个层名。
            filter.AddStringEx(sLayerName, 8);
            //定义选择集对象
            MxDrawSelectionSet ss = new MxDrawSelectionSet();
            // 选择图上的所有对象。
            ss.Select(MCAD_McSelect.mcSelectionSetAll, null, null, filter);
            int i = 0;
            List<Int64> listId = new List<Int64>(); 
            // 遍历所有对象,得到对象id.
            for (; i < ss.Count;i++)
            {
                MxDrawEntity e =  ss.Item(i);
                listId.Add(e.ObjectID);
            }
            return listId;
        }

 

posted on 2019-10-25 16:31  梦想CAD控件  阅读(970)  评论(0)    收藏  举报

导航