Method and system for capturing and managing changes to a history-based part model

By receiving and analyzing the user's initial drive changes in a history-based modeling system, capturing and storing the shape change characteristics at the part level, the problem of part model shape change management is solved, the integrity and consistency of the model is achieved, and the robust feature re-execution capability is provided.

CN120112955APending Publication Date: 2025-06-06SIMENS INDASTRI SOFTVEAR INK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280101377.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-10-26
Publication Date
2025-06-06

AI Technical Summary

Technical Problem

In history-based modeling systems, shape changes in part models need to be captured and managed to maintain model integrity and consistency, especially in the context of part component editing.

Method used

By receiving initial driver changes from the user, analyzing and determining the corresponding changes that need to be made within the model to maintain model consistency of the part components. Snap the part level shape changes into the new shape change feature and store it at the end of the part's current feature history, update the model of the part component and display the updated model to the user.

Benefits of technology

It realizes effective capture and manage shape changes of part models, ensures the integrity and consistency of the model, and provides the ability to apply general changes and participate in robust feature re-execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120112955A_ABST
    Figure CN120112955A_ABST
Patent Text Reader

Abstract

A computer-implemented method and system for capturing and managing changes to a history-based part model is described. The changes are generated outside the part and stored as features within the history-based modeling system. The method and system are used in a contextual environment of part component editing. A user provides a generic change to the part assembly in the form of an initial drive change. The generic changes are analyzed to determine corresponding changes that need to be made within the model to maintain consistency of the model of the part assembly. For each part affected by the generic change, a shape change of a part level generated outside the part is captured into a new shape change feature and stored at the end of a current feature history of the part.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a computer-implemented method and system for capturing and managing changes to a history-based part model, wherein the changes are generated external to the part, wherein each change to the shape of a part in the part model is stored as a feature within a history-based modeling system, and wherein changes to the part level of the model are separate from changes to the assembly level of the model, the method being used in the context of part assembly editing. Background Art

[0002] For many years, computer-aided design (CAD) has provided the ability to directly edit the shape of a part and then solve the associated assembly constraints so that all positions of the part can be adapted accordingly. With the advent of synchronous technology, shape changes in multiple parts can occur simultaneously with changes in assembly part positions. In a history-free modeling system, such changes can simply be applied directly to the CAD model, but this is not the case in a history-based modeling system. In a history-based modeling system, each shape change to each part must be captured as a feature, which is then organized to form a solution for creating the part. This solution (or history) can be replayed at any time during the design process, allowing the user to go back and edit individual features or change the order of individual features to affect the final model produced. To ensure that the complete history of shape changes is maintained, new edits are captured and managed as shape change features in the history of the part model. Therefore, each part in the model will have a feature history, and any new features will be added to the current feature history of the part when the change is made. This is illustrated using the simple example shown in Figures 1a and 1b.

[0003] FIG1a is a schematic diagram of a first synchronous component edit. Part 10 includes four interconnected parts 11, 12, 13, 14, 15, wherein the first part 11 is in contact with the second part 12, the second part 12 is connected to the third part 13 by a pivot, and the third part 13 is also connected to the fourth part 14 by a pivot. An edit is applied to move the second part 12 downward as shown by arrow A, which not only moves the first part 11, the third part 13 and the fourth part 14 as shown by arrow B, but also changes the shape of the first part 11. Part 15 remains unchanged. This is done by applying a linear transformation to one of the faces of the first part 11. If the first part 11 is a history-based part, the shape change must be captured as a shape change feature to maintain the integrity of the part. FIG1b is a schematic diagram of a second synchronous component edit. Part 16 includes five interconnected parts 17, 18, 19, 20, 21, which are arranged in a generally rectangular shape, wherein the first part 17, the second part 18, the third part 19 and the fourth part 20 surround the fifth part 21. Each of the first part 17, the second part 18, the third part 19 and the fourth part 20 is pivotally connected to two of the other parts. The first part 17, the second part 18 and the fourth part 20 each connect a hole 22, 23, 24 in the fifth part 21. When the first part 17 is moved right to a new position, each of the second part 18, the third part 19 and the fourth part 20 moves relative to the new position due to its pivotable connection. However, this also drives the holes 22, 23, 24 in the fifth part 21 to move in the x, y or z direction. If the fifth part is a history-based part, these three shape changes must be captured to maintain the integrity of the part.

[0004] Part assembly edits are just one example of potential shape changes on a part that have the following characteristics: changes that are calculated by processes external to the part but need to be captured internally; low-level geometric shape changes rather than edits that can be naturally understood by the user.

[0005] This shape change can also occur in other contexts, such as as part of a model optimization process or a topology optimization process. For example, during an engineering analysis, it may be necessary to change the shape of a model to increase strength or minimize the amount of building materials used. This raises a more general problem than just the one encountered in the editing examples of Figures 1a and 1b above.

[0006] Another complexity is that in many potential applications, the shape changes produced within a part are not always simple and therefore not always immediately obvious or understandable to the user (e.g., low-level geometric shape changes). Edits may involve multiple related entities within a part, each of which changes in different and complex ways. For example, moving a face in a straight line may move adjacent tangent faces in completely different motions and involve several identified transitions or chamfers with dependencies that must also be updated for the edit to succeed. Therefore, all of this information must be captured within the associated shape change feature. For a low-level system whose task is to support general shape changes, the generation and editing of such shape change features may present many issues, such as: the generation, capture, and application of low-level general shape changes to the model to support feature creation; the reapplication of low-level general shape changes to support feature re-execution; and the editing of low-level general shape changes to support feature editing.

