CN109949236A - 自相交图形消解方法、终端设备及计算机可读存储介质 - Google Patents
自相交图形消解方法、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109949236A CN109949236A CN201910162195.2A CN201910162195A CN109949236A CN 109949236 A CN109949236 A CN 109949236A CN 201910162195 A CN201910162195 A CN 201910162195A CN 109949236 A CN109949236 A CN 109949236A
- Authority
- CN
- China
- Prior art keywords
- curve
- curve object
- intersection
- sub
- self
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000006870 function Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 230000029087 digestion Effects 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法、终端设备及计算机可读存储介质,方法包括:在AutoCAD绘图区域选择曲线对象;将每一条曲线对象均转换为几何曲线对象;获取每一条几何曲线对象的自相交点;利用自相交点,分解每条几何曲线对象,得到若干子几何曲线对象;将子几何曲线对象转换为子曲线对象,计算每条子曲线对象的面积,如果面积不小于设定的阈值,则将对应的子曲线对象存于数据库中的重构曲线集合内,如果面积小于设定的阈值,则将对应的子曲线对象删除;重构得到消解后无自相交图形的曲线。本发明可批量处理自相交图形,能准确对自相交图形消解。
Description
技术领域
本发明属于图形处理技术领域,尤其涉及一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法以及执行该方法步骤的终端设备及计算机可读存储介质。
背景技术
在AutoCAD图形处理时,会遇到自相交图形较多的情况,针对该种情况,现有技术是通过手工挑选、修正以对自相交图形进行消解。但是采用该种方式,针对少量自相交图形可以进行处理,但是当自相交图形较多时,难以进行批量处理,且费时、易错、易漏。
ObjectArx是以C++为基础的面向对象的开发环境及应用程序接口,能快速的访问AutoCAD图形数据库,可以对AutoCAD图形进行处理。
发明内容
有鉴于此,本发明实施例提供了一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法以及执行该方法步骤的终端设备及计算机可读存储介质,以解决现有技术中难以批量对自相交图形进行消解的问题。
本发明实施例提供了一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法,包括如下步骤:
步骤S1、在AutoCAD绘图区域选择全部主实体曲线对象,将全部主实体曲线对象存储于数据库集合内;
步骤S2、将步骤S1中数据库集合内的每一条主实体曲线对象均转换为几何曲线对象;
步骤S3、获取步骤S2中每一条几何曲线对象的自相交点,将自相交点存于自相交点集中;
步骤S4、利用步骤S3得到的自相交点,分解每条几何曲线对象,得到若干子几何曲线对象,将子几何曲线对象存于数据库中的子几何曲线对象集合内;
步骤S5、将步骤S4中的子几何曲线对象转换为子曲线对象,计算每条子曲线对象的面积,如果面积不小于设定的阈值,则将对应的子曲线对象存于数据库中的重构曲线集合内,如果面积小于设定的阈值,则将对应的子曲线对象删除;
步骤S6、重构步骤S5中的重构曲线集合内的子曲线对象,得到消解后无自相交图形的主实体曲线对象。
进一步地,步骤S1中,使用全局函数acedSSGet()在AutoCAD绘图区域选择全部主实体曲线对象。
进一步地,步骤S2中将主曲线集合内的每一条曲线对象均转换为几何曲线对象使用的函数为getAcGeCurve()。
进一步地,步骤S3中,使用AcGePoint3dArray类中Append()函数将自相交点存于自相交点集中。
进一步地,步骤S5中的阈值为0.0001mm2。
进一步地,步骤S4中分解几何曲线对象使用的函数为getSplitCurves()。
本发明还提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述使用ObjectArx对AutoCAD中自相交图形进行消解的方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述使用ObjectArx对AutoCAD中自相交图形进行消解方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:
AutoCAD图形处理时,图形中如有自相交,后续处理时会产生如图形丢失、图形变形等错误,而且自相交图形中包含的图形不易被挑出,因此在绘制完成后需要对对自相交图形进行消解,本方案能够准确对自相交图形进行消解,能达到帮助AutoCAD软件正确转换图形的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中带有自相交的曲线对象的AutoCAD实例示意图;
图2是本发明实施例中消解后的曲线对象的AutoCAD实例示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
本发明实施例,带有自相交的曲线对象的AutoCAD实例示意图见图1,图1中,A为带有自相交的主实体曲线对象图形,对其中的自相交图形的处理步骤为:
步骤S1、在AutoCAD绘图区域选择全部曲线对象,将全部曲线对象存储于数据库Id集合Ids内,具体为:
步骤S11、定义类型为AcDbObjectId的数据库Id对象entId,定义类型为ads_name的对象ename及sSet,定义类型为AcDbObjectIdArray的对象Ids;
步骤S12、使用全局函数acedSSGet()在AutoCad绘图区域选择全部主实体曲线对象,获得选择集sSet;
步骤S13、使用全局函数acedSSName()遍历sSet获得相应序号的ename;
步骤S14、使用全局函数acdbGetObjectId()获得对应于每一个ename的数据库标识entId;
步骤S15、使用AcDbObjectIdArray类中apppend()函数将步骤S14得到的每一个entId加入Ids中。
步骤S2、将步骤S1中主曲线集合Ids内的每一条主实体曲线对象均转换为几何曲线对象,具体为:
步骤S21、定义类型为AcdbCurve指针的对象pCuve,定义类型为AcGeCurve3d指针的对象pGeCurve;
步骤S22、使用全局函数acdbOpenObject()以写的方式打开步骤S1中的数据库Id,令pCurve指向主曲线集合Ids内的主实体曲线对象;
步骤S23、使用AcDbCurve类中getAcGeCurve()函数,获得步骤S22中pCurve指向的主实体曲线对象对应的几何曲线对象pGeCurve。
步骤S3、获取步骤S2中每一条几何曲线对象的自相交点,将自相交点存于自相交点集中,具体为:
步骤S31、定义Int类型对象Num表示自相交点数,定义类型为AcGePoint3d的三维点对象pt3d,定义类型为AcGePoint3dArray的点集对象P;
步骤S32、定义类型为AcGeCurveCurveInt3d的对象ScRe,并将步骤S23得到的pGeCurve指向的几何曲线对象输入ScRe的构造函数中完成ScRe的构造;
步骤S33、使用AcGeCurveCurveInt3d类中numIntPoints()函数获得ScRe对象中的自相交点的个数,并赋值给Num;
步骤S34、如果Num大于0,则使用AcGeCurveCurveInt3d类中intPoint()将对应序号的自相交点赋值给pt3d;
步骤S35、使用AcGePoint3dArray类中Append()函数将步骤S34中获得的每一个自相交点pt3d加入到点集P中。
步骤S4、利用步骤S3得到的自相交点,分解每条几何曲线对象,得到若干子几何曲线对象,将子几何曲线对象存于数据库中的子几何曲线对象集合内,具体为:
步骤S41、定义类型为AcDbVoidPtrArray的无值指针集合对象CurveSegments;
步骤S42、使用AcDbCurve类中getSplitCurves()函数对几何曲线对象进行分解,分解后得到的若干子几何曲线对象存储于CurveSegments中。
getSplitCurves()函数中传入步骤S3中的自相交点集P,将依次返回几何曲线对象从起点到点集P中第一个点之间的子几何曲线对象,返回第一个点到第二个点之间的子几何曲线对象,依次类推,返回的最后一条子几何曲线对象便是点集P中最后一个点与几何曲线对象终点之间的曲线。
步骤S5、将步骤S4中的子几何曲线对象转换为子曲线对象,计算每条子曲线对象的面积,如果面积不小于设定的阈值,则将对应的子曲线对象存于数据库中的重构曲线集合内,如果面积小于设定的阈值,则将对应的子曲线对象删除,具体为:
步骤S51、定义类型为AcDbCurve指针的实体指针对象pTempCurve,定义类型为double的对象area;
步骤S52、遍历步骤S42中的CurveSegments,将每一个void型指针强制转换为AcDbCurve指针类型pTempCurve,从而将子几何曲线对象转换为子曲线对象;
步骤S53、使用AcDbCurve类中getArea()函数获得步骤S52中pTempCurve指向的子曲线对象的面积area;
步骤S54、设定面积小于0.0001mm2时,则不将该子曲线对象加入数据库Id,并使用delete()方法清除pTempCurve指向的内存;否则将pTempCurve加入数据库Id中的重构曲线集合内。其中面积的阈值可根据需要设定。
步骤S6、重构步骤S5中的重构曲线集合内的子曲线对象,得到消解后无自相交图形的曲线对象。具体为使用AcDbCurve类中erase()函数从数据库中删除原曲线对象pCurve,并使用close()方法从内存中关闭pCurve指向的对象,完成主实体曲线对象的重构。重构后的图形见图2,图2中B为消解后无自相交的主实体曲线对象。
本发明还提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述使用ObjectArx对AutoCAD中自相交图形进行消解的方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述使用ObjectArx对AutoCAD中自相交图形进行消解方法的步骤。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.使用ObjectArx对AutoCAD中自相交图形进行消解的方法,其特征在于,包括如下步骤:
步骤S1、在AutoCAD绘图区域选择全部主实体曲线对象,将全部主实体曲线对象存储于数据库集合内;
步骤S2、将步骤S1中数据库集合内的每一条主实体曲线对象均转换为几何曲线对象;
步骤S3、获取步骤S2中每一条几何曲线对象的自相交点,将自相交点存于自相交点集中;
步骤S4、利用步骤S3得到的自相交点,分解每条几何曲线对象,得到若干子几何曲线对象,将子几何曲线对象存于数据库中的子几何曲线对象集合内;
步骤S5、将步骤S4中的子几何曲线对象转换为子曲线对象,计算每条子曲线对象的面积,如果面积不小于设定的阈值,则将对应的子曲线对象存于数据库中的重构曲线集合内,如果面积小于设定的阈值,则将对应的子曲线对象删除;
步骤S6、重构步骤S5中的重构曲线集合内的子曲线对象,得到消解后无自相交图形的主实体曲线对象。
2.如权利要求1所述的一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法,其特征在于,步骤S1中,使用全局函数acedSSGet()在AutoCAD绘图区域选择全部主实体曲线对象。
3.如权利要求1所述的一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法,其特征在于,步骤S2中将主曲线集合内的每一条曲线对象均转换为几何曲线对象使用的函数为getAcGeCurve()。
4.如权利要求1所述的一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法,其特征在于,步骤S3中,使用AcGePoint3dArray类中Append()函数将自相交点存于自相交点集中。
5.如权利要求1所述的一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法,其特征在于,步骤S4中分解几何曲线对象使用的函数为getSplitCurves()。
6.如权利要求1所述的一种使用ObjectArx对AutoCAD中自相交图形进行消解的方法,其特征在于,步骤S5中的阈值为0.0001mm2。
7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910162195.2A CN109949236A (zh) | 2019-03-05 | 2019-03-05 | 自相交图形消解方法、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910162195.2A CN109949236A (zh) | 2019-03-05 | 2019-03-05 | 自相交图形消解方法、终端设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109949236A true CN109949236A (zh) | 2019-06-28 |
Family
ID=67008310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910162195.2A Pending CN109949236A (zh) | 2019-03-05 | 2019-03-05 | 自相交图形消解方法、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109949236A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290382A (zh) * | 1997-12-30 | 2001-04-04 | 移动媒体有限公司 | 计算机图形中表示几何形状和几何结构的方法 |
US6963790B2 (en) * | 2004-01-28 | 2005-11-08 | Brother Kogyo Kabushiki Kaisha | Embroidery data producing device and embroidery data producing program stored on a computer-readable medium |
EP2422742A1 (en) * | 2010-08-31 | 2012-02-29 | Straumann Holding AG | Computer-implemented method for digitally designing a dental restoration and a computer-readable medium |
CN102831282A (zh) * | 2012-09-14 | 2012-12-19 | 中国水电顾问集团成都勘测设计研究院 | 基于gocad软件的二维图件生成方法 |
CN105279301A (zh) * | 2015-05-29 | 2016-01-27 | 南京市城市规划编制研究中心 | 一种可定制输出的规划设计方法 |
CN105320802A (zh) * | 2015-05-29 | 2016-02-10 | 南京市城市规划编制研究中心 | 一种基于AutoCAD通用图形对象实现辅助规划设计的方法 |
CN107239508A (zh) * | 2017-05-15 | 2017-10-10 | 电子科技大学 | 一种用于地理二维矢量数据化简及传输方法 |
-
2019
- 2019-03-05 CN CN201910162195.2A patent/CN109949236A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1290382A (zh) * | 1997-12-30 | 2001-04-04 | 移动媒体有限公司 | 计算机图形中表示几何形状和几何结构的方法 |
US6963790B2 (en) * | 2004-01-28 | 2005-11-08 | Brother Kogyo Kabushiki Kaisha | Embroidery data producing device and embroidery data producing program stored on a computer-readable medium |
EP2422742A1 (en) * | 2010-08-31 | 2012-02-29 | Straumann Holding AG | Computer-implemented method for digitally designing a dental restoration and a computer-readable medium |
CN102831282A (zh) * | 2012-09-14 | 2012-12-19 | 中国水电顾问集团成都勘测设计研究院 | 基于gocad软件的二维图件生成方法 |
CN105279301A (zh) * | 2015-05-29 | 2016-01-27 | 南京市城市规划编制研究中心 | 一种可定制输出的规划设计方法 |
CN105320802A (zh) * | 2015-05-29 | 2016-02-10 | 南京市城市规划编制研究中心 | 一种基于AutoCAD通用图形对象实现辅助规划设计的方法 |
CN107239508A (zh) * | 2017-05-15 | 2017-10-10 | 电子科技大学 | 一种用于地理二维矢量数据化简及传输方法 |
Non-Patent Citations (4)
Title |
---|
刘斌 等: ""三角网格曲面上的等距曲线构造"", 《计算机集成制造系统》 * |
徐冬宝 等: ""异常图斑边界自动检测与校正算法设计"", 《地理空间信息》 * |
王健洁 等: ""基于ObjectARX的自定义面域研究"", 《城市勘测》 * |
葛文兵 等: ""Sweep曲面自相交的快速检测和消除"", 《计算机辅助设计与图形学学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110021070B (zh) | FBX三维模型转换为glTF三维模型的方法、设备以及系统 | |
CN109815579A (zh) | 边坡参数的确定方法、计算机可读存储介质及终端设备 | |
CN104299241A (zh) | 基于 Hadoop 的遥感图像显著性目标检测方法及系统 | |
Chen et al. | A lightweight iterative error reconstruction network for infrared image super-resolution in smart grid | |
CN117054803A (zh) | 一种含分布式光伏配电网接地故障辨识方法及系统 | |
CN111814303A (zh) | 一种植物根系力学模型构建方法、装置及电子设备 | |
US8024374B2 (en) | Computer object conversion using an intermediate object | |
CN116956838A (zh) | 工程量清单的项目确定方法及确定装置 | |
CN107423291A (zh) | 一种数据翻译方法以及客户端设备 | |
Xian et al. | Efficient and effective cage generation by region decomposition | |
CN109949236A (zh) | 自相交图形消解方法、终端设备及计算机可读存储介质 | |
CN115080680B (zh) | 用于高精地图的激光点云数据处理方法、装置及设备 | |
Mateo et al. | Hierarchical, Dense and Dynamic 3D Reconstruction Based on VDB Data Structure for Robotic Manipulation Tasks | |
CN114299204B (zh) | 三维动漫人物模型生成方法及装置 | |
CN114003172B (zh) | 存储容量校正方法、装置、计算机设备以及存储介质 | |
CN115221852A (zh) | 基于vxe-table的动态计算表格实现方法、装置和计算机设备 | |
CN114419339A (zh) | 基于电力肖像的数据重建模型训练的方法和装置 | |
US11699008B2 (en) | Non-conformal domain decomposition with imprints at interfaces with boundaries for finite element analysis | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN112764763A (zh) | 一种代码转换方法、系统、设备及计算机可读存储介质 | |
Trevelyan et al. | Interactive re-analysis in mechanical design evolution. Part I. Background and implementation | |
CN113593025B (zh) | 地质体模型更新方法、装置、设备及存储介质 | |
Sawatzky et al. | Spatial data modeller | |
CN116758096B (zh) | 动脉瘤分割方法、电子设备及存储介质 | |
CN109344798B (zh) | 一种基于三维网格及神经网络的三维物体识别检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |