Conversion of subdivision curve controlled by base mesh into corresponding CAD curve format

The method addresses the challenge of converting subdivision curves into CAD curve formats by using the Catmull-Clark process to form G2 continuous Bezier curves from the basic mesh, enhancing design efficiency and precision.

JP2025062587APending Publication Date: 2025-04-14DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024173055
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-10-02
Filing Date
2024-10-02
Publication Date
2025-04-14

Smart Images

  • Figure 2025062587000001_ABST
    Figure 2025062587000001_ABST
Patent Text Reader

Abstract

To disclose a computer-implemented method for converting a subdivision curve into a corresponding computer-aided design (CAD) curve format.SOLUTION: A subdivision curve is controlled by a base mesh. The base mesh is formed by vertices connected by one or more edges. The subdivision curve defines at least a part of a product to be manufactured. The method is for designing the product. The method comprises a step of transforming the subdivision curve into a G2-continuous CAD curve. The CAD curve is formed by the union of one or more Bezier curves. Each Bezier curve corresponds to a respective edge of the base mesh. A control polygon of the CAD curve is computed from the base mesh. The transformation is based on a Catmull-Clark refinement process.SELECTED DRAWING: Figure 20
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to the field of computer programs and systems, and more particularly to a method, system, and program for converting a subdivision curve controlled by a base mesh into a corresponding CAD curve format. [Background technology]

[0002] Numerous solutions, both hardware and software, are offered on the market for designing, engineering and manufacturing objects. CAD stands for Computer-Aided Design, e.g., CAD is a software solution for designing objects. CAE stands for Computer-Aided Engineering, e.g., CAE is a software solution for analyzing and simulating the physical behavior of future products. CAM stands for Computer-Aided Manufacturing, e.g., CAM is a software solution for defining the manufacturing processes and resources of a product. In such computer-aided design solutions, the graphical user interface plays a key role for the efficiency of the method. These methods may also be integrated into Product Lifecycle Management (PLM) solutions. PLM refers to an engineering strategy that helps companies share product data, apply common processes and leverage corporate knowledge for product development from conception to end of life, across the concept of extended enterprise. The PLM solutions offered by Dassault Systèmes (under the trademarks CATIA, SIMULIA, DELMIA and ENOVIA) provide an Engineering Hub to organize product engineering knowledge, a Manufacturing Hub to manage manufacturing engineering knowledge, and an Enterprise Hub to enable enterprise integration and connectivity to both the Engineering and Manufacturing Hubs. All these solutions provide a common model that links products, processes and resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production, and service.

[0003] Computer-aided design of a product to be manufactured may typically include several stages. Class A modeling is a later stage of such a process, e.g., the final stage before the model enters the Computer-Aided Manufacturing (CAM) phase. Class A modeling uses a CAD model (of the product) that features high-quality surfaces. That is, the CAD model, e.g., a B-rep model, has outer surfaces that represent the outer curved parts of the product, and these outer surfaces have a quality (commonly called G2 continuity, also called curvature continuity). Once Class A modeling is finished, the CAD model may be suitable for downstream manufacturing phases. That is, the model may be saved as a CAD file, which may be used for manufacturing in the CAM phase. The surfaces of the model have sufficient quality for manufacturing, so that they can be manufactured by suitable machines. For example, surfaces of such quality allow for manufacturing by successive application of machining tools.

[0004] Class A surfaces can be created from curves using well-known CAD features such as fill, sweep, loft, net, extrusion, and others. These curves are then used to create surfaces and control them after their creation (i.e., once created). In modern CAD tools for class A modeling, these curves are composed of Bezier curves or NURBS curves, which allow the creation of tense curves with high quality curvature (G2 continuity). These curves provide ergonomic access to the surfaces, like handles for creating and deforming shapes. In class A, the quality of the curves is important to lead to high quality surfaces. Figures 1 and 2 show examples of screenshots of class A CAD models in automobiles, each with an external surface composed of multiple high quality surfaces defined by such high quality curves.

[0005] In class A modeling, complex curves may be created using multiple G2 continuous Bézier curves. Each Bézier curve may be limited to degree 11 to 15, typically to avoid instability problems. Alternatively or additionally, NURBS curves with high subdivisions may be used. Bézier curves are known to provide high quality resulting shapes.

[0006] However, a single Bézier curve limits the complexity of the shape (while the design can be complicated due to manufacturing and / or mechanical constraints), which in practice requires that multiple Bézier curves be concatenated to create complex shapes, thereby resulting in a large number of steps to generate a well-defined surface. Furthermore, the concatenation between Bézier curves always needs to be verified by the user or guaranteed by the CAD system through constraints. This means additional steps (editing by the user and / or computer calculations to enforce the constraints) and / or additional knowledge provided by the user. This reduces the ergonomics, speed, and efficiency (including computer efficiency) of the design process. Figure 3 shows an example of a Bézier curve, and Figure 4 shows an example of a G2 concatenated Bézier curve.

[0007] NURBS curves allow the creation of more complex shapes, but the possible complexity is still too limited. Furthermore, manipulating the limits of arcs in NURBS can have a large effect very far on the curve. This means that manipulating one part of a design through the manipulation of NURBS arc limits can affect another part of the design defined by the same NURBS curve, which was not intended to be changed. This results in poor ergonomics, since many interactions are required to perform the intended edits and correct unintended edits, and / or very precise interactions are required to perform edits that do not result in unintended changes (which requires very high manual precision and / or very high concentration, thereby imposing a high physiological strain on the designer). Furthermore, while accessing a network of control points, many points are available, resulting in a high complexity to reach the desired shape. Figure 5 shows a screenshot of a NURBS curve. A cursor 50 is placed on a control point and moved by the user to move the control point and perform the edits. FIG. 6 shows the result of moving the cursor 50, which, as can be seen on FIG. 6, has unintentionally and significantly altered some of the curves that are further away.

[0008] Prior to class A modeling, or in the early stages of class A modeling, designers and manufacturers may seek efficiency and productivity in their designs. As such, the use of NURBS or Bezier curves in such contexts suffers from the drawbacks of these techniques described herein above and herein below (complexity of operation, large memory consumption, lack of computational efficiency). Furthermore, in such contexts, designers seek simplicity in the software products they are using.

[0009] Moreover, subdivision surfaces are increasingly used in modern CAD software and constitute one of the most relevant and interesting techniques for creating shapes. This is due, among other things, to their simplicity and the fact that they are "global" (a surface allows the creation of complex shapes that cannot be created using a single NURBS or Bézier surface). The bridge between these surfaces and curve-based design is essential in modern CAD. However, this bridge suffers from a lack of compatibility between these different techniques. In fact, the creation of subdivision surfaces based on these traditional NURBS or Bézier curves currently suffers from a lack of accuracy (e.g. the presence of deviations as described later in this specification) due to the need to approximate these curves to a base mesh. These shortcomings have not been overcome so far, even though subdivision curves have been around for a long time.

[0010] Within this context, there is a need for improved solutions for computer-aided design using curves. Summary of the Invention

[0011] There is therefore provided a computer-implemented method for converting a subdivision curve into a corresponding computer-aided design (CAD) curve format. The subdivision curve is controlled by a base mesh. The base mesh is formed by vertices connected by one or more edges. The subdivision curve defines at least a portion of a product to be manufactured. The method is for designing the product. The method comprises converting the subdivision curve into a G2 continuous CAD curve. The CAD curve is formed by joining one or more Bézier curves. Each Bézier curve corresponds to a respective edge of the base mesh. A control polygon of the CAD curve is calculated from the base mesh (i.e. the CAD curve has a control polygon calculated from the base mesh). The conversion is based on a Catmull-Clark subdivision process. The method may be referred to as "the conversion method".

[0012] The conversion method may include one or more of the following: Each Bézier curve is associated with a control polygon whose control points depend linearly on the vertices of the base mesh. for each Bézier curve, the control points of the control polygon associated to it correspond to the product of said vertices in the base mesh with a matrix; - for each Bézier curve, said vertices in the base mesh include the vertices connected by each corresponding edge of the Bézier curve and the vertices of the adjacent edges. the matrix allows sharpness preservation in a Bézier curve if at least one of said vertices connected by the respective edge is sharp; and / or the matrix allows weight preservation in a Bézier curve if at least one of said vertices connected by the respective edge has a weight.

[0013] Also provided is a CAD model representative of the product to be manufactured. The CAD model includes at least a portion defined by a subdivision curve and obtainable (e.g. obtained) following conversion of a base mesh of the subdivision curve into a corresponding CAD curve format, the conversion being performed according to the conversion method. The at least a portion corresponds to a G2 continuous CAD curve formed by joining one or more Bézier curves. The number of Bézier curves is equal to the number of sides in the base mesh of the subdivision curve. The CAD curve has a control polygon calculated from the base mesh. For example, the control polygon of the CAD curve may be formed by a base mesh, each Bézier curve having a control polygon calculated from the base mesh as described later in this specification.