[0007] Therefore, for many modeling scenarios in history-based modeling systems, techniques are needed to handle the interaction between the history-based properties of a part and the editing or optimization of an assembly (eg, model and topology). Summary of the invention

[0008] Embodiments of the present disclosure are intended to address these problems by providing, in a first aspect, a computer-implemented method for capturing and managing changes to a history-based part model, wherein the changes are generated externally to the part, wherein each change to the shape of a part in the part model is stored as a feature within a history-based modeling system, and wherein changes to the part level of the model are separate from changes to the component level of the model, and when used in the context of part component editing, the method comprises: a) receiving a general change to the part component from a user in the form of an initial driving change; b) analyzing the initial driving change in the context of the model of the part component to determine corresponding changes that need to be made within the model in order to maintain consistency of the model of the part component; c) for each part affected by the general change, capturing the shape changes at the part level generated externally to the part into a new shape change feature that is associative and stored at the end of the current feature history of the part; and d) updating the model of the part component and displaying the updated model to the user.

[0009] Capturing part-level changes (even in complex systems) based on generic changes made outside the part itself and storing them as associative shape change features in the part’s feature history provides users with the ability to apply generic changes and engage in robust feature re-execution.

[0010] For each part affected by the general change, the method may further include capturing the change into a new shape change package that is stored as a shape change feature in the part history of the modeling system.

[0011] At the part level, each feature may include multiple editable parameters in the form of local driven changes, and wherein each local driven change is formed by: i) determining local driven entities within the part based on relationships between entities within the part; and ii) determining the changes each local driven entity undergoes in a change to the part assembly.

[0012] Determination of local driving entities may include: A) converting each part within the assembly affected by the general change into a graphical representation, wherein each entity is a node in the graph; B) within the same part, grouping nodes to be changed in shape together as shape change nodes; C) grouping shape change nodes connected within the graph together to form independent groups; and D) for each independent group within the part, determining the distance between each shape change node in the group and the part in the assembly undergoing the initial driving change; and E) selecting the shape change node in each group that has the shortest distance to the part in the assembly undergoing the initial driving change as the local driving entity of the group.

[0013] Determining the changes each local driven entity undergoes in a change to the part assembly may include: A) determining the type of changes each local driven entity will undergo in the change to the part assembly; and B) storing the changes each local driven entity undergoes in a shape change package.

[0014] The method may also include: generating editable parameters in the feature history based on the local driving entity and the changes experienced by the local driving entity; and providing access to the editable parameters to enable a user to edit the feature in a subsequent editing process.

[0015] Change declarations may be received from users in the form of part selections and part moves.

[0016] The method may also include: re-executing the feature history of the part without reference to change statements from the user; enabling editing of the feature from the current feature history occurring before and after the new shape changing feature is generated; and enabling editing of the new shape changing feature after the new shape changing feature is created to modify parameters of the new shape changing feature.

[0017] The method may also include storing additional features after the new shape-changing feature within the feature history and allowing further changes to the part.

[0018] Entities can be vertices, edges, faces, or geometric shapes.

[0019] The parameters can be a movement in a direction, a rotation, a movement in a plane, a change in radius, a change in subradius, or a change in half angle.

[0020] In a second aspect, the present disclosure also provides a computer program product comprising instructions which, when executed on a computer, cause the computer to perform the steps outlined above.

[0021] In a third aspect, the present disclosure also provides a data processing system configured to capture and manage changes to a history-based part model, wherein the changes are generated outside the part, wherein each change to the shape of a part in the part model is stored as a feature in the history of the part model within a modeling system, and wherein changes to the part level of the model are separate from changes to the component level of the model, the data processing system comprising: a user input device configured to receive general changes to a part assembly in the form of an initial driving change; a processor configured to analyze the initial driving change in the context of the model of the part assembly to determine the corresponding changes that need to be made within the model in order to maintain the consistency of the model of the part assembly, and for each part affected by the general change, capture the shape changes at the part level generated outside the part into a new shape change feature, which is associative, and update the model; a memory associated with the processor and configured to store the new shape change feature at the end of the current feature history of the part; and a display device configured to display the updated model to the user. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The present disclosure will now be described by way of example only and with reference to the accompanying drawings, in which:

[0023] FIG. 1a is a schematic diagram of editing of a first synchronization component;

[0024] FIG1b is a schematic diagram of the second synchronization component editing;

[0025] 2a, 2b and 2c are schematic diagrams of general changes in component editing according to an embodiment of the present disclosure;

[0026] Figure 3 is a flow chart illustrating an embodiment of a method;

[0027] FIG4 a is a schematic representation of a first assembly edit of a part assembly within a CAD model according to an embodiment;

[0028] FIG4b graphically illustrates a local driver entity of the component edit in FIG4a;

[0029] 5a to 5d show the stages of determining a local driving entity in the example shown in FIGS. 4a and 4b ;

[0030] 6a to 6d show the stages of determining a local driving entity in a second example according to an embodiment;

[0031] 7a to 7d show the stages of determining a local driving entity in a third example according to an embodiment;

[0032] Figure 8 is a series of illustrations of the effects of editing a shape altering feature according to an embodiment; and

[0033] Fig. 9 An example of a data processing system is shown in which embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION

