专利名称:二维计算机辅助设计文件的显示优先级的制作方法
技术领域:
本发明大体上涉及计算机辅助设计文件,更具体地,涉及二维计算机辅助设计文件中元件的显示排序。
背景技术:
由建筑师、工程师、设计师、计划者等准备的计算机辅助设计(CAD)图需要将大量数据存储于文件中。CAD软件包括访问大量数据的API。诸如由位于美国、宾夕法尼亚州Exton的本特利系统公司开发的MicroStation产品之类的应用程序是典型的CAD软件,可用于建筑、工程、施工及营运(AECO)市场中。
在工程中使用的典型的CAD工程(project)存储在诸多文件中。典型地,每个文件包括一个或多个工程模型,其中的每个典型地表示一工程域(如,结构、电气、机械、管道)。此外,每个工程模型包括诸多元件,共同表示每个设计的复杂性和精确的属性。模型中的每个项目由至少一个元件或元件的集合来表示。例如,结构图能够掌握建筑平面图的柱和梁的布局,在其中通过线、正方形、矩形及附加特性来表示。在本例中,独立的梁元件可以是线、正方形和矩形的集合。建筑平面图结构可以更加复杂、并且需要多级元件以精确地提供结构表达。
在已知的CAD软件中,添加至二维设计图上的最后一个的元件通常在其它已有元件的顶部显示。即,如果在图像中元件都占据了相同的二维空间,则最后添加的元件遮住了先前画出的元件。这通常称为画家算法。如在绘画中,涂在表面的最后的颜料遮住了先前所涂的颜料。画家算法根据画出元件的顺序,定义了图像中元件的覆盖。
许多CAD和其它制图程序允许用户重新对元件排序。用户可以选择元件并在元件上执行“置于底层”或“置于顶层”的处理。这些处理对画出的元件的顺序进行重新排序。因此,在该特定的图像中,重新排序改变了元件相对于其它元件的可见度。能够通过在存储器中物理地对元件重新排序、或者通过保持独立的“排序次序”列表来实现这个重新的顺序。
上述方法对于说明特定元件的相对顺序(如,此元件在彼元件之前)表现良好,但是对于用户来说,没有提供系统的方式来指定元件类型或组的相对优先级。此外,使用画家算法,很难保持元件相对于改变的正确顺序。例如,当复制元件时,对于用户来说,没有可预测方式来指定新元件相对于旧元件、或者在相同临近区域内的其它元件的相对优先级。典型地,如果用户想复制元件并在该图像或其它图像中的其它地方使用该元件,则复制的元件放置在列表的底部,因而在所有其它元件的顶部。必须执行重新排序操作以移动元件至所需位置。类似地,如果用户具有诸如文本标签之类的特定类型元件的优先级,则典型地,用户必须记住在图像构造中适当的时刻放置该元件。否则,用户必须对该元件类型的每个实例重新排序。
此外,一些CAD程序提供了等级(有时称为“层”)系统,由此能够在等级集合上的元件中制作图像。例如,在建筑图中,结构、电气及管道规则在图像中可以具有自身设定的等级。因而,为了降低复杂度,用户能够观察等级的有限子集。由于典型地,等级作为元件的属性实现,所以等级不参与显示排序。然而,用户可能希望基于等级来对元件的显示进行分类,使得在同一等级上的所有元件出现在另一等级上的所有元件前面。
因此,需要一种改进的用于设置显示优先级的方法和系统,以便克服传统解决方案的缺点。
发明内容
在本发明的示例性实施例中,公开了用于在二维CAD图像中确定显示优先级的系统、方法和计算程序产品。
在本发明的示例性实施例中,每个CAD元件的三个值可用元件优先级、等级优先级、以及模型参考优先级。此外,对于包含CAD图像元件的CAD工程,可以在工程范围内,为元件、等级或模型参考设置独立的优先级乘数(multiplier)、创建元件优先级乘数、等级优先级乘数、以及模型参考优先级乘数。一旦已经通过缺省值或通过用户设置了优先级值和优先级乘数值,则这些值用于计算每个CAD图像元件的图像深度。例如,在z-缓冲器中使用图像深度值,并且确定CAD图像元件的相对显示优先级,而与这些元件放置到图像中的顺序无关。
在本发明的另一实施例中,提供了一种用于在二维CAD图像中设置图像深度的系统。该系统包括装置,用于设置包含至少一个二维CAD图像的CAD工程的元件优先级乘数值、等级优先级乘法值、以及模型参考优先级乘数值中的每一个,其中,CAD图像包括多个CAD图像元件;装置,用于设置每个CAD图像元件的元件优先级值、每个等级的等级优先级值、以及每个模型参考的模型参考优先级值中的每一个;装置,用于根据元件优先级值、等级优先级值、模型参考优先级值、元件优先级乘数值、等级优先级乘数值、以及模型参考乘数值的组合,确定CAD图像元件的图像深度;以及装置,用于使用图像深度,在CAD图像中相对于其它CAD图像元件定位CAD图像元件。
根据示例性方法,定义了多个元件的元件优先级值。元件优先级值存储为各个元件的属性。至少两个元件放置在图像中。图像中元件的优先基于元件、等级、以及模型参考优先级值和元件、等级、以及模型参考优先级乘数值的数学组合来确定。
下面将参照附图,对本发明的其它特征和优点、以及本发明不同实施例的结构和操作进行描述。
本发明的上述和其它特征将从对下面的在附图中示出的本发明优选实施例的更加具体的描述中变得清楚,其中,相同的参考数字通常指示相同的、功能相似的和/或结构相似的元件。在相应参考数字中的最左边的数字指示元件初次出现于其中的附图。
图1描述了根据本发明的二维CAD图像的示例性实施例; 图2描述了图1中CAD图像的分解透视图; 图3描述了本发明方法的示例性实施例的流程图;以及 图4描述了本发明方法的示例性实施例的流程图
具体实施例方式
如这里使用的,下列术语应具有以下意义 计算机指能够接受结构化输入、根据预定规则处理该结构化输入、以及产生处理结果作为输出的任何装置。计算机的示例包括计算机;通用计算机;超级计算机;主机;超级小型计算机;小型计算机;工作站;微型计算机;服务器;交互式电视机;计算机和交互式电视机的混合;以及仿真计算机的特定用途硬件和/或软件。计算机能够具有单一处理器或多个处理器,能够并行和/或非并行操作。计算机还指通过用于在计算机之间发送和接收信息的网络连接的两个或多个计算机。这样的计算机的示例包括通过由网络连接的计算机来处理信息的分布式计算机系统。计算机还能够是个人数字助理(PDA)。
计算机可读介质指用于存储可由计算机访问的数据的任何存储设备。计算机可读介质的示例包括磁性硬盘;软盘;光盘,如CD-ROM、CD-RW、及DVD;磁带;存储芯片;以及用于携带计算机可读电子数据的载波,如用于发送和接收电子邮件、或用于访问网络的那些载波。
输入设备指这样的设备,使用附带的软件驱动器,用于与计算机系统进行交互、并且将输入和指示提供给计算机、尤其用于移动显示器上的光标。输入设备的示例包括计算机鼠标、键盘、计算机画图板、操纵杆、以及麦克风。
软件指用于操作计算机的预定规则。软件的示例包括软件;代码段;指令;计算机程序;以及编程逻辑。
计算机系统指具有计算机的系统,其中,计算机包括包含操作计算机的软件的计算机可读介质。
网络指通过通信设施耦合的若干计算机和相关设备。网络包括诸如电缆之类的永久连接、或诸如那些通过电话或其它通信链路形成的暂时连接。网络是允许两个或多个计算机之间通信和信息交换的基础结构。网络的示例包括局域网(LAN)、广域网(WAN)、以太网、内部互联网、诸如因特网、无线或卫星通信之类的互联网、以及网络的组合。
本发明示例性实施例的详细描述 下面详细讨论本发明的优选实施例。讨论了特定的示例性实施例,同时应当理解,这仅出于示例性目的。相关领域技术人员将认识到,在不偏离本发明精神和范围的情况下,能够使用其它元件和配置。
本发明的示例性实施例在具有显示器和输入设备的计算机系统上操作,并且能够是CAD软件或CAD绘图显示软件的一部分、或者与CAD软件或CAD绘图显示软件合作。计算机系统能够是单机或者与其它计算机系统联网。CAD图像和软件能够在计算机系统的计算机可读介质上存储、或者在网络上的计算机系统上存储。
显示优先级值可以用于确定CAD图像中的元件在显示时的相对优先。显示优先值可以基于元件的属性和其它标准。基于显示优先级值的Z缓冲方式可以用于获得CAD图像中元件间的相对优先。该方式具有不依据画出元件的顺序的优点。此外,元件组(如CAD术语中的“等级”或“层”、或“模型”)可以具有相关的优先级值。可以对元件的元件优先级属性、元件等级的等级优先级、以及模型参考的模型参考优先级进行组合,以确定元件的显示优先级。这提供了元件显示优先级的附加的可预测控制。
图1示出了二维CAD图像102的示例性实施例,具有三个元件星104、正方形106和圆108。使用线110示出x轴、以及使用线112示出y轴。重要的是注意,由于图像意为二维,所以没有z轴值在元件中存储。然而,出于表示目的,需要控制图像中元素的相对优先(上至下的位置)。一种方式是将元件转化为三维,并且存储每个元件的z值。但是,这具有许多不期望的负面效应、并且通常不可接受。除了将元件转化为三维以实现相对优先之外,在显示时计算每个元件的显示优先级。显示优先级可以基于元件属性来计算。显示优先级可以按数学函数来计算、或者通过计算机函数执行的算法来计算。计算机函数可以是计算机可读代码,如软件。
在图1中,星104具有最低计算显示优先级。因此,星104在后面显示,并且被正方形106和圆108遮住。正方形106具有次低计算显示优先级。因此,正方形106在星104之上、而在圆108之下。圆108是附图中具有最高计算显示优先级的元件。因而,圆108在星104和正方形106的上面显示。
参照图2,示出了图1的二维CAD图像102的假想、形式、分解图。图2示出了沿第三轴202的计算显示优先级值。还示出了星104、正方形106、以及圆108沿显示优先级轴的排序。对于星104使用线204、对于正方形106使用线206、以及对于圆108使用线208,示出了相对于显示优先级轴的元件的相对位置。
如上所述,可以对元件的元件优先级属性、元件等级的等级优先级、以及模型参考的模型参考优先级进行组合来确定元件的显示优先级。元件的元件优先级能够由用户通过输入设备来定义、或者通过缺省来设置。将元件优先级看作各个元件的属性。当创建元件时,元件优先级与元件的诸如颜色、线宽之类的其它属性一起确定。将元件显示优先级定义为元件的属性向用户提供了如在复制元件时定义元件的元件显示优先级的方式。
此外,用户可以指定元件组的优先级。如上所述,CAD图像能够由多个等级组成。典型地,等级包括逻辑相关元件、并且能够包含一个或多个元件。可以给每个等级分配等级优先级。因此,用户指定在不同等级的图像深度中的出现顺序。
典型地,CAD工程由多个模型组成。模型是高于等级的内容的等级逻辑组(模型包含等级)。典型地,模型用于将工程细分为较小的、可单独编辑的块。模型能够存储在单个CAD文件中、或者,如在MicroStation V8 DGN文件中的,单个CAD文件能够包括多个模型。CAD图像能够由多个模型的参考(有时称为“XREF”)组成。事实上,可以通过多个模型参考,多于一次地以不同的大小、方向、以及位置来引用相同的模型。能够将模型参考显示优先级分配给每个模型参考。
对于CAD图像中的每个元件,可以确定元件优先级、等级优先级和模型优先级。可以使用不同的组合权重来组合这三个优先级,以确定元件的最终显示优先级。根据计算显示优先级、而不是根据元件画出的顺序,在图像中显示元件。例如,在图1示出的示例中,圆108可以在星104之前画出。然而,由于圆108具有较高的计算显示优先级,所以在星104之上显示圆108。因此,无论图像中画出的元件的顺序如何,都根据计算显示优先级来显示元件。当两元件具有相同的计算显示优先级值时,通常如在画家算法中,最后画出的元件出现在顶端。
图3和4描述了根据本发明方法的示例性实施例的流程图。该方法基于上面描述的元件优先级、等级优先级、以及模型参考优先级,确定图像中元件的显示优先级。元件的显示优先级还可以基于元件的其它属性或其上下文来计算。例如,视图类型、成本、创建时间、作者可以用于确定显示优先级。
当在方框302创建CAD工程时、或者在设计阶段之后,在方框304,设置诸如元件优先级乘数330、模型参考优先级乘数331、以及等级优先级乘数332之类的用于三个优先级中的每一个的组合权重。乘数对于CAD图像来说是恒定的,并且可以作为整体应用于工程。组合权重可以是以某种方式与相关的优先级进行组合的恒定值。组合权重可以在确定该元件的显示优先级的过程中,用来确定每个独立优先级的相对影响。
乘数330、331以及332确定每个优先级值的相对影响。例如,如果用户在确定显示优先级过程中,根本不想使用等级优先级,则可以将等级优先级乘数332设为零。
在方框306,也可设置缺省的元件优先级333、等级优先级334、模型参考优先级335。这些缺省优先级可以为工程进行预定义。元件、等级、以及模型参考的乘数和缺省优先级可以通过工程管理者和管理员来设置。典型地,根据定义的绘图标准来创建CAD图像。绘图标准可以在CAD软件中的设置文件中定义。管理员可以基于用于要使用最高优先级显示的元件的工程范围的规则来设置乘数和缺省优先级。还可以允许用户设置或修改乘数和优先级。
在显示时,在方框408,可以确定CAD图像中的元件的优先顺序。要显示的CAD图像中的每个元件的显示优先级可以用来确定优先顺序。为确定图像的显示优先级,首先,在方框410,确定元件的元件优先级乘数、等级优先级乘数、以及模型参考乘数。乘数对于CAD图像的所有元件来说是恒定的。乘数还可以对于整个工程来说是恒定的。
在方框412中,确定是否在图像中有更多的元件需要计算显示优先级。如果有需要计算显示优先级的元件,则处理过程进行至方框414。在方框414,从CAD文件中检索下一元件。
在方框416,确定该元件的元件优先级。如上所述,元件优先级可以是元件的属性。因此,可以检验元件的属性以确定元件优先级。
在方框418中,确定元件的等级优先级。等级优先级取决于元件的等级。等级可以是元件的属性,并且能够通过检验元件的属性来获得。一旦确定了元件的等级,则可以确定该等级的等级优先级。例如,这可以通过使用将等级与等级优先级映射的映射处理来实现。
在方框420,确定元件的模型参考优先级。这可以通过使用将元件的模型参考与模型参考优先级值映射的映射处理来实现。
然后,在方框422,计算元件的显示优先级。显示优先级可以是元件优先级、等级优先级、以及模型参考优先级的函数。例如,可以对元件的元件优先级乘数330、模型参考优先级乘数331、等级优先级乘数332、元件优先级333、模型参考优先级334、以及等级优先级335进行组合,来确定该元件的显示优先级。在示例性实施例中,显示优先级能够从下式中确定 PD=(Pelement×celemenl)+(Plevel×clevel)+(Pmodel×cmodel)(1) 其中,PD是显示优先级、Pelemonl是元件优先级、celement是元件优先级乘数、Plevel是等级优先级、clevel是等级优先级乘数、Pmodel是模型参考优先级、以及cmodel是模型参考优先级乘数。通常,PD=f(Pelement,Plevel,Pmodel)。元件的其它属性和上下文也可以用于函数中。
一旦计算了元件的显示优先级,就可以在方框424,显示元件。使用显示优先级在CAD图像中显示元件,以在图像深度中对元件排序。然后,处理可以返回至方框412,并且可以对CAD图像中的每个元件进行重复,直到没有需要计算显示优先级的元件为止。然后,在方框426中完成该处理。
在示例性实施例中,可以使用z缓冲器来存储CAD图像元件的显示优先级。已知的z缓冲技术可以用来基于计算的显示优先级来显示元件。显示优先级等级的个数仅由z缓冲器的大小限制。如果z缓冲器是224比特大小,则三个常数的缺省值可以是,例如,celement=1、clevel=256、以及cmodel=32768。
上面已经对本发明的不同实施例进行了描述,同时应当理解,以上仅作为示例进行表述,而并非限制。因此,本发明的宽度和范围应当不受上面描述的任何示例性实施例的限制,而应当仅遵循所附权利要求及其等同物进行限定。
权利要求
1.一种方法,包括
确定CAD图像中的至少两个元件的元件优先级、等级优先级、以及模型参考优先级;
作为各个元件的元件优先级、等级优先级、以及模型参考优先级的函数来确定元件的显示优先级;
基于所述显示优先级来确定元件的优先顺序;以及
部分基于优先顺序,在CAD图像中显示元件。
2.如权利要求1所述的方法,其中,确定显示优先级还包括
确定元件优先级乘数、等级优先级乘数、以及模型参考优先级乘数;以及
将元件优先级、等级优先级、以及模型参考优先级与元件优先级乘数、等级优先级乘数、以及模型参考优先级乘数进行组合。
3.如权利要求1所述的方法,还包括
确定元件的等级属性;以及
基于等级属性来获得等级优先级。
4.如权利要求1所述的方法,还包括将具有较高显示优先级的元件显示在具有较低显示优先级的元件的上面。
5.如权利要求1所述的方法,其中,基于数学函数来确定显示优先级。
6.如权利要求1所述的方法,还包括接收定义了元件优先级、等级优先级、以及模型参考优先级的用户输入。
7.如权利要求1所述的方法,还包括接收定义了元件优先级乘数、等级优先级乘数、以及模型参考优先级乘数的用户输入。
8.一种在二维计算机辅助设计(CAD)图像中设置图像深度的方法,包括以下步骤
为包含至少一个二维CAD图像的CAD工程,确定元件优先级乘数值、等级优先级乘数值、以及模型参考优先级乘数值中的每一个,其中,所述CAD图像包括多个CAD图像元件;
为CAD图像元件,确定元件优先级值、等级优先级值、以及模型参考优先级值中的每一个;
基于元件优先级值、等级优先级值、模型参考优先级值、元件优先级乘数值、等级优先级乘数值、以及模型参考优先级乘数值的组合来确定CAD图像元件的图像深度;以及
使用图像深度在CAD图像中定位CAD图像元件相对于其它CAD图像元件的位置。
9.如权利要求8所述的方法,还包括将CAD图像元件的图像深度存储于CAD图像的z缓冲器中。
10.如权利要求8所述的方法,还包括
接收与元件优先级值、等级优先级值、模型参考优先级值、元件优先级乘数值、等级优先级乘数值、以及模型参考优先级乘数值中的至少一个有关的用户输入。
11.如权利要求8所述的方法,还包括
设置缺省元件优先级乘数值为1、缺省等级优先级乘数值为28、以及缺省模型参考优先级乘数值为216,其中,所述z缓冲器具有224比特的大小。
12.如权利要求8所述的方法,其中,确定图像深度的步骤包括计算元件优先级值与元件优先级乘数的乘积、等级优先级值与等级优先级乘数的乘积、以及模型参考优先级值与模型参考优先级乘数的乘积之和。
13.一种用于在二维计算机辅助设计(CAD)图像中设置图像深度的系统,包括
装置,用于为包含至少一个二维CAD图像的CAD工程,设置元件优先级乘数值、等级优先级乘数值、以及模型参考优先级乘数值中的每一个,其中,所述CAD图像包括多个CAD图像元件;
装置,用于为CAD图像元件,确定元件优先级值、等级优先级值、以及模型参考优先级值中的每一个;
装置,用于基于元件优先级值、等级优先级值、模型参考优先级值、元件优先级乘数值、等级优先级乘数值、以及模型参考优先级乘数值的组合来确定CAD图像元件的图像深度;以及
装置,用于使用图像深度在CAD图像中定位CAD图像元件相对于其它CAD图像元件的位置的装置。
14.如权利要求13所述的系统,还包括装置,用于将CAD图像元件的图像深度存储于CAD图像的z缓冲器中的装置。
15.如权利要求13所述的系统,还包括
装置,用于接收与元件优先级值、等级优先级值、模型参考优先级值、元件优先级乘数值、等级优先级乘数值、以及模型参考优先级乘数值中的至少一个有关的用户输入。
16.如权利要求13所述的系统,还包括装置,用于设置缺省元件优先级乘数值为1、缺省等级优先级乘数值为28、以及缺省模型参考优先级乘数值为216,其中,所述z缓冲器具有224比特的大小。
17.一种存储计算机可读程序代码的计算机可用信息存储介质,使计算机执行
确定CAD图像中的至少两个元件的元件优先级、等级优先级、以及模型参考优先级;
作为各个元件的元件优先级、等级优先级、以及模型参考优先级的函数来确定元件的显示优先级;
基于所述显示优先级来确定元件的优先顺序;以及
部分基于优先顺序,在CAD图像中显示元件。
18.如权利要求17所述的计算机可用信息存储介质,还包括计算机可读程序代码,使计算机执行
确定元件优先级乘数、等级优先级乘数、以及模型参考优先级乘数;以及
将元件优先级、等级优先级、以及模型参考优先级与元件优先级乘数、等级优先级乘数、以及模型参考优先级乘数进行组合。
19.如权利要求17所述的计算机可用信息存储介质,还包括计算机可读程序代码,使计算机执行
确定元件的等级属性;以及
基于所述等级属性来获得等级优先级。
20.如权利要求17所述的计算机可用信息存储介质,还包括计算机可读程序代码,使计算机执行
定义分配给每个元件的元件优先级;以及
将元件优先级存储为元件属性。
21.如权利要求17所述的计算机可用信息存储介质,还包括计算机可读程序代码,使计算机执行
接收定义了元件优先级、等级优先级、以及模型参考优先级中的至少一个的用户输入。
22.如权利要求17所述的计算机可用信息存储介质,还包括计算机可读程序代码,使计算机执行
将具有较高显示优先级的元件显示在具有较低显示优先级的元件的上面。
23.如权利要求17所述的计算机可用信息存储介质,还包括计算机可读程序代码,使计算机执行
将显示优先级值存储于z缓冲器中。
全文摘要
为每个CAD图像元件设置三个值元件优先级、等级优先级、以及模型参考优先级。此外,对于包含CAD图像元件的CAD工程,可以在工程范围内,为元件、等级、以及模型设置独立的优先级乘数值,创建元件优先级乘数、等级优先级乘数、以及模型参考优先级乘数。一旦通过缺省值、或通过用户设置了优先级值和优先级乘数值,则这些值用于计算每个CAD图像元件的图像深度。例如,在z缓冲器中存储图像深度值,并且能够将这些值用来设置CAD图像元件的显示优先级,而与这些元件放置到图像中的顺序无关。
文档编号G09G5/00GK101142615SQ200580008031
公开日2008年3月12日 申请日期2005年1月12日 优先权日2004年1月13日
发明者基思·本特利, 吉诺·科特西, 理查德·特雷夫茨 申请人:本特利系统公司