[0014] Also provided is a computer-implemented method of using a CAD model, the method comprising the step of performing one or more modifications in a base mesh of a subdivision curve, the one or more modifications being passed to said at least a portion of the CAD model. Additionally or alternatively, the method comprises the step of applying one or more CAD operations to said at least a portion. The method of use may be referred to as "the design method".

[0015] Furthermore, a computer program comprising instructions for carrying out the present transformation method and / or the present design method is provided.

[0016] Additionally, a computer readable data storage medium having the computer program and / or the CAD model recorded thereon is provided.

[0017] Further provided is a system including a processor coupled to a memory, the memory having a computer program and / or a CAD model stored therein.

[0018] Further provided is a device including a data storage medium having stored thereon the computer program and / or the CAD model.

[0019] The device may form or function as a non-transitory computer-readable medium, for example in a Software as a service (SaaS) or other server or cloud-based platform, or the like. The device may alternatively include a processor coupled to a data storage medium. Thus, the device may form a computer system in its entirety or in part (e.g., the device is a subsystem of an overall system). The system may further include a graphical user interface coupled to the processor. [Brief description of the drawings]

[0020] Non-limiting examples will now be described with reference to the accompanying drawings.

[0021] [Figure 1] FIG. 1 illustrates the method. [Diagram 2] FIG. 1 illustrates the method. [Diagram 3] FIG. 1 illustrates the method. [Figure 4] FIG. 1 illustrates the method. [Diagram 5] FIG. 1 illustrates the method. [Figure 6] FIG. 1 illustrates the method. [Figure 7] FIG. 1 illustrates the method. [Figure 8] FIG. 1 illustrates the method. [Figure 9] FIG. 1 illustrates the method. [Figure 10] FIG. 1 illustrates the method. [Figure 11] FIG. 1 illustrates the method. [Figure 12A] FIG. 1 illustrates the method. [Figure 12B] FIG. 1 illustrates the method. [Figure 13]FIG. 1 illustrates the method. [Figure 14] FIG. 1 illustrates the method. [Figure 15A] FIG. 1 illustrates the method. [Figure 15B] FIG. 1 illustrates the method. [Figure 15C] FIG. 1 illustrates the method. [Figure 16] FIG. 1 illustrates the method. [Figure 17] FIG. 1 illustrates the method. [Figure 18] FIG. 1 illustrates the method. [Figure 19] FIG. 1 illustrates the method. [Figure 20] FIG. 1 illustrates the method. [Figure 21] FIG. 1 illustrates the method. [Figure 22] FIG. 1 illustrates the method. [Figure 23] FIG. 1 illustrates the method. [Figure 24] FIG. 1 illustrates the method. [Diagram 25] FIG. 1 illustrates the method. [Figure 26] FIG. 1 illustrates the method. [Figure 27] FIG. 1 illustrates the method. [Figure 28] FIG. 1 illustrates the method. [Figure 29] FIG. 1 illustrates the method. [Diagram 30] FIG. 1 illustrates the method. [Diagram 31] FIG. 1 illustrates the method. [Diagram 32] FIG. 1 illustrates the method. [Diagram 33] FIG. 1 illustrates the method. [Diagram 34] FIG. 1 illustrates the method. [Diagram 35] FIG. 1 illustrates the method. [Diagram 36] FIG. 1 illustrates the method. [Figure 37] FIG. 1 illustrates the method. [Figure 38] FIG. 1 illustrates the method. [Figure 39] FIG. 1 illustrates the method. [Diagram 40] FIG. 1 illustrates the method. [Diagram 41] FIG. 1 illustrates the method. [Diagram 42] FIG. 1 illustrates the method. [Diagram 43] FIG. 1 illustrates the method. [Diagram 44] FIG. 1 illustrates the method. [Diagram 45] FIG. 1 illustrates the method. [Figure 46] FIG. 1 illustrates the method. [Figure 47] FIG. 1 illustrates the method. [Figure 48] FIG. 1 illustrates the method. [Figure 49] FIG. 1 illustrates an example of the present system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] A computer-implemented method for converting a subdivision curve into a corresponding computer-aided design (CAD) curve format is provided. The subdivision curve is controlled by a base mesh. The base mesh is formed by vertices connected by one or more edges. The subdivision curve defines at least a portion of a product to be manufactured. The method is for designing the product. The method comprises converting the subdivision curve into a G2 continuous CAD curve. The CAD curve is formed by joining one or more Bézier curves. Each Bézier curve corresponds to a respective edge of the base mesh. A control polygon for the CAD curve is calculated from the base mesh. The conversion is based on the Catmark-Clarke subdivision process. The method may also be referred to as "the conversion method" as described above.

[0023] The method constitutes an improved solution for using quality curves in the design of products to be manufactured.

[0024] In particular, the method converts the subdivision curves into a CAD curve format, i.e., G2 continuous CAD curves. This allows the designer to work on such CAD curves and thus perform class A modeling edits. The CAD curves are also compatible with CAD software and CAD tools (e.g., CAD Operators, etc.). In this way, the method bridges the CAD framework and the framework of the subdivision curves. Furthermore, since the CAD curves have a control polygon calculated from the base mesh of the subdivision curve, the method allows to perform edits of the subdivision curves (e.g., edits of the base mesh, etc.), which are then automatically converted to CAD curves since their control polygons come from the base mesh.

[0025] Moreover, the CAD curve is formed by the joining of one or more Bézier curves, each corresponding to a respective edge of the base mesh. There is therefore a one-to-one mapping between each Bézier curve and each edge of the base mesh. This allows the user-performed modifications to be localized, i.e. the user can act on the Bézier curve or its control points to perform modifications that only affect the part of the model that corresponds to the Bézier curve and do not affect the model far away, in contrast to what is described above for the prior art. This significantly improves ergonomics during design, i.e. the designer can focus his edits (in a physiological sense, i.e. at the focus of the eye) on the part of the design that he really wants to edit, without the edits causing undesired changes in other parts of the model. Incidentally, the number of interactions between the user and the machine is also significantly reduced, since there is no need to perform corrections resulting from unwanted changes. Moreover, the joints of the Bézier curves are already G2 continuous as a result of the transformation, i.e. also at the joints between the Bézier curves. Therefore, the user does not need to do the work involved in making these junctions G2 continuous and therefore conforming to class A modeling. Furthermore, these modifications performed on the base mesh may automatically and directly reverberate to the Bézier curves affected by these modifications, since their control polygons may depend linearly on the base mesh.

[0026] Moreover, when working on curves defined only using Bézier curves instead of subdivision curves, the connections between the various Bézier curves must be managed, which is not ergonomic and implies the use of many computer objects (e.g. control points, etc.), resulting in an increased consumption of computer resources and an increase in memory size. Subdivision curves, on the other hand, make it possible to design complex shapes using a single curve that is easier to modify and does not require as many computer objects (control points) to store and process.

[0027] The conversion method is for converting a subdivision curve controlled by a base mesh into a corresponding CAD curve format. This means that the conversion method takes a subdivision curve as input, performs a conversion (automatically by a computer system) and outputs the result of the conversion, i.e. a corresponding CAD curve format (a G2 continuous CAD curve formed by joining one or more Bézier curves). By "CAD curve format" or "CAD curve" is meant a curve that is compatible with and usable in CAD software, i.e. a curve that can be used by CAD operators and CAD tools of modern CAD software. In the case of the present method, this format resulting from the conversion is a G2 continuous CAD curve formed by joining one or more Bézier curves.

[0028] The conversion method is for designing a product to be manufactured, which is at least partially defined by an input subdivision curve. This means that the result of the conversion method can be used in the design of the product, for example in a step that is part of the design process of this product. This step can be included in a method of use, also called a "design method". The conversion method and the design method can be integrated in the same design process, which comprises a step of executing the conversion method and then a step of executing the design method. The conversion method itself can form a step of design, for example a step in which the conversion method creates the input subdivision curve by executing, by the user, a sketch of the geometric shape of the curve. Then, when creating the sketch, the method can include automatically calculating a base mesh by the system and then converting it into a CAD format.

[0029] The product is to be manufactured, which means that at some point later in the method, i.e. downstream of the method, for example after execution of the design method, a model of the product resulting from the design, which includes said portions defined by the subdivision curves, will be used to manufacture the product according to the design.