[0034] Embodiments of the present disclosure provide solutions to the problems outlined above in a computer-implemented method for capturing and managing changes to a history-based part model, wherein the changes are generated externally to the part. External changes are those changes created with respect to a part within an assembly, and these changes have subsequent effects on the history-based part. In a history-based model, each change to the shape of a part in a part model is stored as a feature in the history of the part, and part-level changes made to the model are separate from assembly-level changes made to the model. When used in the context of part assembly editing, the method includes receiving a general change to the part assembly in the form of an initial driving change from a user. Next, the initial driving change is analyzed in the context of the model of the part assembly to determine the corresponding changes that need to be made within the model in order to maintain the consistency of the model of the part assembly. This also achieves maintaining the integrity of the parts within the model. For each part affected by the general change, the shape change at the part level generated externally to the part is captured in a new shape change feature, wherein the new shape change feature is associative and stored at the end of the current feature history of the part. The model of the part assembly can then be updated and displayed to the user.

[0035] Figures 2a, 2b and 2c are schematic diagrams of general changes in assembly editing according to an embodiment of the present disclosure. Figure 2a is a schematic diagram of a single part 30 having a substantially "L"-shaped body 31 formed by a base portion 32 in the x, y plane and a vertical upright portion 33 in the z plane. A circular head 34 is positioned at the end of the vertical upright portion 33 away from the base portion 32, the head having a central through hole 35, so that the head 34 forms an annular shape due to the concentric nature of the through hole 35 and the circular head 34. The through hole 35 is defined by an inner face 36 that actually forms the inner boundary of a hollow cylinder. The inner face is concentric with an outer face 37 that forms the outer boundary of the head 34. The vertical upright portion 33 has four planes 38a, 38b, 38c, 38d arranged at right angles to each other: two opposing large planes 38a, 38b and two opposing small planes 38c, 38d. Where the planar faces 38a - 38d of the vertical upstanding portion 33 intersect, and where the outer surface 27 of the head 34 intersects the opposing large faces 38a , 38b of the vertical upstanding portion 33 , transition surfaces 39a - f occur.

[0036] Initially, the user indicates (e.g., by moving a cursor) that the general change they wish to make is to move the face 36 that forms the boundary of the through hole 25 in the head 34 upward in the z-direction, away from the base portion 32. This movement forms the initial driving change, and as shown in FIG2b , the CAD system analyzes the model of the part 30 and determines that the following must be updated to maintain the integrity of the part: the cylindrical face 37; the planar faces 38a, 38b, 38c, 38d perpendicular to the upright 33; and the transition faces 39a, 39b, 39c, 39d, 39e, 39f.

[0037] The cylindrical face 37 that forms the boundary of the head 34 needs to be moved upwards in the z direction and the planes 38a, 38b, 38c, 38d and their associated transition surfaces 39a, 39b, 39c, 39d need to be extended. The CAD system requires these additional changes to determine that the initial drive changes can be made.

[0038] Figure 2c shows the part 30 after the user has made an initial driven change. When this occurs, the model is updated by translating the face 36 that forms the boundary of the through hole 35 and the cylindrical face that forms the boundary of the head 34, extending the planes 38a, 38b, 38c, 38d of the vertical upright 33, and re-transitioning the transition faces 39a, 39b, 39c, 39d between the planes 38a, 38b, 38c, 38d of the vertical upright 33. These generated low-level changes describe a repeatable edit to the model that can be captured as a feature in the part. The shape change feature is then included in the current feature history of the part. This will reference Figure 3 Describe in more detail.

[0039] Figure 3 is a flow chart illustrating an embodiment of the method. Method 100 is applied to capture and manage changes to a history-based part model and can be divided into two parts: method 102, generating, capturing and applying general shape changes on a part to be stored as features; and method 104, for analyzing general shape changes to present to a user for editing. Although general changes in the context of component editing are considered in the following example, the present embodiment is also applicable to any context of shape changes of a history-based model. In addition, in a history-based modeling system, changes at the part level are separated from changes at the component level.

[0040] Method 102 begins at step 106, where a general change to a part assembly is received in the form of an initial driven change. This is a declaration of the change that the user wishes to make, and includes, for example, moving a face of a part or editing a dimension of a part. Then, at step 108, the initial driven change is analyzed in the context of the model of the part assembly to determine any corresponding changes that need to be made within the model in order to maintain the consistency of the model of the part assembly. The analysis will also maintain any intuitive behavior associated with the part model for the user. This may, for example, include checking the dimensions, geometric relationships, features, and overall behavior preferences within the remainder of the part model that may be affected by the initial driven change. At this point, for each part affected by the general change made by the user, the part-level shape changes generated outside the part (in other words, those shape changes that the part is affected by changes to another aspect of the part assembly) are captured in the form of new shape change features at step 110. Each part has its own feature history that indicates the order in which edits have been applied to the part within the history-based model. The current feature history of a part begins with the first edit made and ends with the most recent last edit, so storing the shape change features generated in response to the initial driven changes received from the user at the end of the current feature history is the most logical implementation of the shape change feature technology. The low-level changes captured are different for each model and each edit. Each change includes the entities involved, the type of change to be made, and specific data related to the change. Examples of entities, types of changes, and additional data are shown in Table 1 below:

[0041] Entities involved Type of change Additional data Vertices, edges, faces, geometric shapes Pan Direction, distance Vertices, edges, faces, geometric shapes Rotation Axis, angle Vertices, edges, faces, geometric shapes Zoom Position, value Edge, Face transition radius Edge, Face Chamfer Bias Edge, Face replace Definition of new geometries Edge, Face repair Collection of faces noodle Rebuild / Edit Hole Description of the hole Edge, Face Cut / Copy / Paste - Edge, Face Remove / Rebuild Features Description of features

