数字对象成形的方法

文档序号:6421303阅读:134来源:国知局
专利名称:数字对象成形的方法
技术领域
本发明涉及一种计算机绘图中数字对象成形的方法,特别涉及一种利用在计算机绘图空间中已存在的一个或一个以上的二维或三维对象作为参考对象,生成一二维或三维新对象的方法。
背景技术
运用计算机绘图来表示一欲完成的产品设计,是大众与一般产业所接受的,设计者不需开模做模型,即可于计算机上使用绘图软件完成自己的构想;欲查询者亦可藉由数字设备就可观看所需物品的成像。
一般在计算机绘图上要建立二个以上基本造型对象组合的方法,是利用已存在的对象各朝某一方向延展;当这些对象延展到发生碰撞时,计算其碰撞位置,并配合已事先决定的对象结合方式,生成一新对象来组合这二个以上基本造型对象。
这种生成方式的缺点是不但要先产生所有的个别对象,而且还要从欲延展的方向产生个别对象,然后依序决定碰撞时的组合方式,再进行组合动作。其生成手续繁复,一但生成对象的数量大时,作业变得复杂而且易于出错。

发明内容
本发明的主要目的在于解决上述现有技术的不足,提供一种数字对象形成的方法,以通过直觉且简化的绘图成形方式,快速而有效地生成新对象。
为实现上述目的,本发明提供一种数字对象成形的方法,应用于计算机绘图建立二维及三维构造对象图像,其特点是包括下列步骤
(a)选定一组欲生成的新对象的空间对象型态;(b)选择与上述欲生成对象相关的N(N为正整数)个已存在对象,作为参考对象;(c)根据该欲生成的新对象的空间对象型态及上述已选择的参考对象,经过一运算而产生新对象。
所述空间对象型态包括N个参照型态,用于建立欲生成的新对象与被选择的已存在对象间的参照关系;一生成型态,用于根据参照型态的设定动态决定该空间对象的生成方式;一造型型态,用于代表欲生成的新对象的造型描述数据集。
所述运算包括(1)根据所述空间对象型态与所选择的N个已存在参考对象,于其每一选取对象建立相应的参照型态,直至于其第N选取对象建立第N参照型态;(2)根据第一参照型态至第N参照型态和所述生成型态建立该新对象的生成方式;(3)根据该新对象的生成方式与所述造型型态,生成该新对象的轮廓造型。
所述运算根据所述空间对象型态与所选择的N个已存在参考对象间的参照关系建立该新对象。
本发明通过在绘图空间中选择已存在对象建立参照型态,再根据该欲生成新对象的生成型态及所建立的参照型态建立该新对象的生成方式,根据该新对象的生成方式及造型型态,建立其轮廓造型,从而通过直觉且简化的绘图成形方式,快速而有效地生成新对象。
以下结合附图与实施例对本发明作进一步的说明。