[0030] As mentioned above, the input of the method is a subdivision curve. The subdivision curve is defined by a base mesh. In other words, the base mesh completely defines the subdivision curve. The base mesh may reflect and control the geometry of the curve. The creation of a subdivision curve may consist of a user's definition of the geometry (e.g., by executing a shape) and the computer system's automatic inference of the base mesh in any suitable manner. A base mesh is a topological structure consisting of a set of vertices and edges, each edge connecting two vertices. A base mesh is composed of one or more of such edges. The vertices and edges are sometimes called cells. This topological structure controls and defines the geometry of the curve. The concept of a subdivision curve is well known (see, for example, references https: / / courses.cs.washington.edu / courses / cs457 / 11au / lectures / subdivision.pdf and http: / / cgpp.net / file / cgpp3e_ch22W.pdf).

[0031] A subdivision curve is equivalent to a boundary of a subdivision surface whose base mesh is an extrusion of the base mesh of the subdivision curve. Figures 7 to 10 illustrate the bridge between subdivision curves and subdivision surfaces. Figure 8 shows a subdivision curve and Figure 7 shows its base mesh. Figure 9 shows the base mesh of the corresponding subdivision surface, which can be seen to be an extrusion of the base mesh shown in Figure 7. Figure 10 shows a subdivision surface, which is an extrusion of the subdivision curve shown in Figure 8. Conversely, the subdivision curve shown in Figure 7 is the boundary of the subdivision surface shown in Figure 9 and the subdivision curve shown in Figure 8 is the boundary of the subdivision surface shown in Figure 10.

[0032] The subdivision curve defines at least a part of the product to be manufactured. This means that the product modeled in the CAD system has a part (such as an outer surface part) defined based on the subdivision curve. For example, the outer surface part may be a CAD curve to which the subdivision curve is transformed or a surface extruded from this CAD curve. However, this does not exclude a further design step in which this part in the CAD model of the product defined by the subdivision curve is modified.

[0033] The method may for example comprise, as an initial step, a step of providing (obtaining) a subdivision curve. Providing the subdivision curve may include creating the subdivision curve. Creating the subdivision curve may include a step of sketching the geometry of the curve by a graphical user interaction and then automatically calculating (by any suitable method) a base mesh by the computer system. The creation may optionally include further modification of the base mesh by graphical user interaction. Providing the subdivision curve may alternatively include a step of obtaining (e.g. downloading) the curve from a (e.g. remote) data storage medium on which the subdivision curve is stored even after its creation.

[0034] The method comprises (e.g. further after the provision of the subdivision curve) a step of converting the subdivision curve into a G2-continuous CAD curve formed by joining one or more Bézier curves. This step may be performed automatically by the computer system at the time of providing the subdivision curve, i.e. without any further user interaction (e.g. without the user having to click on a button to activate this conversion). For example, the user may create the geometry of the subdivision curve as described above, on the basis of which the computer system automatically calculates the base mesh and automatically performs the conversion step. This may be performed in real time, i.e. the time from providing the subdivision curve to the result of the conversion step is less than a few seconds, e.g. less than 10, 5, 2 or 1 second. This means that the conversion step is very fast and in real time, whereby the conversion step is transparent to the user. The method may comprise a step of displaying the G2-continuous curve on a display of the computer system. This provides the user with instantaneous visual feedback, which is provided automatically and in real time, for example with visual feedback in the form of a display of the G2-continuous curve resulting from the conversion step, when sketching the shape of the subdivision curve. The method may also comprise displaying the base curves, e.g. by default upon their creation and for the remainder of the method (including the transformation step), and / or displaying the control polygons of each Bézier curve, e.g. by default once the transformation step is completed. Alternatively, the display of the base curves and / or the display of the control polygons of the Bézier curves may be performed when the user activates a display graphical command (e.g. by clicking on a button). The user may, for example, cause the display of the base curves by activating a specific graphical command and / or the display of all Bézier curves or the control polygons of one or more of the Bézier curves by activating another specific graphical command.

[0035] The transforming step is sometimes also called the conversion step. The transforming / conversion step is performed by applying a conversion process based on the Catmarck-Clarke subdivision process, for example by using a step of directly applying the Catmarck-Clarke subdivision process. The Catmarck-Clarke subdivision process works as follows: Given a curved base mesh, the process performs a subdivision that iteratively subdivides the base mesh (i.e., by iteratively adding vertices and / or edges). This process converges to a limit curve, i.e. a uniform cubic spline. The spline may be C2 continuous if the subdivision curve does not contain sharpness or weights. In this case, the subdivision converges to a C2 continuous NURBS with circular arcs represented by Bézier curves. In all cases (including the cases where the subdivision curve contains sharpness or weights), the limit curve is internally G2 continuous. Figures 11, 12A, and 13 illustrate such a process. Figure 11 shows a base mesh 110 and a limit curve 112. Furthermore, Figure 12A shows the result of a first refinement level 120. Furthermore, Figure 13 shows the result of a second refinement level 130.

[0036] The output of the method includes the result of the transformation, i.e. a G2-continuous CAD curve formed by one or more Bézier curves. The output may consist of computer objects or computer data, which may consist of the following topological data structures: a computer object "body" that references one or more topological object "edges" (one for each edge of the base mesh), which references a topological object "wire", each of which references a respective Bézier curve (each corresponding to an edge of the base mesh that corresponds to the topological "edge" object), the Bézier curves being geometric objects. The output may also include the base mesh. To each edge of the base mesh there corresponds a topological edge in the output, and to each vertex of the base mesh there corresponds a topological vertex in the output, and vice versa. In other words, the input of the method is the subdivision curve defined by the base mesh, and the output is the same subdivision curve, but converted into a CAD curve format.

[0037] This transformation may apply the Catmark-Clarke subdivision process described in Catmark and Clark, Recursively Generated B-spline Surfaces on Arbitrary Topological Meshes, 1978, incorporated herein by reference, and referred to as "the method" in the aforementioned reference, except that the process is applied to curves instead of surfaces. The level of subdivision may be user-specified or, alternatively, may be predefined and fixed. The Catmark-Clarke process is applied by the present method such that for each edge of the mesh, a respective single portion of a G2 continuous CAD curve is generated. In other words, there is exactly one Bézier per patch ("patch" is in the sense of Catmark and Clark, Recursively Generated B-spline Surfaces on Arbitrary Topological Meshes, 1978). NURBS are a concatenation of Bezier curves (sometimes called circular arcs), the control polygon of each of which is calculated based on a base mesh, as described later in this specification.

[0038] Application of the subdivision process described in reference [Catmark and Clark, "Recursively Generated B-Spline Surfaces on Arbitrary Topological Meshes", 1978], in implementation, can be as follows:

[0039]

number

[0040] By denoting the subdivision vertices at level n, the subdivision curve is a set of vertices derived from existing vertices.

[0041]

number

[0042] and the existing edges

[0043]

number

[0044] are subdivided to level n+1 by making use of the following rules (the application of which is illustrated in the example shown in FIG. 12B, which corresponds to the subdivision step illustrated in FIG. 12A):

[0045]

number

[0046]

number

[0047] In these implementations, extreme or sharp vertices are left alone.

[0048] The curve resulting from the transformation is a G2 continuous curve, which is a uniform cubic spline (described in Catmark, A Subdivision Algorithm for Computer Display of Curved Surfaces, Ph.D. dissertation, 1974, which is incorporated herein by reference). The G2 continuous curve is formed by joining one or more Bézier curves, each resulting from the transformation of each of the elementary mesh edges.

[0049] The concept of G2 continuity has been described above. Here, for completeness, we provide briefly the definition of this (well-known) concept: First and foremost, curvature in this specification refers to a geometric term that indicates the degree to which a curve or surface deviates from a perfectly straight or flat line. Curvature can be measured as the inverse of the local osculating radius. Thus, a curve has a low curvature and a large radius if the curve is only slightly oscillating, and a high curvature and a small radius if the curve is abruptly oscillating. Continuity in this specification refers to the type of connection at a given point. For a given vertex, G0 continuity represents point continuity at that point (meaning the curve is continuous at that point), G1 continuity represents tangent continuity (meaning the tangent of the curve is continuous at that point), and G2 continuity represents curvature continuity (meaning the curvature of the curve is continuous at that point). A curve is G0 continuous (respectively G1 continuity, G2 continuity) if it has G0 continuity at all its points. G0 continuity is commonly used to represent crease / sharp features. Figure 14 illustrates the concept of G0 continuity.