[0042] Table 1: Entities, change types, and additional data related to general changes received from users

[0043] All shape changes are stored as a shape change package at step 112. The shape change package is stored as part of the shape change feature in the high-level modeling system and presented to the user in the history of the part. Once the shape changes are captured and stored, they are applied using existing manipulation techniques for modeling the part, which results in updating the model of the part assembly and presenting it to the user at step 114.

[0044] Coming to the second part 104 of the method 100, local drive changes need to be determined for each part (as part of the initial drive changes) and stored as additional data in the shape change package within the part history. At the part level, each feature includes multiple editable parameters in the form of local drive changes. The determination of each local drive change is completed in two stages, starting at step 116, where local drive entities within the part are determined based on the relationships between entities within the part. As shown in Table 1 above, an entity refers to a vertex, edge, face or geometric shape of a part. The relationship between entities will partially determine the external changes that the part will be subjected to after the initial drive change is received from the user. Therefore, the second stage is to determine the changes that each local drive entity undergoes in the general change to the part assembly in step 118.

[0045] The local driving entities themselves are determined based on the nodes in the graphical representation using a series of sub-steps. In step 120, each part in the assembly affected by the general change is converted into a graphical representation, where each entity (such as a vertex, edge, face, or geometric shape) is a node in the graph and the relationships between entities (within and between parts) are edges in the graph. In step 122, the nodes to be reshaped within the same part are grouped together as shape-changing nodes. Then, in step 124, all connected shape-changing nodes within a single part are grouped together to form independent groups. For each independent group that falls within the same part in the graph, the distance between each shape-changing node in the group and the part in the assembly that undergoes the initial driving change is determined in step 126. In step 128, the shape-changing node in each group that has the shortest distance to the part in the assembly that undergoes the initial driving change is selected as the local driving entity of the group.

[0046] This process is shown in more detail in Figures 4a and 4b. Figure 4a is a schematic representation of a first assembly compilation of a part assembly within a CAD model according to an embodiment. The part assembly 40 includes the part 30 first shown above in Figures 2a, 2b and 2c, but in this example is provided with a second part 41 and a third part 42. The second part 41 is a closed cylinder including two opposite end faces 43, 44, which are joined by a long face 45 forming a continuous surface between them. The second part 41 is positioned in the through hole 35 of the head 34 of the first part 30 and has a smaller diameter than the diameter of the through hole 35 to achieve this positioning. The third part 42 includes a cuboid 46 having a central circular through hole 47 having an inner surface 48, and the second part 41 is positioned in the through hole 47. The diameter of the through hole 47 is much larger than the diameter of the closed cylinder of the second part 41. If the user indicates that they wish to make a general change by moving the second part 41 upwardly in the z-direction away from the base portion 32 of the first part 30, then changes will need to be made to the through hole 47 of the third part 42 in addition to the changes required to move the face 36 of the through hole 35 in Figure 2a. Therefore, in order to be able to achieve a local actuation change, the inner surface 48 of the through hole 47 will also need to be moved upwardly in the z-direction.

[0047] All of these changes must occur simultaneously and consistently across the model in order to maintain the integrity of the model and for the edit to make sense. It is therefore not helpful to provide the user with the ability to make these edits individually as this may result in a loss of consistency in one section. However, as part of the playback functionality, the ability to edit the local drive changes themselves is useful, and this can be based on the faces in Figure 4a that must move together during editing. The most obvious face to enable this is the face 36 that forms the boundary of the through hole 35 in the head 34 of the first part 30. This face is directly connected to the second part 41 via an assembly constraint. However, this requires the ability to determine the local drive entity (as generally outlined above) to be able to achieve this.

[0048] Determining the local driving entity requires analyzing the relationships between entities in the system. Each entity can be represented as a node in a graph, which is connected by edges that represent various connections formed by constraints, dimensions, features, and other model parameters. Figure 4b shows the local driving entity edited by the component in Figure 4a as a graph. For clarity, similar nodes are given similar face labels in the graph. The graph includes three elements: nodes related to the second part 41 (because it is indicated that the user wants to move it); nodes related to the third part 42 and nodes related to the first part 30. At the top of the graph, the second part 41 is represented as a rigid set of three faces of a cylinder (two end faces 43, 44 and a connecting face 45 along the length of the cylinder) because it is the part of the component that does not change in shape and only its position can change. Since the faces 43, 44, and 45 of the second part 41 do not change during general changes, the set of faces is represented as a rigid set of nodes, shown as a solid box around the nodes. The cylindrical face 45 is connected to the inner surface 48 of the through hole 47 in the third part 42 by a concentric relationship. For the derivation of the initial drive change, only one face of the third part 42 needs to be discussed. The cylindrical face 45 of the second part 41 is also connected to the inner surface 36 of the through hole 35 in the head 34 of the first part 30 by a concentric relationship. The inner surface 36 has a concentric relationship with the face 37 that forms the boundary of the head 34. The face 37 that forms the boundary of the head 34 is connected to each transition surface 39a, 39b, 39c, 39d, 39e, 39f by a dependent transition. Following the method outlined above, the local driving entity in the figure can be determined. This is shown in more detail in Figures 5a to 5d, which show the stages of determining the local driving entity in the example shown in Figures 4a and 4b.

