一种积木3D模型智能搭建系统的构建方法与流程

文档序号:20358537发布日期:2020-04-10 23:30阅读:383来源:国知局
一种积木3D模型智能搭建系统的构建方法与流程

本发明涉及积木模型搭建系统构建方法,具体涉及一种积木3d模型智能搭建系统的构建方法。



背景技术:

积木作为一种拼插型积木,已经不仅仅是一种儿童玩具。以积木为基础,结合机械原理、电子传感器、计算机软硬件的机器人教育已成为一项青少年创新竞技的重要活动。

大型积木模型的搭建通常需要借助各种软件进行切片中的多边形栅格化,再通过人工方式进行多边形铺满,但是这种做法无法提前计算出所需的积木类型、数量和积木颜色,以致积木搭建过程十分困难。



技术实现要素:

本发明所要解决的技术问题是提供一种积木3d模型智能搭建系统的构建方法,该方法能够根据积木模型自动形成积木3d模型搭建方案,用于指导积木模型的搭建,能够使积木模型特别是大型积木模型的搭建过程较为简易。采用的技术方案如下:

一种积木3d模型智能搭建系统的构建方法,其特征在于包括下述步骤:

(1)创建或导入欲搭建的积木模型的3d模型文件;

(2)对3d模型文件进行分层并得到各层切片,各层的切片为矢量多边形数据;

(3)将每层切片栅格化,栅格化是指将矢量多边形数据转化为栅格数据;

(4)进行各层积木零件的铺设,得到积木3d模型智能搭建系统。

得到的积木3d模型智能搭建系统,是用于指导积木模型搭建的积木3d模型搭建方案。操作人员进行积木3d模型搭建时,参照积木3d模型智能搭建系统中各层积木零件的铺设方式,选用相应的积木零件,进行各层积木零件的铺设(通常从最底层开始铺设),最终搭建成完整的积木3d模型。

优选方案中,上述构建方法还包括步骤(5),进行上下相邻层积木零件的粘连性检验,通过粘连性检验后得到积木3d模型智能搭建系统。在进行各层积木零件铺设之后再进行粘连性检验,能够获得更好的积木3d模型智能搭建系统,使得参照该积木3d模型智能搭建系统搭建的积木3d模型粘连更加牢固。

上述步骤(1)中,可通过激光扫描积木模型,创建该积木模型的3d模型文件。如果积木模型已有现成的3d模型文件(例如客户提供了3d模型文件),则直接将该3d模型文件导入。

通常,3d模型文件的外表面具有多种不同的颜色,步骤(2)的矢量多边形数据的各个边包含颜色值。

上述步骤(2)具体包括下述步骤:(2.1)根据要求的比例,调整3d模型文件中描述的模型长度、模型宽度和模型高度;(2.2)将调整后得到的模型高度除以积木零件的高度,得到3d模型文件的总层数,并在各层的相应高度做一横截面,得到相应层的切片。本发明所适用的积木模型搭建中,所用各种积木零件的高度是相同的。

上述步骤(3)中栅格化具体包括下述步骤:(3.1)从矢量多边形的边界开始,进行反填充,得到栅格数据;(3.2)将栅格数据映射回总图空间。步骤(3.1)中,可采用种子填充法进行反填充。

进一步,所述步骤(3.1)中,矢量多边形的边界栅格化的方法包括如下步骤:(3.1.1)采用bresenham算法(即布雷森汉姆直线算法),快速地将矢量多边形的边界矢量栅格化;(3.1.2)赋值对应的边界颜色。

优选方案中,上述步骤(4)采用贪心算法(局部最优)铺设积木零件。

更优选方案中,所述步骤(4)中采用贪心算法铺设积木零件的方法包括如下步骤:

(4.1)从基础类型的积木零件中选取1×2、1×3、2×2、2×3的砖状积木零件和2×2的l型积木零件这五种积木零件为基本积木零件;

(4.2)根据这五种基本积木零件的几何特性,确定各种基本积木零件的优先级;

(4.3)将这五种基本积木零件按所确定的优先级从高到低进行铺设,直到铺满。

在铺设过程中,应就近调整“单粒”(“单粒”是指仅包含一个积木单元的1×1砖状积木零件;调整“单粒”是指将“单粒”与邻接的其他积木零件合并,形成新的积木零件),以减少零碎颗粒;并尽量“并小为大”拼合积木(“并小为大”是指将相邻接的多个较小的积木零件合并成一个较大的积木零件)。