[0050] The base mesh of the curve is the control polygon of the generated cubic B-spline curve, which is the joining of N Bézier curves, where N is the number of edges of the base mesh. Each Bézier curve may be associated with a control polygon (i.e., its own respective control polygon). The concept of a control polygon for a Bézier or NURBS curve is well known. This control polygon associated with the Bézier curve has control points that may be linearly dependent on the vertices of the base mesh. The control points of the control polygon associated with the Bézier curve may correspond to the product of said vertices of the base mesh with a matrix. Said vertices of the base mesh may include vertices connected by the respective edges to which the Bézier curve corresponds, and vertices of adjacent edges (e.g., vertices of all base mesh edges that include at least one vertex in each of said edges).

[0051] A control polygon is illustrated in Figure 15A, which shows a spline 154, a base mesh 150 which is the control polygon of the spline 154, and a control polygon 152 which is the control polygon of the Bézier curve associated with edge P2-P3 in the base mesh 150 (Pi are the vertices of the base mesh and Qi are the control points of the control polygon of the Bézier curve). In the implementation, Qi is linearly dependent on Pi through the following matrix relationship:

[0052]

number

[0053] It is.

[0054] This formula is illustrated by edge P2-P3 in FIG. 15A, but the same corresponding formula is used for the other edges.

[0055] Above, we have described the so-called regular case, where there is no weight (or attraction) applied to any vertex of each edge of the base mesh. Here, we will explain the irregular case, where at least one edge of each edge has a weight or attraction. Before that, we will explain the concept of valence and the concepts of regular and irregular vertices.

[0056] Valence is the number of edges surrounding a vertex of the base mesh. For curves, the valence is 1 (for extreme vertices) or 2 (for interior vertices), and for surfaces, the valence is at least 2. The term "extraordinary vertex" comes from the Subdivision Surface reference and restricts the type of vertex of the base mesh. For Subdivision Surfaces, a vertex is called regular if it has no weight or sharpness and if it has a valence of 4 in the interior and a valence of 2 or 3 on the boundary. Otherwise, the vertex is called irregular. Around a regular vertex, the surface is tangent with raw C2 continuity. Around an irregular vertex, the surface is tangent with only G0 or G1 continuity. For Subdivision Curves, regular vertices are all vertices that have no sharpness or weight.

[0057] If at least one of the aforementioned vertices connected by the respective edge is sharp, the matrix may be such that the matrix allows sharpness preservation in the Bézier curve. For example, in the above equation, Q1 depends on P1, P2, P3. If P2 is sharp, the matrix may be modified such that Q1 depends only on P2 and P3. This may be applied equally to each such sharp vertex.

[0058] If at least one of the aforementioned vertices connected by the respective edges has a weight, the matrix may be such that it allows weight preservation in the Bézier curve. For example, in the above formula, if vertex P2 has a weight (i.e. the curve will be locally drawn towards P2), a certain processing may be performed on the matrix to ensure good curvature around P2. This process may be any process suitable for this purpose, for example the process partially represented in European Patent Application Publication No. EP1750228A2 (granted), which is incorporated herein by reference. More specifically, in the case of subdivision surfaces, the above-mentioned European Patent Application Publication No. EP1750228A2 describes a method to improve the shape of the approximated surface around irregular vertices. In this process, more degrees of freedom may be added by using NURBS curves (such as degree 6 NURBS curves in the implementation). The additional control points required to define this curve can be moved by solving a linear system to optimize the curvature quality of the shape, as disclosed in paragraphs

[0033] to

[0037] ,

[0068] to

[0077] and in FIG. 3 in EP1750228A2. The method can use the present disclosure to calculate an approximation of a subdivision curve that is a limit of the subdivision surface in the presence of at least one irregular vertex. To that end, the method can comprise, for each edge having at least one irregular vertex, defining a base mesh of a local subdivision surface, using the disclosure of EP1750228A2, on which the method calculates the subdivision surface and extracts a suitable boundary that forms an approximation of the subdivision curve. The control polygon in this case can be the control polygon of the approximation of the subdivision curve. The base mesh of this surface is simply an extrusion in any direction of one of the curves, with weight and sharpness also reported. This is illustrated in Figures 15B and 15C, where Figure 15B shows curve approximation in the irregular case where vertex P2 of edge P2P3 has a weight, and Figure 15C illustrates meshing of the subdivision surface and extrusion of the boundary curve.

[0059] Further advantages and examples of the present conversion method will now be described.

[0060] Subdivision curves come with a multi-level description that allows the user to access the base mesh. This base mesh is similar to the control point network for Bézier curves, but operates much more globally. Thanks to this mathematical description, it becomes very easy to create very complex curves while keeping a very simple base mesh. In addition, attractions (weights) can be added to vertices and edges to deform the resulting curve without changing the vertex positions of the base mesh, providing even more freedom. This attraction can be sharp, allowing the user to create curves that are originally G2 continuous, but only G0 in time, creating sharp vertices, or polylines, or other sharp features. In addition to all these features, the topology of the subdivision curves is completely free. So it becomes very easy to create not only open curves, but also closed curves with any kind of shape.

[0061] Furthermore, all familiar operations available on subdivision surfaces can be projected onto the world of curves as well: inserting / deleting vertices at precise positions, extruding free vertices to extrude both ends of a curve, deforming the base mesh to distort its shape, changing vertex weights, and / or beveling vertices.

[0062] The present conversion method allows the user to manipulate these curves during design, thus enjoying all the benefits of these curves, while providing the conversion of these curves in CAD format, thereby enabling Class A modeling.

[0063] In other words, all the above mentioned operations on the subdivision curves can be performed at the subdivision level, and the conversion to Bézier curves (provided by the present conversion method) allows the integration of the results into conventional CGM modelers. This integration allows the use of conventional operators on these curves, such as Booleans (fillet, trim, split) or any other operation.

[0064] The conversion method also provides a natural bridge between the world of curves and the world of surfaces: conceptually, subdivision surfaces are primarily used for modeling, but it makes it easier to create subdivision surfaces from subdivision curves, leading to better and more accurate (less or no deviations) results.

[0065] Subdivision surfaces are already integrated in CAD modelers. However, in current software solutions that use Bézier or NURBS curves to create subdivision surfaces from these curves, deviations are observed between the surfaces and these curves. Figures 16 and 17 illustrate this. Figure 16 shows a subdivision surface 160 (with a base mesh 162) obtained from a Bézier or NURBS curve 164. As can be seen, deviations 166 are observed between the curve 164 and the surface 160. Similarly, Figure 17 shows a subdivision surface 170 (with a base mesh 172) obtained from a Bézier or NURBS curve 174. As can be seen, deviations 176 are observed between the curve 174 and the surface 170. Figure 18 shows the subdivision surface 160 of Figure 16, but this time obtained from subdivision curve 184, and Figure 19 shows the subdivision surface 170 of Figure 17, but this time obtained from subdivision curve 194. As can be seen from Figures 18 and 19, there is no deviation between the family of subdivision curves and the family of subdivision surfaces.

[0066] As outlined above, the output topological structure resulting from this transformation (Body -> Line -> Edges -> Bezier Curves) can be understood (i.e., used directly) by modeled CAD. Figure 20 shows a flow chart illustrating the input and output topological structure of this transformation. Figure 21 also shows an example of the output topological structure illustrated by a diagram and curve sketch.

[0067] This transformation also allows to preserve the sharpness and weight / attraction on the vertices, as explained above. Moreover, this transformation generates a curved representation that is the boundary of the extruded surface that will be obtained from the base mesh, resulting from the extrusion of the base mesh that defines the subdivision curve, as explained above. Figure 22 illustrates these advantages.

[0068] Subdivision curves allow any kind of shape to be created, so the conversion method allows all of them to be converted consistently. Figure 23 shows a circular closed shape 230 defined by a base mesh 232 formed by four vertices. Such a shape cannot be created using standard Bezier and NURBS curves. Deforming the shape can be easily done by adding vertices to the base mesh 232 (as shown in Figure 24), and opening the shape can be easily done by removing edges of the base mesh 232 (as shown in Figure 25). Figure 26 shows that a bevel with three vertices can be easily created (here on the bottom left vertex of the base mesh 232) to create a fillet-like pinch.

[0069] Subdivision Curves also allow for easy creation of sharp vertices with G0 continuity, as illustrated in FIG. 27. This type of shape cannot be created using traditional Bezier and NURBS curves. To achieve this type of shape, multiple curves must be created and then connected. This connection must then be maintained using other paradigms (such as constraints or matching), which subsequently reduces the user's performance and productivity. This is inherently supported by Subdivision Curves and the present conversion method. Subdivision Curves also allow for the creation of very free-form shapes with a small number of vertices, as illustrated in FIG. 28.