[0049] As shown in FIG4b, the first part 30 includes a plurality of faces that may be affected by a change in position of the second part 41. FIG5a shows a graph representing the grouping of shape-changing nodes in the first part 30 shown in FIG4a. This includes all nodes representing faces that are affected by the movement of the second part 41: the inner surface 36 of the through hole 35 in the head 34 of the first part; the surface 37 that forms the boundary of the head 34; and the transition surfaces 39a, 39b, 39c, 39d, 39e, 39f that connect the head 34 to the vertical upright portion 33 of the first part. The faces 38a, 38b, 38c, 38d of the vertical upright portion 33 are not shown as nodes because these faces will extend due to the dependent transition relationship between the face 37 that forms the boundary of the head 34 and the transition surfaces 39a, 39b, 39c, 39d, 39e, 39f. FIG5b shows the graph of the first part 30 after grouping the connected shape-changing nodes in the same part. In this example, there is no effect on the grouping of the shape changing nodes in the first part 30, but depending on the part in question, the graph may need to be updated to better reflect the relationship between the shape changing nodes. In Figure 5c, annotations are added to the graph to indicate the distance of each shape changing node from the original operation (the movement of the second part 41). The inner face 36 of the through hole 35 in the head 34 of the first part 30 is marked as "1", the face 37 that forms the boundary of the head 34 is marked as "2", and the transition faces 38a, 38b, 38c, 38d, 38e, 38f are marked as "3". As shown in Figure 5d, the shape changing node closest to the operation is selected as the local driving entity LDE. In this example, this is the inner surface 36 of the through hole 35 in the head 34 of the first part 30. Once the local driving entity has been determined, the local driving entity can be stored together with the local driving changes applied to it as part of a shape change package, and the shape change package is stored as an associative shape changing feature in the current feature history of the first part 30.

[0050] Figures 6a to 6d show the stages of determining the local driving entity in a second example according to an embodiment. The second example is based on the complex part shown in Figure 1b. The part 50 includes four interconnected parts 51, 52, 53, 54, wherein the first part 51 is in contact with the second part 52, the second part 52 is connected to the third part 53 by a pivot, and the third part 53 is also connected to the fourth part 54 by a pivot. The first part 51, the second part 52 and the fourth part 54 are respectively connected to holes 55, 56, 57 in the fifth part 58, which is centrally located between the other four interconnected parts 51, 52, 53, 54. The user indicates that they want to make a general change by moving the first interconnected part 51 from left to right, so that a graph is to be generated. Again, similar face labels are used for similar nodes in the graph. Starting from the center of the figure, for the fifth part 58, the three faces 58x, 58y, 58z that form the interior of the three holes 55, 56, 57, respectively, are grouped as shape change nodes in the fifth part 58. It should be noted that these shape change nodes are not rigidly grouped. Next, the same operation is performed for the faces of each of the other four interconnected parts 51, 52, 53, 54 that are affected by the component edit indicated by the user. Starting from the first part 51, this is represented by three rigidly grouped shape change nodes representing the three faces 51a, 51b, 51c affected by the component edit. Similarly, the second part 52 and the fourth part 54 have three rigidly grouped faces a, b, c, respectively, that are affected by the component edit. However, since the third part 53 does not have a connection to the fifth part 58, the component edit will only affect two of its faces, thereby creating two rigidly grouped shape change nodes. Similarly, the rigid grouping of nodes representing faces that are not affected by the initial drive change is indicated in the solid box. Finally, edges are added that indicate the relationship between the shape-changing nodes in each part of the graph. The three faces 58x, 58y, 58z of the fifth part have concentric relationships with the corresponding face 51b of the first part 51, the corresponding face 52c of the second part 52, and the corresponding face 54a of the fourth part 54, respectively. The first part 51 has a face 51a that is concentrically related to the face 52b in the second part 52, and a face 51c that is concentrically related to the face 54b in the fourth part 54. The face 53a of the third part 53 is concentrically connected to the remaining face 52a of the second part, and the other face 53b of the third part 53 is concentrically connected to the remaining face 54c of the fourth part.

[0051] The fifth part 58 is the only part in the graph that does not have a rigid grouping of faces, so next, as shown in Figure 6b, the connected shape change nodes in the fifth part are grouped to obtain three independent groups. The first group involves the second face 58y, the second group involves the first face 58x, and the third group involves the third face 58z. Then, as shown in Figure 6c, the distance of each group from the original operation is calculated. The second group containing the first face 58x is marked as "1", and the first and third groups are both marked as "2" because they are equidistant from the operation. The node closest to the operation is then selected for each group. However, the graph of the fifth part 58 contains three independent shape change node groups, meaning that each group has its own local driving entity LDE, as shown in Figure 6d. Once the local driving entity has been determined, it can be stored as part of a shape change package together with the local driving changes applied to it, and the shape change package is stored as a feature of the association in the current feature history of the fifth part 58.

[0052] Figures 7a to 7d show the stages of determining the local driving entity in the third example according to the embodiment. The part assembly 70 shown in Figure 7a includes three parts: a first part 71, which includes a solid cylinder having two end faces 72a, 72b joined by a third face 72c, the third face forming a continuous surface between the first end face 72a and the second end face 72b; a second part 73, which includes a solid body having a front plane 74a, a top face 74b, a first side face 74c and a transition face 74d joining the top face 74b with the first side face 74c, a rear plane 74e, a bottom face 74f and a vertical second side face 74g; and a third part 75, which includes a solid cylinder having two end faces 76a, 76b joined by a third face 76c. The second part 73 also includes a circular through hole 77 having an inner surface 78, into which the first part 71 is inserted. To facilitate this insertion, the diameter of the through hole 77 is greater than the diameter of the first part 71. The through hole 77 is also concentric with the transition surface 74d. The third part 75 is placed on the top surface 74b of the second part 73. When the user indicates that they want to make a general change by moving the first part 71 up or down in the z direction, a graph is generated. Similar face labels are used to indicate similar nodes, and rigidly grouped nodes are surrounded by solid boxes.

