ARX二次开发 遍历删除所有的约束
文章目录
- 前言
- 一、操作约束的菜单
- 二、使用约束的意义
- 下述说明摘抄自网友:
- 三、遍历删除约束
- 总结
前言
AutoCAD自从2010版本开始,就多了参数化约束的功能,这个功能在三维软件中是很常用的,而从事多年AutoCAD平面制图的人很少用到,对其功能不是很了解。与此同时,对于二次开发人员,操作约束的参考示例例子更是不多,本文抛砖引玉,简单介绍。
提示:首先截几个AutoCAD2014的图,然后上代码进行示例操作
一、操作约束的菜单
autocad2014中的约束分为几何约束和标注约束
1.几何约束:它控制的是对象彼此之间的关系,比如相切、平行、垂直、共线等等。
2.标注约束:它控制的是对象的具体尺寸,比如距离、长度、半径值等等。
一般情况下,我们建议大家先使用几何约束确定图形的形状,再使用标注约束,确定图形的尺寸。
约束可以设置成可见,也可以设置成不可见,具体还有很多自定义设置,如下图:
二、使用约束的意义
下述说明摘抄自网友:
由于传统的cad系统是面向具体的几何形状,属于交互式绘图,要想改变图形大小的尺寸,可能需要对原有的整个图形进行修改或重建,这就增加了设计人员的工作负担,大大降低了工作效率。
而使用参数化的图形,要绘制与该图结构相同,但是尺寸大小不同的图形时,只需根据需要更改对象的尺寸,整个图形将自动随尺寸参数而变化,但形状不变。参数化技术适合应用于绘制结构相似的图形而要绘制参数化图形,“约束”是不可少的要素,约束是应用于二维几何图形的一种关联和限制方法。
其实很多建模工作流都有异曲同工之妙,例如AutoCad的动态快、Revit的族参数化建模、ArchiCAD的GDL参数化建模等等。
三、遍历删除约束
//spaceId是当前workingDataSpace 的ID
Acad::ErrorStatus DeleteAllConstraints(const AcDbObjectId& spaceId)
{AcDbObjectId networkId = AcDbAssocNetwork::getInstanceFromObject(spaceId, true);if (networkId.isNull()){return Acad::eNullObjectId;}AcDbObjectPointer<AcDbAssocNetwork> pNetwork(networkId, kForRead);if (pNetwork.openStatus() != Acad::eOk){return Acad::eNullObjectId;}const AcDbObjectIdArray& actionsInNetwork = pNetwork->getActions();for (int nCount = 0; nCount < actionsInNetwork.length(); ++nCount){const AcDbObjectId& idAction = actionsInNetwork[nCount];if (idAction == AcDbObjectId::kNull)continue;if ( actionsInNetwork[nCount].objectClass() == NULL ||!actionsInNetwork[nCount].objectClass()->isDerivedFrom(AcDbAssoc2dConstraintGroup::desc()))continue;AcDbObjectPointer<AcDbAssoc2dConstraintGroup> pAction(idAction, kForWrite);if (pAction.openStatus() != Acad::eOk)continue;AcDbAssoc2dConstraintGroup* pConstGrp = static_cast<AcDbAssoc2dConstraintGroup*>(pAction.object());if (!pConstGrp)continue;pConstGrp->erase();}return Acad::eOk;
}
## 2.关键说明AcDbAssoc2dConstraintGroup:所有的约束关系都保存在约束组(AcDbAssoc2dConstraintGroup)里面,怎样获得约束组即是关键所在。
总结
…
ARX二次开发 遍历删除所有的约束相关推荐
- C++ ARX二次开发-BREP库
一.本节课程 C++ ARX二次开发-BREP库 二.本节要讲解的知识点 通过两个命令来演示BREP库的使用:获取圆柱体中圆柱面的特征参数:获取任何三维实体的边的采样曲线. 三.具体内容 1.思路:组 ...
- c++ Arx二次开发创建椭圆和样条曲线
一.本节课程 c++ Arx二次开发创建椭圆和样条曲线 二.本节要讲解的知识点 1.如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆) 2 ...
- C++ ARX二次开发视图
一.本节课程 C++ ARX二次开发视图 二.本节要讲解的知识点 C++ ARX开发中视图的获取.设置等知识 三.具体内容 1.AcDbViewTableRecord 来表示AUTOCAD中的视图.如 ...
- C++ ARX二次开发-创建三维实体
二.本节课程 C++ ARX二次开发-创建三维实体 二.本节要讲解的知识点 1.arx提供的三类创建三维实体的方法:创建标准形状的实体.拉伸面域创建实体.旋转面域创建实体的例子. 2.布尔运算的使用例 ...
- C++ ARX二次开发视图、视口、UCS
视频课程由yunyou.ke.qq.com提供 一.本节课程 C++ ARX二次开发视图.视口.UCS 二.本节要讲解的知识点 1.C++ ARX开发中视图的获取.设置等知识 2.C++ARX开发中视 ...
- SolidWorks二次开发 遍历树节点
各位Solidworks二次开发小伙伴,趁着年还没过玩,祝大家新年快乐,掐指一算 , 明天就是元宵节了. 各位是不是应该送我点什么? 说错了,是我送来送点东西给大家. 最近在看api帮助时发现了一个知 ...
- C# Solidworks二次开发:删除螺纹孔
今天讲的是一个如何删除一个零件上的螺纹孔. 开发逻辑如下:选中有螺纹孔的零件上表面,获取想要的零件特征.遍历这个零件获取所有features,在循环中获取所有特征的name.判断name中是否存在&q ...
- CATIA V6二次开发——遍历UDF下的元素及参数
在UDF实例化的过程中往往将UDF实例化至几何图形集或者几何体中,每个UDF可能不止输出一个对象和参数,那么如何获取UDF附带输出的元素和参数,代码如下: //获取几何图形集下的UDF //方法一:利 ...
- 【CAD arx二次开发】通过Wizard向导新建项目编译遇到的问题汇总
报了大量的缺少引用错误 这个情况是因为安装VS的时候没有安装SDK8.1,需要打开VS的installer安装器安装SDK8.1 选择好后点修改即可. 较小类型检查 C1189 #error: /RT ...
- CATIA CAA二次开发专题(六)---约束关系分析
在二次开发过程中,有时需要获取产品树中的约束关系信息,以进行部件关系分析.下列程序片段,可以获取并显示产品 树的约束信息.这里,只给出主程序. #include "CATBaseUnknow ...
最新文章
- 2021年大数据ELK(五):Elasticsearch中的核心概念
- msdn关于Visual C++ 编译器选项的说明
- Visual C#之核心语言
- 如何利用扩展欧几里得算法求解不定方程_客户端不用的算法系列:从头条笔试题认识扩展欧几里得算法...
- Python 3.5.2 TypeError: a bytes-like object is required, not 'str’问题解决方案
- jquery实现的视差滚动教程(视差大背景效果)
- Jsp+Ssh+Mysql+Redis实现的Java Web订餐点餐
- 全球首发!惯性导航导论(剑桥大学)第四部分
- 取代Cookie失败,Google上线FLoC反遭“围攻”!
- 学NLP不懂这个项目?快别去秋招了,你HOLD不住的!
- 虚拟化--062 vsphere workstation bios启动
- android loginDemo +WebService用户登录验证
- c++ 网络编程课设入门超详细教程 ---目录
- iframe标签用法详解
- 最小二乘法概念和代码示例
- mini2440 LED设备驱动开发源代码(宋宝华框架)
- zsh中git快捷键
- 苹果4S手机IOS6.1.3系统《微信6.2》登录失败解决办法!100%成功!小白也会用!
- 手机蓝牙和蓝牙模块进行通信
- FFMPEG的.Net封装,FFmpeg.NET
热门文章
- python云计算1_python云计算服务器
- CiscoCUCM配置网关协议
- html缎带按钮,6款丝带蝴蝶结系法图解_乌托家家居网
- 全国大学生数学建模2016年A题系泊系统的设计论文与代码
- mysql学生管理系统背景_学生基本系统管理
- 蚂蚁课堂笔记之 spring详解
- Fortran入门——菜鸟级基础语法
- Visual Studio 2017入门教程丨如何运行一个Fortran程序
- Allwinner(全志)V5 SPI Flash Support List
- SVN安装-Subversive Plug-In 和Subversive SVN Connectors