面向三维地形地质模型的拆解包络体递进开挖处理方法与流程

摘要: 本发明涉及一种拆解包络体递进开挖处理方法,尤其是涉及一种面向三维地形地质模型的拆解包络体递进开挖处理方法,属于三维设计、bim建模及地形地质模型开挖运算处理。背...
面向三维地形地质模型的拆解包络体递进开挖处理方法与流程

本发明涉及一种拆解包络体递进开挖处理方法,尤其是涉及一种面向三维地形地质模型的拆解包络体递进开挖处理方法,属于三维设计、bim 建模及地形地质模型开挖运算处理。

背景技术:

1、在复杂边坡、坝肩、坝基和三维地质体开挖场景中,设计人员通常先创建整体开挖面,再将开挖面封闭成体或构造开挖包络体,并与地质体、地形面或地质分层面执行布尔移除、曲面 trim 或 split 运算。由于开挖面可能由多个局部面片、曲面过渡、局部台阶错台、尖角、竖直连接面和强制缝合面组成,整体开挖对象在几何内核中容易出现拓扑不稳定、退化、自相交或相交关系不完整的问题。

2、现有基于三维布尔运算的地质体开挖技术通常直接构建开挖实体并与地质体执行布尔减运算。例如公开文献 cn103871101a 公开了“一种基于三维布尔运算的基坑与地质体模型无缝集成方法”,其通过建立基坑开挖实体并使三维地质模型与开挖实体进行布尔减运算得到设计模型。该类技术能够在输入几何稳定时得到结果,但没有公开当整体开挖面无法稳定参与运算时,如何将其拆解为单元面、生成多个包络体、优先合并、失败后继续递进补挖。

3、现有动态开挖模拟技术可以将开挖过程按施工时序或挖掘边界进行动态更新。例如公开文献 cn118468681b 公开了“基于动态布尔运算的地质模型模拟挖掘过程方法及平台”,其通过空间分桶、索引和动态更新提高地质模型模拟挖掘效率。该类技术的重点是动态模拟与局部地质空间更新,不是针对整体开挖面几何异常时的拆解包络体合并、无法合并体继续参与、分块递进和局部逐体补挖。

4、现有三维地质建模及施工应用方案还会利用地形、地质分层面和工程轮廓创建地质体模型。例如公开文献 cn111950051b 公开了“基于bim的三维地质建模和基于地质体模型的施工应用方法”,其通过地表点云、等高线等数据创建地表模型,并将地质实体与地层面模型布尔运算生成地质体模型。该类技术通常关注模型构建和施工应用,没有公开开挖面拆解后的包络体合并容错机制。

5、实际生产中,设计人员通常会先检查开挖面连接关系、缝合质量和相交边界,并尝试修改开挖面以消除明显异常;但很多时候,失败并不完全来自设计面本身,而是3de几何内核在处理复杂组合开挖面与地质体、地形面联合运算时存在稳定性和容错性不足。现有技术缺少一种能够把这种联合运算失败转化为分解、拉伸、合并、递进分块和局部补挖对象链路的完整处理链路。

6、现有技术存在的缺点如下,

7、1.整体开挖面直接参与布尔或曲面裁剪时,局部拓扑异常可能导致整体失败。

8、2.人工逐个面片拉伸和逐体开挖效率低,不适合大型复杂边坡。

9、3.单纯将全部拉伸体合并为总包络体时,部分拉伸体可能无法并入总合并模型。

10、4.首次合并失败不一定代表该拉伸体不能与最终合并体合并,现有流程通常缺少二次重试机制。

11、5.无法合并体若被直接丢弃,会导致开挖范围缺失。

12、6.合并包络体开挖失败后,现有方式缺少按高程递进分块并筛选局部拉伸体的补挖路径。

13、7.地质体和地形曲面需要不同运算策略,现有流程往往不能统一生成开挖结果和挖除部分体。

14、8.开挖失败过程缺少无法拉伸面、无法合并体、裁剪失败体和挖除部分体的分类留存,不利于复核。

技术实现思路

1、本发明所要解决的技术问题是:提供一种能将复杂开挖面进行有效拆解,并提高复杂开挖面与地质体、地形面联合运算的可执行性和过程连续性的面向三维地形地质模型的拆解包络体递进开挖处理方法。

2、为解决上述技术问题所采用的技术方案是:一种面向三维地形地质模型的拆解包络体递进开挖处理方法,开挖结构为在三维地质场景内的开挖对象上开挖获得的,所述的拆解包络体递进开挖处理方法包括以以整体开挖面为拆解源构建总包络体,并利用该总包络体对开挖对象执行开挖处理和对构建的总包络体进行拆解包络体递进开挖处理生成开挖结果对象和挖除部分对象两道工序,