[0070] Also provided is a CAD model, which represents the product to be manufactured. The CAD model is defined by a subdivision curve and is composed of at least a portion obtainable following conversion of a base mesh of the subdivision curve into a corresponding CAD curve format, the conversion being performed according to the conversion method. Said at least a portion corresponds to a G2 continuous CAD curve formed by joining one or more Bézier curves. The number of Bézier curves is equal to the number of sides of the base mesh of the subdivision curve. The base mesh forms the control polygon of the CAD curve.

[0071] At least a portion of it is obtainable following a transformation of the base mesh of the subdivision curve into a corresponding CAD curve form, where the transformation is performed according to the present transformation method, and where the at least a portion of it corresponds to a G2-continuous CAD curve formed by joining one or more Bézier curves. This means that the at least a portion of it is a G2-continuous CAD curve or is obtained from a G2-continuous CAD curve, the G2-continuous CAD curve being a G2-continuous CAD curve resulting from a conversion step of the present transformation method applied to the subdivision curve that defined the at least a portion of the curve, or any G2-continuous CAD curve that could have been obtained by applying the present transformation method to the subdivision curve. The G2-continuous CAD curve is thus formed by joining one or more Bézier curves, the number of Bézier curves being equal to the number of sides of the base mesh of the subdivision curve, the base mesh forming the control polygon of the CAD curve as in the present transformation method. The subdivision curve and the G2-continuous CAD curve to which the at least a portion of the model corresponds may have any or any combination of the features of these curves, as described for the present transformation method. By "corresponds to" it is meant that at least a portion thereof may be a G2 continuous CAD curve or may be derived from a G2 continuous CAD curve, for example, at least a portion thereof may be a surface resulting from extrusion of a G2 continuous CAD curve.

[0072] Also provided is a computer-implemented method of using a CAD model, comprising the step of performing one or more modifications of a base mesh of the subdivision curve, the one or more modifications being passed to said at least a portion of the CAD model (e.g. automatically by the computer using a relationship connecting the control polygon of the Bézier curve and the base mesh). Alternatively or additionally, the method of use comprises the step of applying one or more CAD operations to said at least a portion. The step of performing one or more modifications of the base mesh of the subdivision curve may include performing one or more of the following steps: -inserting a vertex, - deleting a vertex, -Adding bevels at vertices, - Extending curves by extruding extreme vertices, -Adding attractions on one or more vertices, and / or - Changing the topology from an open to a closed shape or vice versa.

[0073] Figures 29 to 38 show screenshots of a video of a designer using a subdivision curve according to an implementation of the method. These figures illustrate the method and its advantages. Figure 29 shows a screenshot of the shape of a subdivision curve that the designer has just created. The conversion method is being applied, and after a few seconds, the subdivision curve has been converted into a CAD curve format by the conversion method. Figure 30 shows this G2 continuous CAD curve. Figure 31 shows a number of G2 continuous CAD curves obtained in a similar manner, including the G2 continuous CAD curve of Figure 30. Figure 32 shows the display of the respective base mesh of the input subdivision curve. This display can be triggered when the user activates a command for that purpose. Figure 33 shows a screenshot of a graphical widget for modifying the base mesh. This graphical widget is actually displayed on the same screen as the curves shown in Figures 29 to 32 above, but is shown separately in this disclosure for clarity. As can be seen in Fig. 33, this widget allows the user to change the parameters of the base mesh(es), including its (their) complexity (number of vertices), when the base mesh(es) is selected. This graphical widget appears when the user activates a command for that purpose. Here, in Fig. 33, the user has changed the number of vertices from 8 to 5 for the bottom curve shown in Figs. 31 and 32. Fig. 34 shows the result of this change in the bottom curve. Fig. 35 shows a partial screenshot of still the same screen, where yet another widget appears when the user activates a command for that purpose. As can be seen in Fig. 35, the user has selected (clicked on) a graphical tool 350 that allows the weighting of the selected mesh vertex (or more). In Fig. 36, the user is shown to have selected a vertex 360 in the base mesh of the right curve. Fig. 37 shows the widget of Fig. 35 displayed along the right curve, where the user interacts with the widget to change the weight value of the selected vertex 360 to 76%, thereby changing the shape of the curve.FIG. 38 illustrates yet another interaction between the user and the displayed widget, where the user has now selected the sharpness graphical tool 370, thereby sharpening the selected vertex 360.

[0074] Figures 39-48 are screenshots from the same CAD software interface as shown in Figures 29-38, showing a comparison between subdivision curves and Bezier curves. Figure 39 shows five subdivision curves. In Figures 40 and 41, Bezier curves 400, 402, 404, 406, and 408 are sketched on top of the subdivision curves of Figure 39 to roughly reproduce their shapes. Figures 42-45 show control polygons 420, 428, 422, and 426 for Bezier curves 400, 408, 402, and 402, respectively. As can be seen, due to the complex shapes of these curves, these polygons extend far and wide across the screen without fitting well to the curves, making them very unergonomic to manipulate. In contrast, Figures 46-48 show base meshes 460, 466, and 468 (respectively) for curves 400, 406, and 408. As can be seen, these base meshes conform much better to the shape of the curve and are significantly more ergonomic to manipulate.

[0075] "Designing a manufacturing product (or product to be manufactured) / mechanical part / mechanical product" specifies any operation or sequence of operations that is at least part of a process of subdividing a modeled object (3D or 2D) of the manufacturing product / mechanical part / mechanical product. The present conversion method and / or the present method of use may be part of such a process, as explained above.

[0076] Thus, the method generally manipulates modeled objects, such as subdivision curves, CAD models, etc., in the CAD curve format described herein. A modeled object is any object defined by data, for example 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 types of data. The system may in fact be any combination of CAD systems, CAE systems, CAM systems, PDM systems, and / or PLM systems. In these different systems, the modeled object is defined by the corresponding data. Thus, it may be called CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not exclusive of the others, since the modeled object may be defined by data corresponding to any combination of these systems. Thus, the system is most likely both a CAD, CAE, PLM and / or CAM system, as will become clear from the definition of such systems provided below.

[0077] A CAD solution (e.g., a CAD system or CAD software, etc.) further means any system, software, or hardware that is at least adapted to design a modeled object based on a graphical representation of the modeled object and / or based on a structured representation thereof (e.g., a feature tree, etc.), such as CATIA. In this case, the data defining the modeled object consists of data that allows the representation of the modeled object. The CAD system may provide a representation of the CAD modeled object, for example, using edges or lines, and possibly using faces or surfaces. These lines, edges, or surfaces may be represented in various ways, for example, as non-uniform rational B-splines (NURBS). In particular, a CAD file contains specifications from which a geometry may be generated, which in turn takes into account the representation to be generated. The specifications of the modeled object may be stored in a single CAD file or in several 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. And the modeled object may usually be an assembly of thousands of parts.

[0078] In the context of CAD, a modeled object is typically a 2D or 3D modeled object, which may represent, for example, a product, such as 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 for its 3D representation. The 3D representation allows for the part to be viewed from any angle. For example, when a 3D modeled object is represented in 3D, it may be manipulated and rotated about any of its axes or about any of the axes in the screen on which the representation is displayed. This does not specifically include 2D icons that are not 3D modeled. The display of 3D representations facilitates design (i.e., improves the speed at which designers statistically accomplish their tasks). This improves the speed of the manufacturing process in industry, since the design of the product is part of the manufacturing process.

[0079] The 2D or 3D modeled object may represent the geometry of a product to be manufactured in the real world after completion of its virtual design using a CAD / CAE software solution or CAD / CAE system, such as, for example, a (e.g., mechanical) part or assembly of parts (or equivalently, an assembly of parts, which may be considered as a part itself from the perspective of the method or the method may be applied independently to each part of the assembly), or more generally any rigid assembly (e.g., a moving mechanism, etc.). CAD / CAE software solutions enable the design of products in a variety of infinite industrial sectors, including aerospace, architecture, construction, consumer goods, high tech equipment, industrial equipment, transportation, marine, and / or offshore oil / gas production or transportation. As such, the 3D modeled objects designed by the method may be parts of land vehicles (including, for example, automobiles and light trucks, racing cars, motorcycles, trucks and motor vehicles, trucks and buses, trains, etc.); parts of air vehicles (including, for example, airframes, aerospace devices, propulsion devices, defense products, aviation devices, space devices, etc.); parts of naval vessels (including, for example, naval vessels, commercial ships, marine devices, yachts and work boats, marine devices, etc.); parts of industrial manufacturing machines, heavy moving machines or equipment, installation equipment, industrial equipment products, metal processing products, tire manufacturing products, etc. It may represent an industrial product, which may be any machine part, such as a part of a general machine (including, for example, consumer electronics, security and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical equipment and devices, etc.), an electromechanical or electronic component (including, for example, furniture, home and garden products, leisure products, fashion products, hard goods retailer products, soft goods retailer products, etc.), a consumer good (including, for example, furniture, home and garden products, leisure products, fashion products, hard goods retailer products, soft goods retailer products, etc.), packaging (including, for example, food and beverages and tobacco, beauty and personal care, household product packaging, etc.).