作为更进一步的优选方案,所述步骤(4.3)中,铺设基本积木零件之后,如果剩余有1×1空位(即可铺设“单粒”的空位),则应就近调整,就近调整的方法包括如下步骤:(4.3.1)检查所有1×1空位;(4.3.2)根据步骤(4.3.1)所检查到的1×1空位相邻的积木零件种类(包括形状及颜色)以及相接的位置,进行调整。

上述步骤(4.3.2)调整的方式为:a)若1×1空位和相邻的积木零件合并后能够形成其他种类的基本铺设积木零件,则合并成新的一个基本积木零件;或b)若1×1空位和相邻的积木零件合并后不能形成其他种类的基本铺设积木零件,则在合并后再分成两个以上的其他基本积木零件。

优选上述步骤(4)中,奇数层与偶数层采用不同的积木铺设优先级,这有利于上下相邻层积木零件之间(如第二层与最底层之间,第三层与第二层之间,等等)的相互搭扣,使搭建成的积木模型结构更加牢固。

积木铺设优先级可根据需要设定。某一层积木铺设优先级的确定,通常先确定该层所有积木零件的总体长度走向,然后以积木零件在该总体长度走向上的尺寸大小为依据,在该总体长度走向上尺寸较大的积木零件优先级较高,在该总体长度走向上尺寸较小的积木零件优先级较低,从而使该层铺设完积木零件后,所有积木零件的长度方向总体一致。此外,正投影面面积较大的积木零件,其优先级通常高于正投影面面积较小的积木零件(例如,2×3积木零件的优先级高于1×3积木零件,2×2积木零件的优先级高于1×2积木零件)。奇数层与偶数层采用不同的积木铺设优先级,通常是使奇数层所有积木零件的总体长度走向与偶数层所有积木零件的总体长度走向不同,例如:奇数层所有积木零件的总体长度走向为x方向,偶数层所有积木零件的总体长度走向为y方向(y方向与x方向相互垂直)。

通常,上述2×3、1×3、1×2这三种积木零件各自要分纵向放置和横向放置两种情况(或各自视为两种积木零件,即纵向放置时定义为一种积木零件,横向放置时定义为另一种积木零件),l型积木零件则要分四个放置方向(或者按方向不同,视为四种积木零件)。

由于上下相邻层积木零件的粘连性检验的需要,每个栅格的信息除了颜色之外,还需包含所铺设积木零件的类型,调整“单粒”时,这些信息都应做出相应的改变。

上下相邻层的粘连性检验,目的是减少或避免搭建的积木模型出现裂缝,确保3d积木模型粘连牢固。每层积木零件中,相邻的积木零件之间存在接缝(在正投影面上,接缝体现为相邻积木零件之间的分界线)。通常,如果上下相邻两层积木零件的接缝存在较长(≥2个单位长度)的连续重叠部分,则可判断该连续重叠部分为裂缝。裂缝的存在会导致3d积木模型在该处的连接不够牢固,影响整个3d积木模型的牢固程度,因此应尽量消除。消除裂缝的方法是:将上层积木零件中处在裂缝两侧的基本积木零件,替换成新的基本积木零件,其中至少一个新的基本积木零件跨越原先的裂缝两侧(该新的基本积木零件将下层积木零件中处在原先裂缝两侧的基本积木零件搭扣在一起),从而消除裂缝。

上述步骤(5)中上下相邻层的粘连性检验具体包括下述步骤:

(5.1)从最底层开始,逐层扫描上下相邻层的正投影图;

(5.2)判断上下相邻层的正投影图除了边缘线以外,是否有长度≥2个单位长度的重合投影线;

如果有符合条件的重合投影线,则进入步骤(5.3);

如果没有符合条件的重合投影线,则进入步骤(5.5);

(5.3)判断备选方案中是否存在合适的代替方案(即用于代替符合条件的重合投影线两侧的积木零件的方案);

如果有合适的代替方案,则进入步骤(5.4);如果没有合适的代替方案,则发出警告提示;

(5.4)从备选方案中选择一个适合的方案,对符合条件的重合投影线两侧的积木零件进行代替,然后进入步骤(5.5);

(5.5)将上下相邻层的层数分别加一,并判断其中的下层是否为最顶层;

如果其中的下层不是最顶层,则进入步骤(5.2);如果其中的下层是最顶层,则结束,完成粘连性检验。

通常,对于同样大小及形状的积木铺设空间,可以由不同的积木零件进行铺设,只要这些积木零件能够铺满该积木铺设空间即可,因此,对于某个积木铺设空间来说,可以有多种不同的积木零件组合方案。