3、其中,在系统上构建开挖总包络体的过程中为,以开挖对象为基础,将整体复杂开挖面全量拆解为单元曲面;再以原始开挖面最高点为基点创建一个统一的拉伸限制平面,以该拉伸限制平面为顶面将所有可用拆解面沿 z 向体积拉伸为包络体;随后优先对拉伸包络体执行体积合并形成总包络体,在体积合并过程中,对于首次合并失败的拉伸体,系统在第一轮合并结束后用最终合并体进行二次重试;二次重试仍然失败的拉伸体进入无法合并体集合,但继续作为独立 cutter 参与开挖;

4、对构建的总包络体进行拆解包络体递进开挖处理生成开挖结果对象和挖除部分对象的过程中为,在开挖阶段,系统以总包络体为主 cutter,并追加无法合并体,对地质体或地形曲面执行开挖;以地质体为体对象时,采用体积布尔移除并通过求交生成挖除部分体;当地形曲面为曲面对象时,采用曲面 trim,并用地形面裁剪包络体生成体积化挖除部分;若合并体或独立 cutter 仍无法完成开挖,系统进一步对合并包络体按开挖面上下极值水平面递进分块,对可运算块正式开挖,对仍失败的块基于失败块与来源拆解面的相交关系筛选局部拉伸体并逐体补挖。

5、进一步的是,在构建开挖总包络体前先在系统内设置各层功能模块,依次至少包括输入与集合管理层、开挖面全量拆解层、统一包络拉伸层、拉伸体合并容错层、合并包络开挖层、挖除部分体生成层、分块递进补挖层、分块顶面上补层、局部逐体补挖层和结果与挖除体管理层,

6、输入与集合管理层:用于选择整体开挖面、开挖对象和结果集合位置,并准备拆解开挖面、拉伸包络体、合并包络体、无法合并体、裁剪失败体、开挖结果体以及挖除部分体的各个集合;

7、开挖面全量拆解层:用于调用三维平台“拆解”命令,将整体开挖面拆解为 mono-cell 或 mono-domain 曲面,规定若平台弹出确认窗口,系统等待外部确认并读取新增拆解面;

8、统一包络拉伸层:用于根据原始开挖面最高点创建平行 xy 的拉伸限制平面,并将拆解面沿 z 向体积拉伸为包络体,规定单个拆解面拉伸失败时,写入无法拉伸面集合,不中断其他面拉伸;

9、拉伸体合并容错层:用于对成功拉伸体执行体积合并,规定首次合并失败体不立即放弃,而是在第一轮合并体形成后进行二次合并,二次仍失败体进入无法合并体集合;

10、合并包络开挖层:用于以合并包络体为主 cutter,并追加无法合并体,对地质体或地形曲面进行开挖;

11、挖除部分体生成层:用于在开挖成功时同步生成挖除部分体,规定地质体场景使用体积求交,地形面场景使用地形面裁剪包络体并设置体积结果;

12、分块递进补挖层:用于在合并包络体开挖失败时,按开挖面最高/最低水平面递进分割合并包络体,对可运算分块执行正式开挖;

13、分块顶面上补层:用于对可运算分块提取顶面轮廓并继续拉伸到拉伸限制面,再与原分块合并,以减少上部漏挖;

14、局部逐体补挖层:用于在分块递进仍失败时,根据失败块与来源拆解面的相交关系筛选局部拉伸体,并仅对相关拉伸体逐体补挖;

15、结果与挖除体管理层:用于保留开挖结果体、挖除部分体、无法拉伸面、无法合并体和裁剪失败体,并在完成后显示最终结果。

16、上述方案的优选方式是,在构建开挖总包络体前还要相对于系统内设置的功能模块对处理过程进行对象流划分,划分的对象流依次包括输入对象、拆解对象、拉伸对象、合并对象、开挖对象、失败对象和结果对象七类对象流;依据各类对象流在系统几何集合中依次建立如下过程集合,拆解开挖面过程集合、拉伸包络体过程集合、拉伸限位面过程集合、合并包络体过程集合、分块递进体过程集合、无法合并体过程集合、裁剪失败体过程集合、开挖结果体过程集合、挖除部分体过程集合和无法拉伸面过程集合;在构建开挖总包络体的各个阶段,执行前只清理本阶段应重建的过程集合,避免误删已作为后续输入的拉伸体、合并体或最新开挖结果。

17、进一步的是,划分的对象流各自分别包括如下子对象,

