面向三维模型的操作指令处理方法以及相关设备与流程
- 国知局
- 2024-08-01 03:31:30
本技术实施例涉及3d打印领域,尤其涉及面向三维模型的打孔操作处理方法以及相关设备。
背景技术:
1、在3d打印行业,设计三维模型的过程中,通常要对三维数字模型进行打孔操作,如果打孔的位置不合适则需要对打孔操作进行撤销,恢复打孔之前的模型。
2、传统的撤销方法是将打孔之前的模型保存一份,需要撤销的时候用打孔之前保存的模型进行替换。这种技术方案,在三维模型较大的情况下,会占用较多内存空间且需要大量时间用于存储打孔之前的模型。
技术实现思路
1、本技术实施例提供了面向三维模型的操作指令处理方法以及相关设备,用于释放内存空间并减少为了保证撤销而进行存储所需的时间,提升了用户体验。
2、本技术实施例第一方面提供一种面向三维模型的操作指令处理方法,包括:
3、按照操作指令对当前三维模型执行相应操作获得处理后三维模型,所述当前三维模型由三角形面片构成;
4、将所述当前三维模型中受所述操作指令影响的每个三角形面片确定为关联面片;
5、在所述相应操作关联的新增队列中新增待处理记录,所述待处理记录包含所述关联面片以及所述操作指令。
6、在一种具体实现方式中,所述相应操作包括打孔操作,所述操作指令包括打孔指令,所述新增队列包括撤销队列,所述待处理记录包括待撤销记录,
7、所述将所述当前三维模型中受所述操作指令影响的每个三角形面片确定为关联面片,包括:
8、计算所述打孔指令所指示打孔工具体的最小包围盒;
9、将所述当前三维模型中与所述最小包围盒相交的每个三角形面片确定为关联面片。
10、在一种具体实现方式中,还包括:
11、以所述当前三维模型的外接立方体为根节点,按照预设递归深度构建八叉树,所述八叉树中的每个节点对应于一个立方体,所述立方体包括所述外接立方体;
12、针对所述八叉树中每个所述节点,将位于所述节点所对应立方体中的每个三角形面片,确定为所述节点关联的三角形面片;
13、所述将所述当前三维模型中与所述最小包围盒相交的每个三角形面片确定为关联面片,包括:
14、确定所述八叉树中对应的立方体与所述最小包围盒相交的目标节点;
15、基于各所述节点关联的三角形面片,将所述目标节点关联的三角形面片确定为所述关联面片。
16、在一种具体实现方式中,所述确定所述八叉树中对应的立方体与所述最小包围盒相交的目标节点,包括:
17、将所述根节点确定为父节点;
18、响应于确定父节点的操作,判断所述父节点对应的立方体是否与所述最小包围盒相交;
19、若所述父节点对应的立方体与所述最小包围盒相交,则判断所述父节点对应的每个下一层子节点是否与所述最小包围盒相交;
20、若所述父节点对应的任一下一层子节点与所述最小包围盒相交,则将所述父节点对应的任一下一层子节点确定为新的父节点,直至父节点不存在对应的子节点;
21、将不存在对应的子节点的每个父节点确定为所述目标节点。
22、在一种具体实现方式中,所述相应操作包括撤销操作,所述操作指令包括撤销指令,所述新增队列包括重做队列,所述待处理记录包括待重做记录,所述按照操作指令对当前三维模型执行相应操作获得处理后三维模型,包括:
23、在撤销队列中查找包括目标打孔指令的目标待撤销记录,所述撤销指令指示的撤销对象为所述目标打孔指令;
24、基于所述目标待撤销记录包含的目标面片调整所述当前三维模型以获得所述处理后三维模型;
25、删除所述撤销队列中的所述目标待撤销记录。
26、在一种具体实现方式中,所述基于所述目标待撤销记录包含的目标面片调整所述当前三维模型以获得所述处理后三维模型,包括:
27、获取所述目标待撤销记录包含的每个目标面片的面片标识;
28、针对所述目标待撤销记录包含的每个目标面片,在所述当前三维模型中查找待替换面片,并使用所述目标面片替换所述当前三维模型中的所述待替换面片,获得所述处理后三维模型,所述待替换面片对应的面片标识与所述目标面片的面片标识一致。
29、在一种具体实现方式中,所述相应操作包括重做操作,所述操作指令包括重做指令,所述新增队列包括撤销队列,所述待处理记录包括待撤销记录,所述按照操作指令对当前三维模型执行相应操作获得处理后三维模型,包括:
30、在重做队列中查找包括目标撤销指令的目标待重做记录,所述重做指令指示的重做对象为所述目标撤销指令;
31、基于所述目标待重做记录包含的目标面片调整所述当前三维模型以获得所述处理后三维模型;
32、删除所述重做队列中的所述目标待重做记录。
33、本技术实施例第二方面提供一种计算机设备,包括:
34、执行单元,用于按照操作指令对当前三维模型执行相应操作获得处理后三维模型,所述当前三维模型由三角形面片构成;
35、确定单元,用于将所述当前三维模型中受所述操作指令影响的每个三角形面片确定为关联面片;
36、新增单元,用于在所述相应操作关联的新增队列中新增待处理记录,所述待处理记录包含所述关联面片以及所述操作指令。
37、在一种具体实现方式中,所述相应操作包括打孔操作,所述操作指令包括打孔指令,所述新增队列包括撤销队列,所述待处理记录包括待撤销记录,
38、所述确定单元,具体用于计算所述打孔指令所指示打孔工具体的最小包围盒;将所述当前三维模型中与所述最小包围盒相交的每个三角形面片确定为关联面片。
39、在一种具体实现方式中,计算机设备还包括:构建单元;
40、所述构建单元,用于以所述当前三维模型的外接立方体为根节点,按照预设递归深度构建八叉树,所述八叉树中的每个节点对应于一个立方体,所述立方体包括所述外接立方体;
41、所述确定单元,还用于针对所述八叉树中每个所述节点,将位于所述节点所对应立方体中的每个三角形面片,确定为所述节点关联的三角形面片;
42、所述确定单元,具体用于确定所述八叉树中对应的立方体与所述最小包围盒相交的目标节点;基于各所述节点关联的三角形面片,将所述目标节点关联的三角形面片确定为所述关联面片。
43、在一种具体实现方式中,所述确定单元,具体用于将所述根节点确定为父节点;响应于确定父节点的操作,判断所述父节点对应的立方体是否与所述最小包围盒相交;若所述父节点对应的立方体与所述最小包围盒相交,则判断所述父节点对应的每个下一层子节点是否与所述最小包围盒相交;若所述父节点对应的任一下一层子节点与所述最小包围盒相交,则将所述父节点对应的任一下一层子节点确定为新的父节点,直至父节点不存在对应的子节点;将不存在对应的子节点的每个父节点确定为所述目标节点。
44、在一种具体实现方式中,所述相应操作包括撤销操作,所述操作指令包括撤销指令,所述新增队列包括重做队列,所述待处理记录包括待重做记录,所述执行单元,具体用于在撤销队列中查找包括目标打孔指令的目标待撤销记录,所述撤销指令指示的撤销对象为所述目标打孔指令;基于所述目标待撤销记录包含的目标面片调整所述当前三维模型以获得所述处理后三维模型;删除所述撤销队列中的所述目标待撤销记录。
45、在一种具体实现方式中,所述执行单元,具体用于获取所述目标待撤销记录包含的每个目标面片的面片标识;
46、针对所述目标待撤销记录包含的每个目标面片,在所述当前三维模型中查找待替换面片,并使用所述目标面片替换所述当前三维模型中的所述待替换面片,获得所述处理后三维模型,所述待替换面片对应的面片标识与所述目标面片的面片标识一致。
47、在一种具体实现方式中,所述相应操作包括重做操作,所述操作指令包括重做指令,所述新增队列包括撤销队列,所述待处理记录包括待撤销记录,所述执行单元,具体用于在重做队列中查找包括目标撤销指令的目标待重做记录,所述重做指令指示的重做对象为所述目标撤销指令;基于所述目标待重做记录包含的目标面片调整所述当前三维模型以获得所述处理后三维模型;删除所述重做队列中的所述目标待重做记录。
48、本技术实施例第三方面提供一种计算机设备,包括:
49、中央处理器,存储器以及输入输出接口;
50、所述存储器为短暂存储存储器或持久存储存储器;
51、所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第一方面所述的方法。
52、本技术实施例第四方面提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如第一方面所述的方法。
53、本技术实施例第五方面提供一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如第一方面所述的方法。
54、从以上技术方案可以看出,本技术实施例具有以下优点:在多边形网格的面片中三角形面片是被分割的最小单位,且表示比较简单、灵活。并且,若需要执行任一操作指令的相关操作,则在相应的新增队列中新增待处理记录,待处理记录中存储有执行相关操作前的当前三维模型中会受到相关操作影响的关联面片,以及前述操作指令。这样在需要撤销该相关操作时,仅需要从前述新增队列中查找包括相应操作指令的待处理记录,便可获取到撤销该相关操作所需的关联面片,以将处理后三维模型恢复至执行相关操作前的当前三维模型。本技术实施例,无需保存整个三维模型,便可以实现操作指令的撤销,相较于现有技术方案很大程度上释放了内存空间以及减少为了保证撤销而进行存储所需的时间,提升了用户体验。
本文地址:https://www.jishuxx.com/zhuanli/20240723/212889.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。