本发明涉及三维建模领域,具体是一种斜切式隧道洞门的三维建模方法。
背景技术:
随着bim技术在基础建设领域的深入应用与发展,如何有效提高三维建模的效率与精度越来越受到广泛重视。bentley公司的microstation是一款功能强大、能服务于土木建筑行业的三维建模软件,但由于bentley系列软件自身参数化功能较弱,目前bim建模人员只能通过传统的翻模方式进行建模,即利用二维图纸进行三维重建,模型重复使用率低,修改麻烦,效率低且精度不高。斜切式隧道洞门主要包括帽檐及洞身,帽檐是一个由四条椭圆曲线(帽檐内模下轮廓线、帽檐外模下轮廓线、帽檐内模上轮廓线及帽檐外模上轮廓线)构成的椭圆台,由于斜切式隧道洞门结构复杂,形式多样,因此采用传统的建模方式会造成精度差、效率低。
技术实现要素:
为了提高斜切式隧道洞门的建模效率及建模精度,本发明提供了一种斜切式隧道洞门的三维建模方法。
本发明解决上述问题所采用的技术方案是:
一种斜切式隧道洞门的三维建模方法,包括:
步骤1、创建洞门段洞身模型;
步骤2、获取斜切式洞门的建模参数;
步骤3、根据建模参数及洞门段洞身模型获取帽檐内模下轮廓线及帽檐外模下轮廓线;
步骤4、根据帽檐内模下轮廓线、帽檐外模下轮廓线及建模参数获取帽檐内模上轮廓线及帽檐外模上轮廓线;
步骤5、实体缝合。
进一步地,步骤2中建模参数包括帽檐内模上轮廓线的斜率参数、帽檐外模上轮廓线的斜率参数、帽檐内模下轮廓线的斜率参数、帽檐外模下轮廓线的斜率参数及斜切式洞门的基点。
进一步地,所述步骤3包括:
步骤b1、根据帽檐内模下轮廓线的斜率参数对斜切式洞门的基点进行平移变换以获取帽檐内模下轮廓线所在的平面,根据帽檐外模下轮廓线的斜率参数对斜切式洞门的基点进行平移变换以获取帽檐外模下轮廓线所在的平面;
步骤b2、基于布尔运算分别使用帽檐内模下轮廓线所在的平面和帽檐外模下轮廓线所在的平面截取洞门段洞身模型以获取帽檐内模下轮廓线及帽檐外模下轮廓线。
进一步地,所述步骤3包括:
步骤b1、根据帽檐内模下轮廓线的斜率参数对斜切式洞门的基点进行平移变换以获取帽檐内模下轮廓线所在的平面,根据帽檐外模下轮廓线的斜率参数对斜切式洞门的基点进行平移变换以获取帽檐外模下轮廓线所在的平面;
步骤b2、分别将帽檐内模下轮廓线所在的平面及帽檐外模下轮廓线所在的平面沿其对应的法线方向拉伸为立方体实体;
步骤b3、基于布尔运算分别使用立方体实体截取洞门段洞身模型以获取帽檐内模下轮廓线及帽檐外模下轮廓线。
进一步地,所述步骤4包括:
步骤c1、分别沿帽檐内模下轮廓线及帽檐外模下轮廓线的切面法向拉伸帽檐内模下轮廓线及帽檐外模下轮廓线,得到两个拉伸曲面x及y;
步骤c2、根据帽檐内模上轮廓线的斜率参数所对应的斜面截取x以获取帽檐内模上轮廓线,根据帽檐外模上轮廓线的斜率参数所对应的斜面截取y以获取帽檐外模上轮廓线。
进一步地,所述步骤b1之前还包括步骤a1、将洞门段洞身模型平移至原点。
进一步地,所述步骤a1还包括对洞门段洞身模型进行缩略变换。
进一步地,所述步骤4获取帽檐内模上轮廓线及帽檐外模上轮廓线后还包括步骤d、对洞门段洞身模型进行还原变换。
进一步地,通过transform函数进行缩略变换及还原变换。
本发明相比于现有技术具有的有益效果是:在进行斜切式隧道洞门建模时直接建立三维洞门段洞身模型,通过相关参数所在的面或形成的立方体与洞门段洞身模型进行布尔减运算直接获取建立帽檐所需的帽檐内模下轮廓线及帽檐外模下轮廓线,再通过帽檐内模下轮廓线及帽檐外模下轮廓线获取建立帽檐所需的帽檐内模上轮廓线及帽檐外模上轮廓线,从而提高了建模精度,无需进行翻模步骤,提高了建模效率。
附图说明
图1为本发明三维建模的流程图;
图2为斜切式洞门的结构示意图;
图3为帽檐内模下轮廓线所在的平面与洞门段洞身模型相截的结构示意图;
附图标记:1、帽檐内模下轮廓线,2、帽檐内模上轮廓线,3、帽檐外模上轮廓线,4、帽檐外模下轮廓线。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图2所示,斜切式洞门主要由帽檐及洞身构成,帽檐主要由帽檐内模上轮廓线、帽檐外模上轮廓线、帽檐内模下轮廓线及帽檐外模下轮廓线构成。
如图1所示,一种斜切式隧道洞门的三维建模方法,包括:
步骤1、创建洞门段洞身模型;
步骤2、获取斜切式洞门的建模参数;
步骤3、根据建模参数及洞门段洞身模型获取帽檐内模下轮廓线及帽檐外模下轮廓线;
步骤4、根据帽檐内模下轮廓线、帽檐外模下轮廓线及建模参数获取帽檐内模上轮廓线及帽檐外模上轮廓线;
步骤5、实体缝合。
具体的,步骤1、创建洞门段洞身模型:在本实施例中基于visualstudio使用c#语言创建洞门段洞身模型:通过“mdl”命令载入创建洞门命令流,从dgn文件中选择线路和洞身模型,获取洞身段模型的线位及洞身参数,并将数据保存在斜切式洞门参数类中,根据斜切式洞门参数类创建洞门段洞身模型;线路中包含洞身的里程、高程、空间定位点等信息。
步骤2、获取斜切式洞门的建模参数:通过参数对话框输入斜切式洞门的建模参数,建模参数包括帽檐内模上轮廓线的斜率参数、帽檐外模上轮廓线的斜率参数、帽檐内模下轮廓线的斜率参数、帽檐外模下轮廓线的斜率参数及斜切式洞门的基点。
步骤3、根据建模参数及洞门段洞身模型获取帽檐内模下轮廓线及帽檐外模下轮廓线:本发明提供了两种获取帽檐内模下轮廓线及帽檐外模下轮廓线的方式,一种是面与体相截,另一种是体与体相截。
面与体相截:如图3所示,以获取帽檐内模下轮廓线为例进行说明。将斜切式洞门的基点经过坐标平移变换得到p1、p2、p3、p4、p5、p6,其中线段p1p2//p3p6//p4p5。p1p2为洞门段洞身模型中洞口所在平面上的一条水平线,根据斜切式洞门的基点可以确定帽檐内模下轮廓线与洞口间的距离,从而可获得p3p6,p3、p6为帽檐内模下轮廓线的两个端点,再根据帽檐内模下轮廓线的斜率参数即可求得p4p5,根据p3、p4、p5及p6即可确定帽檐内模下轮廓线所在的平面;基于布尔运算使用帽檐内模下轮廓线所在的平面与洞门段洞身模型相截,对应的截线即为帽檐内模下轮廓线。帽檐外模下轮廓线的获取方式同帽檐内模下轮廓线。
体与体相截:采用如面与体相截的方式获取帽檐内模下轮廓线所在的平面,然后将该平面沿其法线方向拉伸为立方体实体;基于布尔运算使用立方体实体截取洞门段洞身模型以获取帽檐内模下轮廓线。帽檐外模下轮廓线的获取方式同帽檐内模下轮廓线。采用体与体相截时布尔运算效率更高。
在布尔运算之后,还可以通过编号工具为剪切后的洞门段洞身模型的所有轮廓线分别编号;根据编号,获取相应的轮廓线,以确保每次提取的轮廓线都为所需的特定轮廓线。
步骤4、根据帽檐内模下轮廓线、帽檐外模下轮廓线及建模参数获取帽檐内模上轮廓线及帽檐外模上轮廓线:分别沿帽檐内模下轮廓线及帽檐外模下轮廓线的切面法向拉伸帽檐内模下轮廓线及帽檐外模下轮廓线,得到两个拉伸曲面x及y;根据帽檐内模上轮廓线的斜率参数所对应的斜面截取x以获取帽檐内模上轮廓线,根据帽檐外模上轮廓线的斜率参数所对应的斜面截取y以获取帽檐外模上轮廓线。
步骤5、实体缝合,将各轮廓线缝合为实体模型。先由曲线生成曲面,再由曲面缝合生成实体模型。进一步地,还可以为实体模型添加附加工序、材料属性,并提取实体模型的体积、面积等属性,并按照工序、材料分类统计。
另外,在使用过程中,发明人发现microstation软件的布尔运算限制在坐标为±500m的范围内,超过±500m范围的布尔运算可能会出现随机错误。针对这个问题,提出了一种解决方法:将步骤3中做布尔运算的实体通过transform函数做平移变换,将其平移到原点。如果模型范围还是超过±500m,则进行缩略变换,待完成布尔运算后,再通过transform函数做还原变换。