[0053] For the first part 71 and the third part 75, the graphics include a rigid grouping of three faces 72a, 72b, 72c or a rigid grouping of three faces 76a, 76b, 76c, but for the second part 73, the graphical representation is more complex. Due to the concentric nature of the transition surface 74d and the through hole 77, the inner surface 78 of the through hole 77 has a concentric connection to the transition surface 74d. The top surface 74b and the first side surface 74c each have a tangent relationship to the transition surface 74d. Due to the concentric relationship between the third face 72c of the first part 71 and the inner surface 78 of the through hole 77 and the tangent relationship between the top face 74b of the second part 73 and the third face 76c of the third part 75, the graphical representation of the second part 73 is connected to the graphical representations of the first part 71 and the second part 75. After the nodes in the graph of each part have been determined to create the graph in FIG. 7a, as a next step, the connected shape-changing nodes in the only part that does not include a rigid grouping of faces are grouped together, as shown in FIG. 7b, which is the second part 73. In FIG. 7c, the distances between the original operation (moving the first part 71) and the various shape-changing nodes are calculated, resulting in the inner surface 78 of the through hole 77 being labeled "1", the transition surface 74d being labeled "2", and the top surface 74b and the first side surface 74c of the second part being labeled "3". As shown in FIG. 7d, for each group, the shape-changing node closest to the operation is selected as the local driving entity. Given that the graphical representation of the second part 73 has a single grouping, the inner surface 78 of the through hole 77 becomes the local driving entity. Once the local driving entity has been determined, it can be stored as part of a shape change package along with the local driving changes applied to it, which is stored as an associative shape-changing feature in the current feature history of the second part 73.

[0054] In each of the above examples, the technique of grouping shape-changing nodes within a part, grouping connected shape-changing nodes, and then determining the distance from the original operation is used to determine the local driving entity. In each example, the local driving entity is a face of the part, however, since an entity can be a vertex, edge, face, or geometric shape of a part, each of them can be used as a local driving entity (depending on the model and assembly edit) because the local driving entity is not limited to having to be a face. Once the local driving entities have been determined, the changes that each local driving entity has undergone in the original assembly edit are analyzed to determine whether the change is a move in a direction, a rotation about an axis, a move on a plane, a change in radius, a change in minor-radius, or a change in half-angle.

[0055] For any locally driven entity that undergoes these edits and is therefore affected by a locally driven change, the data stored in the shape change packet is given in Table 2:

[0056] Parameter Type Additional data Parameter Value default value Move in a direction Direction Vector Distance from start Distance in original edit Rotate around an axis Definition of axis Angle from start Angle in original edit Moving on a plane Definition of plane Distance from start Distance in original edit Change Radius radius Radius in Raw Edit Change Minor Radius Secondary Radius Minor Radius in Original Edit Change half-width half size Half-width in raw editing

[0057] Table 2: Local actuation changes stored in shape change packages

[0058] Considering Figures 5a-5d, 6a-6d and 7a-7d, each general change in the assembly edit results in the capture of new features for each affected part. In Figure 5a, the local driving entity resulting from the general change is the inner surface 36 of the through hole 35 of the first part 31, and the local driving change is the movement of the second part 41. This results in the capture of new features based on the shape change package for the third part 42 and the first part 31, because the third part and the first part contain entities that are changed by the initial driving change. In the case of Figure 6a, there are three local driving entities in the form of faces 58x, 58y, 58z in the fifth part 58, and the local driving change is the movement of the first part 51. New features based on the shape change package are captured in relation to the first part 51, the third part 54, the fourth part 55 and the fifth part. In Figure 7a, the local driving entity is the inner surface 78 of the through hole 77 of the second part 73, and the local driving change is the movement of the first part 71. Therefore, new features based on the shape change package are captured only in relation to the second part 73. Therefore, this process of disassembling the shape change and separating it into features on each part maintains the independence of each component in the assembly. Another advantage is that data representing local driving entities and local driving changes can be presented to the user in an editable format. This then enables the user to re-execute the assembly edit and make changes to various aspects of the edit without affecting the entire model. Once the user makes a change to the editable parameters, the shape change undergoes the same process as described above at the component level where the original shape change was generated, except that the process is performed locally on the part this time. The initial driving change is defined as all editable parameters within the shape change package, with their initial values ​​or new values ​​defined by the user. The initial driving change is analyzed in the context of the part model to determine other changes that should be made to the model. This involves, for example, checking dimensions, geometric relationships, and features. Then, the initial driving change is made to the part and the model is updated. Another advantage is that the user is able to carry out robust re-execution of shape change features. This will be discussed in more detail below.

[0059] Since editing other features may cause significant structural changes to the part, such as introducing new faces into the system, simply applying the original shape change is not sufficient to successfully update the shape change feature in this scenario. This will result in any additional faces not being considered during subsequent edits. For example, if a hole feature is edited from a countersink to a countersunk drill, the process will introduce new faces. If the original countersink face was part of the shape change feature, it no longer makes sense to simply move the original countersink face because the new countersink face also needs to be recognized. Figure 8 Another example is shown in .