[0080] A CAD system may be history-based. In this case, the modeled object is further defined by data consisting of the history of geometric features. The modeled object may be designed by a real physical person (i.e., a designer / user) using standard modeling functions (e.g., extrude, revolve, cut, and / or round, etc.) and / or standard surface modeling functions (e.g., sweep, blend, loft, fill, deform, and / or smooth, etc.). Many CAD systems that support such modeling functions are history-based systems. This means that the creation history of the design features is preserved through aperiodic data flows that typically connect the aforementioned geometric features together through input and output links. The history-based modeling paradigm has been well known since the early 80s. The modeled object is described by two persistent data representations: the history and the B-rep (i.e., boundary representation). The B-rep is the result of the calculations defined in the history. When the modeled object is represented, the shape of the part displayed on the computer screen is the B-rep (e.g., a tessellation of the B-rep). The history of a part is the design intent. Essentially, the history collects information about the operations that a modeled object has undergone. A B-rep can be saved with its history to facilitate viewing a complex part. The history can be saved with the B-rep to enable design changes to the part according to the design intent.

[0081] A PLM system further means any system adapted to the management of modeled objects that represent physically manufactured products (or products to be manufactured). In a PLM system, the modeled objects are therefore defined by data suitable for the manufacture of the physical objects. These can usually be dimensional and / or tolerance values. It is in fact better to have such values ​​in order to manufacture the object correctly.

[0082] CAE solution further means any solution, whether software or hardware, adapted to the analysis of the physical behavior of a modeled object. A well-known and widely used CAE technique is the Finite Element Model (FEM), hereinafter equivalently called CAE model. FEM usually involves the division of the modeled object into elements, i.e. finite element meshes, whose physical behavior is calculated and simulated through equations. Such CAE solutions are offered by Dassault Systèmes under the trademark SIMULIA®. Another growing CAE technique involves the modeling and analysis of complex systems, composed of multiple components from different physical disciplines, without using CAD geometric data. CAE solutions allow the simulation and, therefore, the optimization, improvement and validation of the product to be manufactured. Such CAE solutions are offered by Dassault Systèmes under the trademark DYMOLA®. CAE can be used to verify that the new CAD model achieves various structural requirements, including, but not limited to, mass, stiffness, strength, durability, etc. Some of these requirements are sometimes called Key Performance Indicators (KPIs). For many industrial products (e.g., automobiles, aircraft, consumer packaged goods, high-tech products, etc.), these KPIs are in conflict with each other, e.g., lower mass usually also leads to lower stiffness. Therefore, optimization techniques are often applied to find the best trade-off between the KPIs.

[0083] CAM solution means any solution, whether software or hardware, adapted to manage the manufacturing data of a product. The manufacturing data generally includes data about the product to be manufactured, the manufacturing process, and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, they provide the CAM user with information about the feasibility of the manufacturing process, the time required, or the number of resources, such as specific robots, that can be used in a particular step of the manufacturing process, thus allowing decisions regarding management or required investments. CAM is a process that follows the CAD process and potentially the CAE process. For example, a CAM solution may provide information about machining or forming parameters that are consistent with an extrusion function provided in a CAD model. Such CAM solutions are offered by Dassault Systèmes under the trademarks CATIA, Solidworks, DELMIA®.

[0084] Therefore, CAD and CAM solutions are closely related. Indeed, CAD solutions focus on the design of a product or part, while CAM solutions focus on how to manufacture it. Designing a CAD model is the first step towards computer-aided manufacturing. Indeed, CAD solutions offer important features, such as feature-based modeling and boundary representation (B-rep), to reduce the risk of errors and loss of precision during the manufacturing process, which is handled with CAM solutions. In fact, the CAD model is intended to be manufactured. It is therefore a virtual twin, also called digital twin, of the object to be manufactured, with two objectives: - To verify the correct operation of the object to be manufactured in a specific environment; and -Ensuring the manufacturability of the object being produced.

[0085] PDM stands for Product Data Management. A PDM solution is any solution, software or hardware, adapted to manage any kind of data related to a particular product. A PDM solution can be used by all the stakeholders involved in the product's life cycle: mainly engineers, but also project managers, finance people, sales people, and buyers. A PDM solution is generally based on a product-oriented database. It allows each stakeholder to share consistent data about their products and thus prevents each stakeholder from using different data. Such a PDM solution is offered by Dassault Systèmes under the trademark ENOVIA®.

[0086] As explained above, the design method operates on a CAD model and the conversion method outputs CAD objects (CAD curves) that may form or be included in a CAD model. A CAD model may include or be composed of feature trees and / or B-reps. Such models may originate from CAE models or may result from a CAE to CAD conversion process.

[0087] The CAD model may be feature-based (e.g., the CAD model is composed of a feature tree and, optionally, a corresponding B-rep obtained by executing the feature tree). The feature-based 3D model allows for detecting and automatically resolving geometric errors in the CAD model, such as collisions that would affect the manufacturing process (e.g., during the determination of the manufacturing or CAM files described later in this specification). A collision is, for example, an interpenetration between two parts in the 3D model due to their relative movement. Furthermore, this collision may sometimes only be detected via a finite element analysis based on the CAD feature-based model. Thus, the resolution of the collisions can be performed together with or automatically by the CAD solution by iteratively changing the parameters of the features and performing a finite element analysis.

[0088] As another example, feature-based 3D models allow for the automatic creation of toolpaths for machines via computer numerical control (CNC) (e.g., during the determination of manufacturing or CAM files, described later in this specification). With CNC, each object to be manufactured gets a custom computer program that is stored in and executed by the machine control unit, a microcomputer coupled to the machine. This program contains instructions and parameters that the machine tool will follow. Milling machines, lathes, routers, grinders, and lasers are examples of common machine tools whose operations can be automated using CNC.

[0089] An important feature of CAD models is that they can be precisely and unambiguously designed by chaining a small number of high-level, parameterized design operations (e.g., including but not limited to, sketching, extruding, chamfering, etc.) and then edited by modifying the high-level parameters. That is, this is an important distinction from polyhedral representations such as triangular surface meshes, which can represent arbitrary 3D shapes but do not offer the modification or parameterization capabilities required in the industrial design context.

[0090] Since CAD models are parameterized models of parts / products, CAD models 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, making CAD models lighter in terms of storage and memory footprint. Thus, working on a CAD model reduces memory requirements for the underlying system compared to, for example, a CAE model, and further facilitates the editability of the model. That is, the CAE-to-CAD conversion process actually not only transforms the CAE model into a more easily editable CAD model, but also compresses the CAD model into a CAD model that is lighter in terms of memory requirements (e.g., footprint, etc.).

[0091] The generation of custom computer programs from CAD files can be automated. As such, such generation can be error-proof and ensure perfect reproduction of the CAD model in the manufactured product. CNC is believed to offer greater precision, complexity, and repeatability than is possible through hand machining. Other advantages include greater accuracy, speed, and flexibility, as well as capabilities such as contouring, which allows for the milling of contour shapes, including those created in a 3D design.

[0092] 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 can 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 B-rep tessellation, etc.). In an example, a B-rep represents a portion of a model object.

[0093] B-rep includes topological and geometric entities. Topological entities are faces, edges, and vertices. Geometric entities are 3D objects, i.e. faces, planes, curves, lines, and points. By definition, a face is the boundary of a surface, called a supporting surface. An edge is the boundary of a curve, called a supporting curve. A vertex is a point in 3D space. They are related to each other in the following way: the boundary of a curve is defined by two points (vertices) lying on the curve. The boundary of a surface is defined by its boundary, which is the set of edges lying on the surface. The boundaries of edges of a face are connected by sharing a vertex. Faces are connected by sharing an edge. Two faces are adjacent if they share an edge. Similarly, two edges are adjacent if they share a vertex. In a CAD system, B-rep collects the "is bounded by" relationship, the relationship of the topological entities and the supporting medical shapes, and the mathematical description of the supporting geometry in an appropriate data structure. An interior edge of a B-rep is an edge that is shared by exactly two faces. By definition, a boundary edge is not shared and only encloses 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 interior 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 a space that (virtually) encloses material. Open B-reps are used to model 3D skins, which represent 3D objects that are small enough that their thickness can be ignored.

