Subdivision curve deformation
The transformation of subdivision curves into a CAD curve format addresses the inefficiencies in manipulating complex curves in CAD systems, improving ergonomics and efficiency by enabling the use of CAD transformation operators on these curves.
Patent Information
- Application Number
- JP2024173059
- 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
AI Technical Summary
Existing CAD systems face challenges in efficiently creating and manipulating complex curves, particularly in Class A modeling, due to limitations with Bezier and NURBS curves, such as operational complexity, high memory consumption, and lack of ergonomics.
A computer-implemented method for transforming subdivision curves into a CAD curve format, allowing for the integration of subdivision curves into CAD software and enabling the application of CAD transformation operators to these curves, thereby improving the ergonomics and efficiency of curve manipulation.
The method enhances the ergonomics and efficiency of curve manipulation in CAD systems by allowing seamless integration and manipulation of subdivision curves, reducing the complexity and memory requirements associated with traditional Bezier and NURBS curves.
Smart Images

Figure 2025062588000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to the field of computer programs and systems, and more particularly to methods, systems, and programs for deformation of subdivision curves. [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 connected 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 means that to create complex shapes, multiple Bézier curves must be connected, thereby resulting in a large number of steps to generate a well-defined surface. Furthermore, the connections between Bézier curves must always 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 connected 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.
[0011] Such an improved solution is provided by European Patent Application No. EP23306674.5, filed on 2 October 2023 by Dassault Systèmes, which discloses a computer-implemented method for converting a subdivision curve into a corresponding computer-aided design (CAD) curve format, a CAD model representative of a product to be manufactured, and a method of using the CAD model, the CAD model being defined by the subdivision curve and including at least a portion obtained according to a conversion of the subdivision curve into a corresponding CAD curve format, the conversion being performed according to a method for converting a subdivision curve into a corresponding computer-aided design (CAD) curve format.
[0012] The solution proposed in European patent application EP23306674.5 allows, inter alia, to integrate and use subdivision curves in modern CAD software, and in particular to supply subdivision curves as input to most known CAD operators. It is an object of the present disclosure to further improve the application of CAD operators to subdivision curves, and in particular to provide a solution for applying CAD transformation operators to CAD objects defined by subdivision curves, including CAD curve formats derived from the transformation method of European patent application EP23306674.5. Summary of the Invention
[0013] Therefore, a computer-implemented method for applying a CAD deformation operator to a given curve is provided. The given curve is a result of converting a corresponding subdivision curve defined by a base mesh into a computer-aided design (CAD) curve format. The CAD deformation operator is configured to deform an input CAD object so as to create a contact geometric relationship with another CAD object. The method comprises converting the given curve into a format readable by the CAD deformation operator. The method further comprises applying the CAD deformation operator to the converted given curve. The method further comprises converting a result of the application of the CAD deformation operator back into the CAD curve format. The method may be referred to as "the deformation method".
[0014] The method may include one or more of the following: The given curve includes a set of unitary curves each pointed to by an edge, and transforming the given curve includes concatenating the set of unitary curves in the given curve pointed to by the edges into one or more single NURBS curves. - The unitary curve family of a given curve is G2 continuous, and its connections are thereby deviation-free. - converting the result of application of the CAD deformation operator back into CAD curve format includes decomposing each of one or more NURBS curves into unitary curves, the unitary curves resulting from the decomposition corresponding to the given unitary curve family. -The number of unitary curve families resulting from the decomposition is equal to the number of given unitary curve families. the method further comprises, prior to the converting step: Detecting sharp vertices in the base mesh; Identifying corresponding sharp vertices in a given curve; partitioning the given curve according to the identified sharp vertices, such that the given curve is partitioned into a set of curves each bounded by either two sharp vertices or one sharp vertex and a boundary vertex; The steps of transforming, applying, and transforming back are applied based on the curve resulting from the division. - the operator is one of the following: 〇 Curve fitting operation, ○ 3D point matching operation, - Operations to fit the boundary of a surface, Partially fitting a curve to another curve, - partial fitting to one or more surfaces, A partial polygon fit operation, or 〇G2 symmetry with respect to the symmetry plane and / or The steps of converting, applying and converting back are automated.
[0015] Furthermore, a computer program is provided comprising instructions for carrying out the transformation method. Optionally, the computer program may also comprise instructions for carrying out the present transformation method and / or the present design method disclosed in European patent application EP23306674.5.
[0016] Additionally, there is provided a computer readable data storage medium having a computer program recorded thereon.
[0017] Further provided is a system comprising a processor coupled to a memory, the system having a computer program stored on the memory.
[0018] Furthermore, there is provided a device comprising a data storage medium having a computer program recorded thereon.
[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. As such, the device may form in whole or in part a computer system (e.g., the device is a subsystem of an overall system). The system may further comprise 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, in which: - Figures 1 to 48 illustrate the method of European patent application EP23306674.5. 49 to 70 illustrate this variant method. - Figure 71 shows an example of a system.
[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] 13A-13C are diagrams illustrating the present deformation method. [Figure 50] 13A-13C are diagrams illustrating the present deformation method. [Figure 51] 13A-13C are diagrams illustrating the present deformation method. [Figure 52] 13A-13C are diagrams illustrating the present deformation method. [Diagram 53] 13A-13C are diagrams illustrating the present deformation method. [Figure 54] 13A-13C are diagrams illustrating the present deformation method. [Figure 55] 13A-13C are diagrams illustrating the present deformation method. [Figure 56] 13A-13C are diagrams illustrating the present deformation method. [Figure 57] 13A-13C are diagrams illustrating the present deformation method. [Figure 58] 13A-13C are diagrams illustrating the present deformation method. [Figure 59] 13A-13C are diagrams illustrating the present deformation method. [Figure 60] 13A-13C are diagrams illustrating the present deformation method. [Figure 61] 13A-13C are diagrams illustrating the present deformation method. [Figure 62] 13A-13C are diagrams illustrating the present deformation method. [Figure 63] 13A-13C are diagrams illustrating the present deformation method. [Figure 64] 13A-13C are diagrams illustrating the present deformation method. [Figure 65] 13A-13C are diagrams illustrating the present deformation method. [Figure 66] 13A-13C are diagrams illustrating the present deformation method. [Figure 67] 13A-13C are diagrams illustrating the present deformation method. [Figure 68] 13A-13C are diagrams illustrating the present deformation method. [Figure 69] 13A-13C are diagrams illustrating the present deformation method. [Figure 70] 13A-13C are diagrams illustrating the present deformation method. [Figure 71] FIG. 1 illustrates an example of the present system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0022] A computer-implemented method for applying a CAD deformation operator to a given curve, the given curve resulting from a transformation of a corresponding subdivision curve defined by a base mesh into a computer-aided design (CAD) curve format. The CAD deformation operator is configured to deform an input CAD object so as to create a contact geometric relationship with another CAD object. The method comprises converting the given curve into a format readable by the CAD deformation operator. The method further comprises applying the CAD deformation operator to the transformed given curve. The method further comprises converting a result of the application of the CAD deformation operator back into the CAD curve format. The method may be referred to as "the deformation method", as previously described.
[0023] The present deformation method constitutes an improved solution for using subdivision curves in CAD software.
[0024] In particular, the method allows applying a CAD deformation operator to a given curve resulting from the conversion of a corresponding subdivision curve defined by a base mesh into a CAD curve format. The given curve may for example be a G2 continuous CAD curve resulting from applying the conversion method of European Patent Application No. EP23306674.5 to a subdivision curve. The method allows applying any given CAD deformation operator to such a curve. To that end, the method converts the given curve into a format readable by the CAD deformation operator, applies the CAD deformation operator and converts the result back into the CAD curve format.
[0025] Moreover, all these steps (transformation, application of CAD operators, and inverse transformation) can be automated, i.e. applied automatically by the computer executing the method (e.g. when the user activates a command to initiate the application of a CAD operator). This makes the method ergonomic in a context where design ergonomics have already been improved due to the use of subdivision curves, as explained in European Patent Application EP23306674.5. Moreover, from the user's (designer's) point of view, the method steps are transparent, since they are performed automatically (and for example within a few seconds, e.g. less than 10, 5, 2, or 1 second). Moreover, the method can be performed while a given curve is displayed. This means that the end user only sees the given curve and the operations (deformations) they are applying to it, but does not see the method steps that are performed automatically as a background process.
[0026] Furthermore, the deformation method allows the use of any known CAD deformation operator configured to deform an input CAD object to create a contact geometric relationship with another CAD object, such as a curve fit operation, a 3D point fit operation, a surface boundary fit operation, a partial fit operation to another curve, a partial fit operation to one or more surfaces, a partial fit operation to a polygon, or G2 symmetry with respect to a symmetry plane.
[0027] It should be noted that writing a CAD deformation operator for a subdivision curve, instead of processing the subdivision curve in a form compatible with the CAD deformation operator, as the present deformation method does, may not make it possible to obtain a quality result allowed by the use of traditional CAD operators, which the present method makes possible. In fact, the basic mesh may not provide enough degrees of freedom to meet the connection requirements. For example, matching a subdivision curve representing a straight line will not make it possible to connect the latter to a context with a G2 continuity level, since only two vertices would be provided (only one to move for the calculation).
[0028] The deformation method is for applying a CAD deformation operator to a given curve, meaning that the method takes the given curve as input, performs the steps of the method for applying the operator (transform, apply, transform back), and outputs the result of applying the operator to the input curve in CAD curve format.
[0029] The given curve results from the conversion of the corresponding subdivision curve into a CAD curve format. As explained above, the given curve may be the output of the application of the conversion method disclosed in European Patent Application No. EP23306674.5 to the subdivision curve, and possibly after modifying said output according to the design method disclosed in European Patent Application No. EP23306674.5. Thereby, the given curve may be a G2 continuous CAD curve formed by one or more Bézier curves, each corresponding to a respective edge in the base mesh. The given curve may have the following topological data structure: a computer object "body" references a topological object "wire", which references one or more topological object "edges" (one per edge of the base mesh), each of which references a respective Bézier curve (each corresponding to an edge of the base mesh corresponding to the topological "edge" object), the Bézier curves being geometric objects. Each edge of the base mesh corresponds to a topological edge in the given curve, and each vertex of the base mesh corresponds to a topological vertex in the given curve, and vice versa. Each Bézier curve is sometimes called a "unitary curve" of the given curve, whereby it is formed by the joining of one or more unitary curves.
[0030] For the sake of completeness, the content of European patent application EP23306674.5 is provided here.
[0031] European Patent Application No. EP23306674.5 provides 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 for the CAD curve is calculated from the base mesh. The conversion is based on the Catmark-Clarke subdivision process. The method is sometimes referred to as "the conversion method" as described above.
[0032] The method constitutes an improved solution for using quality curves in the design of products to be manufactured.
[0033] 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.
[0034] 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.
[0035] 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 deform and does not require as many computer objects (control points) to store and process.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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).
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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 converting step. This may be performed in real time, i.e. the time from providing the subdivision curve to the result of the converting step is less than a few seconds, e.g. less than 10, 5, 2 or 1 second. This means that the converting step is very fast and in real time, whereby the converting 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 converting 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 transforming step), and / or displaying the control polygons of each Bézier curve, e.g., once the transforming 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.
[0044] The transforming step is sometimes also called the conversion step. This transforming / conversion step is done 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 curvilinear 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 can 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.
[0045] 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 in turn 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.
[0046] 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.
[0047] 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:
[0048]
number
[0049] By denoting the subdivision vertices at level n, the subdivision curve is a set of vertices derived from existing vertices.
[0050]
number
[0051] and the existing edges
[0052]
number
[0053] 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):
[0054]
number
[0055]
number
[0056] In these implementations, extreme or sharp vertices are left alone.
[0057] 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.
[0058] 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.
[0059] 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 the edges of the base mesh that include at least one vertex in each of said edges).
[0060] 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:
[0061]
number
[0062] It is.
[0063] This formula is illustrated by edge P2-P3 in FIG. 15A, but the same corresponding formula is used for the other edges.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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 for improving 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 are described in paragraphs
[0033] to
[0037] of European Patent Application Publication No. EP1750228A2,
[0068]
[0077] and as disclosed in FIG. 3, the method may be moved by solving a linear system to optimize the curvature quality of the shape. Using the present disclosure, the method may 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 may comprise, for each edge having at least one irregular vertex, defining a base mesh of a local subdivision surface, using the disclosure of EP 1 750 228 A2, 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 may 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.
[0068] Further advantages and examples of the present conversion method will now be described.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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.
[0076] 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.
[0077] 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.
[0078] 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 need to be created and then connected. This connection needs to be maintained using other paradigms (such as constraints or matching), which later 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.
[0079] European patent application EP23306674.5 also provides a CAD model, which represents the product to be manufactured. The CAD model is defined by a subdivision curve and consists of at least a portion obtainable following a conversion of a base mesh of the subdivision curve into a corresponding CAD curve format, said conversion being performed according to the conversion method. Said at least a portion corresponds to a G2 continuous CAD curve formed by the joining of 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.
[0080] At least a portion of it is obtainable following a conversion of the base mesh of the subdivision curve into a corresponding CAD curve form, where the conversion is performed according to the present conversion 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 transforming step in the present conversion 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 conversion 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 conversion 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 in the present conversion 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.
[0081] European Patent Application EP23306674.5 also provides a computer-implemented method of using a CAD model, the method of use comprising the step of performing one or more modifications of the base mesh of the subdivision curve, the one or more modifications being passed to said at least one 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 one portion. The step of performing one or more modifications of the base mesh of the subdivision curve may comprise 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.
[0082] 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.
[0083] 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.
[0084] Here, this modification method will be further explained.
[0085] The CAD deformation operator is configured to deform an input CAD object to create a contact geometric relationship with another CAD object. "CAD object" means a CAD model or a portion of a CAD model, or more generally, any computer object adapted for use by CAD software. "Contact geometric relationship" means a direct geometric contact, such as matching contact, conforming contact, or tangent contact, or an indirect geometric contact, such as a symmetry or distance constraint. The operator is one of a fit to curve operation, a match to 3D points operation, a fit to surface boundary operation, a partial fit to another curve operation, a partial fit to one or more surfaces operation, a partial fit to a polygon operation, and G2 symmetry with respect to a symmetry plane.
[0086] CAD deformation operators are well known in CAD. However, they work in the Bezier or NURBS art. That is, CAD deformation operators are configured to be applied to single (i.e., topologically single-cell, etc.) NURBS or Bezier curves. That is, such curves are associated with a single topological cell (e.g., an edge). Conversely, a given curve in the present method may be a junction of Bezier curves, each Bezier curve being associated with a single topological cell (edge), creating a one-to-one correspondence between such edges and edges of the base mesh. Thus, the result of converting a subdivision curve into CAD format is composed of multiple topological cells, each of which points to an underlying Bezier curve. In other words, a given curve has a multi-cell topological structure, but known CAD deformation operators are configured to be applied to Bezier or NURBS curves associated with a single-cell topological structure.
[0087] FIG. 49 illustrates an example of a CAD transformation operator, the matching operator, which takes curve 1 as input and transforms it to match curve 2 using either G0 or G1 connections. FIG. 50 illustrates the "partial fitting to another curve" CAD transformation operator (left diagram) and the "partial fitting to a surface" CAD transformation operator (right diagram). FIG. 51 illustrates the "G2 symmetry in regards to a symmetry plane" CAD transformation operator.
[0088] The deformation method comprises converting a given curve into a form readable by a CAD deformation operator. As explained above, such an operator does not receive as input a number of Bézier curves, each pointed to by a different topological cell. Therefore, the conversion involves converting the junctions of Bézier curves (also called "unitary curves") that form the given curve, each pointed to by a respective topological edge (as explained above), into one or more NURBS curves, each pointed to by a single topological cell.
[0089] Prior to this transformation, the method may comprise the steps of detecting sharp vertices in the base mesh and identifying corresponding sharp vertices in the given curve (i.e., sharp junctions / connections between unitary curves). FIG. 52 shows sharp vertices in an example of a subdivision curve. It should be noted that FIG. 52 shows sharp vertices for the subdivision curve, but each respective edge and vertex of the subdivision curve corresponds to a topological edge and vertex (i.e., there is a one-to-one correspondence). Thus, identifying sharp vertices on the subdivision curve or its base mesh results in identifying sharp vertices in the CAD curve format. FIG. 53 shows sharp vertices detected within the vertices (BM vertices) for the base mesh of the subdivision curve shown in FIG. 52. FIG. 54 shows the given curve resulting from the transformation of the subdivision curve shown in FIG. 53, and FIG. 55 shows its topology. To perform this detection and identification, the method may perform an analysis of the base mesh to obtain a sharpness attribute for each vertex of the mesh (this is the attribute that is stored on each vertex).
[0090] In addition to detecting and identifying sharp vertices, the method then comprises the steps of dividing the given curve according to the identified sharp vertices, and dividing the given curve into curves each bounded by either two sharp vertices or one sharp vertex and a boundary vertex. The curve resulting from the dividing step forms a part of the given curve. Then, the transforming, applying and transforming back steps are applied based on the curve resulting from the dividing step. Thereby, it is meant that these steps are applied to the curve resulting from the dividing step, which will be affected by the CAD deformation operator. These steps may not be applied to other curves, but may be used in the final curve reconstruction step, as described herein below. Which curves are affected by the CAD deformation operator depends on the operator and / or where on the given curve the designer wants to apply the operator. For example, in the case of a matching operator, there may be a single curve affected by the operator, which is one of the curves that includes the boundary vertex. For each curve resulting from the splitting step and affected by an operator, the method converts the curve into a form readable by a CAD deformation operator, then applies the CAD operator to the converted curve, and then converts the result back into CAD curve form. This splitting step thereby allows the deformation operation (performed by the deformation operator) to stop at sharp vertices, thereby avoiding destabilization of other parts of a given curve. This is illustrated in Figure 56 for an example of a matching deformation operator.
[0091] It should be understood that if a given curve does not have a sharp vertex, then the detection of the sharp vertex and the subsequent division of the given curve will not be performed, it can only be performed if there is at least one sharp vertex in the given curve.
[0092] In the implementation of the detection of sharp vertices and subsequent splitting, if the deformation operator is applied to the first vertex in a given curve (as illustrated in FIG. 57 for the matching operator), the vertices of the base mesh are analyzed from the second point to the (N-1)th point, where N is the number of points of the base mesh (points 1 to N). If the deformation is performed on the last vertex in a given curve (as illustrated in FIG. 58 for the matching operator), the vertices of the base mesh are analyzed in the reverse way (from point N-1 to point 2). In both cases, the analysis step stops at the first obtained sharp vertex, and the splitting step is performed only at this sharp vertex. FIGS. 57 and 58 show the obtained sharp vertices (surrounded by dotted lines) on which the splitting step is performed. If the deformation operator applies the deformation to both sides (i.e. on both curves including the boundary vertex), a detection is performed in both directions: from vertex 2 to vertex N-1 until a sharp vertex is found, and from vertex N-1 to vertex 2 until a sharp vertex is found. Then, at the first two sharp vertices found in the two directions, a splitting step is performed (this generates three curves, the curves between the two sharp vertices are not affected by the deformation). This last case is illustrated in FIG. 59, which shows that all the first two sharp vertices (still surrounded by dotted lines) have been identified (one per direction), and FIG. 60 shows that at each such sharp vertex, a splitting step is performed, thereby splitting the given curve into three curves. It should be noted that, contrary to what is shown in the figures, the vertices are not moved. This is merely for the purposes of illustration.
[0093] The transformation of a given curve may include a step of concatenating unitary curves (each of which is a Bézier curve corresponding to a respective edge in the base mesh and pointed to by a respective topological side). The unitary curves are concatenated into one or more single NURBS curves. More specifically, if the given curve does not contain any sharp vertices, all unitary curves are concatenated into a single NURBS curve. If the curve contains at least one sharp vertex, then for each curve resulting from the above-mentioned division and affected by the operator, the unitary curves in the given curve that form this respective curve are concatenated in the respective NURBS curve. The concatenation is deviation-free, since the unitary curves in the given curve are G2 continuous. Thus, the concatenation generates one or more single NURBS curves, each corresponding to the curve resulting from the division (or a single NURBS curve resulting from the given curve, if there are no sharp vertices). These curves, as a result of the concatenation, become single cells (pointed to by a single topological object, e.g., a mesh). These curves are compatible with CAD deformation operators. Figure 61 illustrates the topology of a single cell resulting from the concatenation.
[0094] The concatenation is deviation-free because the unitary curves in a given curve are G2 continuous. Specifically, because a given curve is internally G2 continuous by construction (e.g., as a result of the conversion method disclosed in European Patent Application No. EP23306674.5), this means that all NURBS curves are G2 connected. As a result, concatenation of curves can be handled with deviation-free. This concatenation creates a NURBS curve that matches the input Bézier curve, as illustrated in FIG. 62.
[0095] The method then further comprises a step of applying a deformation operator to the transformed given curve, e.g., each NURBS resulting from the concatenation. This step is known in the art and consists of the known application of a known CAD deformation operator to a curve (or curves) having a suitable form, e.g., a NURBS resulting from the concatenation. However, the method may ensure that the vertices opposite the vertices affected by the deformation remain stable, for example by imposing continuity conditions for each NURBS. This is illustrated in FIG. 63.
[0096] The method then comprises a step of converting back to a CAD curve format the result of the application of the CAD deformation operator. To this end, the method may convert back to a CAD curve format each NURBS curve resulting from the concatenation and to which the operator has been applied. To this end, the method may comprise a step of decomposing each NURBS curve into unitary curves. This may include a step of splitting the NURBS at the locations of the limits of their arcs (corresponding to the limits between the unitary curves or between the edges of the base mesh). This generates a unitary curve family (Bézier curve family), which corresponds to the given unitary curve family at the given curve. In particular, as mentioned above, the concatenation of the unitary curve family is applied either to all the given curves (if there are no sharp vertices) or to the curves resulting from the division and affected by the deformation. In a first alternative, the step of converting back decomposes back the single NURBS curve resulting from the concatenation of all the unitary curves (once the operator has been applied) into their unitary curve family. In a second alternative, this decomposition step may be performed only for each NURBS curve resulting from the concatenation of the unitary curves affected by the deformation, forming each curve resulting from the division step, and the decomposition step generates and returns these unitary curves. For these other curves resulting from the division step that are not concatenated, their unitary curves are for example preserved after the division step and remain unchanged throughout the subsequent steps of the method. The unitary curves resulting from the decomposition step thus correspond to the given unitary curve family, i.e. the number of unitary curves after the decomposition step is the same as the number of unitary curves that were there before the concatenation, and the unitary curves after the decomposition step correspond to the same topological edges of the subdivision curve as their corresponding unitary curves before the concatenation. Figure 64 shows the result of the decomposition applied to the curve family shown in Figure 63.
[0097] The method may further include a final reconstruction step that brings all unitary curves together to reconstruct the topology of the subdivision curve (in CAD format). Figure 65 shows the result of this reconstruction step for the curve shown in Figure 64.
[0098] FIG. 66 shows a flow chart of one example of this method.
[0099] 67 to 70 are screenshots of a design procedure on a CAD software, illustrating the deformation method. FIG. 67 shows several subdivision curves (in CAD curve format) displayed on the screen of the CAD software. In FIG. 68, the user has selected a curve 680, which opens a widget 682 for applying a CAD deformation operator when the appropriate command is activated. The user has selected a matching operator 682, and FIG. 68 shows that the user has now selected a curve 686 by placing a cursor 688 on the curve 686 and clicking on the curve. When the user selected the curve 686, this curve is matched with the previously selected curve 680. The result of the matching is shown in FIG. 69. FIG. 70 shows the display of the widget 682 after the matching operation has been performed as shown in FIG. 69. As can be seen, the user can easily change the attributes of the matching operator (e.g., select the sharpness, spread of the matching, apply the desired tension, etc.). As illustrated by FIGS. 67 to 70, the user is only shown the displayed subdivision curves and the widget for applying the CAD deformation operator. During application of the CAD deformation operator, the steps of the method are performed automatically as a background process and are transparent to the user, who sees the results in real time (e.g., up to the typical short processing time for executing the method).
[0100] "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 a manufacturing product / mechanical part / mechanical product. The present method may be part of such a process, the present method forming the design step where CAD deformation operations are applied.
[0101] 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. It may therefore be called a CAD object, a PLM object, a PDM object, a CAE object, a CAM object, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not exclusive of the others, since a modeled object may be defined by data corresponding to any combination of these systems. Thus, as will become clear from the definition of such a system provided below, a system will likely be both a CAD, a CAE, a PLM and / or a CAM system.
[0102] 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.
[0103] 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.
[0104] 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.).
[0105] 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.
[0106] 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.
[0107] 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.
[0108] 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®.
[0109] 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.
[0110] 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®.
[0111] As explained above, the method manipulates a CAD object (a given curve) and outputs a CAD object (a given D-curve) that may form or be included in a CAD model. The CAD model may include or be composed of a feature tree and / or B-rep. Such a model may originate from a CAE model or may result from a CAE to CAD conversion process.
[0112] 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.
[0113] 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.
[0114] 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.
[0115] 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.).
[0116] 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.
[0117] 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.
[0118] 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.
[0119] 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.
[0120] The method of transformation may be included in a production process which, after carrying out the method, may comprise the step of producing a physical product corresponding to a CAD model including a given curve. The production process may consist of the following steps: - (e.g. automatically) carrying out the method, - Using the obtained CAD model to manufacture the part / product.
[0121] 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.
[0122] 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.
[0123] 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.
[0124] 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.
[0125] 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.).
[0126] 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.
[0127] 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.
[0128] 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.
[0129] 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.).
[0130] 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.
[0131] 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).
[0132] 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.
[0133] The methods herein are computer-implemented. This means that the steps of the methods (or substantially all steps) are performed by at least one computer, or any similar system. Thus, the steps of the methods are performed by a computer, possibly fully automatically or semi-automatically. In these examples, triggering at least some of the steps of the methods may be performed by user and computer interaction. The level of user and computer interaction required may depend on the level of automation anticipated 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.
[0134] 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).
[0135] FIG. 71 shows an example of a system, which is a client computer system, for example a user's workstation.
[0136] 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.
[0137] 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 applying a computer-aided design (CAD) deformation operator configured to deform an input CAD object so as to create a contact geometric relationship with another CAD object for a given curve resulting from a conversion of a corresponding subdivision curve defined by a base mesh into a CAD curve format, the method comprising: converting the given curve into a form readable by the CAD transformation operator; applying the CAD deformation operator to the transformed given curve; converting the result of applying the CAD deformation operator back into the CAD curve format; A method comprising:
2. The given curve includes a family of unitary curves, each curve pointed to by an edge, and transforming the given curve includes: concatenating the given set of unitary curves in the given curve into one or more single NURBS curves. The method of claim 1 , comprising:
3. 3. The method of claim 2, wherein the unitary curve family of the given curve is G2 continuous, and the concatenation is thereby deviation-free.
4. Transforming the result of applying the CAD deformation operator back into the CAD curve format, decomposing each of the one or more single NURBS curves into a set of unitary curves, the set of unitary curves resulting from the decomposition corresponding to the given set of unitary curves; The method of claim 2 or 3, comprising:
5. The method of claim 4 , wherein the number of unitary curve families resulting from the decomposition is equal to the number of given unitary curve families.
6. Prior to the converting step, detecting sharp vertices in the base mesh; identifying corresponding sharp vertices in the given curve; partitioning the given curve according to the identified sharp vertices such that the given curve is partitioned into curves each bounded by either two sharp vertices or one sharp vertex and a boundary vertex; The method of claim 1 , further comprising:
7. The operator: Curve fitting operations, 3D point matching operations, An operation to fit the boundary of a surface, A partial fit to another curve, A partial fitting operation to one or more surfaces; A partial fit operation to a polygon, or G2 symmetry with respect to the symmetry plane 7. The method according to claim 1, wherein the method is one of the following:
8. The method of claim 1 , wherein the converting, applying, and converting steps are automated.
9. A computer program comprising instructions which, when executed by a computer system, cause the computer system to carry out a method according to any one of claims 1 to 8.
10. 10. A computer readable data storage medium having recorded thereon the computer program of claim 9.
11. 10. A computer system comprising a processor coupled to a memory, the memory having stored thereon the computer program of claim 9.