18、输入对象包括整体开挖面、开挖对象和结果集合位置,整体开挖面是拆解源,开挖对象可以是地质体或地形曲面,结果集合位置用于承载本方案生成的全部过程对象和结果对象;

19、拆解对象包括拆解开挖面集合中的单元曲面,系统通过三维平台“拆解”命令将整体开挖面转换为 mono-cell 或 mono-domain 曲面,并以这些曲面作为包络体拉伸源;

20、拉伸对象包括拉伸限制面、拉伸包络体和无法拉伸面,拉伸限制面基于原始开挖面最高极值点向上偏移形成,拉伸包络体由拆解面沿 z 向体积拉伸得到,无法拉伸面用于记录不能生成体积包络体的拆解面;

21、合并对象包括总合并包络体、首次合并失败体和无法合并体,系统先按顺序合并拉伸包络体,首次合并失败体暂存到重试列表,第一轮合并结束后用最终合并体再次尝试合并,二次仍失败的对象才进入无法合并体集合;

22、开挖对象包括总合并包络体和无法合并体,总合并包络体作为主 cutter,无法合并体作为独立 cutter,两者共同参与地质体布尔开挖或地形面裁剪开挖,避免因无法合并而漏挖;

23、失败对象包括裁剪失败体、分块失败体和逐体失败对象,裁剪失败体用于记录合并体或独立 cutter 开挖失败,分块失败体用于记录递进分割后仍不能开挖的局部分块,逐体失败对象用于记录最终仍需人工复核的局部拉伸体;

24、结果对象包括开挖结果体和挖除部分体,开挖结果体始终保存最新有效开挖结果,挖除部分体与开挖操作同步生成,多个挖除体优选合并,无法合并时保留多个对象供工程量统计复核。

25、上述方案的优选方式是,在系统上构建开挖总包络体工序中的各个工步的具体操作过程如下,

26、s0.选择输入对象,选择整体开挖面、地质体或地形曲面,以及结果集合位置;

27、s1.全量拆解整体开挖面,系统将拆解开挖面集合设为当前工作集合,调用三维平台“拆解”命令,将整体开挖面拆解为单元曲面;

28、s2.创建统一拉伸限制面,系统以原始开挖面最高极值点创建平行 xy 的基准面,并向上偏移形成拉伸限制面;

29、s3.拆解面 z 向体积包络拉伸,系统对每个拆解面沿 z 正方向执行体积包络拉伸,成功体写入拉伸包络体,失败面写入无法拉伸面;

30、s4.拉伸包络体合并,系统对成功拉伸体执行体积合并,首次合并失败体进入重试列表,第一轮合并结束后,系统用最终合并体再次尝试合并失败体,二次仍失败体写入无法合并体。

31、进一步的是,在构建开挖总包络体的过程中,对于合并失败与裁剪失败的对象按下述接结规则进行处理,

32、1)拉伸失败时,失败对象是拆解面本身,直接进入无法拉伸面集合,

33、2)首次合并失败时,失败对象进入重试列表,不直接进入无法合并体集合;第一轮合并结束后,如果最终合并体可以与该失败体合并,则该体仍并入总合并包络体,

34、3)二次合并失败时,失败对象进入无法合并体集合;无法合并体不作为问题面直接放弃,而是继续作为独立 cutter 参与开挖,

35、4)合并包络体或无法合并体开挖失败时,失败对象进入裁剪失败体集合,并触发分块递进补挖,

36、5)分块递进仍失败时,系统使用失败块与来源拆解面的相交关系筛选局部拉伸体,最后只对局部拉伸体逐体开挖,

37、上述规则把失败范围从总合并体逐步收缩到局部拉伸体。

38、上述方案的优选方式是,对构建的总包络体进行拆解包络体递进开挖处理生成开挖结果对象和挖除部分对象工序中的各个工步的具体操作过程中如下,

39、s1.合并包络开挖,系统以合并包络体为主 cutter,并追加无法合并体作为独立cutter,对地质体或地形曲面执行开挖;

40、s2.生成开挖结果和挖除部分体,系统每成功开挖一个 cutter,就更新当前开挖结果,并生成对应挖除部分体,多个挖除部分体尝试合并;

41、s3.判断是否存在裁剪失败体,若不存在,则流程结束,若存在,则进入分块递进补挖;

42、s4.合并包络体分块递进开挖,系统根据原始开挖面最高/最低水平面构造中间分割面,对合并包络体递进分块,并对每个分块试算可运算性;

43、s5.可开挖分块顶面上补,对可运算分块,系统提取分块顶面轮廓并拉伸至拉伸限制面,形成增强 cutter,增强失败时回退使用原分块;