[0094] An important advantage of B-rep over other representation types used in CAD modeling is its ability to accurately represent any shape. All other representations used, such as point clouds, distance fields, and meshes, perform approximations of the shape in order to represent it by discretization. B-rep, on the other hand, contains the surface equations that represent the exact design and therefore constitutes a true "master model" for further manufacturing, whether it be the generation of toolpaths for CNC or discretization to a sample density suitable for a given 3D printer technology. In other words, by using B-rep, the 3D model can be an accurate representation for 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, B-rep supports true contact modeling between surfaces. Finally, B-rep allows for a smaller memory and / or file footprint, firstly because the representation contains only parametric surfaces. In other representations, such as meshes, the equivalent surface consists of thousands of triangles. Second, B-rep does not contain any history-based information.

[0095] The aforementioned process including the conversion method and / or the design method and / or both may be included in a production process, which may comprise the step of producing a physical product corresponding to the CAD model after carrying out the conversion method, the design method and / or the process integrating both. This production process may consist of the following steps: - executing (e.g. automatically) the conversion method, the design method, and / or a process integrating both; - Using the obtained CAD model to manufacture the part / product.

[0096] Using a CAD model for manufacturing designates any real-world action or sequence of actions that are involved / participate in the manufacturing of the product / part represented by the CAD model. Using a CAD model for manufacturing may, for example, consist of the following steps: - editing the obtained CAD model, - performing simulations based on the CAD model or a corresponding CAE model (e.g. after a CAE to CAD conversion process, the CAE model from which the CAD model originates), such as simulations for validation of mechanical, use and / or manufacturing properties and / or constraints (e.g. structural simulation, thermodynamic simulation, aerodynamic simulation, etc.), - editing the CAD model based on the simulation results; Optionally (i.e. depending on the manufacturing process used, the manufacturing of the mechanical product may or may not include this step), a step of (e.g. automatically) determining a manufacturing file / CAM file based on the (e.g. edited) CAD model for the manufacturing / production of the manufactured product, - sending the CAD and / or manufacturing / CAM files to the factory; and / or - (e.g. automatically) producing / manufacturing the machine product originally represented by the model output by the method based on the determined manufacturing / CAM file or CAD model, which may include (e.g. automatically) supplying the manufacturing / CAM file and / or CAD file to a machine that performs the manufacturing process.