上述步骤(5.3)中,备选方案是指能够代替原有积木零件组合方案的一种或多种积木零件组合方案,这些代替积木零件组合方案与原有积木零件组合方案占有同样大小及形状的积木铺设空间。通常,可将原有积木零件组合方案和各代替积木零件组合方案作为一组,预先输入;该组中所有积木零件组合方案可相互代替,互为备选方案。不同积木零件组合方案中所包含的积木零件互不相同,但积木零件组合后具有同样的轮廓,因此可相互代替。

对于步骤(5.3)中发出警告提示的积木层,可人工进行局部调整。

本发明具有如下有益效果:本发明实现了从模型数据导入、模型调整、切片分层、栅格化,到输出积木3d模型搭建方案的全自动化、智能化,该积木3d模型搭建方案用于指导积木模型的搭建(操作人员可参照积木3d模型智能搭建系统中各层积木零件铺设方式,选用相应的积木零件进行搭建),能够使积木模型特别是大型积木模型的搭建过程较为简易;而且,通过积木铺设与粘连性检验相互配合,在提高搭建速度的同时,较好地保证了积木3d模型的整体性。

附图说明

图1是本发明优选实施例1中构建积木3d模型智能搭建系统的总流程图;

图2是本发明优选实施例1中切片栅格化的示意图;

图3是本发明优选实施例1中各基本铺设积木零件的铺设优先级示意图;

图4是本发明优选实施例1中调整“单粒”的示意图;

图5是本发明优选实施例1中上下相邻层的粘连性检验的流程图;

图6是本发明优选实施例1中存在裂缝及消除裂缝的示意图。

具体实施方式

实施例1

参考图1,本实施例中,积木3d模型智能搭建系统的构建方法包括下述步骤:

(1)创建或导入欲搭建的积木模型的3d模型文件;

可通过激光扫描积木模型,创建该积木模型的3d模型文件。

如果积木模型已有现成的3d模型文件(例如客户提供了3d模型文件),则直接将该3d模型文件导入。

(2)对3d模型文件进行分层并得到各层切片,各层的切片为矢量多边形数据;

本步骤(2)具体包括下述步骤:(2.1)根据要求的比例,调整3d模型文件中描述的模型长度、模型宽度和模型高度;(2.2)将调整后得到的模型高度除以积木零件的高度(本发明所适用的积木模型搭建中,所用各种积木零件的高度是相同的),得到3d模型文件的总层数,并在各层的相应高度做一横截面,得到相应层的切片。

通常,3d模型文件的外表面具有多种不同的颜色,步骤(2)的矢量多边形数据的各个边包含颜色值。

(3)将每层切片栅格化,栅格化是指将矢量多边形数据转化为栅格数据(参考图2,其中2a为矢量多边形数据,2b为转化后的栅格数据);

本步骤(3)中栅格化具体包括下述步骤:(3.1)从矢量多边形的边界开始,进行反填充,得到栅格数据;(3.2)将栅格数据映射回总图空间。步骤(3.1)中采用种子填充法进行反填充。

步骤(3.1)中,矢量多边形的边界栅格化的方法包括如下步骤:(3.1.1)采用bresenham算法(即布雷森汉姆直线算法),快速地将矢量多边形的边界矢量栅格化;(3.1.2)赋值对应的边界颜色。

(4)进行各层积木零件的铺设;

本步骤(4)采用贪心算法(局部最优)铺设积木零件。

采用贪心算法铺设积木零件的方法包括如下步骤:

(4.1)从基础类型的积木零件中选取1×2、1×3、2×2、2×3的砖状积木零件和2×2的l型积木零件这五种积木零件为基本积木零件;

(4.2)根据这五种基本积木零件的几何特性,确定各种基本积木零件的优先级;

本实施例所确定的优先级参考图3,其中奇数层与偶数层采用不同的积木铺设优先级(其中“1”为最高优选级,“8”为最低优选级)。需要说明的是,积木铺设优先级可根据需要进行设定,不止图3所示的顺序。

(4.3)将这五种基本积木零件按所确定的优先级从高到低进行铺设,直到铺满。

步骤(4.3)中,铺设基本积木零件之后,如果剩余有1×1空位(即可铺设“单粒”的空位),则应就近调整,就近调整的方法包括如下步骤:(4.3.1)检查所有1×1空位;(4.3.2)根据步骤(4.3.1)所检查到的1×1空位相邻的积木零件种类(包括形状及颜色)以及相接的位置,进行调整。

