专利名称:用来建造块模型的建造指令的自动生成的制作方法
技术领域:
本发明涉及用来建造块模型的建造指令的生成。
背景技术:
有各种类型的物理构造玩具组的建模概念。特别是,使用模块或半模块概念的概念非常流行,因为它们提供有趣和挑战的玩耍体验。典型地,这些概念提供一组预制造元件或建造块,它们根据预制造元件的模型以某种预定方式可彼此互连。预制造元件模仿适应特定建模任务的熟知对象。因而,在例如建造房屋的模型时,元件可以模仿墙砖、屋顶瓦片、门、及窗户。以这种方式选择元件的目的是,涉及房屋模型建造的工作,与其中每当应该形成新模型时限定房屋的所有细节的情形相比,被显著减少。然而,建造房屋或另一种对象时的完全自由度为了建造模型的简单性被折衷。
例如,在名称LEGO下可得到的玩具构造组包括多个不同类型的可互连建造块,该块具有突起和对应凹腔作为连接元件。连接元件根据规则网格图案排列,由此允许在建造块之间的各种各样的互连。
典型地,这样的构造组包括一组建造块,该组建造块适于创建一个或多个建造块模型,例如动物、机器人、或另一个生物、汽车、飞机、飞船、建筑物、等等。典型地,构造组还包括印刷建造指令或组装指令,该指令表明如何由组的建造块构造一定模型。尽管如此,正是这样的建造组的有趣特征激励小孩创建他们自己的模型。
典型地,在玩具建造组中封入的建造指令包括一系列画面,该画面一步接一步地表明如何和按哪种顺序把建造块添加到模型上。这样的建造指令具有它们容易遵循的优点,即使对于没有玩具建造组的较多经验和/或没有阅读技巧的小孩也是如此。
然而,这样的建造指令具有它们使用大量劳力并且生产昂贵的缺点。典型地,建造指令要创建的模型分解成合理的建造步骤,并且每个建造步骤接着画在CAD系统中和最后印刷。
最近,建造指令已经电子地而不是以印刷形式产生。具体地说,有动画(animated)建造指令,其中动画更复杂的建造步骤。然而,这样的建造指令的生成,仍然涉及通过熟练设计人员的建造步骤的设计和画出/动画。
以上生产过程具有它们要求巨大技巧和使用大量劳力的缺点。作为结果,建造指令典型地仅对于由建造块的制造商设计的建造块模型存在。具体地说,用来产生建造指令的以上现有技术方法不适于希望产生用于他们自己的模型的建造指令的小孩,他们自己的模型允许他们与他们的朋友共享他们的模型。
有效、容易理解分步建造指令的设计也已经是某些研究的主题。从http://graphics.stanford.edu/papers/assembly instructions/检索的M.Agrawala等的互联网公报“Designing Effective Step-by-StepAssembly Instructions(设计有效分步组装指令)”,基于智力心理学描述了用于有效组装指令的设计原理。这篇文章还公开了一种基于关于待组装的对象的每一个、组装方位及用于图形再现的摄像机视点的信息;成组信息;关于紧固件、零件的意义、对称性、及关于对组装顺序的约束条件的信息而用来产生组装指令的计算机化系统。基于这种输入,系统基于考虑到给定约束的广泛研究算法计算一系列组装步骤。
以上现有技术系统的问题是它计算昂贵并且要求复杂的输入数据,因而要求来自用户的高度抽象思考。
因此,具体地说,用来产生建造指令的以上现有技术方法都不适于希望产生用于他们自己的模型的建造指令的小孩,他们自己的模型允许他们与他们的朋友共享他们的模型,并且进一步改进玩耍体验。
发明内容
以上和其它问题由产生用于建造块模型的建造指令的计算机实施方法解决,模型包括多个建造块;该方法包括a)检索建造块模型的数字表示;其中,所述数字表示指示连续构造顺序,按该连续构造顺序,多个虚拟建造块在计算机实施虚拟构造过程期间响应用户命令已经定位,所述虚拟构造过程产生虚拟建造块模型;和b)产生所述多个虚拟建造块的相应第一和第二子组的至少第一和第二部分模型的图形表示;其中,第二子组包括第一子组和所述多个虚拟建造块的预定数量的另外虚拟建造块;并且其中,另外虚拟建造块就从连续构造顺序导出的连续指令顺序而论在第一子组中的所有虚拟建造块之后。
因此,已经实现的是,建造模型的虚拟版本的用户采用自然序列的组装步骤,对于该模型要产生建造指令。所以,通过记录和存储由用户采用的组装步骤的顺序,步骤的顺序可用在建造指令的产生中。结果是,由这种计算简单方法产生的建造指令容易由其它用户理解,特别是小孩。
此外,由于对于建造指令的唯一输入是虚拟模型和数字表示和关于在虚拟模型产生期间记录的虚拟构造步骤的序列的信息,所以建造指令容易使用户产生,而不要求用户拥有设计技巧或关于几何学、结束条件、等等的抽象知识。
虚拟建造块的定位可以包括建造块的希望方位的选择,例如相对于基准坐标系。因此,在某些实施例中,虚拟建造块的定位包括相对于3维坐标系定位和选择虚拟建造块的方位。
在优选实施例中,数字表示包括一系列数据记录,每个代表多个建造块之一;并且所述系列代表连续构造顺序,按该连续构造顺序,在模型产生期间定位虚拟建造块。因此,当用于个别建造块的数据记录在这些块添加到或重新定位在模型中时按相同顺序存储时,关于连续顺序的信息自动地包括在数字表示中而不需要另外数据项,由此提供特别紧凑的表示。此外,当产生部分模型的图形表示时,为了辨别在以后步骤中待添加的下个建造块不要求通过数据记录的查找。
在可选择实施例中,数字表示包括多个数据记录,每个代表多个建造块之一;并且其中,每个数据记录包括指示在所述连续顺序中的对应虚拟建造块的位置的数据项,按所述连续顺序,在模型产生期间定位虚拟建造块。所以,当在连续定序中的每个建造块的位置被清楚地存储时,方法对于数字表示的格式不施加任何定序约束。理解的是,定序信息可以以各种方式包括在数字表示中,例如通过把序列号赋予每个建造块,通过把数据记录存储为链接清单,其中每个数据记录包括对于在序列中的下个建造块的指针、等等。
在一个实施例中,连续指令顺序与记录连续构造顺序相同,由此避免对于重新分类存储数据记录的任何需要。在另一个优选实施例中,方法还包括根据得到连续指令顺序的预定分类标准修改连续指令顺序,由此提供用来考虑物理构造过程的限制的机理,该限制在虚拟构造过程中不实施。在某些实施例中,在分类数字表示之前进行连续顺序的修改,导致包括关于构造序列和关于连续顺序的任何修改的信息的模型的数字表示。例如,建造块数据记录可以按修改连续顺序存储。可选择地,数字表示按记录构造顺序存储,并且作为图形表示的产生的部分进行任何修改。
具体地说,结果是当数字表示包括虚拟建造块的每一个相对于预定坐标系的相应位置坐标时,并且当所述分类标准包括沿至少一个预定方向,优选地从基础板突出的方向-建造块模型构造在该基础板上,的所述位置坐标时,得到特别容易遵循的用户指令。
在另一个优选实施例中,方法还包括借助于用来交互地构造虚拟建造块模型的计算机实施构造环境而产生建造块模型的数字表示,其中产生包括-彼此相对地把多个虚拟建造块定位在相应位置中,导致虚拟建造块模型,其中虚拟建造块响应用户命令按连续构造顺序定位;-存储包括关于所述连续构造顺序的信息的所述虚拟建造块模型的数字表示。
优选地,用来交互地构造虚拟建造块模型的计算机实施构造环境包括计算机程序,该计算机程序在计算机上执行时,提供图形用户接口,该图形用户接口允许用户操纵虚拟建造块模型,包括像选择建造块、把建造块添加到模型、从模型删除建造块、改变建造块的方位、改变建造块的性质例如颜色、类型、尺寸、及/或类似性质、观看模型、保存模型的数字表示、加载以前保存模型的数字表示、等等之类的操作。
优选地,虚拟建造块是对应物理建造块的虚拟对等部分,即具有对应的相对尺寸、形状、颜色、等等。
在另外的优选实施例中,计算机实施构造环境配置成加强相对于彼此施加在建造块的相对位置上的预定组限制。优选地,限制与可应用于对应物理建造块的对应限制相对应,由此保证由对应物理建造块实际上也可构造虚拟建造块模型。所以,优点是,方法保证产生的建造指令实际上是可实现的,即导致希望结果。
这样的限制的一个例子是在新放置的建造块与以前放置的建造块之间的碰撞探测。此外,在多个玩具建造组中,建造块彼此是可互连的,即它们包括适于与其它这样的建造块的连接元件接合的连接元件。这样的连接元件对于建造块的可能放置施加进一步的限制,因为连接只有在相容连接元件之间才是可能的,例如当放置在彼此相对的正确位置中时配合到对应凹腔中的突起。因此,在优选实施例中,计算机实施构造环境配置成取回虚拟建造块的对应连接元件的连接性信息,该信息指示彼此预定靠近定位的两个建造块的连接元件是否提供在两个建造块之间的连接。
优选地,每个图形表示包括部分建造块模型的图形再现,即建造块模型包括连续定序的部分序列的建造块。在另外的优选实施例中,第一和第二子组的每一个由存储的连续顺序构成不间断部分序列的虚拟建造块,由此提供容易遵循的建造指令,其中每个图形表示与在建造过程中的步骤相对应,其中预定数量的建造块添加到模型上。用户通过比较两个连续图形表示可容易地确定哪些建造块要在每个步骤中添加和它们如何添加。
当方法还包括提供用来观看图形表示的用户接口时,其中用户接口优选地利于产生的图形表示的用户控制操纵,建造块模型的数字表示可以便利地在计算机上观看。具体地说,由于模型的数字表示包括对于建造指令的产生所要求的所有信息,所以建造指令可以便利地从一个计算机通信到另一个,例如存储在存储介质上,经通信网络发送,例如作为电子邮件附件、装载在web服务器上等等。数字表示的接收者因而可以观看图形表示并且操纵它,例如改变视角、缩放、改变观看选项、及/或类似操纵。因此,用户可以容易地把他们的建造指令通信给朋友。另外的优点是,数字表示不必包括指令的每个步骤的图形再现,由此保持数字表示的文件尺寸较小。此外,由于数字表示优选地包括所有相关模型信息,所以模型的接收者甚至可以在产生建造指令之前修改模型。
优选地,用户接口提供用来观看产生的图形表示的选择表示和提供象缩放、旋转等等之类的操作的功能性。所以,用户在观看指令时可挑选和甚至改变优选视点,由此避免由放置在位置中的新放置建造块引起的任何问题,在该位置处它不可见而不需要计算昂贵的3D计算。更优选地,用户接口提供用来观看部分模型的一系列图形表示的功能性,其中在下个图形表示自动地显示之前,每个图形表示显示预定的时间段。所以,用户可以观看作为实际建造过程的滑动表示或动画的建造指令,由此进一步利于指令的理解。
优选地,用户接口还提供用来打印图形表示的至少一个和/或用来以预定文件格式存储图形表示的至少一个的功能性,由此允许打印的和/或电子建造指令的产生。适当文件格式的例子包括HTML、XML、BMP、TIFF、等等。
在优选实施例中,在步骤状指令的步骤中添加的另外虚拟建造块的预定数量是用户可选择的,由此通过步骤指令-其中例如每个步骤与单个新建造块的放置相对应、和非常紧凑指令-其中每个步骤与大量新放置块相对应-允许用户在非常详细的步骤之间选择。结果是,对于多个模型,当预定数量在1与6之间选择,优选地在2与4之间选择时,实现容易遵循的指令。然而,其它步骤大小也是可能的。在某些实施例中,在每个步骤中添加的建造块的数量在所有步骤中都相同。在其它实施例中,添加的另外块的数量对于建造指令的不同步骤可以不同。例如,步骤大小对于每个步骤可以由用户控制,由此对于构造的更复杂部分允许更加细化的指令的产生。
当方法还包括与另外建造块的图形表示一起呈现模型的第二图形表示-该另外建造块把第二部分模型与第一部分模型区分开时,提供特别有效的建造指令,由于用户可立即看到在每个步骤中添加哪些建造块。可选择地或另外地,新放置建造块可以以不同方式高亮,例如通过在部分模型中以不同颜色、半透明、用约束框、等等再现新放置的建造块。
本发明能以不同方式实施,包括以上描述的方法和在下面的一种数据处理系统、和另外的产品装置,每个与首先提到的方法一道产生描述的好处和优点的一个或多个,并且每个具有与联系首先提到的方法描述的和在与其相关的从属权利要求书中公开的优选实施相对应的一个或多个优选实施例。
具体地说,以上和下面描述的方法的特征可以以软件实施,并且可以在通过计算机可执行指令的执行引起的数据处理系统或其它处理装置上实现。指令可以是从存储介质或从另一个计算机经计算机网络加载在诸如RAM之类的存储器中的程序代码装置。可选择地,描述的特征可以由硬导线连接的电路而不是软件或者与软件的组合实施。
因而,本发明还涉及一种适于完成以上和下面描述的方法的数据处理系统。本发明还涉及一种计算机程序,该计算机程序包括当所述程序在计算机上运行时用来完成以上和下面描述的方法的所有步骤的程序代码装置。本发明还涉及一种计算机程序产品,该计算机程序产品包括当所述程序产品在计算机上运行时用来完成以上和下面描述的方法的程序代码装置。程序代码装置可以存储在计算机可读介质上和/或实施为传播数据信号。
优选地,计算机程序包括第一软件部分(成分),用来完成首先提到的方法的步骤a)和b);和第二软件部分(成分),用来借助于用来交互构造虚拟建造块模型的计算机实施构造环境,完成产生建造块模型的数字表示的步骤,由此提供用来阅读模型的数字表示的独立软件部分和呈现对应建造指令。因此,当通信建造指令时,用户可以与第二软件部分一起通信数字表示,由此提供可由接收者观看的建造指令的紧凑、自包含表示,而不需要另外软件。
下面联系优选实施例和参照附图将更充分地解释本发明,其中图1a-b表示一种用来产生建造块模型的建造指令的数据处理系统;图2表示建造指令产生的实施例的流程图;图3表示虚拟建造块系统的图形用户接口;图4表明建造块和其连接元件的例子;图5表明用来数字表示建造块模型的数据结构的实施例;图6表明用来数字表示建造块模型的数据结构的另一个实施例;图7表明建造指令应用程序的图形用户接口的实施例;图8表明建造块模型的部分模型形成分步建造指令的图形表示的典型序列;图9表明建造指令应用程序的图形用户接口的观看区域的另一个实施例;图10表明虚拟建造块模型的一系列构造步骤的例子;及图11表明根据图10的序列创建的虚拟建造块模型的建造指令的实施例。
具体实施例方式
图1a-b表示一种用来产生和操纵几何对象的计算机可读模型的数据处理系统。
图1a表示计算机系统的例子的示意图。计算机系统包括适当编程计算机101,例如个人计算机,该计算机101包括显示器120、键盘121及计算机鼠标122和/或另一个点击装置,如触摸垫、跟踪球、光笔、触摸屏幕、等等。
指示为101的计算机系统适于促进设计、存储、操纵、及共享虚拟建造块模型以及产生建造指令,如这里描述的那样。计算机系统101可用作独立系统,或用作在客户机/服务器系统中的客户机。在某些实施例中,计算机系统还包括用来把计算机与计算机网络,例如因特网,相连接的一个或多个接口。
图1b表示用来产生用于建造块模型的建造指令的数据处理系统的方块图。计算机101包括可以部分实施为易失和部分实施为非易失存储器装置的存储器102,例如随机存取存储器(RAM)和硬盘。存储器在其上已经存储模型代码解释器107、模型代码产生器108、UI事件处理器109、建模应用程序110、及建造指令产生器113,每个可由中央处理单元103执行。另外,存储器在其中已经存储模型数据111,即代表虚拟建造块模型的数字表示的一组数据结构。
代码解释器107适于读取和解释定义模型的代码,即代表模型的建造块的数据结构的代码。在优选实施例中,代码解释器适于读取模型和把这样一种模型转换成用于在计算机显示器上的表示的已知图形格式,优选地模型的3D再现。
UI事件处理器109适于把用户与用户接口的交互作用转换成可由代码产生器108识别的适当用户指令。一组可能和可识别命令可包括由元件库获得建造块;把建造块放置成连接到另一个建造块上;脱开建造块;丢弃建造块;操纵建造块、一组建造块;等等,例如通过启动旋转、等等。与每条命令一道,可以相关联有一组相应参数,例如相对于显示坐标系的光标坐标、建造块的类型、等等。
代码产生器108适于响应用户的命令修改模型的数据结构。作为并行或以后任务,代码产生器可被执行,以便呈现代码产生器的结果。
建模应用程序110适于控制存储器、文件、用户接口、等等。
建造指令应用程序113适于根据存储的建造步骤序列读取模型数据和提供用来显示部分模型的用户接口,如下面描述的那样。建造指令应用程序113使用由代码解释器107和UI事件处理器109提供的、分别用于模型的读取和图形再现和用来接收用户输入的功能。在可选择实施例中,建造指令应用程序是自包含的,即不依赖于外部软件部分。
用户105借助于用户接口106、和诸如键盘和/或点击装置之类的一个或多个输入装置,能够与计算机系统101交互作用,该用户接口106优选地包括在计算机屏幕上显示的图形用户接口。
为了加载、保存、或通信模型、几何描述、或其它数据,计算机系统包括输入/输出单元(I/O)104。输入/输出单元可用作对于不同类型的存储介质和不同类型的计算机网络,例如因特网,的接口。而且,输入/输出单元(I/O)104可用于与其它用户例如交互地交换模型。
在存储器102、中央处理单元(CPU)103、用户接口(UI)106、及输入/输出单元104之间的数据交换借助于数据总线112完成。
注意,图1的数据处理系统配置成执行建模应用程序和建造指令应用程序。然而,在其它实施例中,数据处理系统可以配置成仅基于从另一个计算机接收的模型数据执行建造指令应用程序,在该另一个计算机上执行建模应用程序。同样,在所述其它计算机上,建模应用程序可以单独地或与建造指令应用程序组合地安装。
图2表示建造指令产生的实施例的流程图。过程分成模型产生阶段206,包括步骤S1和S2;和建造指令产生阶段207,包括步骤S3和S4。模型产生阶段206产生建造块模型的数字表示,该数字表示是到建造指令产生阶段207的输入。这个模块过程的优点是,两个阶段可在同一或不同的计算机上执行。
在初始步骤S1中,由模型产生模块,例如图1b的建模应用程序110,创建虚拟建造模型的数字表示。交互地进行建模,允许用户202由一组预定虚拟建造块建造虚拟建造块模型。虚拟建造块存储为在存储介质201上的相应数据结构。例如,数据记录可以局部存储在计算机上,在该计算机上执行建模应用程序。可选择地或另外地,建造块定义可以从存储装置,例如CD ROM,或经计算机网络,例如通过从在因特网上的网站下载建造块定义,而取得。
在模型产生期间,用户典型地通过一次选择多个建造块的一个并且把选择的建造块添加到模型上,即把它相对于以前放置的建造块定位,而创建虚拟建造块模型。便利地,这样一种定位操作可以由拖动和放下操作或类似的交互选择和定位操作进行。
虚拟真实性建模的实施例在US 6,389,375中描述。此外,把新虚拟建造块交互地放置在包括3D结构的布景中的过程的实施例在共同待决国际申请PCT/DK2004/000341中描述。两个实施例都通过参考全部包括在这里。
要理解,建造过程还可以包括已经放置在模型中的建造块的操纵,包括删除建造块、把建造块运动到另一个位置、重新定向建造块、改变建造块的属性/性质、和/或类似操作。
当用户典型地一次定位一个建造块时,例如通过添加新选择的建造块或通过重新定位以前放置的建造块,建造过程施加连续顺序的建造步骤。这种连续顺序由建模应用程序记录。虽然如此,但在某些实施例中,几个建造块可以同时放置。例如,在某些实施例中,建模应用程序提供拷贝和粘贴功能,其中一个或多个互连建造块可以响应用户命令而被选择,并且选择子结构的拷贝可以定位在模型的不同位置处。在这个实施例中,选择建造块的每一个具有在连续定序中的位置。当产生多个建造块的拷贝时,它们相对于其它选择和拷贝的建造块保持它们的相对连续定序,由此在拷贝操作期间相对于另一个简单地维持它们的相对连续定序。
一旦在步骤S1中的模型的创建完成,模型的数字表示就由在步骤S2中的建模应用程序保存。典型地,保存步骤由对应用户命令启动。
在步骤S2中,数字表示存储在存储介质203中,例如,在运行建模应用程序的计算机的本地硬盘上,在CD ROM上,在软盘上,或类似装置上。可选择或另外地,模型的数字表示也可以远程地存储,例如发送到其中它被存储的计算机网络的另一个计算机。例如,数字表示可以上载到web服务器,在该处可以使它适用于其它用户。
下面将描述数字表示的优选数据结构。在步骤S3中,包括关于构造步骤的记录连续顺序的存储信息的数字表示由建造指令应用程序从存储介质203加载。
在步骤S4中,建造指令应用程序由加载的数字表示产生建造指令205。具体地说,建造指令应用程序产生部分模型的一系列3D视图,其中每个部分模型与紧前面部分模型区分开,因为预定数量的另外建造块根据构造步骤的存储序列或根据由其导出的序列添加到模型上。下面参照图7至11描述建造指令过程的优选实施例。建造指令205可以电子地呈现、打印、或以另一种适当方式呈现。在某些实施例中,建造指令的产生可以由用户204控制。例如,用户可以选择在每个步骤待添加的另外建造块的数量。此外,用户可以操纵产生的3D视图,包括摄像机位置的变化、等等,如下面将描述的那样。用户204可以是与用户202相同的或不同的用户。
图3表示虚拟建造块系统的图形用户接口。用户接口包括显示区域301,该显示区域301表示具有基础板302的3D布景的视图、和包括多个互连虚拟建造块304的3D结构303。布景由预定视点表示。在下面,这个视点也将称作(虚拟)摄像机位置,因为它与一个位置相对应,从该位置,摄像机记录与在显示区域中表示的图形画面相对应的真实结构的画面。
建造块304的每一个与图形用户接口的活动元件相对应,该活动元件可以例如通过用计算机鼠标在它上面点击而被致动,以选择该建造块。在一个实施例中,选择的虚拟建造块改变外观。例如,选择的建造块可以改变颜色、织构等等;它可以通过表示围绕选择建造块的约束框等等而高亮。用户可以操纵选择的建造块,例如改变其性质,例如其颜色;删除它;进行拷贝和粘贴操作;把它拖动到不同位置;旋转它;等等。
用户接口还包括调色板面板305,该调色板面板305包括可以由用户选择的多个不同建造块306。例如,用户可以用鼠标在建造块306之一上点击,由此选择该建造块,并且把选择的建造块拖动到显示区域301中,以把它连接到结构303上或连接到基础板302上。
用户接口还包括菜单条307,该菜单条307包括用来致动各种功能或工具的多个菜单按钮308。例如,工具条可以包括用来改变虚拟摄像机位置的旋转工具,由此允许用户从不同方向观看建造区域。菜单条还可以包括用来向/从3D布景缩放的缩放工具。工具的其它例子包括调色板工具,用来选择不同的调色板305,每个调色板305包括不同组的建造块;着色工具,用来着色结构的部分;擦除工具,用来擦除建造块;等等。
菜单条307还可以提供标准功能,如用来保存模型、打开以前保存模型、打印模型的图像的功能;帮助功能;等等。
图4表明建造块和其连接元件的例子。具体地说,图4表示建造块401的立体图。建造块401具有顶部表面402,该顶部表面402具有可与另一个建造块的对应孔,例如在另一个建造块的底部表面上的孔,相接合的八个小丘403a-h。对应地,建造块401包括具有对应孔的底部表面(未表示)。建造块401还包括侧正面404,该侧正面404不包括任何连接元件。
一般地,连接元件可以分组成不同类别的连接元件,例如连接器、接收器、及混合元件。连接器是可以由另一个建造块的接收器接收的连接元件,由此提供在建造块之间的连接。例如,接收器可以配合在另一个元件的部分之间,配合到孔中,等等。接收器是可接收另一个建造块的连接器的连接元件。混合元件是可既起接收器又起连接器作用的部分,典型地依赖于其它建造块的合作连接元件的类型。
在图4中表明的类型的建造块在名称LEGO下以各种各样的形状、尺寸、及颜色可得到。此外,这样的建造块以各种不同的连接元件可得到。要理解,以上建造块仅用作可能建造块的例子。
图5表明用来数字表示建造块模型的数据结构的实施例。在虚拟建造块模型的创建期间,建模应用程序维持表示至今所述创建的模型的数据结构。当保存模型时,保存对应数据结构。在一个实施例中,保存数据结构501包括一个或多个数据记录502,该数据记录502包括涉及整个模型的全局模型参数。这样的模型参数的例子包括模型名称、模型创建者的姓名、建模应用程序的程序版本号、创建数据、等等。模型数据结构501包括还包括建造块数据结构的列表503。在图5的例子中,列表包括N个数据结构“建造块1”、“建造块2”、…、“建造块J”、…、“建造块N”。
列表503的每个建造块数据记录具有由用于“建造块J”的数据结构504表明的结构。
具体地说,每个建造块数据记录包括建造块ID 505,指示与建造块的类型相对应的标识符。优选地,建造块ID独特地标识建造块的性质或建造块的类型。
建造块数据记录还包括指示建造块的一个或多个属性,如颜色、织构、装饰、等等,的多个块属性506。
此外,建造块数据记录504包括分别表示建造块的内部坐标系的位置和方位的数据项507和508。建造块的位置和方位由建造块相对于球“世界”坐标系的内部坐标系的原点的坐标定义,并且由内部坐标系相对于球坐标系的方位定义。
用来存储包括坐标系的层次的虚拟建造模型的数据格式的例子公开在美国专利no.6,389,375中。
此外,建造块数据记录504包括表示建造块的一个或多个约束框和连接性数据的数据项509和510,分别用在建造块与其它建造块的连接性性质的检测上。在图4中表示的建造块类型的连接性数据的表示的实施例包括表示由建造块的约束框的表面定义的平面的数据结构。建造块的连接元件布置在这些平面中,从而每个连接元件具有与它有关的轴线。在同一平面中的所有连接元件的轴线与规则网格,例如正交网格,的相应网格点相对应,该网格在相邻网格点之间具有固定距离。与图4的建造块401有关的平面成对地彼此平行,并且它们包括与建造块的顶部和底部正面相对应的一组水平平面、和与建造块的侧正面相对应的多个竖直平面。优选地,在相邻网格点之间的距离在所有水平平面中都相同。在一个实施例中,在竖直平面中在相邻网格点之间的距离与在水平平面中的相邻网格点之间的距离不同。在图4中表示的类型的建造块的连接性性质的数字表示和在虚拟模型产生期间的对应连接性规则的加强公开在WO 04/034333中,WO04/034333通过参考全部包括在这里。
要理解,数字表示可以以任何适当数据或文件格式编码,例如作为二进制文件,作为根据预定建模描述语言的文本文件,等等。
在模型数据结构的以上例子中,建造块按它们的相应放置的连续顺序定序。所以建造块1是放置在模型中的第一建造块,并且建造块N是最新放置的或重新定位的建造块。每当操纵模型时,更新以上数据结构。
这样的操纵的例子包括-建造块的属性的变化,例如其颜色或外观。这种变化不涉及建造块的连续顺序的变化。
-新建造块的添加这种变化包括把新建造块数据结构附加到列表上,导致N+1建造块的列表,其中建造块N+1是新添加的建造块。
-建造块的删除这种变化包括从列表除去建造块数据记录。
-建造块的重新定位,例如建造块到新位置的运动,建造块的方位的变化、或以上的组合这种变化涉及从其在列表中的当前位置除去对应建造块数据结构、和把在列表的末端处的数据记录附加有对应新位置和方位坐标以及连接性数据的任何变化。
图6表明用来数字表示建造块模型的数据结构的另一个实施例。这个实施例与图5的数据结构类似。然而,在这个实施例中,列表503的每个建造块数据记录包括以连接顺序指示建造块的位置的序列索引601,建造块已经按该连续顺序添加到模型或已经重新定位在模型内。
图7表明建造指令应用程序的图形用户接口的实施例。图形用户接口包括表明一组分步建造指令的步骤的图形表示的观看区域701。图形表示表明从预定摄像机位置表示的部分模型702的3D视图。部分模型702包括完整模型的所有建造块的子组,其中子组包括初始定位建造块。观看区域701还包括最新放置建造块,即把当前部分模型702与以前步骤的部分模型区分开的建造块,的图形表示703。在这个例子中,这些是部分模型702的建造块714、715、及716。
用户接口还包括滑标控制元件709,该滑标控制元件709可以由借助于鼠标的对应拖动操作以离散间隔运动,允许用户选择分步指令的步骤的任一个。在图7的例子中,在指令的每个步骤中添加三个新建造块。
用户接口还包括按钮控制元件705,该按钮控制元件705允许用户调用多个频繁使用的功能,如分别在向前和向后方向上连续地翻转过图形表示、跳到指令的第一和最后步骤、改变摄像机位置、打印产生的建造指令、及启动“自动放影”功能。自动放影功能一一显示部分模型的序列,从而每个部分模型显示预定时间段。优选地,用户可以配置在自动放影功能中用于每个部分模型的观看时间。
优选地,在每个步骤中添加的建造块的数量是可配置的。在图7的例子中,假定该数量设置到3,即在建造指令的每个步骤中把三个建造块添加到模型上。所以,第一部分模型包括记录构造步骤的连续顺序的第一、第二、及第三建造块,而第二部分模型包括第一、第二、第三、第四、第五及第六建造块,等等。
最后,用户接口包括多个下拉菜单704,允许用户启动诸如帮助功能、用来改变摄像机位置的功能、缩放功能、等等之类的功能性。由建造指令应用程序提供的另外功能性包括数字表示的加载;用来打印部分模型的图形表示的打印功能;及用来例如以HTML格式、或任何其它适当图形文件格式,如TIF、JPG、BMP、等等,输出部分模型的图形表示的序列的输出功能。
由建造指令应用程序提供的功能的另外例子包括料单功能,允许用户观看或打印在模型中所有建造块的列表。
图8a-l表明建造块模型的部分模型形成分步建造指令的图形表示的典型序列。每个图形表示在显示区域801中表示,并且包括部分模型802的视图和在当前步骤中添加的建造块803的视图。同样,在这个例子中,在每个步骤中添加三个建造块。所以,图8a表示连续顺序的最初三个建造块803的初始部分模型,即在模型创建期间添加到模型的最初三个建造块。图8b表明包括6个建造块,即图8a的三个建造块和三个另外建造块,的下个部分模型。图8c至图8k按分步指令的连续顺序表示以后增量部分模型。最后,图8l表示在添加最后三个建造块之后的完成模型。要理解,在其中在模型中的建造块的总数不是在每个步骤中添加的建造块数量的倍数的情况下,在步骤之一中,例如在最后步骤中,添加不同数量的块。
要理解,在某些实施例中,在用户接口的观看区域中可以同时显示多于一个的部分模型。
图9表明建造指令应用程序的图形用户接口的观看区域的另一个实施例。在这个实施例中,观看区域701表示当前部分模型702和按连续顺序的建造块903的序列,按该连续顺序它们添加到模型上。与建造块903的序列相邻的滑标控制元件904指示在序列中的当前位置在显示区域901中当前显示的部分模型902包括直到由当前滑标位置指示的建造块913的所有建造块。
通过上下运动滑标控制元件904,用户可选择在观看区域中观看哪个部分模型。所以,在这个实施例中,每个增量部分模型仅与以前部分模型相差单块砖。
图10表明虚拟建造块模型的一系列建造步骤的例子。图10a-d表示在导致虚拟建造块模型1010的建造步骤序列的不同步骤处的建模应用程序,例如联系图3描述的建模应用程序,的显示区域1000。为了简单起见,在这个例子中假定,建造块模型仅由一种类型的建造块创建,即联系图4描述的类型。图10a表示在第一建造块1001的放置之后的显示区域。图10b表示在第二建造块1002部分放置在第二建造块的顶部上之后的显示区域,从而在第一建造块1001的顶部表面上的小丘的一些与在第二建造块1002的底部表面中的对应凹腔接合。图10c表示在第三建造块1003放置之后的显示区域,并且图10d表示在第四建造块1004放置之后的显示区域。
应该注意,在这个位置中第四建造块1004的放置对于联系图4描述的类型的物理建造块不首先除去块1001或1003是不可能的,因为在建造块1001和1004的相应顶部表面上的小丘防止在建造块1001和1003之间的间隙中的建造块1004的插入。在虚拟建模的某些实施例中,建造块1004的定位可能仍然是允许的,因为生成位置是有效的。一旦定位在间隙内,建造块1001和1004的小丘就分别与建造块1004和1003的对应凹腔正确地接合。在虚拟建模应用程序中允许这样一种定位提供建造块的更高效操纵,如在模型的中心处的建造块的替换,而不需要取消大量其它建造步骤。
虽然如此,但当产生用于物理模型的构造的建造指令时,可能希望的是,保证建造步骤的序列能够按表示的顺序进行。
这个问题通过根据导致导出序列的二次定序条件修改记录建造步骤的序列而解决。在图10的例子中的这样一种二次条件的例子是建造块的位置。例如,在球坐标系1011的y-方向上的建造块的坐标可以用作二次分类标准。在图10的全球坐标系中的y-方向与从基础板的竖直方向相对应,即与在彼此的顶部上的堆叠建造块的自然方向相对应。
由用于图10的例子的建模应用程序产生的建造块数据记录的列表具有如下连续顺序
这里,建造块的y-坐标指示y1、y2、及y3,其中y1<y2<y3。
在一个实施例中,以上记录连续顺序通过根据它们的y-坐标分类建造块而修改。具有相等y-坐标的建造块按记录的那样保持它们的相对连续顺序。
这种修改导致如下修改的序列
所以互换建造块1003和1004。建造指令的对应步骤表示在图11a-d中,其中在每个步骤中添加另外建造块。
图11表明根据图10的序列创建的虚拟建造块模型的建造指令的实施例。具体地说,图11a-d表示建造指令应用程序的用户接口的显示区域1100,表示产生的分步建造指令的相应步骤的部分模型。在图11中的例子中,在建造指令中的步骤序列由联系图10描述的修改步骤序列产生。因而,图11a表示具有指令序列的第一建造块1101的初始部分模型。图11b表示在指令序列的第二建造块1102的添加之后的部分模型。图11c表示在指令序列的第三建造块1104的添加之后的部分模型。最后,图11d表示在指令序列的第四建造块1103的添加之后的完成模型。
权利要求
1.一种产生用于建造块模型的建造指令的计算机实施方法,模型包括多个建造块;该方法包括a)检索建造块模型的数字表示;其中,所述数字表示指示连续构造顺序,按该连续构造顺序,多个虚拟建造块在计算机实施虚拟构造过程期间响应用户命令已经被定位,所述虚拟构造过程产生虚拟建造块模型;和b)产生所述多个虚拟建造块的相应第一和第二子组的至少第一和第二部分模型的图形表示;其中,第二子组包括第一子组和所述多个虚拟建造块的预定数量的另外虚拟建造块;并且其中,另外虚拟建造块关于从连续构造顺序导出的连续指令顺序在第一子组中的所有虚拟建造块之后。
2.根据权利要求1所述的方法,其中,数字表示包括一系列数据记录,每个代表多个建造块之一;并且所述系列代表连续构造顺序,其中在模型产生期间虚拟建造块被定位。
3.根据权利要求1所述的方法,其中,数字表示包括多个数据记录,每个代表多个建造块之一;并且每个数据记录包括指示在所述连续构造顺序中的对应虚拟建造块的位置的数据项,按所述连续构造顺序,在模型产生期间虚拟建造块被定位。
4.根据权利要求1至3任一项所述的方法,其中,连续指令顺序与连续构造顺序相同。
5.根据权利要求1至3任一项所述的方法,还包括根据预定分类标准修改连续构造顺序以得到连续指令顺序。
6.根据权利要求5所述的方法,其中,数字表示包括虚拟建造块的每一个相对于预定坐标系的相应位置坐标;并且所述分类标准包括沿至少一个预定方向的所述位置坐标。
7.根据权利要求1至6任一项所述的方法,还包括借助于用来交互地构造虚拟建造块模型的计算机实施构造环境而产生建造块模型的数字表示,其中产生包括-彼此相对地把多个虚拟建造块定位在相应位置中,导致虚拟建造块模型,其中虚拟建造块响应用户命令按连续构造顺序定位;-存储包括关于所述连续构造顺序的信息的所述虚拟建造块模型的数字表示。
8.根据权利要求7所述的方法,其中,计算机实施构造环境配置成加强相对于彼此施加在建造块的位置上的预定组限制。
9.根据权利要求8所述的方法,其中,计算机实施构造环境配置成检索虚拟建造块的对应连接元件的连接性信息,该信息指示彼此预定靠近定位的两个建造块的连接元件是否提供在两个建造块之间的连接。
10.根据权利要求1至9任一项所述的方法,其中,第一和第二子组的每一个由存储的连续指令顺序构成虚拟建造块的不间断部分序列。
11.根据权利要求1至10任一项所述的方法,其中,产生图形表示包括产生部分模型的对应序列的图形表示序列,部分模型包括初始部分模型、增量部分模型序列、及完成模型;其中增量部分模型的每一个包括序列的紧前面增量部分模型的所有虚拟建造块、和来自多个建造块的预定数量的另外虚拟建造块;及其中完成模型包括所有多个虚拟建造块。
12.根据权利要求1至11任一项所述的方法,还包括提供有利于产生图形表示的用户控制操纵的用户接口。
13.根据权利要求12所述的方法,其中,用户接口提供操作缩放和旋转中的至少一个。
14.根据权利要求12或13所述的方法,其中,用户接口提供用来观看产生的图形表示的选择表示的功能性。
15.根据权利要求14所述的方法,其中,用户接口提供用来观看部分模型的图形表示序列的功能性,其中每个图形表示在自动显示下个图形表示之前,显示预定时间段。
16.根据权利要求12至15任一项所述的方法,其中,用户接口还提供用来打印至少一个图形表示和以预定文件格式存储至少一个图形表示中的至少一个的功能性。
17.根据权利要求1至16任一项所述的方法,其中,预定数量是用户可选择的。
18.根据权利要求1至17任一项所述的方法,其中,预定数量在1与6之间,优选地在2与4之间。
19.根据权利要求1至18任一项所述的方法,还包括与另外建造块的图形表示一起呈现模型的第二图形表示,该另外建造块把第二部分模型与第一部分模型区分开。
20.一种数据处理系统,已经在其上存储程序代码装置,当所述程序代码装置在数据处理系统上执行时,该程序代码装置适于使数据处理系统完成根据权利要求1至19任一项所述的方法的步骤。
21.一种计算机程序产品,包括程序代码装置,当所述程序代码装置在数据处理系统上执行时,该程序代码装置适于使数据处理系统完成根据权利要求1至19任一项所述的方法的步骤。
22.根据权利要求21所述的计算机程序产品,包括计算机可读介质,该计算机可读介质在其上已经存储程序代码装置。
23.根据权利要求19或20所述的计算机程序产品,包括第一软件部分,用来执行根据权利要求1至19任一项所述的方法的步骤a)和b);和第二软件部分,用来借助于用来交互构造虚拟建造块模型的计算机实施构造环境,执行产生建造块模型的数字表示的步骤。
24.一种以载波和指令的表示序列实施的计算机数据信号,该信号在由处理器执行时,使处理器执行根据权利要求1至19任一项所述的方法的步骤。
全文摘要
一种产生用于建造块模型的建造指令的计算机实施方法,包括检索建造块模型的数字表示;其中,所述数字表示指示连续构造顺序,按该连续构造顺序,多个虚拟建造块在计算机实施虚拟构造过程期间响应用户命令已经定位,所述虚拟构造过程产生虚拟建造块模型;和产生所述多个虚拟建造块的相应第一和第二子组的至少第一和第二部分模型的图形表示;其中,第二子组包括第一子组和所述多个虚拟建造块的预定数量的另外虚拟建造块;并且其中,另外虚拟建造块关于从连续构造顺序导出的连续指令顺序在第一子组中的所有虚拟建造块之后。
文档编号G06T17/40GK1993712SQ200580025722
公开日2007年7月4日 申请日期2005年6月16日 优先权日2004年6月17日
发明者马丁·普鲁斯 申请人:英特莱格公司