[0060] Figure 8 is a series of illustrations of the effects of editing a shape-changing feature according to an embodiment. Figure 8 As shown in (i), the part 80 includes a thin body 81 having opposite planes 82a, 82b joined together by five side surfaces (bottom surface 82c, long vertical side surface 82d, inclined upper surface 82e, short vertical side surface 82f opposite to the long vertical side surface 82d, and transition surface 82g positioned between the inclined upper surface 82e and the short vertical side surface 82f). A hollow cylinder 83 is positioned at the joint between the longer vertical surface 82d and the inclined upper surface 82e of the thin body 81. The hollow cylinder has concentric inner and outer surfaces 84a, 84b and opposite surfaces 84c, 84d joining the inner and outer surfaces 84a, 84b, and is oriented in a manner such that an axis A (the axis is concentric with the concentric inner and outer surfaces 84a, 84b) is perpendicular to the opposite planes 82a, 82b of the thin body 81. The shape-changing features associated with lengthening the long vertical face 82b of the thin body 81 have been generated as part of the original editing.

[0061] Figure 8 (ii) shows the addition of a groove 85 in the inclined upper surface 82e of the thin body 81, which occurs after the initial generation of the shape-changing feature, but still before the initial generation in the history of the part. This introduces a new plane 85 and a new coplanar relationship between the two halves 82e', 82e" of the original inclined upper surface 82e. Figure 8 In (iii), the original edit is simply re-executed without finding or maintaining the coplanar relationship between the two halves 82e', 82e" of the original tilted top 82e, so the two halves are now positioned at different tilt angles. This exhibits undesirable behavior.

[0062] However, by utilizing the local driving entity during feature re-execution, this behavior is improved. This is achieved by using the same process as editing the changed feature, using the local driving entity to re-execute the edit, which will include finding new coplanar faces 85 and maintaining the coplanar relationship, inducing changes in the transition surface 82g, thereby maintaining the same inclination angle of the two halves 82e', 82e" of the original inclined upper surface 82e. This is Figure 8 (iv) shows that the addition of the slot has now been included in the shape-changing feature and has therefore become part of the feature history of the part.

[0063] Therefore, the re-execution of the feature history of a part does not refer to the change declaration from the user. For the re-execution, it is not necessary to know what the original declaration of the change was. The user can re-execute the feature history to a specific point and provide further general changes (such as Figure 8 (ii) introduction of a slot in the feature history) without the need to re-edit or modify the part or part assembly once further general changes are stored in the feature history.

[0064] Fig. 9An example of a data processing system that can implement an embodiment of the present disclosure is shown, such as a CAD application configured to perform the method described in the present application. The data processing system 90 includes a processor 91 connected to a local system bus 92. The processor 91 is configured to analyze the initial driving changes in the context of the model of the part assembly to determine the corresponding changes that need to be made in the model in order to maintain the consistency of the model of the part assembly, and for each part affected by the general change, the shape changes of the part level generated outside the part are captured into a new shape change feature, which is associative, and the processor is also configured to update the model. The local system bus connects the processor to a main memory 93 and a graphics display adapter 94, which can be connected to a display device 95, and the memory 94 is configured to store the new shape change feature at the end of the current feature history of the part, and the display device is configured to display the updated model to the user. The data processing system can communicate with other systems via a wireless user interface adapter connected to the local system bus 92, or via a wired network such as a local area network. Additional memory 96 can also be connected via the local system bus. Suitable adapters (e.g., wireless user interface adapter 97) for other peripheral devices (e.g., keyboard 98 and mouse 99 or other pointer devices) allow the user to provide input to the data processing system. Other peripheral devices may include one or more I / O controllers, such as USB controllers, Bluetooth controllers, and / or dedicated audio controllers (connected to speakers and / or microphones). It is also understood that various peripheral devices may be connected to the USB controller (via various USB ports), including input devices (e.g., keyboards, mice, touch screens, trackballs, cameras, microphones, scanners), output devices (e.g., printers, speakers), or any other type of device operable to provide input or receive output from the data processing system. It is also understood that many devices referred to as input devices or output devices may both provide input for communication with the data processing system and receive output for communication with the data processing system. It is also understood that other peripheral hardware connected to the I / O controller may include any type of device, machine, or component configured to communicate with the data processing system. User input devices, such as mouse 99, are configured to receive general changes to part assemblies in the form of initial drive changes. The display device 95 and input devices (keyboard 98 and mouse 99) are also configured to enable the user to re-execute feature history and edit shape alteration features.

[0065] An operating system included in the data processing system enables output from the system to be displayed to a user on display 95 and enables a user to interact with the system. Examples of operating systems that may be used in the data processing system may include Microsoft Windows™, Linux™, UNIX™, iOS™, and Android™ operating systems.

[0066] It is further understood that the data processing system 90 can be implemented as a networked environment, a distributed system environment, a virtual machine in a virtual machine architecture, and / or a cloud environment. For example, the processor 91 and associated components can correspond to a virtual machine executed in a virtual machine environment of one or more servers. Examples of virtual machine architectures include VMware ESCi, Microsoft Hyper-v, Xen, and KVM.