[0097] This final step of production / manufacturing may be called the manufacturing or production step. This step produces / machines the part / product based on the CAD model and / or CAM file, for example when the CAD model and / or CAD file are fed to one or more manufacturing machines or computer systems controlling the machines. The manufacturing step may consist of performing any known manufacturing process or sequence of manufacturing processes, for example one or more additive manufacturing steps, one or more cutting steps (such as 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 (such as milling steps), and / or one or more punching steps. The design method improves the design of the model (CAE or CAD) representing the part / product, so that the manufacturing and its productivity are also improved.

[0098] Editing the CAD model may consist of performing one or more edits in the CAD model by a user (i.e., a designer), for example, by using a CAD solution. The modification of the CAD model may include one or more modifications of each of the geometry and / or parameters of the CAD model. These modifications may include any modification or set of modifications performed on the feature tree of the model (e.g., feature parameters, and / or specifications, etc.) and / or modifications performed on the displayed representation of the CAD model (e.g., B-rep, etc.). These modifications are modifications that maintain the technical functionality of the part / product, i.e., the user only performs modifications that may affect the geometry and / or parameters of the model, but that are aimed at making the CAD model more technically suitable for downstream use and / or manufacturing of the part / product. Such modifications may include any modification or set of modifications that make the CAD model more technically suitable for the specifications of a machine used in a downstream manufacturing process. Such modifications may additionally or alternatively include any modification or set of modifications that make the CAD model more technically suitable for further use of the product / part once manufactured, such modification or set of modifications being made, for example, based on the results of a simulation.

[0099] The CAM file may consist of a manufacturing step-up model obtained from the CAD model. The manufacturing step-up may include all data required to manufacture the machined product such that the machined product has a geometric shape and / or material distribution corresponding to those captured by the CAD model, possibly up to manufacturing tolerance errors. Determining the production file may include applying any CAM (Computer-Aided Manufacturing) or CAD-to-CAM solution (e.g., any automated CAD-to-CAM conversion algorithm, etc.) to determine (e.g., automatically) the production file from the CAD model. Such a CAM or CAD-to-CAM solution may include one or more of the following software solutions, which allow for 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: -Fusion 360, -FreeCAD, -CATIA, SOLIDWORKS, - NC Shop Floor programmer from Dassault Systèmes, as exemplified below: https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer, - NC Mill-Turn Machine Programmer from Dassault Systèmes, as exemplified below: https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer, - Powder Bed Machine Programmer from Dassault Systèmes, as exemplified below: https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer.

[0100] The product / part may be an additive manufacturing capable part, i.e. a part to be manufactured by additive manufacturing (i.e. 3D printing). In this case, the production process proceeds directly to the production / manufacturing step by directly (e.g. automatically) feeding the CAD model to the 3D printer, without including a step of determining a CAM file. 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 the 3D printing is initiated by the operator of the 3D printer). In other words, the 3D printer receives the CAD model fed to the 3D printer (e.g. automatically), reads the CAD model (e.g. automatically), and prints the part (e.g. automatically) by, for example, adding material layer by layer, to reproduce the geometric shape and / or material distribution captured by the CAD model. Thereby, the 3D printer adds material to accurately reproduce in reality the geometric shape and / or material distribution captured by the CAD model, up to the resolution of the 3D printer, and optionally with or without tolerance errors and / or manufacturing corrections. This manufacturing may include determining such manufacturing corrections and / or tolerance errors, for example, by a user (e.g., an operator of the 3D printer) or automatically (e.g., by the 3D printer or a computer system controlling it), for example, by modifying a CAD file to match the specifications of the 3D printer. The production process may additionally or alternatively comprise determining (e.g., automatically by the 3D printer or a computer system controlling it) from the CAD model, for example, a print direction to minimize the amount of overhang (as described in EP 3327593, incorporated herein by reference), layer slicing (i.e., determining the thickness of each layer, the path / trajectory for each layer, and other characteristics for the 3D printer header (e.g., for the laser beam, e.g., path, speed, intensity / temperature, and other parameters, etc.).

[0101] The product / part may alternatively be a machined part (i.e. a part manufactured by machining), such as a milled part (i.e. a part manufactured by milling). In such a case, the production process may comprise 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 determination of the CAM file includes a step of checking whether the CAD model has any geometric peculiarities (e.g. errors or artifacts, etc.) that may affect the production process, and modifying such peculiarities (e.g. automatically). For example, machining or milling based on the CAD model may not be performed if the CAD model still contains sharp edges (because the machining or milling tool is not able to create the sharp edges), and in such a case, the determination of the CAM file may include a step of rounding or filleting such sharp edges (e.g. by a round or fillet radius that corresponds substantially equally to the radius of the cutting head of the machining tool up to the tolerance error) (e.g. automatically) so that the machining or milling based on the CAD model can be performed. More generally, the determination of the CAM file may automatically consist of rounding or filleting geometric shapes in the CAD model that are not compatible with the radius of the machining / milling tool to enable machining / milling. This check and possible corrections (e.g., rounding or filleting geometric shapes) may be performed automatically as described above, but may also be performed by a user (e.g., a machining engineer, etc.) who performs the corrections manually to the CAD and / or CAM solution, e.g., a solution that forces the user to perform modifications that make the CAD model more compatible with the specifications of the tool used in the machining process.

[0102] Furthermore, for the check, the determination of the CAM file may include a step of determining (e.g., automatically) a machining path or milling path, i.e. a path to be taken by the machining tool to machine the product. This path may consist of 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 calculating (e.g., automatically) these coordinates and / or trajectory based on a CAD model. This calculation may be performed, for example, based on the calculation of the boundaries for 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. EP21306754.9, filed on December 13, 2021 by Dassault Systèmes, which is incorporated herein by reference. It should be understood that this path may be, for example, a single path that the tool follows continuously, without interrupting contact with the material to be cut. Alternatively, the path may be a concatenation of a series of sub-paths to be followed by the tool in a fixed sequence, e.g., each path is followed by the tool successively without interrupting contact with the material to be cut. Optionally, determining the CAM file may then include setting (e.g., automatically) machine parameters including, e.g., cutting speed, cut / pierce height, and / or mold opening stroke based on the determined path and machine specifications. Optionally, determining the CAM file may then include configuring (e.g., automatically) a nesting operation in which the CAM solution determines the optimal orientation of the part to maximize machining efficiency.

[0103] Thus, in this case, determining the CAM file for a machined or milled part generates and outputs a CAM file, which includes the machining path and the optionally set machine parameters and / or configured nesting machining specifications. This output CAM file can then be (e.g., directly and automatically) fed to a machining tool, and / or the machining tool then receives programming by reading the file (e.g., directly and automatically), whereupon the production process includes a production / manufacturing process, in which the machine performs the machining of the product according to the production file, e.g., by directly and automatically executing the production file. This machining process includes a step in which the machining tool cuts a block of real-world material, e.g., to a tolerance error (e.g., for milling, tens of microns), to reproduce the geometric shape and / or material distribution captured by the CAD model.

[0104] The product / part may alternatively be a molded part, i.e. a part produced by molding (e.g., injection molding, etc.). 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 molded part. Determining the CAM file may include (e.g., automatically) performing a series of molding checks based on the CAD model to check that the geometry and / or material distribution captured by the CAD model is compatible with molding, and (e.g., automatically) performing appropriate modifications if the CAD model is not compatible with molding. Performing these checks and appropriate modifications (if any) may alternatively be performed automatically or by a user, for example, using a CAD and / or CAM solution that allows a user (e.g., a molding engineer, etc.) to perform appropriate modifications to the CAD model, but constrains the user's modifications to fit the CAD model to the specifications of the molding tool. These checks may include 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 required for the demolding of the product as known per se from the molding. Determining the CAM file may then further include determining, based on the CAD model, the amount of liquid material to be used for molding and / or the time for the liquid material to harden / solidify in the mold and outputting a CAM file including these parameters. The production process then includes performing the molding (e.g., automatically) based on the output file, where the mold molds the liquid material for the determined hardening time into a shape corresponding to the geometry and / or material distribution captured by the CAD model, for example up to tolerance errors (e.g., up to the incorporation of draft angles or up to the modification of draft angles for demolding, etc.).

[0105] The product / part may alternatively be a stamped part, sometimes also called a "stamping part", i.e. a part to be manufactured in 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 have one or more flanges, for example if the part includes a flange, and in the latter case, excess material may be removed to form the developed state of the flange or flanges of the part, as known per se from the stamping process. The CAD model is thus composed of a part representing the part without a flange (possibly the whole part) and an outer excess patch part representing the flange possibly with excess material (if any). This excess patch part may present G2 continuity over a certain length and then G1 continuity over a certain length.

[0106] In the case of this stamping operation, the determination of the CAM file may include determining (e.g., automatically) the parameters of the stamping machine, e.g., the size of the stamping die or punch, and / or the stamping force, based on the geometry and / or material distribution of the virtual product captured by the CAD model. If the CAD model also includes a representation of the excess material to be removed to form the developed state of one or more flanges of the part, the excess material to be removed may be cut, e.g., by machining, and determining the CAM file may also include determining a corresponding machining CAM file, e.g., as described above. If one or more flanges are present, determining the CAM file may include determining the geometric specifications of the G2 and G1 continuity portions, which allow the flange to be folded in a folding process along the length of the G2 continuity towards the inner surface of the stamped part after the stamping operation itself and the removal of the excess material. The CAM file thus determined may thus include the parameters of the stamping tool, the aforementioned specifications for optionally folding the flange (if any), and the machining production file for optionally removing the excess material (if any).

[0107] The stamping production process may then, for example, directly and automatically output a CAM file and (for example, automatically) execute a stamping process based on the file. The stamping process may include stamping (for example, punching, etc.) a portion of material to form a product as represented by the CAD file, i.e., possibly with an unfolded flange and excess material (if any). Where appropriate, the stamping process may include cutting the excess material based on the machining production file and folding the flange based on the aforementioned specifications for folding the flange, thereby folding the flange in its G2 continuity length and giving a smooth appearance to the outer boundary of the part. In this latter case, the shape of the part once manufactured differs from its virtual counterpart represented by the CAD model in that the excess material has been removed and the flange has been folded, but the CAD model represents the part with the excess material and the flange in an unfolded state.

[0108] The conversion method and the design method are 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 thus performed by a computer, possibly fully automatically or semi-automatically. In these examples, triggering at least some of the steps of the method may be performed by user and computer interaction. The level of user and computer interaction required may depend on the level of automation expected and may be balanced against the need to realize the user's wishes. In these examples, this level may be user-defined and / or predefined.

[0109] A typical example of a computer implementation of the method is to execute the method using a system adapted for this purpose. The system may include a processor coupled to a memory and a graphical user interface (GUI), the memory having recorded thereon a computer program including instructions for executing the method. The memory may also store a database. The memory is any hardware adapted for such storage, and may in some cases be made up of multiple physically distinct parts (e.g., one for the program and possibly one for the database).

[0110] FIG. 49 shows an example of a system, which is a client computer system, for example a user's workstation.

[0111] The client computer in 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 device controller 1020 manages access to mass memory devices such as a hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory including, by way of example, 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 foregoing 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 include a haptic device 1090, such as a cursor control device, keyboard, or the like. The cursor control device is used in the client computer to allow a user to selectively place a cursor at any desired location on the display 1080. In addition, the cursor control device allows a user to select various commands and input control signals. The cursor control device includes a number of signal generating devices for inputting control signals into the system. Typically, the cursor control device may be a mouse, with the buttons of the mouse being used to generate the signals. Alternatively or additionally, the client computer system may include a sensitive pad, and / or a sensitive screen.

[0112] The computer program may include instructions executable by a computer, which instructions include means for causing the system to carry out 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 an article tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of the method may be executed by a programmable processor executing a program of instructions to perform the functions of the method by operating on input data and generating output. Thus, the processor may be programmably coupled to receive data and instructions from, and to transmit data and instructions to, the 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 interpreted language. The program may be a full installation program or an update program. Application of the program on the system in either case results in instructions for performing the method. The computer program may alternatively be stored and executed on a server in a cloud computing environment, the server being in communication with one or more clients via a network. In such a case, a processing unit executes the instructions constituted by the program, thereby causing the method to be performed on the cloud computing environment.

Claims

1. 1. A computer-implemented method for converting a subdivision curve controlled by a base mesh into a corresponding computer-aided design (CAD) curve format, the base mesh being formed by vertices connected by one or more edges, the subdivision curve defining at least a portion of a product to be manufactured, the method being for designing the product, converting the subdivision curve into a G2 continuous CAD curve formed by joining one or more Bezier curves, each Bezier curve corresponding to a respective edge of the base mesh, a control polygon of the CAD curve being calculated from the base mesh, the conversion being based on a Catmark-Clarke subdivision process. A method comprising:

2. The method of claim 1 , wherein each Bezier curve is associated with a control polygon having control points that are linearly dependent on the vertices of the base mesh.

3. The method of claim 2 , wherein for each Bezier curve, the control points of the control polygon associated with the Bezier curve correspond to a product of the vertices of the base mesh and a matrix.

4. The method of claim 3 , wherein for each Bezier curve, the vertices of the base mesh include the vertices connected by each edge to which the Bezier curve corresponds and the vertices of adjacent edges.

5. The method of claim 4 , wherein the matrix enables sharpness preservation in the Bezier curve if at least one of the vertices connected by the respective edge is sharp.

6. The method of claim 4 or 5, wherein the matrix enables weight preservation in the Bezier curve if at least one of the vertices connected by the respective edge has a weight.

7. 7. A CAD model representing a product to be manufactured, said CAD model comprising at least a portion defined by a subdivision curve and obtained by a step of converting a base mesh of said subdivision curve into a corresponding CAD curve format according to the method of any one of claims 1 to 6, said at least a portion corresponding to a G2 continuous CAD curve formed by joining one or more Bézier curves, the number of said Bézier curves being equal to the number of sides of the base mesh of said subdivision curve, said base mesh forming a control polygon of said CAD curve.

8. 8. A computer-implemented method of using a CAD model according to claim 7, said method comprising: performing one or more modifications in the base mesh of the subdivision curve, the one or more modifications being passed to the at least a portion of the CAD model; and / or applying one or more CAD operations to said at least a portion. A method comprising:

9. The step of performing one or more modifications in the base mesh of the subdivision curve comprises: Inserting a vertex; removing vertices; adding chamfers at the vertices; expanding said curve by extruding extreme vertices; adding an attraction to one or more vertices; and / or Steps to change topology from open to closed or vice versa The method of claim 8, comprising one or more of:

10. A computer program comprising instructions which, when executed by a computer system, cause said system to carry out the method according to any one of claims 1 to 6 and / or the method according to claim 8 or 9.

11. A computer readable data storage medium having recorded thereon a computer program according to claim 10 and / or a CAD model according to claim 7.

12. A computer system comprising a processor coupled to a memory, the memory having stored therein a computer program according to claim 10 and / or a CAD model according to claim 7.