一种快速实现地形图三维实体建模方法

一种快速实现地形图三维实体建模方法
王大志
【摘 要】ELECTRONICSWORKBENCH基于AutoCAD平台的地形图三维实体建模对现阶段土石方工程精确算量、三维可视化设计非常重要.一般建模过程为利用二维多段线或者三维多段线建立地形图三维网面,然后拉伸成三维实体,在此过程中,易产生20%~25%退化的不支持拉伸的对象,这些对象需重新手动建立三角网面域,然后才能拉伸成实体,严重影响建模速度.采用ObjectARX二次开发技术,直接通过坐标变换,利用等高线数据,调用"boundary"函数来生成不规则三角网面域,然后建立扫掠、放样建模接口函数,沿Z轴对三角网面域进行拉伸形成立体,快速实现了地形图三维实体建模.%Based on the topographic map of 3D modeling of AutoCAD platform, the accurate calculation of 3D visualization design is very important in earthwork engineering at the present stage. The general process of modeling 3D topographic map of a net surface is that a three-dimensional entity is stretched into by using of 2D polyline or 3D polyline. In this process, there are 20%–25% degradation of tensile objects, and it is needed to manually build triangle region, then these objects extruded. This is serious impact on model
ing speed. The "boundary" function is called to generate a triangular irregular network area and then a sweep and lofting the interface function along theZ axis of the triangular mesh surface domain stretching formation of the three-dimensional object using coordinate transformation and contour data based on ObjectARX development technology. The fast terrain modeling is realized.
刘光基【期刊名称】《图学学报》
【年(卷),期】2017(038)001
【总页数】5页(P23-27)
【关键词】AutoCAD;ObjectARX;boundary;实体建模
【作 者】王大志
【作者单位】中电投云南国际电力投资有限公司,云南昆明 650228
【正文语种】中 文
【中图分类】TP391.9
地形图的三维建模一直是计算机图形学领域的研究热点。在应用中,除了利用地形图的三维曲面模型来进行可视化仿真,工程技术人员更希望建立地形图三维实体模型,一个好的地形图三维实体模型对辅助设计、数值计算、土方量精确计算等有着非常重要的意义。
目前,针对土木、水利水电工程,主要以Autodesk公司推出的AutoCAD为平台,进行工程设计、工程量计算、有限元前处理等工作。AutoCAD提供了二次开发接口,并利用 ObjectARX、AutoLISP及VBA进行二次开发,解决建模、参数化设计、工程量计算等问题。自20世纪90年代以来,众多的学者和工程技术人员利用AutoCAD二次开发技术进行地形图处理[1-3],魏永乐和晁彩霞[4]在ObjectARX中实现了特征建模方法;王金敏等[5]利用ObjectARX技术实现了扫掠、放样建模。
利用AutoCAD二次开发技术进行地形图三维实体建模,常用的方法是通过获取数字高程模型(digital elevation model,DEM)数据或等高线数据,生成不规则三角网面,然后手动调用AutoCAD命令生成面域后,拉伸成三维实体。本文采用基于AutoCAD平台的ObjectARX二次开发技术,直接通过坐标变换,利用等高线数据,调用“boundary”函数来生成不规则
三角网面域,然后建立扫掠、放样建模接口函数,沿Z轴对三角网面域进行拉伸形成立体,实现了地形图三维实体快速建模。
DASIC1.1 生成不规则三角网
1.1.1 地形图数据处理
当前工程上使用较多的地形图大多采用AutoCAD来生成和管理数据。在AutoCAD中,等高线数据一般使用二维多段线(AcDb2dPolyline)来表示[6],通过提取二维多段线的顶点坐标,可获得生成不规则三角网的原始数据点。
本文首先根据实际需要确定构网范围,选取构网范围内的等高线,存为DXF文件,如图1所示。然后利用ObjectARX编程读取DXF文件,对等高线数据点进行提取,并将提取到的原始数据点储存到构网初始变量中,具体代码如下:
1.1.2 编程实现构网
不规则三角网的生成,通常采用Delaunay三角剖分法[7],该方法具有剖分的唯一性和最接
近规则三角形等特性,非常符合不规则三角网模型要求。实现Delaunay三角剖分的方法很多,有Lawson算法、Bowyer-Watson算法等。本文选用Lawson算法,该算法简单,易于编程实现。
全自动淘洗磁选机使用 Lawson算法进行 Delaunay三角剖分步骤:首先建立一个大的三角形或多边形,将所有数据点包围起来,向其中插入一点,并与包含其三角形3个顶点相连,形成3个新的三角形,然后逐一进行空外接圆检测,同时用Lawson设计的局部优化过程LOP进行优化,即通过交换对角线的方法来保证所形成的三角网为Delaunay三角网。
ObjectARX提供了以C++为基础的面向对象的开发环境及应用程序接口[8],在该环境中,采用C++语言实现了 Delaunay三角剖分程序,并访问AutoCAD图形数据库,实现了不规则三角网的自动绘制,如图2所示。
1.2 平三角形及凹地形处理
在利用等高线数据生成 Delaunay不规则三角网的过程中,容易产生平三角形,即三角形的3个顶点坐标的Z值相等,位于同一等高线上。这与实际地形不符,必须对产生平三角形的
区域进行修正,处理方式是将同一条等高线上构网的三角形改为由相邻的等高线构网[9];对于凹地形区域,采用在等高线中补充特征点的方式进行构网[10]。处理结果如图3所示。
我的涂鸦日记1.3 生成不规则三角网面域
艾普拉唑在AutoCAD环境中,可以被拉伸的对象很多,通过拉伸在一个平面内并且封闭的多段线(AcDbPolyline)、二维多段线(AcDb2dPolyline)、三维多段线(AcDb3dPolyline)生成实体。由于创建多段线函数的变量采用二维坐标,而形成不规则三角形的坐标为三维坐标,因此需对上述二维多段线和三维多段线生成实体的方法进行试验。试验结果显示,由二维和三维多段线构成的三角网区域不稳定,容易生成退化的不支持拉伸的对象,20%~25%的三角网区域不支持拉伸。如图4所示,图中白三角形区域为构网后,不支持拉伸的二维多段线或三维多段线区域。
综上所述,在AutoCAD环境中,生成的不规则三角网必须为在一个平面内并且封闭的多段线(AcDbPolyline),才会在执行拉伸命令的过程中,稳定生成三维实体,不会产生退化的不支持拉伸的对象。而一个平面内封闭的多段线是形成面域的必要条件,通过拉伸面域形成三维实体又是最快速、直接的方法,因此编程实现地形图三维实体建模最关键的步骤是
生成不规则三角网面域。
由于多段线创建函数不支持三维坐标,因此不能采用创建多段线生成面域的方法。本文采用调用“boundary”函数来生成面域,“boundary”函数为平面函数,即只适用于位于XOY平面的对象,因此在使用前,需进行坐标变换。首先将坐标变换到三角形所在平面,然后启动“boundary”命令,选择三角形内部一点,形成面域,拉伸面域形成三维实体,结果如图5所示,具体代码如下:
1.4 生成地形图三维实体模型
1.4.1 拉伸面域形成实体
对于工程而言,一般是沿着构筑物高程方向进行建设,高程方向垂直于地面方向,因此拉伸建模是指将封闭二维平面区域沿垂直于地面方向拉伸形成立体,本文采用拉伸建模方法形成实体[11]。由于先前步骤已形成了面域,因此无需重建面域,只需设定拉伸路径,调用拉伸函数即可形成三维实体。拉伸路径应根据工程实际需要设定,如某工程整体的开挖高度不超过100 m,可以设置拉伸路径向量为(0,0,–100),即所有不同面域均沿着垂直于地面向下拉伸100 m。具体代码如下:
AcGePoint3dArray points1;
1.4.2 合并实体
将拉伸形成的实体合并,采用三维实体的布尔运算函数“booleanOper”,可以实现2个实体之间的并集、交集和差集[12],对2个实体进行布尔运算的方法如下:
设已创建的2个实体为pS1,pS2。
pS1-> booleanOper (AcDb::operation, pS2);
如果函数调用成功,pS1将指向经过布尔运算生成的新的实体,而pS2所指向的实体将从数据库中删除。实体合并的实现过程为反复调用该函数,由拉伸面形成的各个三维实体合并成一个整体,最终合并后生成的三维实体如图6所示。

本文发布于:2024-09-21 19:29:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/118912.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实体   拉伸   进行   建模   生成   形成
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议