Design of manufactured product having one or more mechanical functions
The method optimizes CAD models to fit discrete mesh representations by minimizing shape dissimilarity, addressing the inefficiencies in designing products with mechanical functions, ensuring accurate and manufacturable designs.
Patent Information
- Application Number
- JP2024086479
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-01
- Filing Date
- 2024-05-28
- Publication Date
- 2024-12-24
AI Technical Summary
Existing CAD systems struggle to efficiently design manufactured products with mechanical functions when geometries are only available in discrete representation formats, lacking an effective method to optimize CAD models based on such representations.
A computer-implemented method that utilizes a CAD model with a feature tree and continuous CAD parameters, minimizing shape dissimilarity between the model and a target boundary shape by modifying parameter values, using gradient-based optimization and similarity measures between scalar fields defined on the CAD model and a mesh representation.
Enables efficient and automated optimization of CAD models to fit provided meshes, preserving the CAD model's parameterization and manufacturability, facilitating the design of complex shapes with improved accuracy and manufacturability.
Smart Images

Figure 2024178120000037 
Figure 2024178120000038 
Figure 2024178120000039
Abstract
Description
[Technical field]
[0001] The present disclosure relates to the field of computer programs and systems, and more particularly to methods, systems and programs for designing manufactured products having one or more mechanical features. [Background technology]
[0002] Numerous systems and programs are offered on the market for the design, engineering and manufacturing of objects. CAD stands for Computer-Aided Design and relates, for example, to software solutions for designing objects. CAE stands for Computer-Aided Engineering and relates, for example, to software solutions for simulating the physical behavior of future products. CAM stands for Computer-Aided Manufacturing and relates, for example, to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays a key role in terms of the efficiency of the technology. These technologies may be incorporated within Product Lifecycle Management (PLM) systems. PLM is a business strategy that helps companies share product data, apply common processes and leverage corporate knowledge for product development from ideation to end of life across the concept of the extended enterprise. The PLM solutions offered by Dassault Systèmes (under its trademarks CATIA, ENOVIA and DELMIA) provide an Engineering Hub that organizes the product engineering knowledge, a Manufacturing Hub that manages the product engineering knowledge, and an Enterprise Hub that enables the integration and connection of the enterprise to both the Engineering and Manufacturing Hubs. All together, the system provides an open object model that links products, processes and resources to enable dynamic, knowledge-based product creation and decision support that drives product definition, manufacturing preparation, production and service optimization. Summary of the Invention [Problem to be solved by the invention]
[0003] Several solutions and products are offered for designing manufactured products. The solutions provide the design output as a parametric CAD model or a discrete representation. However, the solutions do not allow for efficient design of a CAD model based on geometry that is only available in a discrete representation format.
[0004] In this context, there remains a need for improved computer-implemented methods for designing manufactured products having one or more mechanical functions. [Means for solving the problem]
[0005] Accordingly, a computer-implemented method for designing a manufactured product having one or more mechanical features is provided. The method includes obtaining a first instance of a CAD model and a mesh representing a target boundary shape of the manufactured product. The CAD model includes a feature tree having a plurality of continuous CAD parameters. The CAD model further includes a set of one or more parameterized constraints that identify the one or more mechanical features. The first instance includes a first value for each continuous CAD parameter. The method further includes determining a second instance of the CAD model from the first instance of the CAD model. The second instance includes a second value for each continuous CAD parameter. Determining the second instance comprises calculating second values by modifying at least a portion of the first values to minimize a shape dissimilarity measure (ERR) between the boundary shape represented by the first instance of the CAD model and the target boundary shape.
[0006] The method may include one or more of the following.
[0007] - the shape dissimilarity measure is a similarity measure between a first scalar field and a second scalar field, the first scalar field being defined based on the CAD model and the second scalar field being defined based on the mesh; - the first scalar field is defined on a first shape that encloses the first instance of the CAD model and the second scalar field is defined on a second shape that encloses the target bounding shape, e.g., each of the first shape and the second shape are corresponding bounding boxes; - the first scalar field is an application of a first function on a respective signed distance field for the first instance of the CAD model and the second scalar field is an application of a second function on a respective signed distance field for the mesh, e.g. the first function and the second function are identical; each of the first scalar field and the second scalar field is a density field, e.g., at least one of the first function and the second function is a smooth Heaviside function or an approximation of a smooth Heaviside function; the similarity measure between a first scalar field and a second scalar field is a measure of the squared difference between the first scalar field and the second scalar field, e.g., the measure of the squared difference comprises a sum of the squared differences, a smoothed minimum of the squared differences, or a smoothed maximum of the squared differences; - the minimization uses a gradient-based optimization method having the plurality of continuous CAD parameters as free variables, and the shape dissimilarity measure is a differentiable function with respect to the free variables; - the optimization method uses sensitivities, each sensitivity being an approximation of a respective derivative of a respective shape dissimilarity measure with respect to a respective CAD parameter of the plurality of continuous CAD parameters; - said sensitivity being a combination of a respective derivative of said shape dissimilarity measure with respect to said signed distance field and a respective derivative of said signed distance field with respect to each CAD parameter of said plurality of continuous CAD parameters; the respective derivatives of the shape dissimilarity measures with respect to the signed distance field include analytical derivatives; each derivative of the respective derivative of the signed distance field with respect to the respective CAD parameter comprises an approximate derivative, the approximate derivative comprising, for example, a finite difference; and / or the CAD model further includes manufacturing specifications each associated with a corresponding portion of the feature tree, and both the first instance and the second instance are configured to be input into a manufacturing tool and manufactured in accordance with the manufacturing specifications.
[0008] A computer program comprising instructions for carrying out the method is further provided.
[0009] There is further provided a computer readable storage medium having the above computer program recorded thereon.
[0010] There is further provided a system comprising a processor coupled to a memory having the above computer program stored thereon. Non-limiting examples will now be described with reference to the accompanying drawings. [Brief description of the drawings]
[0011] [Figure 1] An example of a graphical user interface for the above system is shown. [Diagram 2] An example of the above system will be shown. [Diagram 3] An example of a parametric CAD model is shown. [Figure 4] An example of a parametric CAD model is shown. [Diagram 5] An example of a polygon mesh is shown. [Figure 6] 1 shows a graphical illustration of an application of the method. [Figure 7] 1 shows a flow chart of an example of the method. [Figure 8] 1 illustrates steps of an example of the method. [Figure 9] 1 illustrates steps of an example of the method. [Figure 10]1 illustrates steps of an example of the method. [Figure 11] 1 illustrates steps of an example of the method. [Figure 12] 1 illustrates steps of an example of the method. [Figure 13] 1 illustrates steps of an example of the method. [Figure 14] 1 illustrates steps of an example of the method. [Figure 15A] The mathematical formulation of the method is given below. [Figure 15B] The mathematical formulation of the method is given below. [Figure 16] An example of the application of the method on a 3D connecting rod is presented. [Figure 17] An example of the application of the method on a 3D connecting rod is presented. [Figure 18] An example of the application of the method on a 3D connecting rod is presented. [Figure 19] An example of the application of this method on a 2D shaped transfer mark is shown. [Figure 20] An example of the application of this method on a 2D shaped transfer mark is shown. [Figure 21] An example of the application of this method on a 2D shaped transfer mark is shown. [Figure 22] An example of the application of this method on a 2D shaped transfer mark is shown. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] A computer-implemented method for designing a manufactured product (i.e. also known as a to-be-manufactured product, a manufacturable product or a product of manufacture) having one or more mechanical features is proposed. The method includes obtaining a first instance of a CAD model and a mesh. The CAD model includes a feature tree. The feature tree has a plurality of continuous CAD parameters. The CAD model further includes a set of one or more parameterized constraints. The set of one or more parameterized constraints specifies one or more mechanical features. The first instance (of the CAD model) includes a first value for each continuous CAD parameter. The obtained mesh represents a target boundary shape of the manufactured product. By target boundary shape is meant a boundary shape that is a target for the manufactured product. The method further includes determining a second instance of the CAD model from the first (obtained) instance of the CAD model. The second instance includes a second value for each continuous CAD parameter. Determining the second instance (step) consists of calculating a second value by modifying at least a portion of the first values so as to minimize a shape dissimilarity measure between the boundary shape represented by the CAD model and the target boundary shape.
[0013] Such a method constitutes an improved solution for designing a manufacturing product by constituting an efficient and general automatic approach for optimizing a CAD model for fitting a provided mesh. This means that, comprising on the one hand a first instance of a CAD model that can be used as a template for a parameterized CAD model and on the other hand a mesh, the method is able to find respective optimal parameters for modifying the template so as to obtain a shape as similar as possible to the provided mesh. The method thus determines a second instance of the template, comprising optimized values of the continuous CAD parameters of the template. Obtaining a shape similar to the provided mesh is achieved by minimizing a shape dissimilarity measure between the boundary shape represented by the CAD model and the target boundary shape. The method is thus able to fit the provided mesh to a parameterized (i.e. parametric) CAD model having an optimally similar boundary shape. The method does not impose any restrictions on the type of CAD operations in the CAD model. This makes the method generally applicable to the design of various manufacturing products.
[0014] In particular, such methods aid designers and engineers in the design process. In the engineering field, it is quite common to perform a design process based on a provided mesh (e.g., a polygon mesh) without access to the corresponding CAD file of the provided mesh. Such a mesh may be retrieved from an in-house database or downloaded from an online library. Alternatively or additionally, such a mesh may be obtained from a topology optimization method. As is known, a topology optimization method may provide a (e.g., voxel) mesh of the final design based on the values of the material density function. Furthermore, alternatively or additionally, such a mesh stored in the database may be a mesh generated / output by a software package that is no longer available to the designer. Furthermore, alternatively or additionally, such a mesh stored in the database may be a mesh generated / output by a scanning process.
[0015] For example, the method may obtain said mesh by a 3D scanning process. In other words, the method may include a scanning process on a real sample of a mechanical product before obtaining the mesh. The scanning process may output a point cloud or a mesh representing said mechanical part. The method may convert the point cloud into a mesh. For example, the method may specifically serve to obtain a CAD model of a physical object by a scanning process. The method may obtain such a CAD model by morphing a template of the CAD model to the output of said scanning. Such an application is particularly suitable for reverse engineering, where a sample of a physical object is used without access to the details of the creation of said object. For example, the method may be used to create mockups of existing manufactured products.
[0016] For example, the provided CAD model (i.e., the first instance thereof) of the method may include manufacturing specifications or instructions. Such specifications may include a set of high-level specifications of the manufacturing procedure of the CAD model (e.g., specifications regarding surface finishes, acceptable tolerances, and / or preferred fabrication methods). Each such specification may be associated with a corresponding portion of the feature tree. The corresponding portion of the feature tree includes one or more CAD features such that the resulting CAD features of that portion are associated with one specification. In other words, each of the above specifications may be related to one or more properties of the CAD model represented by the combined result of the corresponding portion of the feature tree. Such manufacturing specifications are related to any instance of the CAD model. In other words, both the first and second instances are configured to be input to a manufacturing tool and manufactured (e.g., directly and without further user intervention) according to the manufacturing specifications. The object resulting from the manufacturing has a physical shape that corresponds to the represented geometry of the input (i.e., provided) mesh. Such a manufacturing process is described below.
[0017] "Designing a manufacturing product" refers to any operation or sequence of operations that is at least part of a process of elaborating a modeled object (3D or 2D) of said manufacturing product. The manufacturing product may in particular be a mechanical part. The method may form such a process or form at least a part of said process. For example, the elaboration step may include a step of morphing a first design (e.g. according to a provided / obtained mesh) into a template of the manufacturing product / mechanical part. In such a morphing step, the template of the parameterized CAD model may be automatically instantiated to replicate the shape or follow given mating surfaces while maintaining its clean and accurate CAD configuration.
[0018] Thus, the method generally operates on a modeled object, such as a finite 3D / 2D mesh, or a CAD model designed / output by the method. A modeled object is any object defined by data, e.g. stored in a database. Moreover, the expression "modeled object" refers to the data itself. Depending on the type of system, the modeled object may be defined by different kinds of data. The system may in fact be any combination of CAD, CAE, CAM, PDM and / or PLM systems. In these different systems, the modeled object is defined by the corresponding data. Thus, it may be referred to as CAD object, PLM object, PDM object, CAE object, CAM object, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not mutually exclusive, since the modeled object may be defined by data corresponding to any combination of these systems. Thus, the system may be both a CAD, CAE, PLM and / or CAM system. The concepts of CAD and CAM systems are explained in more detail below.
[0019] A "manufactured product having one or more mechanical functions" means that the manufactured product performs one or more specific functions. Such functions may be realized in cooperation with other parts / products or alone. Such functions may include mating functionality, i.e. functionality realized in contact with another part of an assembly. For example, the manufactured product may have one or more surfaces defined as support surfaces and set parallel to each other (optionally fixed at a certain distance). Another example, the manufactured product may be set to have a through hole (optionally with a fixed diameter) around a fixed axis. Another example, the manufactured product may be subject to one or more mating constraints. A mechanical function may be defined by one or more functional parts of the manufactured product. By functional part, we mean a part whose geometry and / or topology is responsible for one function (i.e. functionality) of the product. For example, the manufactured product may be a shaft, and the functional part of the shaft may be a locally cylindrical outer surface of the shaft. In other words, the local diameter or length of the shaft at each point may vary, but any instantiation of a generic shaft template has such a locally cylindrical shape. Specifically, such a cylindrical shape is directly related to the function of the shaft in energy transmission. Other examples of such functional parts of the template CAD model could be key grooves (but with different shapes / lengths / depths) or gears (but with different gear heights, gear angles, or different diameters / widths). The manufactured product may possibly have other mechanical features. Such other mechanical features are not specified by the one or more parameterization constraints of the resulting CAD model. Such mechanical features may, but need not, be maintained in the second instance of the CAD model.
[0020] As mentioned above, the method includes a step of obtaining a first instance of a CAD model and a mesh. "Obtaining" means providing to the method. The method may obtain the first instance of the CAD model and / or the mesh, respectively, from a local or online database (optionally upon action by a user / designer). As is known, a CAD model is a parametric model. In other words, a CAD model is defined with a set of parameters. An "instance" of a (parametric) CAD model refers to an instantiation (i.e. realization) of said CAD model upon attribution of respective values to the set of parameters that define the CAD model. For example, the set of parameters may include one or more positional parameters (e.g. coordinates of one or more points of the CAD model) and / or one or more dimensional parameters (e.g. angle between two surfaces and / or length or area). As is further known, a (parametric) CAD includes a feature tree. The feature tree may be at least partially defined by the set of parameters. The feature tree of the CAD model comprises a plurality of continuous CAD parameters. Such continuous parameters are a subset of the set of parameters of the CAD model, as mentioned above. By "continuous CAD parameter" is meant each CAD parameter that can vary continuously in a respective range. For example, the length of a rod (e.g., defined on an extrusion operator in a feature tree) can vary continuously between a minimum length and a maximum length. For example, the plurality of continuous CAD parameters may include a plurality of coordinates of one or more points of the CAD model, e.g., on the boundary of the CAD model. The CAD model may be 2D or 3D. For example, if the CAD model is a 3D CAD model, the plurality of continuous CAD parameters may include one or more parameters related to a plurality of 2D surfaces that may form the boundary of the CAD model. For example, if the CAD model is a 2D model, the plurality of continuous CAD parameters may include one or more parameters related to a plurality of (1D) segments. The plurality of segments may be segments that define the boundary of the CAD model.The continuous CAD parameters may further include one or more parameters associated with the control points and / or one or more parameters associated with the splines.
[0021] For example, the feature tree of the CAD model may further include a set of discontinuous parameters. Such discontinuous parameters remain constant in all instantiations of the CAD model and are therefore not free variables of the shape dissimilarity optimization performed to determine the second instance of the CAD model. In other words, such discontinuous parameters belong to the fixed parameters of the optimization. For example, the method may determine the optimal value of the radius of a fillet feature, the depth of a pocket feature, or the angle of a thread. However, the method may not vary binary or strong discontinuous parameters during optimization, such as the presence / absence of a feature or part (e.g., a mirror or a wheel of a car).
[0022] In addition to the continuous CAD parameters, the CAD model further includes a set of one or more parameterization constraints. The set may determine one or more individual parameters of one or more corresponding features of the feature tree and / or one or more relationships between one or more corresponding features. The set may include one or more limits (i.e., upper / lower limits) for corresponding ranges of one or more of the continuous CAD parameters. For example, any of the ranges may define an acceptable range of values for an extrusion length along an extrusion axis or an acceptable range of values for a rotation angle along a rotation axis. For another example, any of the ranges may define the presence of a hole (e.g., a through hole) in a manufactured part by setting a non-zero minimum value for the diameter of the hole. Such a hole may be specifically assigned to a mechanical function that receives a shaft, a fixture, a bearing, or a screw. Alternatively or additionally, the set may include one or more CAD operators that define (each instance of) the CAD model. The one or more CAD operators may be, for example, one or more of fillet, extrusion, notch, and turn. Alternatively or additionally, the set may include one or more geometric constraints. These geometric constraints may place constraints between two parameters of the CAD model. For example, the constraints may define a length ratio between two lengths of the CAD model (each instance). For another example, the constraints may define a mating relationship between two surfaces of the CAD model (e.g. a parallel / perpendicular relationship between two faces). For yet another example, the constraints may define one or more CAD operator properties, for example a constraint may define a hole in the (template) CAD model as a through hole. Thus, in each instance (i.e. at each instantiation), which may possibly have different geometric dimensions, the hole remains as a through hole. The method may apply the limit when modifying at least some of the first values of the CAD model so as to minimize the shape dissimilarity measure. In other words, the method may apply the limit as a constraint in the minimization.
[0023] The set of one or more constraints specifies one or more mechanical features of the manufactured product represented by any instance of the CAD model. In other words, each instance of the obtained CAD model includes the set of one or more parameterized constraints specifying one or more mechanical features, so that both the first instance and the second instance have functional features. As mentioned above, the CAD model may have other mechanical features that are not maintained in the design process of the method. Such mechanical features may be specified by other sets of one or more parameterized constraints that are not included in the obtained first instance of the CAD model or that are not considered in the design process.
[0024] As mentioned above, the first instance includes the first values of each continuous CAD parameter. In other words, a first instance of a CAD model is formed by ascribing to a (template) CAD model the corresponding first values of its continuous CAD parameters. Such an instance takes over the mechanical functionality of the (template) CAD model by including a set of parameterized constraints.
[0025] By "mesh" obtained by the method is meant a mesh that represents at least a target boundary shape of a manufactured product. The mesh may be a 2D mesh or a 3D mesh that represents the manufactured product. Examples of 2D and 3D meshes are described below in relation to discrete geometric representations. The boundary shape is a shape that defines at least a portion of the boundary of the manufactured product. If the obtained mesh is a 3D mesh, the boundary shape may be a 3D surface of the manufactured product. The obtained 3D mesh may be a polygonal surface mesh. If the obtained mesh is a 2D mesh, the boundary shape may be a plurality of segments or polylines. By "target" boundary shape is meant a portion of the boundary shape of the manufactured product that is designed according to the method.
[0026] The method then determines a second instance of the CAD model from the first instance of the CAD model. Like the first instance of the CAD model, the second instance includes values for each CAD parameter, but at second values (the set of second values is different from the set of first values). Determining the second instance of the CAD model consists of calculating the second values by modifying at least some of the first values. In other words, the method determines the second instance by keeping constant all other parameters of the first instance and modifies some of the first values. The method modifies the first values so as to minimize a shape dissimilarity measure between the boundary shape represented by the first instance of the CAD model and the target boundary shape. The method thereby solves an optimization (i.e. minimization) problem with an objective function that is a shape dissimilarity measure between the boundary shape represented by the first instance of the CAD model and the target boundary shape.
[0027] For example, the shape dissimilarity measure may be a dissimilarity measure between a first scalar field and a second scalar field. For example, the first scalar field may be defined based on a (obtained) CAD model and the second scalar field may be defined based on a (obtained) mesh. This is an improved solution for comparing two non-identical models (i.e., one is a mesh and the other is a parametric CAD model) by establishing a scalar field using each other. Applying a dissimilarity measure between two scalar fields (containing only two spatially distributed values) is significantly more efficient than comparing two 3D modeled objects. Each of the first and second scalar fields may be realized (i.e., evaluated) on a corresponding grid. Such grids may be identical for the first and second scalar fields, but are not necessarily identical. Alternatively, each of the first and second scalar fields may be realized (i.e., evaluated) at a corresponding subsection that corresponds to (e.g., represents) the acquired first instance of the CAD model and the acquired mesh. Such, for example, the first and / or second scalar fields may be realized at a plurality of points, each point of the plurality of points corresponding to an element of the subsection. For example, the subsections may be subsections of unstructured tetrahedrons, and the corresponding points may be the centroids of each tetrahedron. Such subsections may be, but are not necessarily, identical for the first and second scalar fields.
[0028] For example, the dissimilarity measure between the first scalar field and the second scalar field may include at least a point-wise dissimilarity measure over a first region of the first scalar field and a second region of the second scalar field. The first region and the second region may correspond to a manufactured product. As mentioned above, the corresponding grids / subdivisions of the first and second scalar fields are not necessarily the same. In such cases, for example, when corresponding values in the first and second regions are unknown at the same point, the method may calculate the corresponding values using interpolation known in the art. For example, the method may use linear interpolation, bilinear interpolation in 2D cases, and / or trilinear interpolation in 3D cases.
[0029] A first scalar field may be defined on a first shape, the first shape surrounding the first instance of the CAD model (corresponding shape represented by ), while a second scalar field may be defined on a second shape surrounding the target boundary shape represented by the acquired mesh (corresponding shape represented by ). "Defining a scalar field on a shape" means that the scalar field has a value within or on the boundary of the shape. Each of the first and second shapes may be corresponding bounding boxes.
[0030] For example, the first scalar field may be (the result of) the application of a first function to a first instance of a CAD model on the respective signed distance field. The second scalar field may be (the result of) the application of a second function to a mesh on the respective signed distance field. For example, the first and second functions are identical, i.e. they are the same function. By "signed distance field (SDF)" we mean a field defined based on a signed distance function (see https: / / en.wikipedia.org / wiki / Signed_distance_function). By an SDF for a CAD model (or, more precisely, an instance thereof) we mean the SDF calculated with respect to the boundary of said CAD model. Similarly, by an SDF for a mesh we mean the SDF calculated with respect to the boundary represented by said mesh. The signed distance field for a CAD model or a mesh may take negative values inside the corresponding boundary of said CAD model and said mesh and positive values outside the corresponding boundary. The value of the SDF for said corresponding boundary of said CAD model or said mesh may be zero. Each of the first and second SDFs may be realized (i.e., evaluated) on a corresponding grid or subdivision as described above for the first / second scalar fields. Such grid / subdivision for each SDF may be the same as each for the scalar fields. For example, where an SDF is evaluated on a different grid / subdivision than the corresponding scalar field, the method may use interpolation (e.g., linear, bilinear, trilinear) to obtain values for the corresponding scalar field as described above.
[0031] Each of the first scalar field and the second scalar field may be a density field. By "density field" we mean a scalar field whose values are in the range [0,1]. This improves the performance of such examples because the functions appearing in the minimization problem have bounded and known ranges. For example, at least one of the first function (in the example where the first scalar field is a density field) and the second function (in the example where the second scalar field is a density field) is a smooth Heaviside function or an approximation of a smooth Heaviside function. Such a smooth Heaviside function or an approximation of such a function may be a function known in the art (see https: / / en.wikipedia.org / wiki / Heaviside_step_function, Section Analytic approximations). By using a Heaviside function filter, an unnecessarily large number of values of the functions appearing in the minimization problem are filtered, thereby improving the minimization computation efficiency. However, since the Heaviside function is a discontinuous function, smoother versions of such a function are utilized to maintain the continuity of the objective function, thereby improving the solution procedure of the minimization problem, e.g., using well-known gradient-based optimization methods.
[0032] For example, the similarity measure between the first and second scalar fields may be a measure of the squared difference between the first and second scalar fields. The similarity measure may specifically be a differentiable function with respect to its argument. For example, the measure of the squared difference may include a sum of the squared differences, a smoothed minimum of the squared differences, or a smoothed maximum of the squared differences. The method may use, for example, known smoothed maxima / minima (see https: / / en.wikipedia.org / wiki / Smooth_maximum). The use of some smooth measures results in a well-defined smooth objective function for the minimization problem, which increases computational efficiency.
[0033] For example, the minimization may use a gradient-based optimization method. Such an optimization method may have free variables of multiple CAD parameters. Such a shape dissimilarity measure is a differentiable function with respect to the free variables. Differentiability increases the efficiency of solving the optimization problem.
[0034] For example, the optimization method may use sensitivities, each of which is defined as an approximation of a corresponding derivative of each shape dissimilarity measure for each CAD parameter of the plurality of CAD parameters. The method may calculate the sensitivities as an integration step in the optimization method. For example, the optimization method may include multiple iterations, and the sensitivities may be calculated at each iteration. For general problems, calculating analytical derivatives of the objective function is extremely difficult and / or computationally expensive. Therefore, using the sensitivities as an approximation of the derivatives provides a computationally efficient approach to optimization. Despite using an iterative method with a zero-order optimization scheme using an approximation of the derivative of the objective function (as shown in the numerical results below), the method has been found to achieve / successfully iteratively refine the design from an initial state of the first instance to a converged state of the second instance.
[0035] The above-mentioned sensitivity may be a combination of a respective derivative of the shape dissimilarity measure with respect to the signed distance field and a respective derivative of the signed distance field with respect to each CAD parameter of the plurality of CAD parameters.
[0036] Each derivative of the respective derivative of the shape dissimilarity measure with respect to the signed distance field may comprise an analytical derivative. Meanwhile, each derivative of the respective derivative of the signed distance field with respect to the respective CAD parameter may comprise an approximate derivative. Such approximate derivatives may comprise finite differences. The method may calculate finite differences using perturbation sizes known in the art. Such perturbations may comprise applying small perturbations to any or each of the continuous CAD parameters and obtain the resulting perturbations in the SDF. The value of the perturbation size may be provided by a user or may be predefined.
[0037] Therefore, the method may employ a separation of the derivative calculation into a numerical and an analytical part. Such a separation is advantageous because numerical approximations of the derivatives (e.g., using finite difference schemes) may be unreliable for highly nonlinear functions. On the other hand, the analytical derivation is quite tractable for shape dissimilarity measures and yields exact solutions at negligible computational cost.
[0038] As mentioned above, the system may be any combination of a CAD system, a CAE system, a CAM system, a PDM system and / or a PLM system. A CAD solution (e.g., a CAD system or a CAD software) also means any system, software or hardware, such as CATIA, adapted to at least design a modeled object based on a graphical representation of the modeled object and / or its structured representation (e.g., a feature tree). In this case, the data defining the modeled object includes data enabling the representation of the modeled object. The CAD system may provide a representation of the CAD modeled object, for example, using edges, lines, and possibly faces and surfaces. The lines, edges or surfaces may be represented in various ways, for example, Non-Uniform Rational B-Splines (NURBS). In particular, a CAD file includes a specification from which a geometric shape may be generated, thereby enabling the generation of the representation. The specification of the modeled object may be stored in a single CAD file or multiple CAD files. A typical size of a file representing a modeled object in a CAD system is in the range of one megabyte per part. Also, the modeled object may typically be an assembly of several thousand parts.
[0039] In the context of CAD, a modeled object may be a 2D or 3D modeled object that typically represents a product, for example a part or an assembly of parts, or even an assembly of a product. The 2D or 3D modeled object may be a manufactured product, i.e. a product to be manufactured. By "3D modeled object" is meant any object that is modeled by data that allows the object to be represented in 3D. The 3D representation allows the part to be viewed from all angles. For example, a 3D modeled object, when represented in 3D, can be manipulated and rotated around any of its axes or around any axis of the screen on which the representation is displayed. In particular, this excludes 2D icons that are not 3D modeled. Displaying 3D representations facilitates design (i.e. increases the speed at which designers statistically accomplish their tasks). This speeds up the manufacturing process in industry, since the design of products is part of the manufacturing process.
[0040] The 2D or 3D modeled object may represent the geometry of a (e.g., mechanical) part or assembly of parts (i.e., an assembly of parts, since an assembly of parts may be considered as a part itself in terms of the method or the method may be applied independently to each part of the assembly), or more generally any rigid body assembly (e.g., a moving mechanism), of a product that is actually manufactured after completion of the virtual design using a CAD / CAE software solution or a CAD / CAE system, for example. CAD / CAD software solutions allow the design of products in various industrial sectors, including but not limited to aerospace, architecture, construction, consumer goods, high tech devices, industrial equipment, transportation, marine, and / or offshore oil / gas production or transportation. Thus, the 3D modeled object designed by the present method may represent an industrial product which may be any mechanical part such as a part of a land vehicle (including, for example, automobiles and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, trains), a part of an air vehicle (including, for example, airframe equipment, aerospace equipment, propulsion equipment, defense equipment, airplane equipment, space equipment), a part of a marine vehicle (including, for example, naval equipment, merchant ships, marine equipment, yachts and work boats, marine equipment), a general mechanical part (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, assembled machinery products, tire manufacturing products), an electromechanical or electronic component (including, for example, appliances, security products and / or control products and / or instrumentation products, computing and communication equipment, semiconductors, medical equipment and facilities), a consumer good (including, for example, furniture, home and garden products, leisure products, fashion products, hard goods retail products, soft goods retail products), packaging (including, for example, food, beverage and tobacco, beauty and personal care, household goods packaging).
[0041] CAM solution means any solution, software or hardware adapted to manage the manufacturing data of a product. The manufacturing data generally includes data related to the product to be manufactured, the manufacturing process and the necessary resources. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, a CAM solution may provide the CAM user with information about the feasibility, the duration of the manufacturing process or the number of resources that can be used in a particular step of the manufacturing process, such as a particular robot, thereby making it possible to take decisions regarding management or necessary investments. CAM is a follow-up process after the CAD process and potentially the CAE process. For example, a CAM solution may provide information about the machining parameters or the forming parameters that match the extrusion features provided in the CAD model. Such CAM solutions are offered by Dassault Systèmes under the trademarks CATIA, Solidworks or DELMIA®.
[0042] Therefore, CAD and CAM solutions are closely related. In fact, CAD solutions focus on the design of the product or part, while CAM solutions focus on how to create it. The step of designing a CAD model is the first step towards computer-aided manufacturing. In fact, CAD solutions offer important functions such as feature-based modeling and boundary representation (B-rep) to reduce the risk of errors and loss of precision during the manufacturing process handled with CAM solutions. In fact, the CAD model is what is intended to be manufactured. The CAD model is therefore the virtual twin (also called digital twin) of the object to be manufactured with two purposes:
[0043] -Ensuring the correct behavior of the manufactured object in a specific environment; and -Ensuring the manufacturability of the objects produced.
[0044] The obtained mesh, which is input by the method, may be a 2D / 3D discrete geometric representation of the manufactured product. A discrete geometric representation is a data structure that includes a discrete set of data. Each data may identify an element of the product / mechanical part and may be called a discrete element. The discrete geometric representation may be 3D or 2D. Alternatively, the discrete geometric representation may be both 3D and 2D, i.e., it may include 3D parts that are 3D discrete geometric representations and 2D parts that are discrete geometric representations, e.g. a hybrid 3D-2D mesh (e.g. for modeling a product that includes both thin parts modeled with 2D parts and thick parts modeled with 3D parts). For example, the discrete geometric representation may include 100, 1000 or more than 10000 such data.
[0045] In the case of a 3D discrete geometric representation, the 3D discrete geometric representation may be a skinned 3D discrete geometric representation representing a skin of a manufactured product, such as a 3D surface mesh (e.g., a triangular surface mesh) or a tessellation. In such a case, each data may represent a respective geometric entity arranged in 3D space such that the data forms a representation of a skin of a mechanical product (i.e., a "skinned 3D discrete geometric representation"). In such a case, each geometric entity represents a respective position (i.e., a material point) on the exterior surface of a 3D object (in other words, a corresponding portion of the exterior surface of a volume occupied by the material that constitutes the solid represented by the object). The aggregation (i.e., combination or juxtaposition) of the geometric entities collectively represents at least a portion of the exterior surface of the object.
[0046] The modeled object output / designed by the method may for example be a CAD model including or consisting of a feature tree, such a model may originate from a CAE model and may result from a CAE to CAD conversion process that the method may include, for example at an initial stage.
[0047] The CAD model may be feature-based (i.e., the CAD model may include a feature tree and a corresponding B-rep obtained, for example, by executing the feature tree). The feature-based 3D model allows for detecting and automatically resolving (e.g., during the manufacturing or CAM file determination step described below) geometric errors in the CAD model, such as clashes, that affect the manufacturing process. A clash is an interpenetration between two parts of the 3D model, for example due to their relative movement. Furthermore, this clash may only be detected by a finite element analysis based on the CAD feature-based model. Thus, resolving the clashes may be performed together with or automatically by the CAD solution by iteratively modifying the parameters of the features and performing a finite element analysis.
[0048] As another example, feature-based 3D models allow tool paths for machines to be automatically generated by a computer numerical control (CNC) (e.g., during the manufacturing or CAM file determination step described below). In CNC, each object to be manufactured is given a custom computer program that is stored in and executed by a machine control unit, a microcomputer attached to the machine. This program contains instructions and parameters that the machine tool follows. Examples of common machine tools whose operations are automated by CNC are milling machines, lathes, routers, grinders, and lasers.
[0049] One important feature of CAD models is that they can be precisely and explicitly designed by chaining a small number of high-level parameterized design operations (e.g., including but not limited to sketching, extrusion, chamfering) and can be edited by modifying their high-level parameters. This is an important distinction from polyhedral representations such as triangular surface meshes, which may represent any 3D shape but offer no modification or parameterization capabilities in the context of industrial design. The present method constitutes a solution that facilitates obtaining CAD models that are easier to work with during the design process due to their high level of parameterization.
[0050] Because CAD models are parameterized models of parts / products, they are lighter in terms of memory footprint than other models, such as CAE models. Indeed, instead of storing a collection of discrete geometric elements, such as finite elements, CAD models allow for storing a list of features and parameters, which is lighter in terms of storage and memory footprint. Thus, working on a CAD model reduces memory requirements for the underlying system, as compared to, for example, a CAE model, in addition to facilitating the editability of the model. This means that the CAE-to-CAD conversion process, in addition to converting the CAE model into a more editable CAD model, actually compresses the CAE model into a CAD model that is lighter in terms of memory requirements (e.g., footprint).
[0051] The generation of custom computer programs from CAD files may be automated. Such generation may therefore be error-proof and ensure perfect reproduction of the CAD model to manufacture the product. CNC is believed to offer greater precision, complexity and repeatability than is possible with manual machining. Other advantages include greater accuracy, speed and flexibility, as well as capabilities such as contouring, which allows milling of contoured shapes, including shapes produced by 3D designs.
[0052] A B-rep (i.e., boundary representation) is a 3D representation of a mechanical part. Specifically, a B-rep is a persistent data representation that describes a 3D modeled object that represents the mechanical part. A B-rep may be the result of a calculation and / or a series of operations performed during the design phase of the 3D modeled object that represents the mechanical part. When the modeled object is rendered, the shape of the mechanical part that is displayed on a computer screen is a B-rep (e.g., a tessellation of). For example, a B-rep represents a part of a model object.
[0053] B-rep contains topological and geometric entities. Topological entities are faces, edges, and vertices. Geometric entities are 3D objects: surfaces, planes, curves, lines, and points. By definition, a face is a bounded portion of a surface, named the support surface. An edge is a bounded portion of a curve, named the support curve. A vertex is a point in 3D space. They are related to each other as follows: The bounded portion of a curve is defined by two points (vertices) on that curve. The bounded portion of a surface is defined by its boundary, which is the set of edges on that surface. The boundaries of edges of faces are connected by sharing vertices. Faces are connected by sharing edges. Two faces are adjacent if they share an edge. Similarly, two edges are adjacent if they share a vertex. In CAD systems, a B-rep collects in a suitable data structure the "bounded by" relationships, i.e., the relationship between topological entities and supporting geometry and the mathematical description of the supporting geometry. An internal edge of a B-rep is an edge shared by exactly two faces. By definition, a boundary edge is not shared and bounds only one face. By definition, a boundary face is bounded by at least one boundary edge. A B-rep is said to be closed if all its edges are internal edges. A B-rep is said to be open if it contains at least one boundary edge. Closed B-reps are used to model thick 3D volumes, since they define the interior portion of the space that (virtually) surrounds the material. Open B-reps are used to model 3D skins, which represent 3D objects with negligible thickness.
[0054] An important advantage of B-rep over other representation types used in CAD modeling is its ability to represent any shape exactly. All other representations used, such as point clouds, distance fields or meshes, make an approximation of the shape they represent by discretization. B-rep, on the other hand, contains surface equations that represent the exact design and therefore constitutes a true "master model" for further manufacturing, whether this is the generation of tool paths for CNC or discretization to the correct sample density for a given 3D printer technology. In other words, by using B-rep, the 3D model can be an exact representation of the manufactured object. B-rep is also advantageous for the simulation of the behavior of the 3D model. For stress, thermal, electromagnetic or other analyses, B-rep supports local refinement of the simulation mesh to capture the physical phenomena, and for kinematics, true contact modeling between the surfaces. Finally, B-rep allows for a smaller memory and / or file footprint. Firstly, this representation contains surfaces based only on parameters. In other representations, such as meshes, the equivalent surface contains up to several thousand triangles. The second reason is that B-rep does not contain any history-based information.
[0055] The method may be included in a production process which, after execution of the method, may comprise the step of producing a physical product corresponding to the modeled object designed by the method. The production process may comprise the steps of:
[0056] - applying the method (e.g. automatically), thereby obtaining a CAD model output by the method; - Using the resulting CAD model to manufacture the product.
[0057] Using the CAD model in manufacturing refers to the actual operations or sequence of operations that are involved in / concerned with manufacturing the product represented by the CAD model. Using the CAD model in manufacturing may, for example, include the following steps:
[0058] - editing the resulting CAD model, - performing simulations (e.g. structural, thermodynamic, aerodynamic) to check mechanical, utilization and / or manufacturing properties and / or constraints based on the CAD model or a corresponding CAE model (e.g. the CAD model is obtained from the CAD model after a CAE to CAD conversion process); - editing a CAD model based on the results of said simulation; - if necessary (i.e. depending on the manufacturing process used, the production of the mechanical product may or may not include this step), determining (e.g. automatically) a manufacturing file / CAM file based on the (e.g. edited) CAD model for the production / manufacturing of the manufactured product, - sending the CAD and / or manufacturing / CAM files to the factory; and / or - manufacturing (e.g. automatically) the mechanical product originally represented by the model output by the method based on the determined manufacturing file / CAM file or said CAD model, which includes (e.g. automatically) supplying the manufacturing file / CAM file and / or the CAD file to a machine that performs the manufacturing process.
[0059] This final step of manufacturing may be referred to as the manufacturing or production step. This step is, for example, manufacturing / creating a part / product based on the CAD model and / or CAM file, once the CAD model and / or CAD file are provided to one or more manufacturing machines or computer systems controlling the machines. The manufacturing step may include performing a known manufacturing process or a series of manufacturing processes, for example, one or more additive manufacturing steps, one or more cutting steps (e.g., laser cutting or plasma cutting steps), one or more stamping steps, one or more forging steps, one or more bending steps, one or more deep drawing steps, one or more forming steps, one or more machining steps (e.g., milling steps) and / or one or more blanking steps. The design method improves the design of the model (CAE or CAD) representing the part / product, and therefore also improves manufacturing and its productivity.
[0060] Editing the CAD model may include performing one or more edits of the CAD model by a user (i.e., a designer), for example using a CAD solution. Modifying the CAD model may include one or more modifications of the geometry and / or parameters of the CAD model, respectively. These modifications may include any modification or set of modifications made to the feature tree of said model (e.g., feature parameters and / or specification modifications) and / or modifications made to the displayed representation (e.g., B-rep) of the CAD model. These modifications are modifications that maintain the technical functionality of the part / product (e.g., the mechanical functionality described above). That is, the user may make modifications that affect the geometry and / or parameters of said model, but only with the purpose of making the CAD model more technically compliant for downstream specifications and / or manufacturing of the part / product. Such modifications may include any modification or set of modifications that make the CAD model technically compliant with the specifications of a machine used in a downstream manufacturing process. Such modifications may additionally or instead include any modification or set of modifications that make the CAD model technically compliant for further use of a manufactured product / part, said modification or set of modifications being based on the results of said simulation, for example.
[0061] The method may include performing a manufacturing step once the mesh and the first instance of the CAD model are obtained (provided). For example, upon a user trigger to activate the respective functions of the CAD software and the method embedded therein, the software may initiate the method to automatically morph the mesh into a second instance of the CAD model. Upon a further user trigger, the software may initiate a manufacturing step as described above, for example by directly converting the second instance of the CAD model into CAM and then proceed to manufacture.
[0062] The CAM file may include a manufacturing step-up model obtained from the CAD model. The manufacturing step-up model may include all data necessary to manufacture the machined product to have a geometry and / or distribution of materials (possibly up to manufacturing tolerances) corresponding to that captured by the CAD model. Determining the production file may include applying any CAM (Computer Aided Manufacturing) solution or CAD / CAM solution (e.g., any automated CAD / CAM conversion algorithm) to determine (e.g., automatically) the production file from the CAD model. Such a CAM solution or CAD / CAM solution may include one or more of the following software solutions that enable the automatic generation of manufacturing instructions and tool paths for a given manufacturing process based on a CAD model of the product to be manufactured:
[0063] -Fusion360, -FreeCAD, -CATIA, -SOLIDWORKS, - NC Shop Floor programmer by Dassault Systèmes, as described at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer - the Dassault Systèmes NC Mill-Turn Machine programmer as described at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer, and / or - Powder Bed Machine programmer by Dassault Systèmes as described at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer.
[0064] The product / part may be an additively manufacturable part, i.e. a part manufactured by additive manufacturing (i.e. 3D printing). In this case, the production process does not include a step of determining a CAM file, but proceeds directly to the production / manufacturing step by directly (e.g. automatically) feeding the 3D printer with a CAD model. The 3D printer is configured to directly and automatically 3D print the mechanical product according to the CAD model when the CAD model representing the mechanical product is fed (e.g. when 3D printing is initiated by an operator of the 3D printer). In other words, the 3D printer receives the CAD model fed (e.g. automatically) to the 3D printer, reads the CAD model (e.g. automatically), and prints the part (e.g. automatically) by adding material, e.g. layer by layer, in one piece, to reproduce the geometry and / or distribution of the material captured by the CAD model. The 3D printer adds material, thereby actually reproducing the geometry and / or distribution captured by the CAD model up to the resolution of the 3D printer, and with or without tolerances and / or manufacturing corrections as necessary. The manufacturing step may include determining such manufacturing corrections and / or tolerances, for example by a user (e.g., an operator of the 3D printer) or automatically (by the 3D printer or a computer system controlling the 3D printer), for example by modifying a CAD file to fit the specifications of the 3D printer. The production process may additionally or alternatively include determining from the CAD model (e.g., automatically by the 3D printer or by a computer system controlling the 3D printer), for example, a printing direction that minimizes the amount of overhang (as described in EP 3327593, which is incorporated herein by reference), layer slicing (i.e., the thickness of each layer, and the path / trajectory for each layer), and other characteristics of the 3D printer head (e.g., in the case of a laser beam, e.g., path, speed, intensity / temperature, and other parameters).
[0065] The product / part may alternatively be a machined part (i.e. a part produced by machining), such as a milled part (i.e. a part produced by milling). In such a case, the production process may include a step of determining a CAM file. This step may be performed automatically by any suitable CAM solution for automatically obtaining the CAM file from a CAD model of the machined part. The step of determining the CAM file may include a step of (e.g. automatically) checking whether the CAD model has geometric singularities (e.g. errors or artifacts) that may affect the production process, and (e.g. automatically) correcting such singularities. For example, machining or milling based on the CAD model may not be performed if the CAD model still has sharp edges (because the machining or milling tool cannot form the sharp edges), and in such cases determining the CAM file may include (e.g., automatically) rounding or filleting such sharp edges (e.g., with a rounding or filleting radius that corresponds to the radius of the cutting head of the milling tool, e.g., approximately equal to a tolerance) so that machining or milling can be performed based on the CAD model. More generally, determining the CAM file may automatically include rounding or filleting geometry in the CAD model that does not match the radius of the machining or milling tool to enable machining / milling. Such checking and possibly corrections (e.g., rounding or filleting the geometry) may be performed automatically as described above, but may also be performed by a user (e.g., a machining engineer) who manually performs the corrections for the CAD and / or CAM solution, e.g., a solution that is restricted to the user performing the corrections to conform the CAD model to the specifications of the tooling used in the machining process.
[0066] In addition to the above-mentioned verification step, the step of determining the CAM file may include a step of (e.g. automatically) determining a machining or milling path, i.e. a path to be taken by the machining tool to machine the product. The path may include a set of coordinates and / or a parameterized trajectory to be followed by the machining tool for machining, and the step of determining the path may include a step of (e.g. automatically) calculating these coordinates and / or trajectories based on a CAD model. This calculation may be based on the calculation of the boundaries of the Minkowski subtraction of the CAD model with the CAD model representation of the machining tool, as described, for example, in European Patent Application No. 21306754.9 filed by Dassault Systèmes on December 13, 2021, which is incorporated herein by reference. It should be noted that the above-mentioned path may, for example, be a single path that the tool follows continuously without breaking contact with the material to be cut. Alternatively, the path may be a concatenation of a series of sub-paths that the tool should follow in a certain order, e.g., each sub-path is a path that the tool follows consecutively without losing contact with the material to be cut. For example, determining the CAM file may then include setting (e.g., automatically) machine parameters including cutting speed, cutting / penetration height, and / or mold opening stroke, e.g., based on the determined path and machine specifications. For example, determining the CAM file may then include configuring (e.g., automatically) a nesting in which the CAM solution determines the best pose for the part to maximize machining efficiency.
[0067] Thus, in such cases of machined or milled parts, the determination step of the CAM file results in and outputs a CAM file that includes the machining paths as well as, for example, the set machine parameters and / or the configured nesting specifications. This output CAM file may then be (e.g., directly and automatically) fed to the machining tool and / or the machining tool may then be (e.g., directly and automatically) programmed by reading said file, at which point the production process comprises said production / manufacturing step, in which said machine performs machining of the product according to the production file, for example, by directly and automatically executing said production file. The machining process comprises a step in which the machining tool cuts a real block of material in order to reproduce, for example, to a tolerance (e.g., tens of microns in the case of milling), the geometry and / or distribution of material captured by the CAD model.
[0068] Alternatively, the product / part may be a molded part, i.e. a part produced by molding (e.g. injection molding). In such a case, the production process may include a step of determining the CAM file as mentioned above. This step may be performed automatically by any suitable CAM solution for automatically obtaining the CAM file from a CAD model of the molded part. The step of determining the CAM file may include a step of (e.g. automatically) performing a series of molding checks based on the CAD model to verify that the geometry and / or distribution of the material captured by the CAD model is mold-compatible, and (e.g. automatically) performing appropriate corrections if the CAD model is not mold-compatible. The step of checking and performing appropriate corrections (if any) may be performed automatically or by a user (e.g. a molding engineer), for example using a CAD and / or CAM solution that allows the user to perform appropriate corrections to the CAD model, but limits the user's corrections to those that conform the CAD model to the specifications of the molding tool. This checking may include a step of verifying that the virtual product represented by the CAD model matches the dimensions of the mold and / or verifying that the CAD model includes all the draft angles necessary for the release of the product, as known per se from the mold. Determining the CAM file may further include determining, based on the CAD model, the amount of liquid material to be used for molding and / or the time to cure / solidify the liquid material in the mold, and outputting a CAM file containing these parameters. The production process then includes (e.g., automatically) performing molding based on the output file, which molds the liquid material into a shape that corresponds to the geometry and / or distribution of the material captured by the CAD model over the determined cure time, for example up to a tolerance (e.g., introduction of draft angles or correction of draft angles in case of demolding).
[0069] Alternatively, the product / part may be a stamped part, which may also be referred to as a "stamped part", i.e. a part manufactured by a stamping process. In this case, the production process may include a step of (e.g. automatically) determining a CAM file based on a CAD model. The CAD model represents the stamped part, which may comprise one or more flanges, for example if the part includes any flanges, and in this latter case, the stamped part may include excess material to be removed to form the unfolded state of one or more flanges of the part, as known per se from stamping. The CAD model thus includes a part representing the part without the flange (which in some cases is the whole part), and possibly an extra outer patch part representing the flange (if any) including the excess material (if any). This extra patch part may exhibit g2 continuity over a certain length, and then g1 continuity over a certain length.
[0070] In this stamping case, determining the CAM file may include determining (e.g., automatically) the parameters of the stamping machine, such as the size of the stamping die, or the punching and / or stamping forces, based on the geometry and / or distribution of the material of the virtual product captured by the CAD model. If the CAD model also includes a representation of excess material to be removed to form the unfolded state of one or more flanges of the part, the excess material to be removed may be cut off, for example, by machining, and determining the CAM file may also include determining a corresponding machining CAM file, for example, as described above. If one or more flanges are present, determining the CAM file may include determining the geometric specifications of the g2 continuity and g1 continuity parts that allow the folding process to fold said flanges towards the inner surface of the stamped part and along the length of the g2 continuity after the stamping itself and the removal of the excess material have been performed. The CAM file determined thereby therefore includes the parameters of the stamping tool and the above specifications for, e.g., folding the flanges (if present), and the machining production files for, e.g., removing excess material (if present).
[0071] The stamping production process may then, for example, directly and automatically output the CAM file and perform the stamping process (for example, automatically) based on said file. The stamping process may include stamping (for example, punching) the part of the material forming the product represented by the CAD file, possibly including the unfolded flange and excess material (if any). If appropriate, the stamping process may then include cutting off the excess material based on the machining production file and folding the flange based on the above specifications for folding the flange, thereby folding the flange over their g2 continuity length and giving a smooth appearance to the outer boundary of the part. In this latter case, the shape of the manufactured part differs from its virtual equivalent represented by the CAD model in that the excess material has been removed and the flange has been folded, whereas the CAD model represents the part with the excess material and in the unfolded state of the flange.
[0072] The method is computer-implemented. This means that the steps of the method (or substantially all steps) are performed by at least one computer or any similar system. The steps of the method are therefore implemented by said computer, possibly fully or semi-automatically. For example, the initiation of at least some steps of the method may be performed by a user-computer interaction. The required level of user-computer interaction may depend on the envisaged level of automation and may be balanced against the need to realise the user's intentions. For example, this level may be user-defined and / or predefined.
[0073] For example, a user / designer may be involved in performing a step of obtaining a first instance of a CAD model. In such a case, the user / designer of the method may automatically present the first instance by importing the instance of the CAD model, for example, from a database or a previous session, and optionally based on the mesh obtained as described above. The user / designer may then modify or replace the automatic presentation of the method according to his / her own knowledge and based on the potential applications of the manufactured product.
[0074] A typical example of a computer implementation of the method is to carry out the method using a system adapted for this purpose. The system may comprise a processor coupled to a memory in which a computer program including instructions for carrying out the method is recorded, and to a graphical user interface (GUI). The memory may also store a database. The memory is any hardware adapted for such storage, and may optionally include several physically distinct parts (e.g. a part for the program and, optionally, a part for the database).
[0075] "Database" means any collection of data (i.e., information) organized for search and retrieval (e.g., a relational database based on a predefined structured language such as SQL). When stored in memory, a database allows for rapid search and retrieval by a computer. Databases are in fact structured to facilitate the storage, retrieval, modification, and deletion of data for various data processing operations. A database may consist of a file or collection of files that can be broken down into records, which consist of one or more fields. A field is the basic unit of data storage. A user may retrieve data primarily through queries. Using keywords and sorting commands, a user can quickly find, locate, group, and select fields in a number of records to retrieve or create reports on a particular collection of data according to the rules of the database management system being used.
[0076] 1 shows an example of a GUI of a system, the system being a CAD system. The 3D modeled object 2000 may be an example of a first instance of a obtained CAD model, an example of an obtained mesh, or a determined second instance of a CAD model according to the method.
[0077] The GUI 2100 may be a typical CAD-like interface with standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menu bars and toolbars include a set of user-selectable icons, each icon associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools adapted for editing and / or manipulating the 3D modeled object 2000 displayed in the GUI 2100. The software tools may be grouped into workbenches. Each workbench includes a subset of software tools. In particular, one of the workbenches is an editing workbench suitable for editing geometric features of the modeled product 2000. In operation, a designer may, for example, pre-select a portion of the object 2000 and then initiate an operation (e.g., change dimensions, color, etc.) or edit geometric constraints by selecting the appropriate icon. For example, a typical CAD operation is modeling a stamping or folding of a 3D modeled object displayed on a screen. The GUI may, for example, display data 2500 related to the displayed product 2000. The data 2500, displayed, for example, as a "feature tree" of drawings, and their 3D representation 2000, relate to a brake assembly including a brake caliper and disc. The GUI may further show various types of graphic tools 2130, 2070, 2080, for example, to facilitate 3D orientation of objects, to trigger a simulation of the operation of the edited product, or to render various attributes of the displayed product 2000. A cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphic tools.
[0078] FIG. 2 shows an example of such a system; in this example, the system is a client computer system, e.g., a user's workstation.
[0079] The client computer of this example comprises a central processing unit (CPU) 1010 connected to an internal communication bus 1000 and a random access memory (RAM) 1070 also connected to the bus. The client computer further comprises a graphics processing unit (GPU) 1110 associated with a video random access memory 1100 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage controller 1020 manages access to mass memory devices such as a hard drive 1030. Mass memory devices suitable for embodying computer program instructions and data include all forms of non-volatile memory, examples of which include semiconductor memory devices such as EPROM, EEPROM and flash memory devices; magnetic disks such as internal hard disks and removable disks; and magneto-optical disks. Any of the above may be supplemented by or incorporated in specially designed ASICs (Application Specific Integrated Circuits). A network adapter 1050 manages access to a network 1060. The client computer may also comprise a tactile device 1090, such as a cursor control device, a keyboard, etc. A cursor control device is used in the client computer to allow the user to selectively place a 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 has a number of signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the mouse buttons are used to generate the above signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.
[0080] The computer program may include computer executable instructions, including means for causing the system to perform the method. The program may be recordable on any data storage medium, including the memory of the system. The program may be implemented, for example, in digital electronic circuitry or computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, for example, as an article embodied in a machine-readable storage device for execution by a programmable processor. The steps of the method may be performed by a programmable processor executing a program of instructions for performing the functions of the method by performing operations on input data and generating output. Thus, the processor may be programmable and may be coupled to receive data and instructions from, and transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high level procedural or object oriented programming language, or in assembly or machine language, as appropriate. In either case, the language may be a compiled or translated language. The program may be a full installation program or an update program. In either case, application of the program to the system provides instructions for performing the method. Alternatively, the computer program may be stored on and executed on a server of a cloud computing environment in communication with one or more clients over a network, in which case the processing unit executes instructions comprising the program to thereby cause the method to be performed on the cloud computing environment.
[0081] Next, an embodiment of the method will be described.
[0082] The present embodiment relates to product design, mechanical engineering, structural optimization and shape morphing. More specifically, the present embodiment aims to automatically deform / adjust a CAD model to fit any target shape represented by a polygon mesh. Designers and engineers often search for a polygon mesh (e.g., downloaded online from a number of 3D mesh sharing websites or obtained from topology optimization methods) and then create and adapt a parameterized CAD model to fit the shape. The present embodiment presents an efficient and generic automatic approach to optimize a CAD model to fit / reproduce a provided polygon mesh. This means that a template / parameterized CAD model can be automatically instantiated / morphed to reproduce the shape or follow a given mating surface while maintaining its clean and accurate CAD configuration.
[0083] The present embodiment formulates such morphing or deformation / adjustment as a gradient-based optimization and performs it in real time. The present embodiment also aims to perform such operations in a way that preserves the original CAD construction logic. This is especially important for industrial applications that always require a CAD representation. Thus, the present embodiment provides an improved solution compared to morphing between two polygon meshes, which may produce nonsensical results.
[0084] As mentioned above, the present embodiment may be particularly relevant to two well-known types of geometric representation: parametric CAD models and polygon meshes.
[0085] Figures 3 to 4 show different examples of parametric CAD models. As is known, such models are the de facto standard modeling technique for industrial applications. These models represent 2D or 3D shapes by a sequence (or a directed acyclic graph) of unambiguous operations (primitives, sketches, extrusions, pockets, fillets, lofted surfaces, NURBs, Booleans, etc.), often with numerous geometric constraints (orthogonality, alignment, continuity, contact, etc.). Parametric CAD models are "exact" representations of objects, since they have theoretically infinite resolution. These models have the advantage of being easy to edit by the designer or engineer, by relying on a small number of high-level (i.e. manually editable, human interpretable) parameters.
[0086] Figure 5 shows different examples of polygon meshes with different parameters. A polygon mesh is a discretization of an object's surface into a collection of planar polygonal faces (often triangles) that share edges and vertices. These meshes can come from many different sources: surface tessellations of CAD models, scans of real objects, digital sculpting, or isosurface extractions from volumetric representations. Polygon meshes are defined by a large number of low-level (algorithmically editable and machine-interpretable) parameters (which are the vertex positions).
[0087] One important difference between a CAD model and a polygon mesh is that any shape (including a CAD model) can be easily and fully automatically converted into a polygon mesh. In contrast, converting a polygon mesh into a clean and simple CAD model is a very difficult open problem. This is because a CAD model contains high-level information about the design's purpose and construction logic, whereas a polygon mesh is only a discretization / sampling of the surface of that design. In this sense, the difference between CAD and a 3D polygonal model is similar to the difference between a vector image and a pixel grid in the case of 2D images.
[0088] As is known, a CAD model cannot be directly compared to a polygon mesh, since these two representations are fundamentally different. Therefore, in these embodiments of the method, we propose a workflow in which both the target polygon mesh and the CAD model are first transformed into a common scalar field representation and then compared by some selected similarity measure. Furthermore, these transformations and similarity measures are differentiable, so that total derivatives with respect to the CAD parameters can be calculated. These total derivatives are stable and accurate, allowing the use of gradient-based schemes to derive the optimization of the CAD model.
[0089] Such embodiments allow for the morphing and optimization of complex 2D or 3D CAD models with many more parameters than previously possible. The optimization is also much more efficient, requiring fewer iterations and exhibiting smooth convergence. Furthermore, the embodiments preserve the parameterization, construction logic, and feature tree of the input CAD model, thereby ensuring that the optimized model satisfies the original length scale, geometry, manufacturing or assembly constraints imposed by the designer.
[0090] 6 shows a graphical representation of this embodiment, where an initial CAD model 610 and a target triangulated shape 620 are provided to the method, which then performs an optimization to obtain an optimized CAD model 630. The convergence of the optimization is shown as 640 in terms of the similarity measure versus iteration number.
[0091] Next, this embodiment will be further explained step by step with reference to FIG.
[0092] Figure 8 shows the inputs according to such an example embodiment. The inputs consist of two models: a parameterized CAD model 810 (i.e., the first instance of the CAD model) that is supposed to be optimized, and a polygonal model POLY 820 that represents the target shape to match. For example, the user can define a subset of CAD parameters to be optimized. Model 810 and model 820 represent a connecting rod.
[0093] In this embodiment, for example, an initial CAD model can be quickly created by a designer and, due to constraints imposed in the CAD parameterization, can be manufactured by industrial machining processes due to its structure. In contrast, a polygonal model (POLY) is a more complex, organic shape with curved surfaces. Although polygonal models are more efficient in terms of mass and physical performance, they are significantly more expensive and difficult to manufacture by machining. The present embodiment uses its advantageous capabilities to automatically modify the CAD model to reproduce the target shape according to the POLY model while ensuring that the manufacturability of the CAD model is maintained.
[0094] FIG. 9 illustrates steps 1 and 2 of the flow chart shown in FIG. 7, ie, the steps of computing a signed distance field to a polygon mesh and computing a signed distance field to a CAD solid.
[0095] In steps 1 and 2, the present embodiment discretizes the spatial domain encompassing the CAD model and the polygonal model into two instances of a mesh of volume elements. The volume elements may be tetrahedral, hexahedral or regular cubes. For each element, the present embodiment evaluates the distance from the element to the surface of the CAD model or polygonal model in steps 1 and 2, respectively. This distance value is annotated with a sign indicating whether the element is inside or outside the solid object represented by the model. By convention, a negative distance indicates an element inside the (polygon / CAD) model and a positive distance indicates an element outside the (polygon / model) model.
[0096] The present embodiment specifies two signed distance fields (SDFs) as functions of the CAD model and the polygon model as follows:
number
number
[0097] In the present implementation, a regular grid discretization may be used that allows the most efficient computation of the signed distance field. The SDF is computed as known in the art (https: / / en.wikipedia.org / wiki / Signed_distance_function).
[0098] FIG. 10 illustrates steps 3 and 4 of the flowchart shown in FIG. 7. In these steps, the two signed distance fields are scaled using a smooth Heaviside projection to obtain the values
number
number
number
number
number
number
[0099] Other functions that approximate the Heaviside function with appropriate power range and well-defined first derivatives may be used in the present implementation. Examples of such approximations can be found at https: / / en.wikipedia.org / wiki / Heaviside_step_function.
[0100] Figure 11 illustrates step 5 shown in the flow chart shown in figure 7. Once both models are represented by density fields in the same mesh discretization, various similarity measures can be used to compare the two models. This allows the calculation of an error score for a chosen measure. The simplest measure is the sum of the squared differences between the two fields:
number
[0101] Another option is to use a smooth approximation of the maximum or minimum operator instead of the sum (https: / / en.wikipedia.org / wiki / Smooth_maximum). Once the error score has been estimated, it needs to be differentiated with respect to the CAD parameterization for use in an efficient gradient-based optimization scheme.
[0102] Figure 12 illustrates step 6 of the flowchart shown in Figure 7. Because the similarity measure is chosen to be differentiable, embodiments can formulate its analytical derivative in terms of density. For the sum of squared differences, the derivative is:
number
[0103] Figure 13 illustrates step 7 of the flowchart shown in Figure 7. In this step, and similar to step 6, since the density projection is differentiable with respect to the signed distance field, the present embodiment calculates its analytical derivative as follows:
number
[0104] FIG. 14 illustrates step 8 of the flowchart shown in FIG. 7. Finally, in this step, the derivatives of the signed distance field with respect to the CAD parameterization are approximated using finite differences. This is done for small perturbations.
number
number
number
[0105] Separating the density projection from the SDF allows a separate differentiation method to be used. This is advantageous because finite difference schemes may be less reliable for highly nonlinear functions such as the density projection step. On the other hand, the analytical derivation is very tractable for this choice of smooth Heaviside projection and yields an exact solution at negligible computational cost. By definition, the signed distance varies linearly as one moves away from the point closest to the surface of the CAD model. Thus, it turns out that the finite difference scheme is highly reliable in capturing the first derivative of the SDF. It should be noted that the present formulation uses a central finite difference scheme, but other finite difference schemes are also applicable. Furthermore, the finite difference in the present embodiment is a strictly geometric process and therefore has low computational cost.
[0106] In step 9, the derivatives calculated in steps 6, 7 and 8 are combined using the chain rule to obtain the derivative of the error score with respect to the CAD parameters as follows:
number
[0107] In step 10, the CAD parameters are updated according to the derivatives calculated in each previous step using a gradient descent optimization scheme known in the art (https: / / en.wikipedia.org / wiki / Gradient descent). This process is repeated until a predefined number of iterations or convergence criteria is met.
[0108] Table 1 below summarizes the designations used in the above description of this embodiment.
[0109] [Table 1] 15A-15B collectively show the complete mathematical formulation.
[0110] Figure 15A shows the dimensions for each of the terms in the derivative of the error score with respect to CAD.
[0111] Derivatives
number
number
number
number
number
number
number
number
[0112] During the ceremony,
number
number
number
number
number
number
[0113] Figure 15B shows the mathematical relationships between the steps of this embodiment described above. The left column shows the forward evaluation of the error measures at each iteration, and the right column is the step of the backward sensitivity analysis.
[0114] Next, two examples of this embodiment will be described.
[0115] 3D Connecting Rod Results In the first example, this embodiment optimizes the CAD model shown on the left in FIG. 16. The target polygon mesh is shown on the right in FIG. 16. Note that the CAD model has realistic attachment points made of two parts assembled with a bolt. In contrast, the target shape has a more complex linkage geometry with curved surfaces but no assembly. This embodiment allows the designer to optimize the CAD parameters for fitting to the target shape. In this example, the 18 parameters to be optimized are the radius and position of the bore and the linkage profile curve.
[0116] FIG. 17 illustrates the optimization process. The optimization runs for a few seconds on a laptop and converges smoothly even with a large number of nonlinear heterogeneous CAD parameters. Such efficiency is possible because the invention uses derivatives on the intermediate field representation to rigorously capture the complex interactions between all CAD parameters. The resulting optimized model is a valid CAD representation and satisfies the same constraints as the initial CAD model. In this case study, the constraints on the CAD parameterization serve to ensure the manufacturability and assembleability of the connecting rod model. The internal field representations and derivatives generated by the invention can provide insight into the optimization process and its results.
[0117] 18 shows a comparison of the initial CAD model with an optimal CAD model, which is colored based on its match with the target shape (i.e., the error score derivative). Light colored areas correspond to a perfect match between the CAD model and the target shape, while dark colors indicate areas where the CAD model overshoots or undershoots the target shape.
[0118] 2D shape transfer result The next use case is a reconstruction problem on a 2D imprint of geometry. The objective is to provide a simple CAD sketch and automatically fit it to a scanned target shape. FIG. 19A shows a target shape 1910 defined as the interior region of a target contour 1915. This target shape 1910 is an initial arbitrary shape obtained, for example, from an STL file in a CATIA use case. The designer wants to obtain a CAD model that is as close as possible to the target shape 1910. FIG. 19B shows an initial sketch 1920 of such a CAD model, i.e., the first instance of the CAD model. The initial sketch 1920 consists of 12 nodes forming a polyline 1925. Such an initial polyline sketch as 1920 may be created manually by the user by clicking on the 12 points close to the target contour 1915. FIG. 19C shows a graphical representation of the similarity measure evaluated on the target shape 1910. The graphical representation shows the partial derivatives of the similarity function between the target shape 1910 and the polyline sketch 1920. Dark grey areas 1930 indicate the negative derivative, i.e., areas where the CAD model has insufficient material, and light grey areas 1935 indicate the positive derivative, i.e., areas where the CAD model has too much material. As can be seen in Figure 19, areas 1930 and 1935 are a good match for the shape difference between 1910 and 1920, so this embodiment helps determine a second instance of the CAD model that stretches towards the target shape model in area 1930 and shrinks towards the target shape model in area 1935.
[0119] The following three examples in Figures 20, 21 and 22 show how different CAD parameterizations are optimized by the proposed approach. Each parameterization is visualized at 0, 5 and 20 iterations.
[0120] The first parameterization (Figure 20) simply uses an initial polyline to create a design consisting of 12 line segments, resulting in 24 CAD sketch parameters corresponding to the planar positions of the 12 sketch nodes.
[0121] The second parameterization (Figure 21) uses automatic subsampling of the initial polyline to control the nodes on the contour, resulting in 96 CAD sketch parameters corresponding to the planar positions of the 48 sketch nodes.
[0122] The third parameterization (FIG. 22) uses a smooth spline contour to obtain 24 CAD sketch parameters corresponding to the planar positions of the 12 control points that define the spline curve.
Claims
1. 1. A computer-implemented method for designing a manufactured product having one or more mechanical features, comprising: a first instance of a CAD model, the CAD model including a feature tree having a plurality of continuous CAD parameters, the CAD model further including a set of one or more parameterized constraints specifying the one or more mechanical functions, the first instance including a first value for each continuous CAD parameter; obtaining a mesh (POLY) representing a target boundary shape of the manufactured product; determining a second instance of the CAD model from the first instance of the CAD model, the second instance including second values for each continuous CAD parameter, the determining of the second instance comprising: calculating the second values by modifying at least a portion of the first values to minimize a shape dissimilarity measure (ERR) between a boundary shape represented by the first instance of the CAD model and the target boundary shape; The method includes:
2. the shape dissimilarity measure is a similarity measure between a first scalar field and a second scalar field, the first scalar field being defined based on the CAD model and the second scalar field being defined based on the mesh; The method of claim 1.
3. the first scalar field is defined on a first shape that surrounds the first instance of the CAD model; the second scalar field is defined on a second shape that encloses the target boundary shape; For example, each of the first shape and the second shape is a corresponding bounding box. The method of claim 2.
4. the first scalar field being an application of a first function (ρ) on a respective Signed Distance Field (SDF) for the first instance of the CAD model; the second scalar field being the application of a second function (ρ) on each signed distance field (SDF) for the mesh; For example, the first function and the second function are identical.
4. The method according to claim 2 or 3.
5. Each of the first scalar field and the second scalar field is a density field, e.g., at least one of the first function and the second function is a smooth Heaviside function or an approximation of a smooth Heaviside function. The method according to claim 4.
6. The similarity measure between a first scalar field and a second scalar field is [0030] and the second scalar field [0031] A measure of the squared difference between [0032] and The measure of the squared difference is Sum of squared differences, the smoothed minimum of the squared difference, or Contains the smoothed maximum of the squared differences, 6. The method according to any one of claims 2 to 5.
7. 7. The method of claim 1, wherein the minimization uses a gradient-based optimization method having the plurality of continuous CAD parameters as free variables, and the shape dissimilarity measure is a differentiable function with respect to the free variables.
8. The optimization method uses sensitivities, each sensitivity being a respective shape dissimilarity measure for each CAD parameter of the plurality of continuous CAD parameters. [Equation 33] Approximation of each derivative of [0034] The method according to claim 7, wherein
9. The sensitivity is a derivative of each of the shape dissimilarity measures with respect to the signed distance field; and Each CAD parameter of the plurality of continuous CAD parameters [Equation 35] with the respective derivatives of the signed distance field with respect to The method according to claim 8.
10. The method of claim 9 , wherein the respective derivatives of the shape dissimilarity measures with respect to the signed distance field comprise analytical derivatives.
11. each derivative of the respective derivative of the signed distance field with respect to a respective CAD parameter comprises an approximate derivative, the approximate derivative comprising a finite difference; 11. The method according to claim 9 or 10.
12. the CAD model further includes manufacturing specifications each associated with a corresponding portion of the feature tree, and both the first instance and the second instance are configured to be input to a manufacturing tool and manufactured in accordance with the manufacturing specifications.
12. The method according to any one of claims 1 to 11.
13. A computer program comprising instructions for carrying out the method according to any one of claims 1 to 12.
14. A computer-readable storage medium having the computer program according to claim 13 recorded thereon.
15. 14. A system comprising a processor coupled to a memory having the computer program of claim 13 stored thereon.
