Abstract:
The invention has for object a computer-implemented method of designing a product, the product being composed of an assembly of components organised hierarchically in a product tree, the method comprising the steps of: initially selecting a component; determining a path comprising the product tree&#39;s components located between the root of the product tree and the initially selected component; navigating through this path by using a scrolling mean in order to choose a candidate component among the path&#39;s components; selecting the said candidate component as a perimeter of design action PDA component; activating at least a functionality required for modifying the component defined as the perimeter of design action.

Description:
RELATED APPLICATION(S) 
       [0001]    This application claims priority under 35 U.S.C. §119 or 365 to European, Application No. 12305904.0, filed Jul. 24, 2012. The entire teachings of the above application(s) are incorporated herein by reference. 
       FIELD OF THE INVENTION 
       [0002]    This invention relates to a computer-implemented method for easing the design of a product. It is particularly, but not exclusively, applicable to the field of designing of an assembly of object in a Computer-Aided Design application. 
       BACKGROUND OF THE INVENTION 
       [0003]    Product edition systems are known to include Computer-Aided Design or CAD, which relates to software solutions for authoring product design. A number of product and programs are offered on the market for the design of objects (or parts) or assemblies of objects, forming a product, such as the one provided by Dassault Systèmes under the trademark CATIA. 
         [0004]    Many products conceived today such as aircrafts or satellites are achieving a high level of complexity. The product is divided into a plurality of components and sub-components. 
         [0005]    The components and sub-components of a product designed and developed in a given design stage are usually represented using a tree. 
         [0006]      FIG. 1  gives an example of product tree. A product tree has a hierarchical structure allowing to organize the assembly of components and subcomponents. In this specification, the following terminology is used. A product  100  is composed of sub-products described by sub-product instances  101 ,  102 . A sub-product  101  may also comprise one or several other sub-products  103 ,  106  described by their own instances. Additionally, a sub-product may be defined by one or several geometry parts  104 , a geometry part being composed of one or several geometry cells  105 . 
         [0007]    In the description, the term instance refers to the instance of a class, ie an object with a behavior and a state, both defined by the class. 
         [0008]    As an example, a skateboard product is composed of several sub-products consisting into a board, two skateboard trucks and four wheels. The board sub-product instance comprises two geometrical parts. A first geometrical part corresponds to a plywood board and a second geometrical part corresponds to a grip tap. The geometrical part corresponding to the plywood board comprises one or several geometrical cells. For example a first geometrical cell is used to set up the thickness of the plywood board and a second geometrical cell is used to set up its width. It appears that the use of a tree is very useful to describe a product design because of its hierarchical structure. 
         [0009]    The skilled person would appreciate that this way of describing a product can be used with any other terminology. 
         [0010]    In an existing product edition system as CATIA (Trademark), the selection of a component in a product defines a path that may be used as a unique identification marker of the said component. A component may be selected for example by clicking on it. 
         [0011]    For example, if the geometry cell  105  in the tree provided by  FIG. 1  is selected, the associated path starts from the product  100 , passes through the sub-products instances  101  and  103 , passes through the geometrical part  104  and is terminated by the geometrical cell  105 . This path can be described by using the following syntax: 
         [0000]      path=&lt;product&gt;&lt;instance 1&gt;&lt;instance 2&gt;&lt;geometrical part 1&gt;&lt;geometrical cell 1&gt; 
         [0012]    The selection of a component in a tree and therefore of a path indicates to the product edition system that the user intents to modify the selected component or, in the case of a sub-product instance, to modify the position of the associated sub-product in the product. For example, the user can select a geometrical cell corresponding to an edge associated to a geometrical part in order to indicate where a round or a fillet should be created. Alternatively, the user can select the said edge in order to introduce a constraint with another component. It can be used for example to ensure that the edge is parallel with a second edge associated to a second geometrical cell, the said geometrical cell belonging to another sub-product instance. 
         [0013]    In most of the existing systems, once a component has been selected and its associated path has been constructed, a context in the user&#39;s session is defined based on the current UI-active component. A UI-active component is a component that defines the available set of commands that are available to the user by its position in the product tree. 
         [0014]      FIG. 2  represents a product tree with a geometrical part selected as the UI-active component. At this stage of its design, the product  200  comprises two main instances  201 ,  205 . The product instance  201  comprises two sub-instances  202 ,  204 . The sub-instance  202  comprises a geometrical part  203  and this geometrical part  203  comprises a geometrical cell  206 . In this example, the geometrical part  203  is selected as the UI-active component. Therefore, the user can modify the geometrical cell  206 . If this geometrical cell  206  corresponds to an edge of the geometrical part  203 , the functionalities that are required to modify them are made available to the user. As an example, the user may create a round on this edge. However, he cannot modify geometrical parts other than  203 . 
         [0015]      FIG. 3  represents a product tree with an instance of a sub-product selected as the UI-active component. This product tree is similar to the one provided by  FIG. 2 . The product  300  comprises two instances  301 ,  304 . Instance  301  comprises two sub-instances  302 ,  306 . In this example, instance  301  is selected as the UI-active component. Therefore, the system activates the functionalities associated to this working context. Then, the user can modify sub-instances  302  and  306 . As an example, the user can introduce a constraint between those two sub-instances that will change their relative position in the product. 
         [0016]    The major concern of this approach is that that the product tree needs to be displayed for the user to select the appropriate UI-active component. Additionally, it is required for the user to have a good understanding of how the product is represented in the product tree. As the designed products may be very complex, those may comprise hundreds of components. Therefore, it may be difficult for the user to find rapidly where are located the components he wants to modify and then to find out which appropriate component he should be select as the UI-active component. 
         [0017]    The process for selecting a given component as UI-active is not straightforward and may be confusing for the user. For example, if the user wants to modify the geometrical cell  305 , he has to display the product tree, he has first to find out where is the current UI-active component. If instance  303  is the current UI-active component, the next step is to find a parent element of geometrical cell  305 . This parent element can be instance  302  or geometrical part  303  in the tree. The next step is to select one of those components as the new UI-active component. Then the user can activate the appropriate functionality required for modifying geometrical cell  305  the way he wants. 
       SUMMARY OF THE INVENTION 
       [0018]    In order to address the above issues, it would be desirable to develop a solution easing the manipulation of the components of a product and therefore to enhance productivity. 
         [0019]    According to the invention, there is provided a computer-implemented method of designing a product, the product being composed of an assembly of components organised hierarchically in a product tree, the method comprising the steps of: 
         [0020]    initially selecting a component; 
         [0021]    determining a path comprising the product tree&#39;s components located between the root of the product tree and the initially selected component; 
         [0022]    navigating through this path by using a scrolling mean in order to choose a candidate component among the path&#39;s components; 
         [0023]    selecting the said candidate component as a perimeter of design action PDA component; 
         [0024]    activating at least a functionality required for modifying the component defined as the perimeter of design action. 
         [0025]    In a preferred embodiment therefore, the initially selected component is chosen as the default perimeter of design action. 
         [0026]    The initially selected component and the candidate component can be selected by a user on a graphical representation of the product. 
         [0027]    The initially selected component is selected for example by positioning a cursor on a given area of the graphical representation of the product and by clicking on it. 
         [0028]    The initially selected component is the component that has the lowest hierarchical level in the product tree and on which the cursor is positioned at the time of selecting it. 
         [0029]    In further aspects of the invention, shortcuts towards the functionalities that have been activated for modifying the component designated as the perimeter of design action are displayed near the graphical representation of the product. 
         [0030]    In another embodiment, the initially selected component and the candidate component can be selected on a graphical representation of the product tree. 
         [0031]    In a preferred embodiment, the scrolling mean is a scroll wheel comprised in a computer mouse. 
         [0032]    Alternatively, the scrolling mean can be a touch screen on which the user interact with two fingers, the candidate component being moved towards the higher levels of hierarchy of the product tree when the two fingers move away from each other, and the candidate component being moved towards the lower levels of hierarchy of the product tree when the two fingers approach each others. 
         [0033]    The component designated as the perimeter of design action can be highlighted on the graphical representation of the product. 
         [0034]    The invention has also for object a computer program product, stored on a computer readable medium comprising code means for causing a computer to implement the method described previously. 
         [0035]    The invention has also for object an apparatus for designing an assembly of objects in a system of computer-aided design, the apparatus comprising means for implementing the steps of the method described previously. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0036]    The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention. 
           [0037]    A better understanding of the embodiments of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which: 
           [0038]      FIG. 1  gives an example of product tree ; 
           [0039]      FIG. 2  represents a product tree with a geometrical cell selected as the UI-active component ; 
           [0040]      FIG. 3  represents another product tree with an instance of a sub-product selected as the UI-active component; 
           [0041]      FIG. 4  provides a simplified diagram of the method according to the invention; 
           [0042]      FIG. 5  represents a product tree in which a component has been selected as the perimeter of the design action. 
           [0043]      FIGS. 6   a  is a three-dimensional representation of a product comprising a plate and a set of screws; 
           [0044]      FIG. 6   b  gives an example of a product tree that can be associated to the product illustrated on  FIG. 6   a    
           [0045]      FIG. 7   a  illustrates the step of initially selecting a geometrical cell in a product ; 
           [0046]      FIG. 7   b  illustrates the selected path that has been constructed after selecting the geometrical cell ; 
           [0047]      FIG. 8   a  illustrates the step of setting up the product instance associated to the fifth screw as the current PDA component ; 
           [0048]      FIG. 8   b  gives the location of the PDA component a the selected path; 
           [0049]      FIG. 9   a  illustrates the step of setting up the product instance associated to the set of screws as the current PDA component ; 
           [0050]      FIG. 9   b  gives the location of a PDA component in the selected pat 
           [0051]      FIGS. 10   a  and  10   b  show how a constraint between the plate and one or several screw can be introduced; 
           [0052]      FIG. 11  shows the effect of applying a constraint between a screw and a hole in a plate; 
           [0053]      FIG. 12  shows the effect of applying a constraint between a set of screws and a set of holes in a plate. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0054]    A description of example embodiments of the invention follows. 
         [0055]      FIG. 4  provides a simplified diagram of the method according to the invention. 
         [0056]    When the user wants to modify a component in a product, he first has to select a part of the product  400 . The product is displayed for example in a two-dimensional or in a three-dimensional representation. This selection can be made by positioning a cursor on the area of a graphical representation of the product corresponding to the component he wants to modify and by clicking once the cursor is correctly positioned. A component of the product tree is then selected and is called “initially selected component”  401 . 
         [0057]    In a preferred embodiment, the initially selected component is by default the component of the lowest hierarchical level on which the cursor is positioned at the time of selection. Therefore, it is likely that this component will be a graphical cell of the product tree. 
         [0058]    In a product tree, the highest hierarchical level corresponds to the root component and the lowest hierarchical level corresponds to a component located at the end of a tree&#39;s branch, the said branch comprising the maximum number of components compared to the other branches in the product tree. 
         [0059]    The initially selected component can be highlighted on the graphical representation of the product, for example by using a specific colour. 
         [0060]    Once a component has been initially selected, a path in the product tree called “selected path” is automatically constructed  402 . The selected path is composed of an ordered set of components identifiers. As an example, the first identifier corresponds to the root of the product tree and the last identifier corresponds to the initially selected component. 
         [0061]    Once the selected path has been constructed, a component that belongs to this path is set up by default as the current PDA  403 . In a preferred embodiment of the invention, the component of the lowest hierarchical level and which belongs to the selected path is chosen as the default PDA. 
         [0062]    The component that has been selected as the current PDA can be highlighted on the graphical representation of the product, for example by using a specific colour. 
         [0063]    Then the user is able to select the component on which he wants to work. For that purpose, the method comprises a step during which the user may change the current PDA  404  by moving it from one component to another component belonging to the selected path. A candidate PDA can be highlighted by using a specific colour, thus the user can visually follow the PDA modification. 
         [0064]    As an example, a way to move along the selected path from one component to the other is to use the scroll wheel of a mouse. By scrolling along the selected path, the user will change the candidate PDA in one direction or the other. 
         [0065]    The PDA change can then be confirmed  405  by the user by clicking with the use of a mouse button. 
         [0066]    Once the PDA change is confirmed, the candidate component is considered as the current PDA. 
         [0067]    Then, the system activates the functionalities  406  required for modifying the component designated as the PDA. In a preferred embodiment, shortcuts towards those functionalities are displayed near the graphical representation of the product. Therefore, the user can choose rapidly the functionality required to modify the PDA component. One advantage is that only the functionalities required to modify the PDA component are accessible to the user. Thus, the user is less confused and can make the appropriate choices faster. This participates to the productivity enhancement. 
         [0068]    Another advantage of this method is that the product tree does not need to be displayed. The method uses the product tree to construct the selected path and to change the current PDA, when the current and candidate PDA are highlighted, the display of the product tree is not required to understand “where he is” in the design. 
         [0069]    Alternatively, the method can also be applied on a representation of the product tree instead of on a representation of the product itself 
         [0070]      FIG. 5  represents a product tree in which a component has been selected as the perimeter of the design action. 
         [0071]    The product tree has the same structure as the examples provided by  FIGS. 1 ,  2  and  3 . The product  500  comprises two main instances  501 ,  505 . One of those two instances  501  comprises two sub-instances  502 ,  506 . The sub-instance  502  comprises a geometrical part  503  and this geometrical part  503  comprises a geometrical cell  504 . 
         [0072]    In this product tree, the instance  502  has been selected as the current PDA component  507 . As a consequence, the design functionalities required to modify this component are made available to the user. If the user wishes to work on another component, he can use scrolling means in order to select another component  508 ,  509  belonging to the selected path. 
         [0073]      FIGS. 6   a  is a three-dimensional representation of a product comprising a plate and a set of screws. 
         [0074]    The set of screws  607  comprises five screws  600 ,  601 ,  602 ,  603 ,  604 . The plate  605  comprises one hole  606 . At this design stage, there are no interactions between the set of screw  607  and the plate  605 . 
         [0075]      FIG. 6   b  gives an example of a product tree that can be associated to the product illustrated on  FIG. 6   a . The root component  608  represents the overall product. As already mentioned, this product comprises two sub-products, that is to say the plate and the set of screws. Therefore, two instances  609 ,  613  are defined. Additionally, the set of screw comprises five screws. Thus, five product instances  614  are defined. Each screw instance  615  comprises two geometrical parts  616 ,  617 . The first geometrical part  616  corresponds to the head of the screw and the second geometrical part  617  corresponds to a helical ridge wrapped around a cylinder. The second geometrical part  617  comprises at least one geometrical cell  618  associated to the characteristics of the cylinder and of the helical ridge. This geometrical cell  618  is designated by the word ‘face’ in this description. 
         [0076]    The sub-product instance  609  corresponds to the product plate  605 . It comprises three geometrical parts  610 . One of those three geometrical parts  611  corresponds to the hole  606  of the plate. It comprises at least one geometrical cell  612  associated to the hole&#39;s axis. 
         [0077]      FIG. 7   a  illustrates the step of initially selecting a geometrical cell in the product and  FIG. 7   b  illustrates the selected path that has been constructed after selecting this component. 
         [0078]    In the three-dimensional representation of the product, the geometrical cell ‘face’ belonging to the fifth screw  700  of set of screw  707  is selected by positioning a cursor  702  over the area corresponding to the cylinder  701  and by clicking on it with a mouse button. The selected geometrical cell is the initially selected component. It is highlighted for example by using a predefined color. The selected path is then constructed. This path is deducted from the product tree given by  FIG. 6   b  and from the initially selected component. Thus, the selected path comprises the root component  608 ,  708 , the instance  613 ,  713  associated to the set of screws, the instance  615 ,  715  associated to the fifth screw of this set, the graphical part  617 ,  717  corresponding to the helical ridge and to the cylinder and the graphical cell  618 ,  718  associated to the “face” of the screw. 
         [0079]    The graphical cell  618 ,  718  is set up by default as the PDA component  719 . Therefore, functionalities that can be used to modify the screw face are made available to the user. In this example, a window  703  is displayed near the three-dimensional representation of the product and contains three icons  704 ,  705 ,  706 . A first icon  704  allows the user to undo its previous action, a second icon  705  allows to set up the cursor in a way that a component can be selected and a third icon  706  is specific to the current PDA. In this example, the third icon  706  allows to define the helical ridge characteristics of the screw. 
         [0080]      FIG. 8   a  illustrates the step of setting up the product instance associated to the fifth screw as the current PDA component and  FIG. 8   b  gives the location of the PDA component in the selected path. 
         [0081]    The selected path remains unchanged and comprises the root component  608 ,  808 , the instance  613 ,  813  associated to the set of screws, the instance  615 ,  815  associated to the fifth screw of this set, the graphical part  617 ,  817  corresponding to the helical ridge and to the cylinder and the graphical cell  618 ,  818  associated to the “face” of the screw. By using the scrolling means, the user has changed the current PDA component. For that purpose, he moves a candidate PDA along the selected path up to the fifth screw product instance  815  that becomes the new current PDA component  819  once selected. The candidate PDA is highlighted for easing the choice of a new current PDA. The fifth screw which is now the current PDA stays highlighted, for example by using a predefined color which is different from the one used for initially selected component. 
         [0082]    At this stage, the functionalities that are available to the user are also displayed in a window  802  near the three-dimensional representation of the product. It contains three icons  803 ,  804 ,  805  linked to the same functions as depicted with the use of  FIG. 7   a . Moreover, a fourth icon  806  is added to the window  802 . This new icon allows the user to add a design constraint between the fifth screw whose product instance has been selected as the current PDA component and another product instance, for example the plate  807 . 
         [0083]      FIG. 9   a  illustrates the step of setting up the product instance associated to the set of screws as the current PDA component and  FIG. 9   b  gives the location of the PDA component in the selected path. 
         [0084]    The selected path remains unchanged and comprises the root component  608 ,  908 , the instance  613 ,  913  associated to the set of screws, the instance  615 ,  915  associated to the fifth screw of this set, the graphical part  617 ,  917  corresponding to the helical ridge and to the cylinder and the graphical cell  618 ,  918  associated to the “face” of the screw. By using the scrolling means, the user can change the current PDA component. For that purpose, he moves a candidate PDA along the selected path up to the product instance associated to the set of screws  913  that becomes the new current PDA component  919  after being selected. With the entire set of screws defined as the current PDA, the five screws  920 ,  921 ,  922 ,  923 ,  924  on the three dimensional representation of the product are highlighted by using a predefined color. It shows to the user that the functionalities that are made available to him will act on these five screws together. 
         [0085]    The functionalities that are made available to the user are also displayed in a window  902  near the three-dimensional representation of the product. It contains three icons  903 ,  904 ,  905  linked to the same functions as depicted with the use of  FIG. 7   a . Moreover, a fourth icon  906  is added to the window  902 . This icon allows the user to add a design constraint between the set of screws whose associated product instance has been selected as the current PDA component and another product instance, for example the plate  907 . The difference with the example of  FIGS. 8   a  and  8   b  is that the constraint will be applied for all of screws that belong to the set. 
         [0086]      FIGS. 10   a  and  10   b  show how a constraint between the plate and one or several screw can be introduced. 
         [0087]    Once the initially selected component and the current PDA component have been set up, the user can add a constraint with one or several other components. In this example, the user clicks on the axe  1000  of the hole  1001  made in the plate  1002 . The effect is that second path is created from the geometrical cell  1006  associated to the axe up to the root  1003  of the product tree and passing through the geometrical part  611 ,  1005  associated to the hole and the product instance  609 ,  1004  associated to the plate. 
         [0088]    For this second path, the PDA component  1007  is set-up automatically and corresponds to the product instance  609 ,  1004  associated to the plate. 
         [0089]      FIG. 11  shows the effect of applying a constraint between a screw and a hole in a plate  1101 . 
         [0090]    In this example, a sub-product instance associated a single screw has been chosen as the current PDA. Then the user decides to apply a constraint between the screw and the plate. For that purpose, he uses a functionality that is made available to him when selecting the current PDA. Then he selects a geometrical cell associated to one of the hole&#39;s axis. Once the constraint is validated by the user, the screw associated to the current PDA is inserted in the plate&#39;s hole which axis has been selected  1100 . The other screws  1102  stay at their initial place as the constraint has been applied only to the current PDA. 
         [0091]      FIG. 12  shows the effect of applying a constraint between a set of screws and a set of holes in a plate  1201 . 
         [0092]    In this example, a sub-product instance associated a set of screws has been chosen as the current PDA. Then the user decides to apply a constraint between the set of screws and several holes in a plate  1201 . For that purpose, he uses the functionality that is made available to him when selecting the current PDA. Then he selects a geometrical cell associated to one of the hole&#39;s axis. Once the constraint is validated by the user, the screws associated to the current PDA are inserted  1200  the plate&#39;s holes which axis have been selected. The constraint has been applied to all the screws because those are associated to the same sub-product, this sub-product being chosen as the current PDA. 
         [0093]    The teachings of all patents, published applications and references cited herein are incorporated by reference in their entirety. 
         [0094]    While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.