2019独角兽企业重金招聘Python工程师标准>>>

与cad里执行REGION命令相似

具体的实现:

void ZffCHAP2AddRegion()
{
// 使用选择集,提示用户选择作为面域边界的对象
ads_name ss;
int rt = acedSSGet(NULL, NULL, NULL, NULL, ss); // 提示用户
选择对象
AcDbObjectIdArray objIds;
// 根据选择集中的对象构建边界曲线的ID数组
if (rt == RTNORM)
{
long length;
acedSSLength(ss, &length);  // 获得选择集中的对象个数
for (int i = 0; i < length; i++)
{
ads_name ent;
acedSSName(ss, i, ent);
AcDbObjectId objId;
acdbGetObjectId(objId, ent);
objIds.append(objId);
}
}
acedSSFree(ss); // 及时释放选择集
AcDbObjectIdArray regionIds;
regionIds = CCreateEnt::CreateRegion(objIds);
int number = regionIds.length();
if (number > 0)
{
acutPrintf("\n已经创建%d个面域!", number);
}
else
{
acutPrintf("\n创建0个面域!");
}
}

创建面域:

AcDbObjectIdArray CCreateEnt::CreateRegion(const AcDbObjectIdArray& curveIds)
{
AcDbObjectIdArray regionIds;  // 生成的面域的ID数组
AcDbVoidPtrArray curves; // 指向作为面域边界的曲线的指针的数组
AcDbVoidPtrArray regions; // 指向创建的面域对象的指针的数组
AcDbEntity *pEnt; // 临时指针,用来关闭边界曲线
AcDbRegion *pRegion; // 临时对象,用来将面域添加到模型空间
// 用curveIds初始化curves
for (int i = 0; i < curveIds.length(); i++)
{
acdbOpenAcDbEntity(pEnt, curveIds.at(i), AcDb::kForRead);
if (pEnt->isKindOf(AcDbCurve::desc()))
{
curves.append(static_cast<void*>(pEnt));
}
}
Acad::ErrorStatus es = AcDbRegion::createFromCurves(curves,
regions);
if (es == Acad::eOk)
{
// 将生成的面域添加到模型空间
for (i = 0; i < regions.length(); i++)
{
// 将空指针(可指向任何类型)转化为指向面域的指针
pRegion = static_cast<AcDbRegion*>(regions[i]);
pRegion->setDatabaseDefaults();
AcDbObjectId regionId;
regionId = CCreateEnt::PostToModelSpace(pRegion);
regionIds.append(regionId);
}
}
else // 如果创建不成功,也要删除已经生成的面域
{
for (i = 0; i < regions.length(); i++)
{
delete (AcRxObject*)regions[i];
}
}
// 关闭作为边界的对象
for (i = 0; i < curves.length(); i++)
{
pEnt = static_cast<AcDbEntity*>(curves[i]);
pEnt->close();
}
return regionIds;
}

转载于:https://my.oschina.net/u/2930533/blog/1591427

ObjectARX_面域相关推荐

  1. RFC2616中文版

    转自:https://www.cnblogs.com/k1988/archive/2010/01/12/2165683.html 本备忘录的状态本文件规定了互联网社区的互联网标准跟踪协议,并要求对改进 ...

  2. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  3. kotlin设置CORS跨域资源共享,java设置允许跨域,服务端如何设置 springboot中设置跨域资源共享

    CORS通信过程,都是浏览器或http插件自动完成,不需要 用户/开发人员 参与.对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码是完全一样的.浏览器一旦发现AJAX请求跨源,就会自动添 ...

  4. 三层交换机原理:01路由器如何隔离广播域?

    前言: 当网络规模较大的时候,需要设备来隔离广播域,防止网络中因产生广播风暴而导致网络效率降低,而二层交换机不能隔离广播域,所以需要三层路由器设备来隔离广播域! 但三层路由器为什么能够隔离广播域,是如 ...

  5. 无监督域对抗算法:ICCV2019论文解析

    无监督域对抗算法:ICCV2019论文解析 Drop to Adapt: Learning Discriminative Features for Unsupervised Domain Adapta ...

  6. CVPR2019目标检测论文看点:并域上的广义交

    CVPR2019目标检测论文看点:并域上的广义交 Generalized Intersection over Union Generalized Intersection over Union: A ...

  7. 关于上传文件的跨域问题

    在进行新框架开发的过程中,需要自定义页面组件实现脱离表单的文件(图片)上传,考虑过wex5自带的attachmentsimple的自定义写法很难受,就改用了第三方插件webuploader来实现选择文 ...

  8. 170222、使用Spring Session和Redis解决分布式Session跨域共享问题

    使用Spring Session和Redis解决分布式Session跨域共享问题 原创 2017-02-27 徐刘根 Java后端技术 前言 对于分布式使用Nginx+Tomcat实现负载均衡,最常用 ...

  9. angularjs post 跨域

    web api搞好了:用Ajax妥妥的:但是前端用的AngulagJS,也懒得再换为Ajax了: 但是问题来了:提示: 已拦截跨源请求:同源策略禁止读取位于 http://x.x.x.x:port/a ...

最新文章

  1. java上机练习01
  2. java 管道设计_使用管道流实现Java 8阶段构建器
  3. basler相机参数简要中文说明_你知道相机曝光模式怎么用么?6种相机曝光模式详解及应用...
  4. python心理学实验程序_psychopy coder模式编写心理试验程序 字符程序和记录反应时...
  5. python导入csv文件中特定列-如何使用标头完整的python导入csv文件,其中第一列为非数字...
  6. c语言经典算法——查找一个整数数组中第二大数
  7. LeetCode 40 组合总和 II
  8. 加密的病历单(信息学奥赛一本通-T1137)
  9. 什么是hypernetworks? hypernetworks简单介绍
  10. 新手如何使用docker搭建web服务环境
  11. 毕啸南专栏 | 对话阿里王坚:数据价值是新大陆,新技术将重构互联网
  12. Ubuntu firefox无法加载视频
  13. Linux嵌入式系统的电子相册代码,基于嵌入式Linux和Qt编程实现数码相框的设计
  14. 密立根油滴实验数据处理(C++实现)
  15. 苹果xsmax登录id服务器无响应,iPhone XS Max无法开机了这几招轻松解决!
  16. 民宿OTA运营有哪些指标数据最重要
  17. Vue源码之计算属性watcher
  18. 联通开4g没显示无服务器,为什么显示4g却没网络
  19. 基于Springboot+Vue实现前后端分离商城管理系统
  20. @Configuration(proxyBeanMethods = false) 设置这个为false有啥用

热门文章

  1. 严格执行四项监督制度提高选人用人公信度
  2. 要让语言更高级,可以试试这17个词语
  3. Spring中Environment详解,一文搞透Spring运行环境Environment
  4. linux操作系统_Linux操作系统与使用
  5. input type所有功能
  6. Godadday.com空间安装OpenCart电子商务系统教程
  7. 利用ADB Root权限破解锁屏密码(原)
  8. iOS - VLC 简单播放
  9. [软件人生]大家还记得《悟空传》么——谈拼搏精神
  10. Java List Stream 去重