objectARX 获取指定图层上所有实体ID

2015-12-17

 1 //获取指定图层上所有实体ID
 2 AcDbObjectIdArray GetAllEntityId(const TCHAR* layername)
 3 {
 4     AcDbObjectIdArray entIds;
 5     bool bFilterlayer = false;
 6     AcDbObjectId layerId;
 7     //获取指定图层对象ID
 8     if (layername != NULL)
 9     {
10         AcDbLayerTable *pLayerTbl = NULL;
11         acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pLayerTbl, AcDb::kForRead);
12         if (!pLayerTbl->has(layername))
13         {
14             pLayerTbl->close();
15             return entIds;
16         }
17         pLayerTbl->getAt(layername, layerId);
18         pLayerTbl->close();
19         bFilterlayer = true;
20     }
21     //获得块表
22     AcDbBlockTable *pBlkTbl = NULL;
23     acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlkTbl, AcDb::kForRead);
24     //块表记录
25     AcDbBlockTableRecord *pBlkTblRcd = NULL;
26     pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd, AcDb::kForRead);
27     pBlkTbl->close();
28     //创建遍历器,依次访问模型空间中的每一个实体
29     AcDbBlockTableRecordIterator *it = NULL;
30     pBlkTblRcd->newIterator(it);
31     for (it->start(); !it->done(); it->step())
32     {
33         AcDbEntity *pEnt = NULL;
34         Acad::ErrorStatus es = it->getEntity(pEnt, AcDb::kForRead);
35         if (es == Acad::eOk)
36         {
37             if (bFilterlayer)//过滤图层
38             {
39                 if (pEnt->layerId() == layerId)
40                 {
41                     entIds.append(pEnt->objectId());
42                 }
43             }
44             else
45             {
46             //    entIds.append(pEnt->objectId());
47                 pEnt->close();
48             }
49         }
50     }
51     delete it;
52     pBlkTblRcd->close();
53     return entIds;
54 }
时间: 2024-11-05 21:18:05

objectARX 获取指定图层上所有实体ID的相关文章

获取指定类上的@RequestMapping注解的请求信息

通过上一篇博客,我们能够轻松的得到制定类上的制定注解.现在,我们尝试获取指定类上的@RequestMapping注解,并获取该控制层的全部请求信息.在这里,提供一个实体类,用于存放请求的部分信息. public class RequestUrlInfo implements Comparable<RequestUrlInfo>{ private String name; //mapping的名称 private String value; //mapping的请求路径 private Requ

Python:爬虫之利用Python获取指定网址上的所有图片—Jaosn niu

# coding=gbk import urllib.request import re import os import urllib def getHtml(url): #指定网址获取函数 page = urllib.request.urlopen(url) html = page.read() return html.decode('UTF-8') def getImg(html): #定义获取图片函数 reg = r'src="(.+?\.jpg)" pic_ext' imgr

python获取指定网页上的有多少个超级链接

# -*- coding: cp936 -*- import urllib2 import re def u(url): #connect to a URL website = urllib2.urlopen(url) #read html code html = website.read() #use re.findall to get all the links links = re.findall('"((http|ftp)s?://.*?)"', html) print u'有

CAD关于图层设置CAD实体对象,到指定层上操作(com接口c#语言)

实体对象都有一个层属性,可以直接修改该属性. 比如 C#: private void SetEntityToLayer() { // 隐藏选择实体的层. MxDrawUtility mxUtility = new MxDrawUtility(); // 当用户在图上选择一个对象. MxDrawPoint getPt; MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n 选择实体对象:"); if (ent == null) { r

根据查询实体获取指定返回列的值

一步步完善并优化自己的ORM框架功能 [新增] /// <summary> /// 根据查询实体获取指定返回列的值 /// </summary> /// <typeparam name="SearchT">查询实体类</typeparam> /// <typeparam name="ResultT">返回实体类</typeparam> /// <param name="searc

使用IO映射的方式获取tiny4412板子上的ID号

在以前的文章中,有一篇 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号 在那篇文章中,具体可以参考.那时候我使用了简单的字符设备驱动框架,最终的ID号通过read方法可将ID读取出来,但是,这样做就太麻烦啦,有没有更简单的方法呢?其实有,这种方法称作IO地址的映射,而今天我们要说的是IO地址的动态映射方法,静态映射就太简单了,直接调用相应的接口,配置相应的寄存器,设置状态就可以实现.接下来看看驱动代码: #if 0 . io地址: . 静态映射: //这个头文件与平

ECSHOP在商品详细页面上获取该商品的顶级分类id和名称

在 goods.php 文件, 找到 $smarty->assign('goods', $goods); 在它上面增加下面代码: 方法一: $cat_arr = get_parent_cats($goods['cat_id']); foreach ($cat_arr AS $val) { $goods['topcat_id']=$val['cat_id']; $goods['topcat_name']=$val['cat_name']; } 方法二: $cat_arr = get_parent_

CAD图纸上指定图层如何进行关闭?

CAD图纸上指定图层如何进行关闭?一张复杂的CAD图纸文件绝对不只是仅仅由一个图层构造而成的,它是由好多图层组合而形成为一张CAD图纸文件,那么图层太多会导致我们查看图纸文件不够仔细,我们往往会在查看图纸时候关闭掉一些图层,那么应该如何进行对图层的关闭呢?今天小编就要来教教大家CAD图纸上图层如何进行关闭的全部操作步骤,请往下进行查看学习! 第一步:首先要打开您电脑上面的CAD看图软件,如果您电脑上没有一款CAD看图软件,小编就向大家诚心安利一款"迅捷CAD看图"软件,因为小编自己使用

Jmeter 通过json Extracted 来获取 指定的值的id

在没有 精确或模糊查询的接口时可以使用jmeter 获取指定的值的ID 1 import java.lang.String ; 2 String getTargetName="iphone632g"; 3 //判读相应结果中是否包含指定值:iphone632g 4 boolean containsCategory=prev.getResponseDataAsString().contains(getTargetName); 5 vars.putObject("contains