44、s6.失败块局部逐体补挖,对达到最大分块轮数仍失败的分块,系统根据失败块与来源拆解面的相交关系筛选局部拉伸体,并逐体继续开挖;

45、s7.最终结果显示与失败对象保留,系统显示最终开挖结果,并保留挖除部分体、无法拉伸面、无法合并体和裁剪失败体供复核。

46、进一步的是,针对地质体与地形面这两类不同的对象分别采用下述的方式分别进行开挖,

47、当地质体为开挖对象时,系统执行体积布尔移除,总合并包络体和无法合并体依次作为 cutter,从当前地质体结果中扣除;每次成功扣除时,通过当前地质体与 cutter求交得到对应挖除部分体,

48、当地形曲面为开挖对象时,系统执行曲面 trim 或 split,对于开挖结果,系统按预设保留方向得到被开挖后的地形面;对于挖除部分,系统用地形面裁剪拉伸包络体,并通过 close surface 或体积结果设置形成可统计的挖除部分体;地形面场景中应分别处理开挖结果和挖除部分的保留方向,避免两者反向错误。

49、上述方案的优选方式是,在系统内进行三维地质场景内开挖结构体的开挖包括以下技术参数,

50、。

51、进一步的是,以开挖对象为基础,在系统内构建开挖总包络体和对构建的总包络体进行拆解包络体递进开挖处理生成开挖结果对象和挖除部分对象的两道工序依次按第一至第三的三个主阶段、一个局部逐体补挖阶段和一个结果整理阶段进行,具体过程中为,

52、第一阶段为拆解拉伸成体阶段,系统首先将拆解开挖面集合设为当前工作集合,调用三维平台“拆解”命令,将整体开挖面完全拆解为单元曲面;拆解完成后,系统基于原始开挖面最高极值点创建平行 xy 的拉伸限制面,并对每个拆解面执行 z 向体积包络拉伸;成功体写入拉伸包络体集合,失败面写入无法拉伸面集合;单个面失败不影响其他拆解面继续拉伸,

53、第二阶段为合并包络开挖阶段,系统按顺序读取拉伸包络体并执行体积合并,优先形成总合并包络体,以减少后续布尔或 trim 次数;首次合并失败体不立即放弃,而是进入重试列表;第一轮合并完成后,系统用最终合并体对重试列表中的对象再次尝试合并;二次仍失败的体写入无法合并体集合,但继续作为独立cutter 参与开挖;随后,系统使用总合并包络体和无法合并体共同对地质体或地形面执行开挖,并同步生成挖除部分体,

54、第三主阶段为分块递进补挖阶段,当前述合并包络开挖阶段产生裁剪失败体时,系统不立即退化为全量逐体开挖,而是先对合并包络体进行高程分块;分块控制面由原始开挖面最高/最低极值水平面和中间偏移面构成;系统对分块逐个尝试开挖,可运算块直接参与正式开挖;仍失败块继续递进分割,直到达到预设分块轮数,

55、局部逐体补挖阶段,对达到最大分块轮数后仍无法开挖的分块,系统根据失败块与来源拆解面的相交关系筛选局部拉伸体,只对相关局部拉伸体逐体开挖;该阶段是最后补挖路径,避免一开始就对全部拉伸包络体逐体开挖,

56、结果整理阶段,系统只显示最终开挖结果体,保留挖除部分体、无法拉伸面、无法合并体和裁剪失败体;过程对象可按清理命令删除,但应先隔离复制开挖结果体和挖除部分体,避免删除过程集合时误删最终成果。

57、本发明的有益效果是:采用本技术上述的施工方法解决了现有技术没有解决的以下技术问题,1.如何将整体复杂开挖面拆解为可独立包络拉伸的单元曲面;2.如何为所有拆解面创建统一的 z 向体积拉伸限制,形成多个拉伸包络体;3.如何优先合并多个拉伸包络体,以减少后续布尔或 trim 运算次数;4.如何对首次合并失败的拉伸体进行二次合并重试,并在仍无法合并时继续保留为独立cutter;5.如何同时支持地质体体积布尔开挖和地形曲面 trim 开挖;6.如何同步生成挖除部分体并尝试合并,以支撑工程量统计;7.如何在合并体开挖失败时对合并包络体递进分块,并对可开挖分块进行顶面上补;8.如何对最终仍失败的分块筛选相关局部拉伸体,而不是全量逐体试算。从而可以将复杂开挖面进行有效拆解,并依据该拆解面进行准确开挖结构体进行准确开挖。