[0067] It will be appreciated by those skilled in the art that the hardware described for the data processing system 90 may vary for a specific implementation. For example, the data processing system 90 in this example may correspond to a computer, a workstation, and / or a server. However, it will be appreciated that alternative embodiments of the data processing system may be configured with corresponding or alternative components, such as in the form of a mobile phone, a tablet computer, a controller board, or any other system that is operable to process data and perform the functions and features described in this application associated with the operation of the data processing system, computer, processor, and / or controller discussed in this application. The described examples are provided for illustrative purposes only and are not meant to imply architectural limitations regarding the present disclosure.

[0068] The data processing system 90 may be connected to a network (not part of the data processing system 90), which may be any public or private data processing system network or combination of networks known to those skilled in the art, including the Internet. The data processing system 90 may communicate with one or more other data processing systems, such as a server (also not part of the data processing system 90), via a network. However, an alternative data processing system may correspond to a plurality of data processing systems implemented as part of a distributed system, wherein processors associated with several data processing systems may be in communication with one or more network connections, and may collectively perform tasks described as being performed by a single data processing system. Therefore, it should be understood that when referring to a data processing system, such a system may be implemented across several data processing systems, which are organized in a distributed system to communicate with each other via a network. The data processing system 90 is configured to perform a method according to the above-described embodiment. For example, a keyboard 98 and a mouse 99 may be used as user input devices for receiving information from a user, a processor 91 may be configured to perform the steps of the method, and a display 95 may be configured to display a specific view to the user. A computer product may be provided comprising instructions which, when executed on a computer such as data processing system 90 , may cause the computer to perform the steps of the method of the embodiments outlined above.

Claims

1. A computer-implemented method for capturing and managing changes to a history-based part model, in, The changes are generated externally to the part, wherein each change to the shape of the part in the model is stored as a feature within the history-based modeling system, and wherein changes to the part level of the model are separate from changes to the assembly level of the model, when used in part assembly editing, the method comprising: receiving a general change to the part assembly in the form of an initial driver change from a user; analyzing the initial driver changes in the context of the model of the part assembly to determine corresponding changes that need to be made in the model to maintain consistency of the model of the part assembly; for each part affected by the general change, capturing a part-level shape change generated external to the part into a new shape change feature, the new shape change feature being associative and stored at the end of a current feature history for the part; updating a model of the part assembly; and Display the updated model to the user.

2. The computer-implemented method of claim 1, in, For each part affected by the general change, the method further comprises: The changes are captured into a new shape change package that is stored as a shape change feature in a part history of the history-based modeling system.

3. The computer-implemented method of claim 2, in, At the part level, each feature includes multiple editable parameters in the form of local driven changes, and Each local driver change is formed by: determining local driving entities within the part based on relationships between entities within the part; and A change that each local driving entity undergoes in a change to the part assembly is determined.

4. The computer-implemented method of claim 3, in, The determination of the local driving entity includes: converting each part within the assembly affected by the general change into a graph, wherein each local driving entity is a node in the graph; In the same part, group the nodes whose shapes are to be changed together as shape-changing nodes; grouping shape changing nodes connected within the graph together to form separate groups; For each separate group within a part, determining the distance between each shape-changing node in the group and the part in the assembly that experienced the initial actuation change; and The shape-changing node in each group that has the shortest distance to the part in the assembly that undergoes the initial driving change is selected as the local driving entity for the group.

5. The computer-implemented method of claim 4, in, Determining the changes each local driving entity undergoes in the change to the part assembly includes: determining a type of change that each local drive entity will experience in a change to the part assembly; and The changes experienced by each local driven entity are stored in the shape change packet.

6. The computer-implemented method of claim 4 or 5, further comprising: include: generating editable parameters in the feature history based on the local actuation entity and changes experienced by the local actuation entity; as well as A user is provided with access to the editable parameters to enable the user to edit the feature during a subsequent editing process.

7. The computer-implemented method of claim 1, in, Change declarations are received from the user in the form of part selections and part moves.

8. The computer-implemented method of claim 1, further comprising: include: re-executing the feature history of the part without reference to the change statement from the user; enabling editing of features from the current feature history occurring before and after generation of said new shape-altering feature; as well as Enabling editing of the new shape altering feature after its creation to modify parameters of the new shape altering feature.

9. The computer-implemented method of claim 8, further comprising: include: Additional features are stored in the feature history following the new shape-changing feature and allow for further changes to the part.

10. The computer-implemented method of claim 3, in, An entity in the entity is a vertex, edge, face or geometric shape.

11. The computer-implemented method of claim 3, in, A parameter of the plurality of editable parameters is a movement in a direction, a rotation, a movement in a plane, a radius change, a sub-radius change or a half-angle change.

12. A computer program product comprising instructions which, when executed on a computer, cause the computer to perform the steps of the method according to any one of claims 1 to 11.

13. A data processing system configured to capture and manage changes to a history-based part model, in, The changes are generated externally to the part, wherein each change to the shape of the part in the model is stored as a feature in the history of the model within the modeling system, and wherein changes to the part level of the model are separate from changes to the assembly level of the model, the data processing system comprising: a user input device configured to receive a general change to a part assembly in the form of an initial actuation change; A processor configured to: analyzing the initial driver changes in the context of the model of the part assembly to determine corresponding changes that need to be made within the model to maintain consistency of the model of the part assembly; For each part affected by the general change, capturing a part-level shape change generated external to the part into a new shape changing feature, the new shape changing feature being associative; and updating the model; a memory associated with the processor and configured to store the new shape-changing feature at the end of a current feature history for the part; and A display device is configured to display the updated model to a user.