图1为本发明的处理流程图。
图2为本发明实施例一及实施例二所选参考对象示意图。
图3为本发明实施例一成形示意图。
图4为本发明实施例二成形示意图。
图5为本发明实施例三所选参考对象示意图。
图6为本发明实施例三成形示意图。
具体实施例方式
如图1所示,为本发明数字对象成形的方法的处理流程图,该方法包括下列步骤(a)选定一组欲生成对象的空间对象型态;(b)选择与上述欲生成的新对象相关的N(N为正整数)个已存在对象作为参考对象;(c)根据该欲生成的新对象的空间对象型态及上述已选择的参考对象,经过运算生成该新对象。
其中,该空间对象型态系包含下列项目N个的参照型态(Reference Type),用于建立欲生成的新对象与被选择的已存在对象间的参照关系;一生成型态(Generation Type),用于根据参照型态的设定,以动态决定该空间对象的生成方式;以及一造型型态(Shape Type),用于代表欲生成的新对象的造型描述数据集。
所述运算根据上述空间对象型态和所选择的N个已存在对象,于其第一选取对象建立第一参照型态,于其第二选取对象建立第二参照型态,以此类推,于其第N选取对象建立第N参照型态;然后,再根据该第一参照型态至第N参照型态和生成型态建立该新对象的生成方式;最后,根据该新对象的生成方式与上述造型型态,生成该新对象的轮廓造型。
现就以实施例来详细说明如下
实施例一从两参考对象生成一方柱体对象的成形实例如图2、3所示,分别为实施例一的参考对象示意图、实施例一成形示意图。实施例一欲生成一新方柱体对象,其原绘图空间已存在二对象,分别为对象一(block1)10和对象二(block2)20。本实施例是以对象一10和对象二20作为参考对象,产生一新的方柱体对象。产生过程如下对象一10 对象二20点 坐标 点 坐标A1 (-20.0,20.0,300.0) A2 (380.0,420.0,300.0)B1 (-20.0,-20.0,300.0) B2 (380.0,380.0,300.0)C1 (20.0,-20.0,300.0) C2 (420.0,380.0,300.0)D1 (20.0,20.0,300.0) D2 (420.0,420.0,300.0)E1 (20.0,20.0,0.0) E2 (420.0,420.0,0.0)F1 (-20.0,20.0,0.0)F2 (380.0,420.0,0.0)G1 (-20.0,-20.0,0.0) G2 (380.0,380.0,0.0)H1 (20.0,-20.0,0.0)H2 (420.0,380.0,0.0)该欲生成的新对象(newBlock)30的空间对象型态描述如下参照型态Reference TypeReferenceObjectSet( )ReferenceObject(indexInteger,selectedObjectShapeObject,targetPartOfSelectedObjectReferencePart,relationshipRelationship)实例值<pre listing-type="program-listing">   ReferenceObjectSet refObjectSet1  =new ReferenceObjectSet( );   ReferenceObject refObject11  =new ReferenceObject(1,block1,&lt;!-- SIPO &lt;DP n="4"&gt; --&gt;&lt;dp n="d4"/&gt;  Block.TOP_FACE_CENTER_POINT,JOINT);  refObjectSet1.add(refObject11);  ReferenceObject refObject12   =new ReferenceObject(2,block2,   Block.TOP_FACE_CENTER_POINT,JOINT);  refObjectSet1.add(refObject12);</pre>以上描述是根据参照型态的设定与所选定的已存在对象一(block1)10和对象二(block2)20分别建立第一参照对象refObject11和第二参照对象refObject12。其中,第一参照对象refObject11是由index=1(代表该参照对象序号为1)、selectedObject=block1(代表选定该已存在对象一(block1)10)、targetPartOfSelectedObject=Block.TOP_FACE_CENTER_POINT(代表该新对象30的生成方式是参照到该选定对象一(block1)10的顶面中心点11)以及relationship=JOINT(代表该新对象30与该对象一(block1)10以JOINT的方式结合)等四个参数构成的参照对象。
该第二参照对象refObject12是由index=2(代表该参照对象序号为2)、selectedObject=block2(代表选定该已存在对象二(block2)20)、targetPartOfSelectedObject=Block.TOP_FACE_CENTER_POINT(代表该新对象30的生成方式是参照到该选定对象二(block2)20的顶面中心点21)以及relationship=JOINT(代表该新对象30与该对象二(block2)20以JOINT的方式结合)等四个参数构成的参照对象。
然后,分别将refObject11和refObject12加入refObjectSet1对象集合中,建立一参照对象集合。
生成型态Generation TypeGeneration(targetShapeGenerationMethod,refObjectSetReferenceObjectSet)实例值
Generation generation1=new Generation(Block.TOP_FACE_CENTER_LINE,refObjectSet1);以上描述是根据生成型态和前述参照对象集合,建立新对象30的生成方式generation1;其中,该生成方式是由targetShapeGeneration=Block.TOP_FACE_CENTER_LINE(代表该新对象30的生成方法是沿该新对象30的方柱体顶面中心线路径来延伸以生成对象),以及refObjectSet=refObjectSet1(代表该新对象的方柱体顶面中心线路径是参照该参照对象集合来生成该新对象)等二个参数构成的生成方式。
造型型态Shape TypeBlock(widthDouble,heightDouble,generationGeneration)实例值Block newBlock=new Block(30.0,40.0,generation1)以上描述是根据前述生成方式generation1和造型型态,建立该新对象(new Block)30;其中,该新对象30是由width=30.0(代表该新对象30方柱体截面的宽度尺寸),height=40.0(代表该新对象30方柱体截面的高度尺寸),以及generation=generation1(代表该新对象30方柱体的生成型态)等三个参数构成的新对象。
生成过程如下所述根据参照型态的设定和已存在对象对象一(block1)10和对象二(block2)20的点坐标记录集,经坐标运算得对象一10的顶面中心点的坐标值为(0.0,0.0,300.0)和对象二20的顶面中心点的坐标值为(400.0,0.0,300.0)。
根据生成型态的设定和前述计算坐标值,经运算取得新对象(new Block)30的生成方式为沿着一虚拟直线121延展的方式生成,(X=t,0≤t≤400,Y=0,Z=300)。
根据参照型态中的refObject11.relationship=JOINT,refObject12.relationship=JOINT参数、造型型态中的width=30.0、height=40.0参数以及前述生成方式计算的虚拟直线121,经坐标运算得,造型截面在对象一10的投射截面12端点坐标点分别为P1(20.0,-15.0,300.0)、Q1(20.0,-15.0,260.0)、R1(20.0,15.0,260.0)及S1(20.0,15.0,300.0);造型截面在对象二20的投射截面22端点坐标点分别为P2(380.0,-15.0,300.0)、Q2(380.0,-15.0,260.0)、R2(380.0,15.0,260.0)及S2(380.0,15.0,300.0)。
如是,根据P1、Q1、R1、S1、P2、Q2、R2和S2等八个点坐标建立一新的新对象30。
实施例二从两参考对象生成一延展式平板对象的成形实例如图2、4所示,为实施例二的参考对象示意图、实施例二成形示意图。
如图所示同上的对象一10和对象二20,在此实施例2中欲生成一平板,其原绘图空间已存在二对象,分别为对象一10和对象二20。本实施例是以对象一10和对象二20为参考对象,产生一新对象40(一平板对象)。产生过程如下对象一10对象二20点坐标 点 坐标A1 (-20.0,20.0,300.0)A2 (380.0,420.0,300.0)B1 (-20.0,-20.0,300.0) B2 (380.0,380.0,300.0)C1 (20.0,-20.0,300.0)C2 (420.0,380.0,300.0)D1 (20.0,20.0,300.0) D2 (420.0,420.0,300.0)E1 (20.0,20.0,0.0) E2 (420.0,420.0,0.0)F1 (-20.0,20.0,0.0) F2 (380.0,420.0,0.0)G1 (-20.0,-20.0,0.0) G2 (380.0,380.0,0.0)H1 (20.0,-20.0,0.0) H2 (420.0,380.0,0.0)且该欲生成的新对象40的空间对象型态描述如下参照型态Reference Types
ReferenceObjectSet( )ReferenceObject(indexInteger,selectedObjectShapeObject,targetPartOfSelectedObjectReferencePart,relationshipRelationship)实例值<pre listing-type="program-listing">   ReferenceObjectSet refObjectSet2  =new ReferenceObjectSet( );   ReferenceObjectrefObject21  =new ReferenceObject(1,block1,Block.TOP_FACE_RIGHT_LINE,   JOINT);  refObjectSet2.add(refObject21);  ReferenceObject refObject22  =new ReferenceObject(2,block2,Block.TOP_FACE_LEFT_LINE,   JOINT);   reObjectSet2.add(refObject22);</pre>以上描述是根据参照型态的设定与所选定的已存在对象一(block1)10和对象二(block2)20,分别建立第一参照对象refObject21和第二参照对象refObject22。其中,第一参照对象refObject21是由index=1(代表该参照对象序号为1)、selectedObject=block1(代表选定该已存在对象一(block1)10)、targetPartOfSelectedObject=Block.TOP_FACE_RIGHT_LINE(代表该新对象40的生成方式是参照到该选定对象一(block1)10的顶面右侧线段C1D1)、以及relationship=JOINT(代表该新对象40与该对象一(block1)10以JOINT的方式结合)等四个参数构成的参照对象。
该第二参照对象refObject22是由index=2(代表该参照对象序号为2)、selectedObject=block2(代表选定该已存在对象二(block2)20)、targetPartOfSelectedObject=Block.TOP_FACE_LEFT_LINE(代表该新对象40的生成方式是参照到该选定对象block2的顶面左侧线段A2B2)、以及relationship=JOINT(代表该新对象40与该对象二(block2)20以JOINT的方式结合)等四个参数构成的参照对象。
然后,分别将refObject21和refObject22加入refObjectSet2对象集合中,建立一参照对象集合。
生成型态Generation TypeGeneration(targetShapeGenerationMethod,refObjectSetReferenceObjectSet)实例值Generation generation2=new Generation(Plate.TOP_FACE,refObjectSet2);以上描述是根据生成型态和前述参照对象集合,建立该新对象40的生成方式generation2;其中,该生成方式是由targetShapeGeneration=Plate.TOP_FACE(代表该新对象40的生成方法是沿该新对象40的平板顶面来生成对象),以及refObjectSet=refObjectSet2(代表该新对象40的生成方式是参照该参照对象集合来生成该新对象40)等二个参数构成的生成方式。
造型型态Shape TypePlate(depthDouble,generationGeneration)实例值Plate newPlate1=new Plate(20.0,generation2)以上描述是根据造型型态和前述生成方式(generation2)建立该新对象(newPlate1)40;其中,该新对象是由depth=20.0(代表该新对象40的厚度尺寸),以及generation=generation2(代表该新对象40之生成型态)等二个参数构成的新对象40。
生成过程如下所示根据参照型态的设定和已存在对象一10、对象二20的点坐标记录集,Block.TOP_FACE_RIGHT_LINE是指点C1到点D1的直线,即坐标点C1(20.0,-20.0,300.0)和D1(20.0,20.0,300.0)构成的直线;Block.TOP_FACE_LEFT_LINE是指点A2到点B2的直线,即坐标点A2(380.0,420.0,300.0)和B2(380.0,380.0,300.0)构成的直线。
根据生成型态的设定和前述的Block.TOP_FACE_RIGHT_LINE和Block.TOP_FACE_LEFT_LINE,取得新对象(newPlate1)40(一平板对象)的生成方式为由点C1、D1、A2和B2构成的虚拟平面(Plate.TOP_FACE)41向下延展的方式生成。
根据参照型态中的refObject21.relationship=JOINT,refObject22.relationship=JOINT参数、造型型态中的depth=20.0参数以及前述生成方式计算的虚拟平面41,经坐标运算得C1Z(20.0,-20.0,280.0)、D1Z(20.0,20.0,280.0)、A2Z(380.0,420.0,280.0)及B2Z(380.0,380.0,280.0)。
再根据C1、D1、A2、B2、C1Z、D1Z、A2Z和B2Z等八个点坐标建立一新的平板对象(newPlate1)40。
实施例三从单一参考对象生成一平板的生成实例如图5、6所示,是实施例三的参考对象示意图和成形示意图。如图所示其状况与前两实施例不同,为原绘图空间只存在一对象一10。
本例根据对象一10为参考对象,产生一新对象50(平板对象)。产生过程如下对象一10点 坐标A1 (-20.0,20.0,300.0)B1 (-20.0,-20.0,300.0)C1 (20.0,-20.0,300.0)D1 (20.0,20.0,300.0)E1 (20.0,20.0,0.0)F1 (-20.0,20.0,0.0)G1 (-20.0,-20.0,0.0)H1 (20.0,-20.0,0.0)且该欲生成的新对象50的空间对象型态描述如下
参照型态Reference TypesReferenceObjectSet( )ReferenceObject(indexInteger,selectedObjectShapeObject,targetPartOfSelectedObjectReferencePart,relationshipRelationship)实例值ReferenceObjectSet refObjectSet3=new ReferenceObjectSet( );ReferenceObject refObject31=new ReferenceObject(1,block1,Block.RIGHT_FACE,JOINT);refObjectSet3.add(refObject31);以上描述系根据参照型态的设定与所选定的已存在对象一(block1)10,建立第一参照对象refObject31;其中,该第一参照对象refObject31是由index=1(代表该参照对象序号为1)、selectedObject=block1(代表选定该已存在对象一(block1)10)、targetPartOfSelectedObject=Block.RIGHT_FACE(代表该新对象50的生成方式是参照到该选定对象一(block1)10的右侧平面C1D1E1H1)、以及relationship=JOINT(代表该新对象50与该对象一(block1)10以JOINT的方式结合)等四个参数构成的参照对象。
然后,将refObject31加入refObjectSet3对象集合中,建立一参照对象集合。
生成型态Generation TypeGeneration(targetShapeGenerationMethod,refObjectSetReferenceObjectSet)实例值Generation generation3
=new Generation(Plate.LEFT_FACE,refObjectSet3);以上描述系根据生成型态和前述参照对象集合,建立该新对象的生成方式generation3;其中,该生成方式是由targetShapeGeneration=Plate.LEFT_FACE(代表该新对象50的生成方法是沿该新对象50的平板左侧面来生成对象),以及refObjectSet=refObjectSet3(代表该新对象50之生成方式是参照该参照对象集合来生成该新对象50)等二个参数构成的生成方式。
造型型态Shape TypePlate(depthDouble,generationGeneration)实例值Plate newPlate2=new Plate(20.0,generation3)以上描述是根据造型型态和前述生成方式generation3建立该新对象50。其中该新对象50是由depth=20.0(代表新对象50板面的厚度尺寸),以及generation=generation3(代表新对象50板面的生成型态)等二个参数构成的新对象50。
生成过程如下所示根据参照型态的设定和已存在对象一10的点坐标记录集,Block.RIGHT_FACE系指坐标点C1(20.0,-20.0,300.0)、D1(20.0,20.0,300.0)、E1(20.0,20.0,0.0)和H1(20.0,-20.0,0.0)等四个点构成的平面。
根据生成型态的设定和前述的Block.RIGHT_FACE,取得新对象50(newPlate2)的生成方式为由C1(20.0,-20.0,300.0)、D1(20.0,20.0,300.0)、E1(20.0,20.0,0.0)和H1(20.0,-20.0,0.0)构成的虚拟平面(Plate.LEFT_FACE)51向右延展的方式生成;根据参照型态中的refObject31.relationship=JOINT参数、造型型态中的depth=20.0参数以及前述生成方式计算的虚拟平面51,经坐标运算得C1X(40.0,-20.0,300.0)、D1X(40.0,20.0,300.0)、E1X(40.0,20.0,0.0)和H1X(40.0,-20.0,0.0)。
再根据C1、D1、E1、H1、C1X、D1X、E1X和H1X等八个点坐标建立一新对象50(平板对象(NewPlate2))。
权利要求
1.一种数字对象成形的方法,应用于计算机绘图建立二维及三维构造对象图像,其特征在于包括下列步骤(a)选定一组欲生成的新对象(30、40、50)的空间对象型态;(b)选择与上述欲生成对象相关的N(N为正整数)个已存在对象(10、20)作为参考对象;(c)根据该欲生成的新对象(30、40、50)的空间对象型态及上述已选择的参考对象,经过一运算而产生新对象(30、40、50)。
2.根据权利要求1所述的数字对象成形的方法,其特征在于所述空间对象型态包括N个参照型态,用于建立欲生成的新对象(30、40、50)与被选择的已存在对象(10、20)间的参照关系;一生成型态,用于根据参照型态的设定动态决定该空间对象的生成方式;一造型型态,用于代表欲生成的新对象(30、40、50)的造型描述数据集。
3.根据权利要求2所述的数字对象成形的方法,其特征在于所述运算包括(1)根据所述空间对象型态与所选择的N个已存在参考对象(10、20),于其每一选取对象建立相应的参照型态,直至于其第N选取对象建立第N参照型态;(2)根据第一参照型态至第N参照型态和所述生成型态建立该新对象(30、40、50)的生成方式;(3)根据该新对象(30、40、50)的生成方式与所述造型型态,生成该新对象的轮廓造型。
4.根据权利要求1所述的数字对象成形的方法,其特征在于所述运算根据所述空间对象型态与所选择的N个已存在参考对象(10、20)间的参照关系建立该新对象(30、40、50)。
全文摘要
本发明涉及一种数字对象成形的方法,应用于计算机绘图建立二维及三维构造对象图像,先选定一组欲生成的新对象的空间对象型态;选择与上述欲生成对象相关的N(N为正整数)个已存在对象作为参考对象;最后根据该欲生成的新对象的空间对象型态及上述已选择的参考对象,经过一运算而产生新对象。本发明通过可直觉且简化的绘图成形方式,快速而有效地生成新对象。
文档编号G06T17/00GK1555029SQ200310122919
公开日2004年12月15日 申请日期2003年12月29日 优先权日2003年12月29日
发明者杨道全 申请人:杨道全
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1