Computer-implemented method, system, medium and program for designing a 3D modeled object
By selecting semantic points and target locations through graphical interaction, the CAD system automatically updates semantic parameters, solving the problem of users having difficulty editing 3D modeling objects and improving design efficiency and manufacturability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- DASSAULT SYSTEMES SA
- Filing Date
- 2026-01-04
- Publication Date
- 2026-07-03
AI Technical Summary
When designing 3D modeling objects, users find it difficult to efficiently edit semantic parameters to obtain the desired output, and the feature tree is too large, resulting in excessively long time consumption for retrieving and modifying parameters.
By selecting semantic points and target locations through graphical interaction, the CAD system automatically determines the leaf nodes of the feature tree and the set of semantic parameters, and iteratively modifies the semantic parameter values to update the representation of the 3D modeled object.
It reduces the number and time of user interactions, improves design efficiency, ensures that the update process follows user intent and takes into account mechanical and manufacturing constraints, and generates physically reasonable designs that are manufacturable.
Smart Images

Figure CN122336221A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer programs and systems, and more specifically to computer implementation methods, systems, media, and programs for designing 3D modeled objects. Background Technology
[0002] The market offers numerous solutions, hardware, and software for the design, engineering, and manufacturing of objects. CAD, an acronym for Computer-Aided Design, refers to software solutions used for designing objects. CAE, an acronym for Computer-Aided Engineering, refers to software solutions used for analyzing and simulating the physical behavior of future products. CAM, an acronym for Computer-Aided Manufacturing, refers to software solutions used for defining product manufacturing processes and resources. In these computer-aided design solutions, graphical user interfaces play a crucial role in technical efficiency. These technologies can be embedded in Product Lifecycle Management (PLM) solutions. PLM refers to an engineering strategy that spans the extended enterprise, helping companies share product data, apply common processes, and leverage enterprise knowledge to develop products from product conception to the end of the lifecycle. PLM solutions offered by Dassault Systèmes (traded as CATIA, ENOVIA, and DELMIA) provide an Engineering Hub for organizing product engineering knowledge, a Manufacturing Hub for managing manufacturing engineering knowledge, and an Enterprise Hub that enables enterprises to integrate and connect between the Engineering Hub and the Manufacturing Hub. All these solutions together provide a common model linking products, processes, and resources to enable dynamic, knowledge-based product innovation and decision support, driving optimized product definition, manufacturing preparation, production, and service.
[0003] Designing 3D modeling objects is a lengthy process involving combinations of many different operators. These operators can include, for example, creating, modifying, and / or combining one or more geometric objects. These operators are typically stored in a feature tree and can be affected by parameters. After introducing operators, users may want to edit the values of some parameters to modify the 3D modeling object. However, in some cases, users may be unsure which parameters to modify to obtain the desired output; in other cases, the feature tree may be so large that users may have to spend a considerable amount of time searching through it.
[0004] In this case, an improved solution is still needed for updating 3D modeled objects based on graphical interaction. Summary of the Invention
[0005] Therefore, a computer-implemented method for designing 3D modeled objects representing mechanical products is provided. The 3D modeled object has a feature tree and raw values for a set of semantic parameters. Each semantic parameter is associated with a corresponding node in the feature tree.
[0006] The method includes displaying a 3D representation of a 3D modeled object by a CAD system.
[0007] The method also includes user interaction with the 3D representation graphically. Graphical interaction includes graphically selecting semantic points on the outer surface of a 3D modeled object, these semantic points having an original 3D location. Graphical interaction also includes graphically selecting one or more target 3D locations for the semantic points.
[0008] The method also includes leaf nodes of the feature tree representing a portion of the outer surface to which the semantic points belong, which are automatically determined by the CAD system.
[0009] The method also includes a list of subsets of the semantic parameter set automatically determined by the CAD system. This list begins with a subset that includes any semantic parameters associated with the determined leaf nodes. Each subsequent subset in the list comprises the union of the preceding subset in the list and any semantic parameters associated with any corresponding node of the feature tree in one or more corresponding nodes. The graph distance between each of the one or more corresponding nodes and the determined leaf node is greater than the graph distance between the corresponding node of each semantic parameter in the preceding subset and the determined leaf node. The list ends with this set of semantic parameters.
[0010] The method also includes: automatically iteratively modifying the values of the semantic parameter set by the CAD system after the list is determined. This yields updated values for the semantic parameter set. The iterative modification includes reducing the error between one or more target 3D positions of the semantic point and the current 3D position of the semantic point in each iteration. In each iteration, the iterative modification is constrained by the semantic parameters of the current subset of the list.
[0011] The method also includes automatically updating the 3D representation of the 3D modeled object by the CAD system based on updated values of the semantic parameter set.
[0012] The method may include one or more of the following: The iterative modification includes: initializing the cumulative change vector representing the cumulative change of the semantic parameters of the semantic parameter set to zero; and reducing the error in each iteration includes: calculating the optimal change vector representing the optimal change of the semantic parameters of the current subset of the list. The optimal change vector ( The distance between the product of the transformation matrix and the candidate transformation vector and the corresponding value of the error is minimized, wherein the transformation matrix represents the change of the semantic parameters of the 3D position of the semantic point relative to the current subset of the list, and the iterative modification includes updating the cumulative transformation vector in each iteration by adding the value of each coordinate of the optimal transformation vector to the corresponding coordinate of the cumulative transformation vector. The change matrix represents the change in the semantic parameters of the original 3D position of the semantic point relative to the current subset of the list; The optimal change vector minimizes the distance under constraints that penalize any change in the semantic parameter values of the previous subset of the list relative to any semantic parameter of the current subset of the list. The constraints include: the product of the constraint matrix and the candidate change vector is equal to 0, wherein the constraint matrix is a square matrix in which each coordinate corresponding to the semantic parameters of the previous subset in the list has a non-zero value on the diagonal of the square matrix and a zero value at other positions, and the non-zero value may optionally be a positive number and / or a constant, such as equal to 1. The optimal change vector is equal to the sum of the product of the change vector with the minimum norm that minimizes the distance, the kernel matrix of the change matrix, and the adjustment vector with the minimum norm that satisfies the constraint. The change vector of the minimum norm is equal to the pseudo-inverse of the change matrix ( The product of the value of the error and the minimum norm, the change vector of the minimum norm can optionally be determined using the Moore-Paros inverse method, and / or the adjustment vector of the minimum norm is equal to the negative of the product of the first sub-product and the second sub-product, the first sub-product being the pseudo-inverse of the product of the constraint matrix and the kernel matrix, the second sub-product being the product of the constraint matrix and the change vector of the minimum norm, the adjustment vector of the minimum norm being optionally determined using the Moore-Paros inverse method; At least one semantic parameter has a bounded domain, and the iterative modification includes, in each iteration, after the update, applying an out-of-bounds management process, which is configured to clamp the value of each corresponding semantic parameter outside its domain to the nearest boundary. The reduction in error in each iteration is equal to the distance between the measured values of one or more target 3D positions and the measured values of the original 3D positions modified by the cumulative change vector; Based on a viewpoint, displaying a 3D representation of a 3D modeled object on the screen of a CAD system, and graphically selecting semantic points, includes: selecting a first 2D position on the screen such that a line from the viewpoint that intersects the first 2D position also intersects the 3D representation; and graphically selecting one or more target 3D positions, includes: selecting a second 2D position on the screen, wherein the one or more target 3D positions include all 3D positions of lines from the viewpoint that intersect the second 2D position. Graphical selection of semantic points and graphical selection of one or more target 3D locations are performed once via drag-and-drop operations; and / or updating the 3D representation is performed in real time while graphically selecting semantic points and / or graphically selecting one or more target 3D locations; and / or Mechanical products are components of mechanical parts, and each leaf node represents at least a portion of the outer surface of one and only one corresponding mechanical part.
[0013] A computer program including instructions for performing the method is also provided.
[0014] A computer-readable storage medium on which a computer program is recorded is also provided.
[0015] A system is also provided that includes a processor coupled to a memory on which a computer program is stored. The system may further include a graphical user interface coupled to the processor. Attached Figure Description
[0016] A non-limiting example will now be described with reference to the accompanying drawings, in which: Figure 1 A flowchart illustrating an example of this method is shown; Figures 2A-9 An example implementation of the method is shown; and Figure 10 An example of the system is shown. Detailed Implementation
[0017] refer to Figure 1 The flowchart presents a computer-implemented method for designing 3D modeling objects representing mechanical products using a CAD system. The 3D modeling object has a feature tree and raw values for a set of semantic parameters. Each semantic parameter is associated with a corresponding node in the feature tree. It is well known that CAD systems can be used to display a tree representation of a 3D modeling object and / or for users to arbitrarily select and edit the values of any semantic parameter by manually entering specific values of the semantic parameters using any appropriate method (e.g., as a non-limiting example, entering a numerical value in a dialog box prompt or selecting a discrete value in a drop-down menu). Therefore, each semantic parameter is manually editable by the user. However, this method provides an alternative way for users to edit semantic parameters.
[0018] Specifically, the method includes: S10, displaying a 3D representation of the 3D modeled object by a CAD system (e.g., on a screen).
[0019] The method also includes graphical interaction between the user and the 3D representation. The user's graphical interaction includes: graphically selecting (hereinafter also referred to as "graphical selection", S20) a semantic point on the outer surface of a 3D modeled object, having an original 3D position, using mouse clicks or touch gestures on a touchscreen or touchpad. The user's graphical interaction also includes (e.g., chronologically following S20): graphically selecting (S30) one or more target 3D positions of the semantic point using other methods of mouse clicks or touch gestures, or alternatively forming a drag-and-drop interaction with the selection S20, such as moving the mouse cursor or touching the object between S20 and S30.
[0020] The method also includes executing procedures S40-S70, which cause the 3D representation of the 3D modeled object to be updated in S70. Procedures S40-S70 are executed completely automatically by the CAD system without user intervention.
[0021] The automatic process includes: determining (S40) the leaf nodes of the feature tree, wherein the leaf nodes represent a portion of the outer surface to which the semantic points belong.
[0022] The automatic process further includes: determining (S50) a list of subsets of the semantic parameter set. The list begins (S51) with a subset including any semantic parameters associated with the determined leaf nodes. In other words, the first element of the list includes all semantic parameters associated with the leaf nodes determined in S40. Each subsequent subset of the list includes the union of the previous subset in the list and any semantic parameters associated with any corresponding node of the feature tree in one or more corresponding nodes of the feature tree. The graph distance between each of the one or more corresponding nodes and the determined leaf node is greater than the graph distance between the corresponding node of each semantic parameter in the previous subset and the determined leaf node. In other words, each (but except the first) element of the list includes all semantic parameters of the previous element of the list plus additional semantic parameters defined based on the graph distance to the leaf node determined in S40. The list ends with this set of semantic parameters (S53). In other words, the last element of the list includes the entire set of semantic parameters of the feature tree.
[0023] Therefore, a node-level list can be considered, which consists of a subset of the set of all nodes in the feature tree. This node-level list can begin with the leaf node determined in S40 (i.e., the first element of the node-level list). Each subsequent subset in the node-level list can include the union of the previous subset in the node-level list and one or more newly added nodes, where the graph distance between each newly added node and the determined leaf node is greater than the graph distance between each node in the previous subset and the determined leaf node. The node-level list ends with the set of all nodes in the feature tree. A list of subsets of the semantic parameter set determined in S50 can have the same size as such a node-level list, and for a given index, each element in the list determined in S50 can be the union of one or all nodes within the element with the same given index in the node-level list, taking the semantic parameters associated with any given node, or all semantic parameters (if any).
[0024] The automatic process also includes iteratively modifying (S60) the values of the semantic parameter set after the list is determined in S50 (i.e., in the subset list, first modifying the parameters in the first subset, then modifying the parameters in the second subset, and so on). Thus, the method obtains updated values for the semantic parameter set. Iterative modification includes reducing the error between one or more target 3D positions of the semantic point and the current 3D position of the semantic point in each iteration. In each iteration, the iterative modification is limited to the semantic parameters of the current subset of the list. In other words, in each iteration, the free variables for iterative modification are limited to the semantic parameters of the current subset of the list. All semantic parameters of the current subset of the list can be such free variables.
[0025] The automatic process also includes updating the 3D representation of the 3D modeling object (S70) based on the updated values of the semantic parameter set.
[0026] This method includes an improved solution for updating semantic parameter values during graphical interaction.
[0027] The 3D modeling object displayed in S10 has (for example, represented as) a feature tree (also known as a “specification tree,” “specification tree,” or “feature map”). Within the feature tree, some parameters associated with nodes can be exposed for easy editing. Such parameters are referred to herein as “semantic parameters.” Editing semantic parameters (e.g., updating, modifying, changing, or altering the value of a semantic parameter) can modify the shape of the 3D modeling object. For example, a semantic parameter may be associated with the length or thickness of a portion of the 3D modeling object.
[0028] Figure 2A An example of a feature tree with four semantic parameters of 20 is shown. Figure 2B It shows the relationship with Figure 2AThe feature tree is associated with the 3D modeled object (i.e., table 30). Semantic parameter 20 is associated with different parameters of the table: parameter 21 is associated with the total width 21' of the table, parameter 22 is associated with the position 22' of the drawer (relative to the position of the table, e.g., whether it is inside or outside the table), parameter 23 is associated with the width 23' of the writing (or working) surface, and parameter 24 is associated with the total length 24' of the table.
[0029] In the context of 3D model editing / design / modeling, manually editing the values of semantic parameters can be time-consuming and unuser-friendly. In fact, the impact of updating a specific semantic parameter on the overall design may be unclear. Understanding which semantic parameters to modify to achieve the desired results can be complex. Therefore, users may have to iteratively select and manually modify the values of several parameters until they are satisfied with the results. Manual editing of semantic parameters can be very tricky (i.e., unintuitive and time-consuming), especially for 3D model objects with many semantic parameters. Furthermore, the semantic parameters of a 3D model object can be the result of a solver (e.g., the result of a simulation or optimization program) and can be complex to interpret. The solver may be related to the manufacturing or use constraints of the 3D model object. Semantic parameters may also have to adhere to boundaries related to the use case and / or manufacturing constraints of the mechanical product based on the 3D model object (e.g., a robotic arm).
[0030] In some cases, the various parts of a design are related in complex ways (e.g., complex mechanical designs such as robotic arms), and the number of possible combinations of parameters can be large. It is practically impossible for users to test all possible parameter combinations and manually change semantic parameters (it would take too much time, such as several hours).
[0031] This method allows users to modify 3D modeled objects through graphical interactions S20 and S30. It significantly enhances the ergonomics of designing 3D modeled objects by allowing users to automatically modify semantic parameters to match their intentions. For example, the method can take two mouse clicks (starting point S20 and ending point S30) as input and automatically update the 3D modeled object (by modifying semantic parameters) to ensure that the point associated with the first click (referred to herein as the "semantic point") is located at the position of the second click. This contrasts sharply with manual methods, where the user must retrieve a feature tree (involving several interactions, each requiring a considerable amount of time), manually modify the values of each involved semantic parameter, wait for the system to update the 3D modeled object, verify that the updated 3D modeled object meets the required criteria, and if not, start again. This manual process can be quite time-consuming due to the potential involvement of multiple semantic parameters. Therefore, this method reduces the time spent by the user and the number of necessary interactions, thereby enhancing the ergonomics of designing 3D modeled objects.
[0032] Figures 3-4 A different solution is shown than the method of updating table 30 defined by semantic parameter 20.
[0033] like Figure 3 As shown, the user selects a starting point 41 and a target position 40 on drawer 32 of the table. The table can be modified in several ways to obtain a model that satisfies the constraint that the selected starting point 41 (corresponding to a semantic point) reaches the target position 40.
[0034] Figure 4 A solution (different from the solution obtained by this method) is shown in which drawer 32 has been pulled out, and only the writing surface 34 of the table has been enlarged. From a mechanical point of view, this solution is clearly unacceptable because drawer 32 can no longer be closed, thus losing its mechanical function.
[0035] Unlike the unacceptable solution illustrated, this method allows updating 3D modeled objects in a manner that not only follows the user's intent to move a user-defined starting point to a target point, thus satisfying the graphical constraints set by the user using graphical selections S20 and S30, but also ensures that the object is positioned (thus allowing flexibility under the user's fine control) and produces a physically feasible object, particularly one that can be manufactured (maintaining manufacturability). In other words, this method proposes a way to update the model in a manner meaningful to the user, taking into account both the user's graphical choices and manufacturing and mechanical considerations and functionality.
[0036] In particular, in the corresponding Figure 3 In the example, this method will cause drawer 32 to be pulled out of table 30 (not shown in the figure). In other words, the semantic parameters corresponding to the feature tree closest to the user's selection will only modify the position of drawer 32. If the user wants to expand the table (i.e., increase the depth of writing surface 34 and drawer 32 at the same time), the user can select and move a point on writing surface 34, for example, moving point 43 to position 42. Therefore, this method provides the user with fine control and flexibility, because according to the graphical selection S20, the user can selectively move only drawer 32, or increase the width of the table (i.e., expand writing surface 34).
[0037] The method will actually be executed as follows: In the first step, the user interacts with the 3D modeling object (table 30) by selecting a starting point 41 and a target point 40. In the second step, the implementation may involve distinguishing the function at the starting point 41 and iteratively modifying the value of the semantic parameter 20. In the third step, the 3D modeling object is updated, and the updated 3D modeling object is displayed to the user.
[0038] Specifically, this method can update only the most relevant semantic parameters (e.g., only the semantic parameters that the user intends to modify). Specifically, the method (in S50) introduces a list of subsets of the semantic parameter set, which can be interpreted as priority scores ranking the semantic parameters. The method can iteratively update semantic parameters starting with those having higher priority (in S60). That is, the method can iteratively expand the set of semantic parameters used in the optimization process to find a solution where higher-priority semantic parameters are more likely to be updated, while lower-priority semantic parameters are less likely to be updated. Higher-priority semantic parameters can be those that (preferably) affect operators that act on portions near the starting point of the 3D modeling object (e.g., the first mouse click).
[0039] The user's intent is interpreted through a list of subsets determined in S50. By graphically selecting a starting point somewhere in the design (in S20), the user may intend to modify the values of semantic parameters affecting features near said starting point. Therefore, this method is easier to use (e.g., more intuitive) than existing methods. For example, as discussed above, in Figure 3 In the case of a table, whenever the starting point is on a drawer, the semantic parameter closest to that starting point is the semantic parameter relating to the drawer's position; the method prioritizes therefore pulling out the drawer (e.g., only modifying the value of the semantic parameter related to the drawer's position), rather than... Figure 4 The diagram shows how opening the drawer expands the writing surface of the desk. Specifically, the user can modify the design in several different ways by graphically selecting different points. These are discussed further below in this disclosure. Figures 7-9 Three examples illustrate how priority scores (representing a list of subsets determined in S50) can be used in the implementation of process optimization of semantic parameters.
[0040] The list of subsets defined in S50 can also reflect the physicality of the mechanical products represented by the 3D modeled objects. In other words, the list of subsets defined in S50 allows for updating the design in a physically plausible manner, as if applying a force from the starting point toward the ending point.
[0041] Specifically, the method takes a 3D modeling object and one or more user graphical inputs (in S20 and S30) as input, updates the 3D modeling object based on the graphical input (automatically, according to steps S40, S50, and S60), and updates the 3D representation of the updated 3D modeling object (in S70). That is, the method is used to design 3D modeling objects (e.g., objects defined by equations, parameters, and / or control points). The 3D modeling object represents a mechanical product. In particular, the mechanical product can be a component of a mechanical part. Each leaf node can represent at least a portion of the outer surface of one and only one corresponding mechanical part. Iteratively modifying the values of semantic parameters (S60) can directly or indirectly modify the specifications of the mechanical part.
[0042] The method can be included in the manufacturing process, and / or the output of the method can be directly used to manufacture the product. For example, after updating a 3D modeling object, the method can include: storing the specifications of the updated 3D modeling object in a file, and optionally, converting the specifications of the updated 3D modeling object (e.g., using a known CAD to CAM conversion process) into manufacturing instructions for manufacturing a mechanical product modeled by the updated 3D modeling object. The determination / conversion of the CAM file can include: (e.g., automatically) checking the CAD model for any geometric characteristics (e.g., errors or artifacts) that might affect the production process and (e.g., automatically) correcting such characteristics. The method can also automatically send the manufacturing instructions and / or the stored file to the manufacturing machinery, causing the manufacturing machinery to follow the instructions to produce a mechanical product represented by the updated 3D modeling object. The method can include physical manufacturing, or simply storing the manufacturing instructions obtained according to the specifications and the output of the method, and / or sending these instructions to the manufacturing process. The manufacturing of the mechanical product modeled by the updated 3D modeling object can include various processes, each interacting differently with the CAD model.
[0043] For example, the manufacturing process may include additive manufacturing (3D printing). In additive manufacturing, the production process does not include the step of determining a CAM file; instead, it proceeds directly to the production / manufacturing step by feeding a CAD model directly (e.g., automatically) to the 3D printer. The 3D printer is configured to 3D print a mechanical product directly and automatically from the CAD model when it is fed (e.g., when 3D printing is initiated by a 3D printer operator).
[0044] Additionally or alternatively, as a non-limiting example, mechanical products may include: Machined parts (i.e., parts manufactured by machining), such as milled parts (i.e., parts manufactured by milling). Molded parts (i.e., parts manufactured by molding), such as injection-molded parts; and / or Stamped parts, also known as "parts under stamping," are parts that are manufactured during the stamping process.
[0045] In this context, the manufacturing process may include (e.g., automatically) determining a CAM file based on a CAD model. This determination may include (e.g., automatically) performing a series of checks based on the CAD model to verify that the geometry and / or distribution of the material captured by the CAD model is suitable for a given manufacturing process. The CAM file may include specific instructions regarding the manufacturing process.
[0046] This method is used to design 3D modeling objects with raw values of a feature tree and a set of semantic parameters, each semantic parameter being associated with a corresponding node in the feature tree. The 3D modeling object shown in S10 has a feature tree comprising multiple nodes and connections, each node representing an operator. The feature tree is a directed acyclic graph (DAG; each connection in the graph has a direction, and there are no loops along the direction), representing the geometric parts and operations used to construct the 3D model. Each node in the feature tree (also called a “feature”) is associated with an operator (also called an “operation” or “feature”), which may involve creating, modifying, or combining one or more geometric objects. Each node is also associated with a geometric object, i.e., the result of the operator. The feature tree has a root node, and the geometric object associated with the root node is the entire 3D modeling object. The feature tree includes multiple parameters, each associated with at least one node. Some important parameters (i.e., semantic parameters) are exposed and can be modified by the user. The set of semantic parameters may include one or more semantic parameters, each semantic parameter quantitatively specifying the geometric properties of the 3D modeling object. For example, a semantic parameter set may include one or more semantic parameters, each specifying a numerical parameter of a geometric operator represented by a node of the feature tree. For instance, the semantic parameter set may include one or more semantic parameters, each specifying the size of one or more corresponding parts of a 3D modeled object, and / or one or more semantic parameters, each specifying the position of one or more corresponding parts of the 3D modeled object. As a non-limiting example, each semantic parameter specifying the size of one or more corresponding parts may specify a height, width, length, radius, diameter, and / or any other numerical parameter specifying the size of at least one of the one or more corresponding parts. As a non-limiting example, each semantic parameter specifying the position of one or more corresponding parts may specify an angle, distance, and / or any other numerical relationship between some of the one or more corresponding parts. Semantic parameters may correspond to (or in any way influence) the coefficients of the equations describing the parts of a 3D modeled object. For example, a node of the feature tree may represent an abstract cube, and semantic parameters may represent the length of each side of the cube, thus forming the equations needed to describe a cube with sides of a given length.
[0047] The 3D modeling object displayed in S10 can be obtained by any method known in the art. This method can, for example, be included in any other method for designing a 3D modeling object representing a mechanical part. Additionally or alternatively, obtaining the 3D modeling object may include retrieving from (e.g., local or remote) memory or receiving (e.g., from a remote system) a 3D modeling object (or associated feature tree) that has been designed and / or stored therefrom.
[0048] The method includes displaying (S10) a representation of a 3D modeled object. The 3D representation of the 3D modeled object displayed in S10 includes a 3D space equipped with coordinates, wherein the 3D modeled object is represented by said coordinates. Display (S10) may include rendering the 3D modeled object. Rendering the 3D modeled object enables, for example, displaying the 3D representation of the 3D modeled object on a screen. Display (S10) may also include a visual presentation (i.e., display) of the 3D representation. The visual presentation may be two-dimensional (e.g., on a screen) or three-dimensional (e.g., in a VR environment). The visual presentation may include a visual presentation of the 3D representation of the 3D modeled object (e.g., in two dimensions). The visual presentation may also be described using coordinates (e.g., two coordinates for a 2D visual presentation, three coordinates for a VR environment). The visual presentation of the 3D representation of the 3D modeled object may also be described using said coordinates. Using a CAD system, the 2D visual presentation can be processed by the user and can be freely rotated about any of its axes or about any axis on the screen displaying the representation.
[0049] For example, the 3D representation displayed in S10 could be a viewpoint representation. A viewpoint representation can be a 3D representation of a 3D modeled object that can be viewed from different viewpoints in 3D space (e.g., displayed in a visual presentation). Many CAD systems include viewpoint representations. The display (S10) can include the viewpoint representation, and optionally, a visual presentation of the viewpoint representation. The visual presentation can include acquiring the viewpoint, and can include visually presenting the 3D modeled objects that can be seen from the viewpoint. After acquiring the viewpoint, the visual presentation can include determining a 2D pixel grid, where each pixel corresponds to a line from the viewpoint, and each pixel includes information about whether the associated line intersects with a representation of the 3D modeled object.
[0050] The method may include: for each point in the 3D representation, determining associated points in the visual representation. For example, whenever the 3D representation is a viewpoint representation, the method may include: for each point in the viewpoint representation, determining a line originating from and passing through that point. The line may correspond to a pixel (i.e., a point) in a 2D grid of the viewpoint representation. The method may also include: for each point in the visual representation, computing one or more associated points in the 3D representation. For example, whenever the 3D representation is a viewpoint representation, each point in the visual representation may correspond to a line in the 3D representation (and thus to a point including that line).
[0051] The method includes user graphical interaction with a 3D representation, including graphical selection S20 and / or graphical selection S30. Through interaction, it means that the user can use an input device (e.g., mouse, keyboard, touchscreen, touchpad, graphics tablet, and / or VR controller) to interact with the 3D representation (e.g., selecting parts, clicking, touching, and / or dragging and dropping). User graphical interaction may also include indirect interaction that detects user intent through hand tracking (e.g., in a VR environment) or any gaze-based interaction method.
[0052] Graphical interaction can occur on a visual representation in 3D. In this way, input devices can be used to interact with the visual representation (e.g., a screen, a VR environment). For example, a user can select (or drag and drop) one or more points in the visual representation. This method can include any approach used to infer and form input in the visual representation and input in the 3D representation.
[0053] The graphical selection S20 includes graphically selecting semantic points. Semantic points are inherent points of a 3D modeling object, independent of any 3D representation, visual representation, and / or parameter values. A semantic point is a point associated with the feature tree of the 3D modeling object, determined by leaf nodes and coordinates. A semantic point may also include information about the path from the leaf node to the root node of the feature tree. The coordinates may be relative to the geometric object corresponding to the leaf node. A semantic point may have three coordinates, independent of semantic parameters. A semantic point corresponds to a point in any 3D representation of the 3D modeling object. That is, the 3D modeling object is the result of different operators included in the feature tree, each part of which corresponds to at least one geometric object associated with a leaf node of the feature tree. For example, this association may be given by an equation. The semantic point determines a point in the 3D representation of the 3D modeling object through the association (e.g., the equation). The determined point in the 3D representation may depend on the semantic parameters. The method may include any method of determining (as shown in S10) the associated points of the 3D representation based on the semantic points and thus determining any points in the visual representation of the 3D representation.
[0054] Conversely, the method may include determining one or more semantic points of a 3D modeled object based on each point of its 3D representation and / or each point of its visual representation. This determination of one or more semantic points may include identifying at least one geometric object associated with a leaf node of a feature tree. The geometric object corresponds to a portion of the 3D modeled object (in its 3D representation) that includes that point.
[0055] The graphical selection S20 may include selecting a point in the 3D representation corresponding to a semantic point. Selecting the 3D representation point includes (e.g., obtaining input from a user). The selected 3D representation point is the original 3D location of the semantic point (also referred to as the "starting point"). For example, selecting the 3D representation point may include (e.g., by a user, such as by clicking with a mouse, or any of the above-described graphical interaction methods) selecting a visually rendered point of the 3D representation, thereby inferring the 3D representation point through any of the above-described methods. Therefore, the graphical selection S20 may include: determining the semantic point from the visually rendered point of the 3D representation of the 3D modeled object (displayed in S10).
[0056] The graphical selection S20 may further include: determining points (e.g., nearest points) associated with semantic points on the outer surface of the 3D modeled object from the acquired 3D representation points. For example, the user may select points inside the model (in a VR environment) or points near the 3D modeled object (e.g., the input may be imprecise). This method can automatically determine points (e.g., nearest points) in the 3D representation associated with semantic points on the outer surface of the 3D modeled object.
[0057] The method also includes graphically selecting (S30) one or more target locations for semantic points. Target locations are points in the 3D representation space of a 3D modeled object. Selecting one or more target locations can include any of the graphical interaction methods described above. For example, graphical selection S30 can include: selecting a visually presented point, and inferring one or more points (i.e., one or more target locations) in the 3D representation.
[0058] For example, the display of a 3D representation of a 3D modeled object on the screen of a CAD system can be performed based on a viewpoint (S10). That is, the 3D representation can be a viewpoint representation, and the visual presentation can be a visual presentation associated with the viewpoint. Graphical selection (S20) can include selecting a first 2D position on the screen such that a line from the viewpoint intersects with the first 2D position and also intersects with the 3D representation. For example, the first 2D position can be a point (e.g., a pixel) associated with a line from the viewpoint that intersects with a 3D modeled object in the 3D representation. Such a line can have a first intersection with the (represented) 3D modeled object, and such an intersection is used to determine a semantic point. That is, the semantic point graphically selected in S20 can be a semantic point associated with a point obtained as an intersection of a line from the viewpoint in the 3D representation, the line being determined by user graphical interaction on the visual presentation of the 3D representation. Graphical selection (S30) of one or more target 3D positions can include selecting a second 2D position on the screen, the one or more target 3D positions including all 3D positions on a line from the viewpoint that intersects with the second 2D position. That is, one or more target locations can be all points included in a line from a viewpoint associated with a second 2D location in a 3D representation (i.e., all points that make up the line).
[0059] After acquiring the 3D modeling object and user graphical interactions S20 and S30, the method (automatically) updates (S70) the representation of the 3D modeling object based on the updated values of the semantic parameter set. That is, the method is automatically executed by the CAD system through a series of steps (S40, S50, and S60) to update the values of the semantic parameter set. After updating the semantic parameters, the method includes updating the 3D modeling object according to the updated semantic parameters. Therefore, updating S70 includes updating the 3D representation based on the updated 3D modeling object (based on the updated semantic parameters).
[0060] It is worth noting that the graphical selection S20 of semantic points and the graphical selection S30 of one or more target locations of semantic points may include two distinct user interactions: a first interaction for the graphical selection S20 of semantic points and a second interaction for the graphical selection S30 of one or more target locations. The first interaction may be performed before the second interaction. After the first interaction has been performed, the method may include informing the user in any way that the first interaction has been registered (e.g., using a floating window, e.g., near the starting point) and that the system is waiting for the second interaction. The two user interactions may include: one or more clicks with a mouse, one or more touches on a touchpad, interaction with a touchscreen (e.g., directly touching a desired location on the screen with a finger), interaction with a graphics input tablet (e.g., using a pen to interact with a graphics tablet), and / or interaction in a VR environment (e.g., using a special controller, or directly with the hand). Therefore, in an implementation, the graphical selection S20 of semantic points and the graphical selection S30 of one or more target locations of semantic points may include: clicking with a mouse at the starting location (e.g., as seen in the visual presentation) and clicking with a mouse at a location corresponding to one or more target locations. The implementation may allow similar interactions with other input devices described above.
[0061] Additionally or alternatively, the graphical selection S20 of semantic points and the graphical selection S30 of one or more target locations of semantic points can be performed simultaneously via drag-and-drop manipulation. That is, the method allows a user to initiate a graphical selection at a point corresponding to a semantic point on a surface in 3D representation space (or visually), then select a path from said point to a target destination, and stop the graphical selection at said target destination. After graphical selection has begun, the method may include informing the user in any way that the interaction has been registered (e.g., using a floating window, such as near the starting point or near the current position of the cursor), and that the system is waiting to stop the graphical selection. As a non-limiting example, drag-and-drop manipulation can be performed using different input devices: Using a mouse, initiating a graphical selection may include pressing a button without releasing it, and stopping the graphical selection when the button is released; Using a touchpad, you can start a graphical selection by touching the touchpad without lifting your finger, and you can stop the graphical selection when you remove your finger from the touchpad. Using a touchscreen, initiating a graphical selection can include touching the screen without releasing your finger, and stopping the graphical selection when you remove your finger from the screen; Using a graphics tablet, initiating a graphical selection can include touching the tablet with a pen without lifting it, and stopping the graphical selection when the pen is removed from the tablet; and / or In VR environments, special controllers or hand tracking methods are used.
[0062] The method may include updating the 3D representation (and associated visual presentation) in real time (e.g., after a few seconds, or after a fraction of a second, such as less than 4 seconds) when graphically selecting a semantic point S20 and / or graphically selecting one or more target 3D locations S30. For example, the method may include automatically updating the 3D representation (and associated visual presentation) directly after a second interaction or after stopping graphical selection during drag and drop. Alternatively, the method may include requesting verification from the user before updating the 3D representation (and associated visual presentation), for example, by utilizing a floating window that notifies the user of the action.
[0063] Additionally or alternatively, the method may include updating the 3D representation (and associated visual presentation) in real time after a semantic point is selected graphically (S20). That is, the method may include acquiring the first graphical input (e.g., a first interaction such as a click, or initiating a graphical selection during drag-and-drop) and updating the representation of the 3D model in real time (e.g., every few seconds or fractions of a second), where the position of the mouse / finger / pen / controller is considered the target position. The updated representation may be shown in different ways (e.g., with a lighter color, partially transparent), allowing the user to simultaneously see both the original representation and the new representation of the 3D modeled object visually.
[0064] Allowing users to view updated representations in real time greatly enhances ergonomics. In reality, users may be unsure of the necessary modifications to a 3D modeled object or the optimal target location for selected semantic points; therefore, being able to directly see the effects of operations can further reduce the interaction required when designing 3D modeled objects.
[0065] The method includes: (S40) determining (a portion of the outer surface of a feature tree to which a semantic point belongs. Since a semantic point is a point of at least one geometric object associated with a leaf node of the feature tree, the method automatically obtains the leaf node of the feature tree (e.g., one of at least one geometric object selected by any method) based on the semantic point.
[0066] The method further includes: determining (S50) a list of subsets of the semantic parameter set. The list of subsets is being increased (e.g., strictly or non-strictly), meaning that each subset in the list contains (e.g., strictly or constitutes) elements of the previous subset in the list. For example, determining (S50) may include a list of subsets indexed by non-negative integers (e.g., priority values or level values), where larger indices correspond to larger subsets. The list begins (S51) with a subset that includes each semantic parameter associated with the determined leaf node. That is, the first subset of the list contains (e.g., constitutes) the semantic parameters associated with the determined leaf node. Each subsequent subset in the list includes the union of the previous subset in the list and any semantic parameters associated with the corresponding node of the feature tree, whose graph distance to the determined leaf node is greater than the graph distance between the corresponding node of each semantic parameter in the previous subset and the determined leaf node. In other words, each subsequent subset of the list is obtained by adding (S52) any semantic parameters associated with the corresponding node of the feature tree to the previous subset, such that the graph distance of the leaf node determined by that node is greater than the graph distance between the corresponding node of each semantic parameter in the previous subset and the determined leaf node. For example, the second subset may include the first subset and any semantic parameters associated with the parent node of the determined leaf node (since the leaf node has no child nodes). For example, the second subset may include all semantic parameters associated with the determined leaf node and its parent node. The third subset may include the union of the second subset and the semantic parameters of the parent node and child nodes of the leaf node's parent node. That is, in each iteration, all semantic parameters of all parent nodes and child nodes of the nodes considered in the previous subset are added. The iteration continues until the last subset is the entire set of semantic parameters.
[0067] Graph distance refers to the distance between nodes in a feature tree that is considered an undirected graph. This distance depends on the path between the nodes. For example, the distance between two nodes could be the minimum number of edges required to form an undirected path between them, or other similarly defined distances.
[0068] Determining S50 may include using the concept of "priority" for semantic parameters to determine a list of subsets. Priorities can be integers. Specifically, each node in the feature tree can have a priority, and each semantic parameter can have a priority corresponding to the priority of its associated node. Each subset of the list may include a set of semantic parameters with a given priority. The leaf node determined in S40 may have the highest priority. The priorities of other nodes in the feature tree may depend on their distance from the determined leaf node, with higher distances resulting in lower priorities.
[0069] Figure 5 The feature tree is shown, where each node has a (priority) level value that corresponds to a subset defined in S50. Figure 5 The feature tree has a selected leaf 50. The level of each node is the graph distance between that node and the selected leaf 50. A list of subsets is given by level; that is, the subset list comprises four subsets, each corresponding to the semantic parameters of nodes at levels below a certain value, which is between 0 and 3. Specifically, only nodes at level 0 are leaf 50. For example, the first subset includes all semantic parameters (e.g., radius, height) associated with leaf 50. Level 1 includes all nodes at a distance of 1 from the leaf, namely parent nodes 51, 52, and 54. Therefore, the second subset of the list contains all semantic parameters associated with nodes 50, 51, 52, and 54. Level 2 includes nodes 55 and 56, and level 3 includes node 53.
[0070] Following the determination of the list in (S50), the method further includes iteratively modifying (S60) the values of the semantic parameter set to obtain updated values for the semantic parameter set. That is, iteratively modifying S60 involves iterating over the list of subsets determined in S50, updating the values of the semantic parameters of the current subset of the list in each iteration. Iteratively modifying S60 includes reducing the error between one or more target positions (obtained in S30) of the semantic point and the current 3D position of the semantic point in each iteration. In each iteration, iteratively modifying S60 is constrained by the semantic parameters of the current subset of the list. Specifically, the iterative steps of iteratively modifying S60 include reducing (S61) the error between one or more target 3D positions of the semantic point and the current 3D position of the semantic point by modifying the values of the semantic parameters of the current subset of the list. As the subset of the list increases, some semantic parameters can be updated several times. This feature improves the results, especially when parameters are interdependent, such as for complex kinematic objects.
[0071] Iterative modification S60 involves performing one or more reductions in S61 based on the subset list obtained in S50. Reducing the error in S61 is a result of modifying the values of the semantic parameters. That is, after modifying the values of the semantic parameters, the current 3D positions of the semantic points are updated accordingly, thereby reducing the error. Modifying the values of the semantic parameters can be a result of an optimization method. The optimization method can be designed to find the optimal values of the semantic parameters for the current subset of the list to minimize the error.
[0072] Specifically, the semantic points acquired in S20 have original 3D locations in a 3D representation space. For each semantic parameter value, the semantic point is represented at a different point in the space. The error can be, for example, the distance between one or more target 3D locations and the current 3D location. The error can be a 3D vector obtained as the difference between one or more target 3D locations and the current 3D location. For example, the 3D representation can be a viewpoint representation. One or more target 3D locations can be visually represented only at a point in the 2D visual representation. The error can be calculated directly from the 2D visual representation. It can be the distance between the target location (in 2D space) and the 2D visual representation of the current 3D location. Alternatively, the error can be a 2D vector obtained as the difference between the 2D target location and the 2D visual representation of the current 3D location.
[0073] The iterative process S60 may include a stopping condition. For example, iterative process S60 may include a step of checking (determined at S50) whether a subset of the list is the last subset of the list. For example, iterative process S60 may stop if the update error in a certain iteration S61 is empty. Alternatively, iterative process S60 may stop if the update error in a certain iteration S61 is less than a threshold, which is obtained by any means known in the art.
[0074] Iterative modification S60 may also include adding a cumulative change vector representing the cumulative changes of semantic parameters in the semantic parameter set. Initialize to zero (i.e., a zero vector). Specifically, the cumulative change vector can be a vector with real coefficients. A vector with components, numbers This refers to the number of semantic parameters of a 3D modeled object. A 3D modeled object can have parameters stored in a vector. The original semantic parameters in the original text. Updating semantic parameters may include: determining the change vector. (e.g., cumulative change vector) ) and the transformation vector and the original semantic parameters Add them together. After adding the change vector, the 3D modeling object can be updated according to the new semantic parameters. Specifically, the 3D position of the semantic points can be updated accordingly.
[0075] In each iteration S61, reducing error may include: calculating the optimal change vector of the optimal change in the semantic parameters of the current subset representing the list. That is, each given iteration S61 may include calculating the change vector. The change vector may contain only non-zero entries corresponding to the semantic parameters included in a subset of the list for a given iteration. Each iteration may also include updating the cumulative solution using the change vector. In other words, iterative modification can include updating the cumulative change vector in each iteration by adding the value of each coordinate of the optimal change vector to the corresponding coordinate of the cumulative change vector. Iterative modification of S60 may include adding the cumulative change vector to the original value of the semantic parameter. To update the value of the semantic parameter.
[0076] Iterative modification of S60 may include determining one or more change matrices. A transformation matrix can represent the change in the 3D position of a semantic point relative to changes in semantic parameters; that is, a transformation matrix can represent (e.g., approximate or compute) the change in the 3D position of a semantic point starting from a change in the value of the semantic parameters. The change in the 3D position of a semantic point can be the change between the 3D position of the semantic point before and after the change in the semantic parameters. Specifically, the values of the semantic parameters can be stored in a vector. In this context, changes can be stored in vectors. In the middle. As a transformation matrix. and change vector The vector obtained by the product of It can represent (e.g., approximate or compute) changes in the 3D position of a semantic point. For example, the current 3D position can be obtained by adding the original 3D position to the current position. This is used to represent (e.g., approximate or compute) changes in semantic parameters. For example, changes in semantic parameters could be a cumulative change vector. The change in the 3D position of a semantic point can be caused by Indicates (e.g., is or approximate).
[0077] The transformation matrix can be, for example, a Jacobian matrix of a position function. A Jacobian matrix defines a linear approximation of the position function, thus providing an efficient transformation matrix. The position function can be a function that determines the 3D current position of a semantic point (i.e., the three coordinates determining the position in the 3D representation) based on a set of semantic parameters. Transformation matrix It can also represent the change in the original 3D position of a semantic point relative to changes in semantic parameters. For example, a transformation matrix. This can be at the original 3D location (i.e., at the initial semantic parameters). The Jacobian matrix of the position function is calculated only at the original 3D position. This improves the efficiency of the method by calculating the transformation function (e.g., the Jacobian matrix, the Jacobian matrix of the position function) only once at the original 3D position, thereby reducing the computation time required to update the 3D modeled object. Transformation matrix This can be relative to the current subset of the list. That is, each iteration S61 can include calculating the change matrix relative to the subset. The transformation matrix relative to the current subset of the list can be a matrix that represents only the changes in the semantic parameters of the 3D positions of the semantic points relative to the current subset of the list. For example, the transformation matrix relative to the current subset can be obtained from a given transformation matrix (e.g., a Jacobian matrix, a Jacobian matrix of position functions). Alternatively, the given transformation matrix can be computed at the original 3D positions. The transformation matrix relative to the current subset can be a given transformation matrix in which each column associated with semantic parameters not in the list is set to a zero vector.
[0078] Alternatively, the change matrix A change in 2D position within a 2D visual representation can represent a 3D representation of a semantic point (e.g., a viewpoint representation). That is, a change matrix. It can be any of the previously discussed transformation matrices (e.g., the Jacobian matrix, the Jacobian matrix of the original 2D position), except for those that represent (e.g., approximate or compute) the changes in the 2D position of the visually presented semantic point. For example, transformation matrix It can be a Jacobian matrix that includes a position function of the visual presentation function (e.g., a projection from the viewpoint representation along the viewpoint).
[0079] The optimal transformation minimizes the product of the transformation matrix and the candidate transformation vector plus the error. The distance between corresponding values. That is, the optimal change. This allows the transformation matrix to be... product As close as possible (e.g., relative to distance) to the error This distance can be derived from the norm or the squared norm. The norm can be... Norm. For example, the optimal change can minimize the squared norm. or norm .
[0080] In each iteration S61, the reduction in error can be equal to the distance between the measured values of one or more target 3D positions and the measured values of the original 3D positions modified by the cumulative change vector. The measurements of one or more target 3D positions can be represented as... The measurement of the original 3D position can be expressed as The measurement of one or more target 3D positions can be one of one or more target positions. Alternatively, the measurement can be a position in a 2D visual representation of a 3D representation, or a position in another visual representation and / or representation. Similarly, the measurement of the original 3D position can be the original 3D position, the position in a 2D visual representation of a 3D representation, or the position in another visual representation and / or representation. In particular, and It can be a 2D or 3D vector. Cumulative change. This can represent changes in the values of semantic parameters. Reducing S61 can include a change matrix representing the change in the original 3D position of the semantic point relative to the semantic parameters. (For example, the Jacobian matrix). Therefore, the product It can represent (e.g., approximate or compute) changes in the 3D position of semantic points. It can represent the current position of a semantic point. Error can be a vector. The error can be a 2D or 3D vector.
[0081] In each iteration, reducing S61 may include calculating the optimal change of the minimum norm. Calculating the optimal change of the minimum norm may include... The vector that determines the minimum norm among all the smallest vectors The vector of change of the minimum norm It can be used as the pseudo-inverse of the transformation matrix. With error product of values To obtain. Pseudo-reverse It could be the Mohr-Paros inverse. The Mohr-Paros inverse is well known in the art. The Mohr-Paros inverse can be advantageous because it allows for the construction of a product. It has the minimum norm. Therefore, in each iteration S61, the optimal change is... It can be The transformation matrix It can depend on the iteration, for example, where It is the Jacobian matrix of the position function (or a position function that includes a visual presentation function), optionally, the Jacobian matrix of the position function relative to the original position. Optionally, where It was further modified so that each column associated with a semantic parameter not in the list was set to a 0 vector.
[0082] The optimal change vector at each iteration S61 Distance can be minimized under constraints. These constraints penalize any changes in the values of semantic parameters of the previous subset of the list relative to the values of any semantic parameters of the current subset of the list. The constraints can depend on the constraint matrix. The constraint matrix can be... The constraint matrix can depend on the current iteration S61, that is, on a subset of the list determined in S50. The constraint matrix can impose priorities on updating semantic parameters so that optimizations from previous steps are not lost at a given step.
[0083] Constraints can include constraint matrices With candidate change vector The product of is equal to 0, that is Alternatively, the constraint could be to make the norm... Minimize. The norm can be... Norm. The constraint matrix can be a diagonal matrix. The constraint matrix can be a square matrix in which, for each coordinate corresponding to the semantic parameters of the previous subset in the list, there is a non-zero value (e.g., the value 1) on the diagonal and a zero value elsewhere. The values on the diagonal can be all equal (i.e., constant) or distinct from each other. Therefore, the constraint can involve minimizing the norm of the entries of the candidate change vectors corresponding to the semantic parameters of the previous subset in the list.
[0084] Therefore, the optimal change vector in each iteration S61 can be minimized. norm under constraints The minimum solution. Therefore, the optimal change vector can satisfy... ,in It has the minimum norm. The minimum solution, It is a transformation matrix The kernel matrix. Each iteration S61 may include determining the vector. This makes the norm Minimum. That is, the optimal change vector can be equal to the change vector with the minimum norm that minimizes the distance. The kernel matrix of the Jacobian transformation matrix The adjustment vector that minimizes the norm to satisfy the constraints The sum of the products. Adjust the vector. It can be a vector with the minimum norm, which is equal to the negative of the product of the first subproduct and the second subproduct. The first sub-product is the pseudo-inverse of the product of the constraint matrix and the kernel matrix. The second sub-product is the constraint matrix. The change vector with the minimum norm The product of the vectors. That is, adjusting the vectors. The form can be ,in It can be The pseudo-inverse. In particular, the Moore-Paros inverse method can be used to determine the adjustment vector of the minimum norm.
[0085] Specifically, each iteration S61 may include obtaining the change vector. , where the change vector The vector of change of the minimum norm Adjustment vector of minimum norm The sum. That is, each iteration S61 may include obtaining the change vector. ,in It is the pseudo-inverse of the transformation matrix (e.g., the Moore-Paros inverse). yes The kernel matrix, yes The pseudo-inverse (e.g., the Moore-Paros inverse). Each iteration S61 may include updating the cumulative change vector. .
[0086] For each semantic parameter associated with each node, the 3D modeling object method may include a domain. Specifically, at least one semantic parameter of the 3D modeling object method may have a bounded domain. The domain may be bounded, such as a bounded interval. The domain may be a set of allowed values for the associated semantic parameter. The domain may, for example, be directly derived from manufacturing constraints. For instance, a semantic parameter may determine a fillet radius, which may depend, for example, the bending properties of the metal used to produce the machine product, or on the stamping machinery used in the manufacturing. The domain may represent the bending properties of the material or the stamping potential of the machinery. The method can be implemented to remain within the domain; in particular, the method can be designed to always comply with the manufacturing constraints imposed by the domain. That is, the method can automatically find allowed solutions without requiring further methods.
[0087] Specifically, iterative modification S60 may include: in each iteration, after the update, applying an out-of-boundary management process, which is configured to clamp the value of each corresponding semantic parameter outside its domain to the nearest boundary. That is, each iteration S61 may include clamping the value of each corresponding semantic parameter outside its domain to the nearest boundary. For example, each iteration S61 may include calculating the change in the semantic parameter. The change will be added to the value of the semantic parameter. S61 may also include a clamping (i.e., modification) vector. This makes the updated semantic parameter value Adhere to the defined boundaries. Clamping can include, for example, defining... The nearest value at each coordinate makes the updated semantic parameter value... Adhere to the defined boundaries. Change. This could be the optimal change. or cumulative change vector .
[0088] Figure 6 The implementation of different steps of the method is shown. In three examples (corresponding to...) Figures 7-9 Further testing of the implementation method was conducted to demonstrate its effectiveness.
[0089] For each step, instructions were given. Figure 1 The flowchart outlines the corresponding steps. In this implementation, the 3D representation is a viewpoint representation, visually presented on a 2D graphical interface (e.g., a screen). Variations of the implementation may include different 3D representations and / or visual presentations. This implementation includes obtaining a 3D modeling object and an associated feature tree. The 3D modeling object depends on the features included in the feature tree. There are several semantic parameters. The values of the semantic parameters are stored in a vector. In 3D modeling, the feature tree of an object can include parameter boundaries.
[0090] This implementation requires input (S110). S110 includes acquiring semantic points. Semantic points in this implementation... It is obtained through graphical input in a 2D visual representation based on viewpoint. In other words, this implementation involves acquiring the starting point (i.e., the original position) of the 3D modeled object in a 2D visual representation corresponding to a semantic point. Here, space This can correspond to the coordinates seen by the user in a 2D graphical interface. The starting point can be obtained in any way, such as by selecting the graphical method described in S20. Input S110 also includes obtaining the target position. In the graphical user interface, points represent target locations. The target location can be obtained in any way according to S30.
[0091] This implementation also includes an initial computation S120 starting with the input. The initial computation S120 comprises three independent steps S121, S122, and S123, but in variations, the initial computation may differ. S121 (corresponding to S20, S40, and S50) includes determining parameter priorities for semantic parameters. Determining S121 includes selecting features from the feature tree that are relevant to the input. Associated leaf nodes. Leaf node selection can be implemented in any way according to S40. Zero or more semantic parameters can be associated with leaf nodes (corresponding to S51). These parameters are assigned priority 0. Priority 0 is interpreted as the highest priority, and priority 1 is interpreted as a priority lower than priority 0 but higher than priority 2, such that the lowest priority is associated with the priority having the highest integer value. Then, determining S121 includes selecting all nodes in the feature tree whose graph distance from the selected leaf node is 1, and assigning priority 1 to all semantic parameters associated with said node (i.e., selecting all parent nodes and assigning priority 1 to the associated parameters). Determining S121 also includes iteratively (corresponding to S52) assigning each semantic parameter a priority value equal to the graph distance from the associated node in the feature tree to the leaf node. The process stops after all semantic parameters have priority values (corresponding to S53). In a variant, parameter priorities can be calculated in any other way.
[0092] S122 includes the calculation error. The error is a vector indicating the direction of displacement of the selected point. In the variations, the errors can be different.
[0093] S123 includes calculating the Jacobian matrix. at The Jacobian matrix is defined for linear applications. The size is The Jacobian matrix can be calculated as follows. (Point) The volume associated with the leaf nodes. The semantic coordinates in are semantic points Related. In the 3D representation of related modeling objects, semantic points The coordinates are This representation depends on the value of the semantic parameter. .Right now, Depends on the value of the semantic parameter Given a new value for a semantic parameter It can determine the semantic point New 3D coordinates of associated points The semantic parameters and their association with 3D points can be derived to obtain the Jacobian matrix: .
[0094] Mapping Further includes a mapping for displaying the viewpoint representation in a 2D visual presentation (e.g., a projection along the viewpoint). The Jacobian matrix of S123 is the Jacobian matrix of the constituent functions: .
[0095] In the variant, the transformation matrix calculated at the original position may be different from the Jacobian matrix, or the Jacobian matrix may be calculated differently.
[0096] This implementation also includes initialization S130, which accumulates the solution. Initialize it as a vector S131 with a size of 0, and set it to a size of 0. constraint matrix Initialize it as a 0 matrix S132, but in the variant, the initialization can be different and / or non-existent.
[0097] The implementation also includes an iterative process S140. The iterative process S140 includes several steps S141-S147 that are repeated multiple times according to the depth of the feature tree. Specifically, the iterative process S140 includes each priority level... Iteratively update the cumulative solution and error The priority parameter It starts with the highest priority (i.e., priority 0, corresponding to the parameter of the determined leaf node). The priority can be updated at S147, incrementing by 1 with each update. The iteration process S140 ends when the priority reaches the lowest priority (i.e., the largest integer value, corresponding to the semantic parameter associated with the node farthest from the determined leaf node). In variations, different numbers of steps and / or different implementations of each step can be implemented. For example, variations may include other stopping criteria.
[0098] S141 includes modifications to the Jacobian matrix calculated in S123. To obtain the change matrix . Specifically, Further mandatory provisions: for those with higher priority All parameters (That is, corresponding to a distance greater than) Parameters of the node ),make It is a zero vector. In the variant, the transformation matrix can be obtained in any other way. .
[0099] S142 includes modifying the constraint matrix of S142. Specifically, the modified constraint matrix... satisfy Further mandatory provisions: for those with lower priority Each parameter (That is, corresponding to a distance less than) Parameters of the node ),make 1. In the variant, the constraint matrix can be obtained in any other way. .
[0100] S143 involves finding the vector that is the minimum solution for both norms, but in its variant, different optimization processes can be implemented. (Transformation matrix) Used to set up the following equation (hereinafter referred to as equation (1)): (1).
[0101] Any solution to equation (1) can give possible parameter corrections to follow the path provided by... The direction of movement is given. However, equation (1) may not have a (single) solution. Therefore, instead of finding a solution to equation (1), this implementation involves finding the minimum solution of the following formula (hereinafter referred to as norm (2)): (2).
[0102] Norm (2) can be minimized using the Moore-Paros inverse method. It is determined using singular value decomposition (SVD). pseudo-reversal Pseudoinverse is used to determine elements. The element It is to minimize norm of norm Minimize the solution. If equation (1) does not allow any solution, then It is the vector that is closest to the solution (because) Minimize the norm (2).
[0103] SVD decomposition can be used to determine The size of ' is kernel matrix .matrix satisfy , Therefore, the solution to equation (1) is applicable to any... All Similarly, if To minimize norm (2), then This also minimizes the norm (2).
[0104] To select one of the possible solutions to equation (1) and / or the minimum solution of norm (2), consider the constraint matrix. The possible solutions under consideration can be solutions to the following equation (hereinafter referred to as equation (3)): (3).
[0105] because It is the solution to equation (1) and / or the minimum solution to norm (2), so the following decomposition is derived from the above. The conclusion is reached. If... If it is a solution to equation (3), then It must also be one of the following solutions: .
[0106] To solve this equation, the Mohr-Paros inverse method can be used. That is, the elements under consideration are elements... Minimize the following (hereinafter referred to as norm (4)): (4).
[0107] use pseudo-reversal Obtain elements It is the minimum solution of norm (4). If equation (3) allows multiple solutions, then It is the solution with the minimum norm. If equation (3) does not allow any solutions, then It is the vector that is closest to the solution (because) Minimize the norm (4).
[0108] S143 includes making: As the minimum solution of the chosen norms (2) and (4).
[0109] S144 includes updating the cumulative solution: .
[0110] S145 is optional. S145 may exist only if the feature tree of the 3D modeled object includes parameter boundaries. S145 includes the cumulative solution for clamp updates: Wherein, so that the parameter The cumulative solution is clamped and updated as an effective parameter value of the 3D model (i.e., within the boundary if one exists). Specifically, All values are updated to the closest valid value, making All values are valid. In the variant, the clamping step may be absent or implemented differently.
[0111] S146 includes update errors: .
[0112] Following S146, the iterative process S140 also includes checking the priority value. Is it the maximum? If not, the iteration process S140 also includes S147, which includes updating the priority. Then, the implementation process again begins with S141, which has the updated priority. Otherwise, S140 ends.
[0113] The implementation may also include an output step S150, using semantic parameters. Update the 3D model.
[0114] In the implementation, during iterative step S140, if the accumulated solution obtained at any point... If it is a solution to both equations (1) and (3), then it is the optimal solution. In fact, as... The error was updated to 0: In each further iteration of step S140, ,because and They all have the minimum norm.
[0115] In the implementation, the updated cumulative solution obtained in S144 This can correspond to semantic parameters outside the corresponding boundaries, since S143 and S144 may not adhere to the boundaries. The clamping step S145 may introduce an error (it may no longer be a solution to equation (1) and / or may not minimize the norm (2), but the iterative process addresses this by minimizing the norm (4), where the new current error reaches the objective.
[0116] The pseudocode for the implementation can be as follows:
[0117] Three explicit examples are presented to illustrate the above implementation of explicit 3D modeling objects. Figures 7-9 The example is shown below. For each explicit 3D modeling object, the above implementation is compared with an unconstrained method.
[0118] In the following text, Figure 6 The implementation of the method shown is compared with an unconstrained method used as a reference or control.
[0119] The unconstrained method uses the same input as step S110 of this embodiment as input. The unconstrained method also includes the calculation error as in step 122 of this embodiment. And the calculation of the Jacobian matrix as described in step 123 of this embodiment. Unconstrained methods also include finding the minimum solution to the following formula. (Hereinafter referred to as norm (2')) (2').
[0120] Unconstrained methods also include selecting the minimum possible solution for the norm (2'), such as the minimum solution for the minimum norm. This minimum solution... It refers to the parameter changes used to update the parameters of the modeling object, i.e. .
[0121] Figure 7 A first explicit example of the above implementation of a 3D modeling object is shown. Figure 7 Two boxes are shown stacked, with box 71 on top of box 72. The user selects the point indicated at position 70. And select a target position perpendicular to that point. (i.e., coordinates) and The selected point differs only in one coordinate (the second coordinate). Associated with semantic points. Each box depends on only one parameter that determines its corresponding height, and the initial parameters associated with the modeling object are... .
[0122] Since the target point is perpendicular to point 70, the vector It is a perpendicular vector, that is, its form is ,in yes and The (Euclidean) distance between them.
[0123] The Jacobian matrix can be represented as follows: .
[0124] Based on the output of the unconstrained method, the following can be derived. The unconstrained method involves finding the minimum solution of norm (2'), that is, satisfying... vector For example, unconstrained methods can choose vectors with the minimum norm. For example, unconstrained methods can choose vectors that satisfy... The vectors are such that the heights of the two boxes can be increased. However, this solution may not correspond to the user's intent. Since the user only selected the point on box 71, the user might intend to modify only the parameters of box 71, not the parameters of either box.
[0125] Based on the output of the above implementation method, the following can be derived. In this implementation method, the leaf node associated with the semantic point is the node associated with box 71. The node associated with box 72 has a lower priority. That is, in the vector... In the middle, coordinates It has a priority of 0. It has priority 1 (S121). This implementation also includes initialization S130: and .
[0126] In the iteration process S140, the priority is set to 0. This implementation also includes modifying the Jacobian matrix S141 to obtain the transformation matrix: .
[0127] This implementation also includes modifying the S142 constraint matrix. Since the priority is 0, This implementation also includes finding the minimum solution for norms (2) and (4). Because Since it is an empty matrix, any vector is a solution to equation (3) and minimizes the norm (4). It is the solution to equation (1) with the minimum norm, in fact: .
[0128] Therefore, the cumulative solution is updated. Since no semantic parameter has a bounded domain, S145 can be skipped. This implementation also includes updating the error to 0 in S146. Because... Since it is a solution to both equations (1) and (3), this embodiment can be designed to stop at step S146. Otherwise, this embodiment also includes updating the priority to 1 in S147. In this iteration, the change matrix is equal to the Jacobian matrix. The constraint matrix is updated to: .
[0129] Due to update error trivial vectors It is a solution to equations (1) and (3), therefore no modification is needed. .
[0130] The output S150 of this embodiment has parameters The modeling object is 71. Therefore, this implementation modifies only the parameters of box 71 and not the parameters of box 72. This is more practical because the user has only selected a point from 71 and may expect to modify only box 71.
[0131] Figure 8 A second explicit example of the above implementation of a 3D modeling object is shown. Figure 8 The modeling objects shown are Figure 7 The modeling objects are identical: they consist of two boxes, box 81 stacked on top of box 82. The user selects a point at indicator position 80 and chooses a target position perpendicular to that point. Each box depends on only one parameter that determines its corresponding height. The initial parameters associated with the modeling objects are... .exist Figure 8In the modeling object shown, the semantic parameters have a bounded domain. That is, there exist values. and This allows for all possible semantic parameters associated with the model object. Must meet and .
[0132] Since the target point is perpendicular to point 80, therefore the vector It is a perpendicular vector, that is, its form is ,in yes and The (Euclidean) distance between them.
[0133] Jacobian matrices have the same properties as... Figure 7 The same expression in the text, namely: .
[0134] The following can be derived from the output of the unconstrained method. For example, in... Figure 7 In the example shown, the minimum solution of norm (2) is that which satisfies any vector Unconstrained methods can choose any vector that satisfies the equation, and the chosen solution may not adhere to the boundary conditions. and For example, it can have .
[0135] The derivation can be obtained from the output of this embodiment. In this embodiment, the leaf node associated with the semantic point is the node associated with box 81. The node associated with box 82 has a lower priority. That is, in the vector... In the middle, coordinates It has a priority of 0. It has priority 1 (S121). This embodiment also includes an initialization step S130: and .
[0136] In the iteration process S140, the priority is set to 0. This implementation also includes modifying the Jacobian matrix S141 to obtain the transformation matrix: .
[0137] This implementation also includes modifying the constraint matrix S142; when the priority is 0... This implementation also includes finding the minimum solution for norms (2) and (4). Because Since it is an empty matrix, any vector is a solution to equation (3) and minimizes the norm (4). It is the solution to equation (1) with the minimum norm, in fact: .
[0138] Therefore, the cumulative solution is updated. This embodiment also includes clamping S145. If Then this implementation method is as follows Figure 7 Proceed as shown, vector Used to update the modeling object. Otherwise, in this implementation, the vector is updated in S145:
[0139] in This embodiment also includes updating the error in S146: .
[0140] This implementation also includes updating the priority S147 to 1. In this iteration, the transformation matrix is equal to the Jacobian matrix. The constraint matrix is updated to: .
[0141] This implementation also includes finding the minimum solution to equation S143. (Vector) It is a solution to equation (1) with the minimum norm. However, Not equal to 0, therefore It is not a solution to equation (3). Therefore, this embodiment further determines the adjustment vector. .Then
[0142] It is a solution to equation (1), such as And is a solution to equation (3), such as This implementation also includes updating the accumulated solution: .
[0143] This embodiment also includes clamping the solution S145, that is, this embodiment clamps the solution for the determined value. renew .
[0144] Parameters used in this implementation method To update the initial model S150, this implementation first increases the height of box 81 as much as possible, and if the parameter boundary is reached, then the height of box 82 is further increased. If the second box also reaches the boundary, the updated model may not fully meet the user's requirements, because it is possible that they are impossible within the boundary.
[0145] Figure 9 A third explicit example of the above implementation of the 3D modeling object is shown. The model shown has three degrees of freedom. The angle of rod 91... (For example, relative to the horizontal axis), the angle of the rod is 92 degrees. (e.g., relative to the horizontal axis) and the horizontal position of box 93 (e.g., the horizontal position of the model's centroid relative to the origin). Therefore, the initial parameters associated with the modeling object are... .
[0146] The user selects point 90 and chooses the target location for that point based on the arrow. The output of the unconstrained method can have all values for the modified semantic parameters. For example, the unconstrained method can modify the horizontal position parameter. However, it may not be necessary to modify this parameter. For example, a user may only intend to move the attached lever (e.g., to close it from the target position to the original position) rather than the entire design.
[0147] Based on the output of this embodiment, the following can be derived. In this embodiment, the leaf node associated with the semantic point is the node associated with rod 91. The node associated with rod 92 has a lower priority, and the node associated with box 93 has the lowest priority. That is, in the vector... In the middle, coordinates It has a priority of 0. It has priority 1. It has priority 2 (S121). Calculate the error and the associated Jacobian matrix. (S122 and S123). This embodiment also includes an initialization step S130: and .
[0148] This implementation also includes modifying the S141 Jacobian matrix to obtain the transformation matrix, and includes modifying the S142 constraint matrix. Since the priority is 0, This implementation also includes finding the minimum solution for norms (2) and (4). Because Since it is an empty matrix, any vector is a solution to equation (3) and minimizes the norm (4). Therefore, this implementation involves finding the minimum solution of the norm (2) of the minimum norm. Since the transformation matrix is 0 on coordinates with non-zero priority, the minimum solution is of the form of (S144). However, Equation (1) may not be satisfied because there may not be a solution that optimizes only the first parameter. This implementation also includes updating the error S146 accordingly to the objective. Because It may not be a solution to equation (1), so the method can continue, updating the priority to 1 in step S147. This implementation also includes a second iteration in S140. For this purpose, the second change matrix in S141 is obtained, and the constraint matrix in S142 is modified as follows: .
[0149] This implementation also includes finding the minimum solution to the equation updated in S143, the minimum solution being of the form: .untie It could be a solution to equation (1), but not necessarily a solution to equation (3), because the first parameter has been re-optimized. This implementation also includes updating the solution. .if If it is a solution to equation (1), then the error is updated to a zero vector.
[0150] This implementation may include a final iteration. In the final iteration, the transformation matrix is the Jacobian matrix (S141), and the constraint matrix is modified (S142) as follows: .
[0151] This implementation also includes finding the minimum solution to the S143 update equation, which can be, for example, a zero vector, i.e. This implementation also includes updating the solution. .
[0152] Parameters used in this implementation method Update the initial model S150. The updated parameters could be, for example: Therefore, this implementation method is as follows: The error is minimized by rotating rod 91; If no solution is found, the error is minimized by rotating both rods 91 and 92, while attempting not to rotate rod 91 (due to minimizing the norm (4) and the shape of the constraint matrix). If no solution is found, the error is minimized by rotating rod 91, rotating rod 92 and translating box 93, while trying not to rotate any rod (due to minimizing norm (4) and the shape of the constraint matrix).
[0153] Therefore, this implementation can comply with the user's intent by updating the parameters that have the greatest impact on the point (e.g., the geometric objects closer to the point, rods 91 and 92).
[0154] This method is implemented by a computer. This means that the steps (or essentially all steps) of the method are executed by at least one computer or any system. Therefore, the steps of the method may be executed by the computer fully or semi-automatically. In the example, the triggering of at least some steps of the method can be performed through user-computer interaction. The required level of user-computer interaction can depend on the anticipated level of automation and be balanced with the need to fulfill the user's wishes. In the example, this level can be user-defined and / or predefined.
[0155] A typical example of a computer implementation of the method is to use a system suitable for this purpose to execute the method. This system may include a processor coupled to memory and a graphical user interface (GUI), on which a computer program containing instructions for executing the method is stored. The memory may also store a database. The memory is any hardware suitable for such storage and may comprise several physically distinct parts (e.g., one part for the program and another part for the database).
[0156] This method typically manipulates modeling objects. A modeling object is any object defined by data, for example, stored in a database. By extension, "modeling object" can be described as the data itself. Depending on the type of system, modeling objects can be defined by different kinds of data. The system can actually be any combination of CAD and / or CAM systems. In those different systems, modeling objects are defined by corresponding data. Thus, one could say CAD object, CAM object, CAD data, CAM data. However, these systems are not exclusive to each other, because modeling objects can be defined by data corresponding to any combination of these systems. Therefore, it is evident from the system definitions provided below that a system can be both CAD and CAM systems.
[0157] CAD system also refers to any system, such as CATIA, that is at least suitable for designing modeling objects based on their graphical representations. In this case, the data defining the modeling object includes the data that allows the modeling object to be represented. CAD systems can provide a representation of CAD modeling objects, for example, using edges or lines (and in some cases, faces or surfaces). Lines, edges, or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). Specifically, CAD files contain specifications from which geometry can be generated, which in turn allows for the generation of representations. The specifications of the modeling object can be stored in a single CAD file or multiple CAD files. The typical size of a file representing each part of a modeling object in a CAD system is in the range of one megabyte. A modeling object can typically be a component of thousands of parts.
[0158] In the context of CAD, modeling objects can typically be 3D modeling objects, such as representing products like parts or part assemblies, or possibly product components. A "3D modeling object" refers to any object modeled from data that allows for its 3D representation. 3D representation allows parts to be viewed from all angles. For example, when 3D represented, a 3D modeling object can be manipulated and rotated about any axis of its design or about any axis in the screen displaying the representation. This specifically excludes 2D icons that are not 3D modeled. The display of 3D representations aids in design (i.e., increases the speed at which designers can statistically complete their tasks). This accelerates manufacturing processes in industry, as product design is part of the manufacturing process.
[0159] 3D modeling objects can represent the geometry of products to be manufactured in the real world after their virtual design is completed using, for example, CAD software solutions or CAD systems. These can include (e.g., mechanical) parts or part assemblies (or equivalent part assemblies, since from a methodological perspective, a part assembly can be considered as a part itself, or the method can be applied independently to each part of the assembly), or more generally, any rigid body assembly (e.g., a moving mechanism). CAD software solutions allow for the design of products in a wide and virtually limitless range of industrial sectors, including: aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine and / or offshore oil / gas production or transportation. Therefore, the 3D modeling objects designed using this method can represent industrial products, which can be any mechanical parts, such as land vehicle parts (including, for example, automobile and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), aircraft parts (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), naval vehicle parts (including, for example, naval equipment, commercial ships, marine equipment, yachts and workboats, marine equipment), general mechanical parts (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installation equipment, industrial equipment products, manufactured metal products, tire manufacturing products), electromechanical or electronic parts (including, for example, consumer electronics products, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and instruments), consumer goods (including, for example, furniture, home and garden products, leisure goods, fashion products, products of hard goods retailers, products of soft goods retailers), and packaging (including, for example, food and beverage and tobacco packaging, beauty and personal care packaging, and household product packaging).
[0160] CAD systems can be history-based. In this case, the modeling object is further defined by a history of data including geometric features. The modeling object can actually be designed by a physicist (i.e., a designer / user) using standard modeling features (e.g., extrusion, revolve, cut, and / or rounding) and / or standard surface features (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CAD systems that support this modeling capability are history-based. This means that the creation history of design features is typically maintained through a non-cyclic data stream that links the geometric features together via input and output links. The history-based modeling paradigm has been well-known since the 1980s. The modeling object is described by two persistent data representations: the history and the B-rep (i.e., the boundary representation). The B-rep is the result of calculations defined in the history. When representing the modeling object, the shape of the part displayed on the computer screen is the B-rep (e.g., the subdivision of the B-rep). The history of the part is the design intent. Essentially, the history collects information about the operations performed on the modeling object. B-rep can be saved along with history to make it easier to display complex parts. History can also be saved along with B-rep to allow for design changes to parts based on design intent.
[0161] CAM solutions also refer to any solution, hardware, or software suitable for managing product manufacturing data. Manufacturing data typically includes information related to the product to be manufactured, the manufacturing process, and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, it can provide CAM users with information about feasibility, the duration of the manufacturing process, or the amount of resources (such as a specific robot) that can be used at a particular step in the manufacturing process, allowing decisions to be made regarding management or required investment. CAM is a follow-up process to CAD and potential CAE processes. Such CAM solutions are offered by Dassault Systèmes under the trademark DELMIA®.
[0162] Figure 10 An example of a system is shown, where the system is a client computer system, such as a user's workstation.
[0163] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and random access memory (RAM) 1070 also connected to the bus. The client computer also includes a graphics processing unit (GPU) 1110 associated with video random access memory 1100 connected to the bus. The video RAM 1100 is also referred to in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices, such as hard disk drives 1030. Mass storage devices suitable for tangibly representing computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; disks such as internal hard disks and removable disks; and magneto-optical disks. Any of the foregoing may be supplemented or incorporated by a specially designed ASIC (Application-Specific Integrated Circuit). A network adapter 1050 manages access to a network 1060. The client computer may also include a haptic device 1090, such as a cursor control device, a keyboard, etc. A cursor control device is used on the client computer to allow the user to selectively position the cursor at any desired location on the display 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes multiple signal generating devices for inputting control signals to the system. Typically, the cursor control device can be a mouse, with mouse buttons used to generate signals. Alternatively or additionally, the client computer system may include a touchpad and / or a touchscreen.
[0164] The computer program may include computer-executable instructions, which include means for causing the system to perform the method. The program may be recorded on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuitry, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as means, such as a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The method steps may be executed by a programmable processor that executes the instruction program to perform the function of the method by manipulating input data and generating output. Thus, the processor may be programmable and coupled to receive data and instructions from the data storage system, at least one input device, and at least one output device, and to send data and instructions to the data storage system, at least one input device, and at least one output device. If desired, the application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language. In any case, the language may be a compiled or interpreted language. The program may be a complete installation program or update program. In any case, the application program on the system generates instructions to perform the method. The computer program may alternatively be stored and executed on a server in a cloud computing environment that communicates with one or more clients over a network. In this case, the processing unit executes the instructions included in the program, thereby enabling the method to be executed in a cloud computing environment.
[0165] Describing "designing a 3D modeling object" as at least a part of the process of refining a 3D modeling object means any action or series of actions. Therefore, the method could include creating a 3D modeling object from scratch. Alternatively, the method could include providing a previously created 3D modeling object and then modifying that object.
[0166] This method can be incorporated into a manufacturing process that includes producing a physical product corresponding to the modeled object after the method is executed. In any case, the modeled object designed by this method can represent a manufactured object. Therefore, the modeled object can be a modeled entity (i.e., a modeled object representing an entity). The manufactured object can be a product, such as a part or an assembly of parts. Because this method improves the design of the modeled object, it also improves the manufacturing of the product, thereby increasing the productivity of the manufacturing process.
Claims
1. A computer-implemented method for designing a 3D modeling object, the 3D modeling object representing a mechanical product, the 3D modeling object having a feature tree and original values of a semantic parameter set, each semantic parameter being associated with a corresponding node of the feature tree, the method comprising: The 3D representation of the 3D modeled object is displayed by the CAD system (S10); Users interact with the 3D representation graphically: Select semantic points on the outer surface of the 3D modeling object graphically (S20), the semantic points having original 3D positions; and Select one or more target 3D locations of the semantic point graphically (S30); and Automatically by the CAD system: (S40) Determine the leaf nodes of the feature tree that represent a portion of the outer surface to which the semantic point belongs; (S50) Determine a list of subsets of the semantic parameter set, the list beginning with a subset including any semantic parameters associated with the determined leaf node (S51), each subsequent subset in the list comprising the union of the previous subset in the list and any semantic parameters associated with any corresponding node of the feature tree in one or more corresponding nodes, the graph distance of each of the one or more corresponding nodes to the determined leaf node being greater than the graph distance of the corresponding node of each semantic parameter in the previous subset to the determined leaf node, the list ending with the semantic parameter set (S53). After determining the list, the values of the semantic parameter set are iteratively modified (S60) to obtain updated values of the semantic parameter set. The iterative modification includes reducing the error between the one or more target 3D positions of the semantic point and the current 3D position of the semantic point in each iteration. In each iteration, the iterative modifications are constrained by the semantic parameters of the current subset of the list; as well as The 3D representation of the 3D modeling object is updated (S70) based on the updated values of the semantic parameter set.
2. The method according to claim 1, wherein, The iterative modification (S60) includes: converting the cumulative change vector representing the cumulative change of the semantic parameters of the semantic parameter set into a cumulative change vector. Initialize to zero; and reduce error in each iteration includes: computing the optimal change vector representing the optimal change of semantic parameters of the current subset of the list. The optimal change makes the change matrix ( ) and candidate change vector ( The product of ) ) and the error ( The distance between corresponding values of ) Minimize, where the change matrix ( ) represents the change in semantic parameters of the 3D position of the semantic point relative to the current subset of the list, and the iterative modification includes updating the cumulative change vector in each iteration by adding the value of each coordinate of the optimal change vector to the corresponding coordinate of the cumulative change vector. ).
3. The method according to claim 2, wherein, The change matrix ( ) represents the change in semantic parameters of the original 3D position of the semantic point relative to the current subset of the list.
4. The method according to claim 2 or 3, wherein, The optimal change vector ( ) under constraints ( Minimize the distance under the constraint () The value of the semantic parameter of the previous subset in the list is penalized for any change in the value of any semantic parameter of the current subset in the list.
5. The method according to claim 4, wherein, The constraint ( ) includes constraint matrix ( ) and candidate change vector ( The product of ) ) equals 0, where the constraint matrix is a square matrix in which each coordinate corresponding to the semantic parameters of the previous subset of the list has a non-zero value on the diagonal of the square matrix and a zero value at other locations, the non-zero value being optionally a positive number and / or a constant, such as equal to 1.
6. The method according to claim 5, wherein, The optimal change vector ( ) is equal to the minimum norm change vector that minimizes the distance. ) and the change matrix ( The kernel matrix of ) ) and the adjustment vector that makes the minimum norm satisfy the constraints ( The product of ) The sum between () ).
7. The method according to claim 6, wherein, The change vector of the minimum norm ( ) is equal to the pseudo-inverse of the transformation matrix ( ) and the error ( The product of values ( The change vector of the minimum norm ( Optionally, the Moore-Paros inverse method can be used to determine, and / or the adjustment vector of the minimum norm ( ) equals the first subproduct ( ) and the second sub-product ( The opposite of the product of () ), the first sub-product ( ) is the constraint matrix ( ) and the kernel matrix ( The product of ) The pseudo-inverse of ) The second sub-product is the constraint matrix ( ) and the change vector of the minimum norm ( The product of ), the adjustment vector of the minimum norm ( Optionally, the Moore-Paros inverse method can be used to determine this.
8. The method according to any one of claims 2 to 7, wherein, At least one semantic parameter has a bounded domain, and the iterative modification includes, in each iteration, after the update, applying an out-of-bounds management process configured to clamp the value of each corresponding semantic parameter outside its domain to the nearest boundary.
9. The method according to any one of claims 2 to 8, wherein, The reduction in error in each iteration is equal to the measured value of the 3D position of the one or more targets. The measured value of the original 3D position modified by the cumulative change vector. Distance between ( .
10. The method according to any one of claims 1 to 9, wherein, Based on the viewpoint, a 3D representation of the 3D modeling object is displayed on the screen of the CAD system (S10). The graphical selection of the semantic point includes: selecting a first 2D position on the screen such that a line from the viewpoint that intersects the first 2D position also intersects the 3D representation. The graphical selection of the one or more target 3D positions includes: selecting a second 2D position on the screen, wherein the one or more target 3D positions include all 3D positions of the lines from the viewpoint that intersect the second 2D position.
11. The method according to any one of claims 1 to 10, wherein, The graphical selection (S20) of the semantic point and the graphical selection (S30) of the one or more target 3D locations are performed once via drag-and-drop manipulation, and / or the updating of the 3D representation is performed in real time when the graphical selection of the semantic point and / or the graphical selection of the one or more target 3D locations are performed.
12. The method according to any one of claims 1 to 11, wherein, The mechanical product is an assembly of mechanical parts, and each leaf node represents at least a portion of the outer surface of one and only one corresponding mechanical part.
13. A computer program comprising instructions that, when executed by a processor, cause the processor to perform the design method according to any one of claims 1 to 12.
14. A data storage medium having the computer program of claim 13 stored thereon.
15. A computer system comprising a memory storing a computer program of claim 13, and a processor coupled to the memory and configured to execute the computer program.