上述步骤(4.3.2)调整的方式为:a)若1×1空位和相邻的积木零件合并后能够形成其他种类的基本铺设积木零件,则合并成新的一个基本积木零件;或b)若1×1空位和相邻的积木零件合并后不能形成其他种类的基本铺设积木零件,则在合并后再分成两个以上的其他基本积木零件(参考图4,其中4a为调整前的示意图,含有1×1空位,相邻的积木零件为2×3砖状积木零件;4b为调整后分成两个基本积木零件的示意图,其中一个为2×2砖状积木零件,另一个为2×2的l型积木零件)。

(5)进行上下相邻层积木零件的粘连性检验,通过粘连性检验后得到积木3d模型智能搭建系统。

每层积木零件中,相邻的积木零件之间存在接缝(在正投影面上,接缝体现为相邻积木零件之间的分界线)。如果上下相邻两层积木零件的接缝存在较长(≥2个单位长度)的连续重叠部分,则可判断该连续重叠部分为裂缝。消除裂缝的方法是:将上层积木零件中处在裂缝两侧的基本积木零件,替换成新的基本积木零件,其中至少一个新的基本积木零件跨越原先的裂缝两侧(该新的基本积木零件将下层积木零件中处在原先裂缝两侧的基本积木零件搭扣在一起),从而消除裂缝。

参考图5,本步骤(5)中上下相邻层的粘连性检验具体包括下述步骤:

(5.1)从最底层开始,逐层扫描上下相邻层的正投影图;

(5.2)判断上下相邻层的正投影图除了边缘线以外,是否有长度≥2个单位长度的重合投影线;

如果有符合条件的重合投影线(例如图6中的6a和6b),则进入步骤(5.3);

如果没有符合条件的重合投影线,则进入步骤(5.5);

(5.3)判断备选方案中是否存在合适的代替方案(即用于代替符合条件的重合投影线两侧的积木零件的方案);

如果有合适的代替方案(例如图6中的6c、6d、6e),则进入步骤(5.4);如果没有合适的代替方案,则发出警告提示;

(5.4)从备选方案中选择一个适合的方案,对符合条件的重合投影线两侧的积木零件进行代替(以图6中的6c、6d或6e代替6b),然后进入步骤(5.5);

(5.5)将上下相邻层的层数分别加一,并判断其中的下层是否为最顶层;

如果其中的下层不是最顶层,则进入步骤(5.2);如果其中的下层是最顶层,则结束,完成粘连性检验。

图6示出了存在裂缝及消除裂缝的一个例子。图6中6a是下层的正投影图,6b是上层的正投影图,6a中的线1与6b中的线1’为重合投影线,其长度为2个单位长度,线1’与线1重合处为裂缝,需要消除。6c为第一种备选方案,可用于代替6b,代替后原先的重合投影线缩短为1个单位长度,消除了裂缝。6d为第二种备选方案,可用于代替6b,代替后原先的重合投影线缩短为1个单位长度,消除了裂缝。6e为第三种备选方案,可用于代替6b,代替后原先的重合投影线完全消除,消除了裂缝。

参考图6,步骤(5.3)中,备选方案是指能够代替原有积木零件组合方案(6b)的一种或多种积木零件组合方案(6c、6d、6e),这些代替积木零件组合方案与原有积木零件组合方案占有同样大小及形状的积木铺设空间。可将原有积木零件组合方案(6b)和各代替积木零件组合方案(6c、6d、6e)作为一组,预先输入;该组中所有积木零件组合方案6b、6c、6d、6e可相互代替,互为备选方案。不同积木零件组合方案中所包含的积木零件互不相同,但积木零件组合后具有同样的轮廓,因此可相互代替。

对于步骤(5.3)中发出警告提示的积木层,可人工进行局部调整。

得到的积木3d模型智能搭建系统保存,可用于指导积木模型搭建的积木3d模型搭建方案。操作人员进行积木3d模型搭建时,参照积木3d模型智能搭建系统中各层积木零件的铺设方式,选用相应的积木零件,进行各层积木零件的铺设(通常从最底层开始铺设),最终搭建成完整的积木3d模型。

实施例2

本实施例的积木3d模型智能搭建系统的构建方法包括下述步骤:

(1)创建或导入欲搭建的积木模型的3d模型文件;

(2)对3d模型文件进行分层并得到各层切片,各层的切片为矢量多边形数据;

(3)将每层切片栅格化,栅格化是指将矢量多边形数据转化为栅格数据;

(4)进行各层积木零件的铺设,得到积木3d模型智能搭建系统。

步骤(1)-(4)采用的技术手段与实施例1相同。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1