Subdivision Curve Deformation
By converting the subdivision curve to the CAD curve format and applying the CAD deformation operator, the problem of complexity and inefficiency of Bezier curves and NURBS curves in A-level modeling is solved, achieving more efficient design and manipulation.
Patent Information
- Application Number
- CN202411394187.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-02
- Filing Date
- 2024-10-08
- Publication Date
- 2025-04-04
AI Technical Summary
In A-level modeling, Bezier curves and NURBS curves have problems with manipulation complexity, low computational efficiency, and poor ergonomics when manipulating complex shapes.
Provides a computer-implemented method to improve the manipulation and design efficiency of the curve by converting the subdivided curve into a CAD curve format and applying the CAD deformation operator.
It realizes the more efficient use of segmentation curves in modern CAD software, improves the ergonomics and computer efficiency of the design process, and reduces the complexity of user interaction and computing resource consumption.
Smart Images

Figure CN119762712A_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 subdivision curve deformation. Background Art
[0002] Many solutions, such as hardware and software, are provided on the market for the design, engineering and manufacturing of objects. CAD is an abbreviation for computer-aided design, for example, it relates to software solutions for designing objects. CAE is an abbreviation for computer-aided engineering, for example, it relates to software solutions for analyzing and simulating the physical behavior of future products. CAM is an abbreviation for computer-aided manufacturing, for example, it relates to software solutions for defining product manufacturing processes and resources. In such computer-aided design solutions, graphical user interfaces play an important role for the efficiency of the technology. These technologies can be embedded in product lifecycle management (PLM) solutions. PLM refers to an engineering strategy that helps companies share product data, apply common processes, and leverage corporate knowledge to develop products from concept to the end of their life across the concept of an extended enterprise. The PLM solution provided by Dassault Systèmes (trademarks CATIA, SIMULIA, DELMIA and ENOVIA) provides an engineering center (organizing product engineering knowledge), a manufacturing center (managing manufacturing engineering knowledge) and an enterprise center (enabling enterprise integration and connecting to the engineering center and the manufacturing center). The entire solution provides a common model that links products, processes and resources to enable dynamic, knowledge-based product creation and decision support to drive optimized product definition, manufacturing preparation, production and service.
[0003] Computer-aided design of a product to be manufactured may typically involve several stages. Level A modeling is a later stage of such a process, such as the last stage before the model enters the computer-aided manufacturing (CAM) stage. The CAD model (of the product) used by Level A modeling has a high-quality surface. That is, the CAD model (such as a B-rep model) has an outer surface that represents the outer surface portion of the product, and the outer surface has quality (generally G2 continuity, also called curvature continuity). At the end of Level A modeling, the CAD model can enter the downstream manufacturing stage. That is, the model can be stored in a CAD file or as a CAD file, which can then be used for manufacturing in the CAM stage. The surface of the model has sufficient quality for manufacturing so that it can be manufactured by an appropriate machine. For example, this quality surface allows manufacturing by continuous use of machining tools.
[0004] Class A surfaces can be created from curves using well-known CAD features such as fill, sweep, loft, mesh, extrude, etc. These curves are therefore used to create the surface and subsequently (i.e. once created) to control it. In modern CAD tools for Class A modeling, these curves consist of Bezier curves or NURBS curves, which allow the creation of tension curves with quality curvature (G2 continuity). These curves allow for more ergonomic manipulation of the surface, like a handle that can be used to create and change shapes. In Class A, the quality of the curves is key to a quality surface. Figure 1 and Figure 2 An example of a screenshot of a Level A CAD model of cars is shown, each car having an outer surface comprising several mass surfaces defined by such mass curves.
[0005] In level A modeling, complex curves can be created using several G2-connected Bezier curves. The order of each Bezier curve can usually be limited to 11-15 to avoid instability issues. Alternatively or additionally, NURBS curves with a higher degree of subdivision can be used. Bezier curves are known to provide high-quality resulting shapes.
[0006] However, a single Bezier curve limits the complexity of the shape (while the design may be complex due to manufacturing and / or mechanical constraints), so that in practice several Bezier curves must be connected to create a complex shape, resulting in more steps to generate a clean surface. In addition, the connection between Bezier curves needs to be always checked by the user or guaranteed by the CAD system through constraints. This means that additional steps (user editing and / or performing computer calculations of constraints) and / or additional user-provided knowledge are required. This reduces the ergonomics, speed and efficiency (including computer efficiency) of the design process. Figure 3 shows an example of a Bezier curve, and Figure 4 The Bezier curve of the G2 connection is shown.
[0007] NURBS curves allow the creation of more complex shapes, but the possible complexity is still too limited. Furthermore, manipulating the arc limits of a NURBS may have a large effect on the curve. This means that manipulating one part of the design through NURBS arc limit manipulation may affect another part of the design defined by the same NURBS curve, which is intended not to be modified. This leads to a lack of ergonomics, as many interactions are required to perform intended edits and correct unintended edits, and / or very precise interactions are required to perform edits that do not result in unintended modifications (which would require very precise manual precision and / or a high level of concentration, placing a high physiological strain on the designer). Furthermore, when accessing the control point network, many points are available, leading to a high complexity in achieving the desired shape. Figure 5 A screen shot of a NURBS curve is shown. A cursor 50 is placed on a control point and moved by the user to move the control point to perform editing. Figure 6 The result of the movement of the cursor 50 is shown, and as shown in Figure 6 As can be seen above, the movement of the cursor 50 inadvertently strongly modifies the more distant parts of the curve.
[0008] Before Class A modeling, or in the early stages of Class A modeling, designers and manufacturers may seek efficiency and productivity in design. For this reason, using NURBS or Bezier curves in this context suffers from the disadvantages of these techniques (complex manipulation, high memory consumption, low computer efficiency) that have been discussed above and discussed below. In addition, in this context, designers need to use simple software products.
[0009] Furthermore, in modern CAD software, subdivision surfaces are increasingly used and constitute one of the most appropriate and interesting techniques for creating shapes, in particular due to their simplicity and the fact that they are "global" (one surface can create complex shapes that cannot be created with a single NURBS or Bezier surface). In modern CAD, the bridge between these surfaces and curve-based design is essential. However, this bridge lacks compatibility between these different technologies. In fact, the generation of subdivision surfaces based on these classic NURBS or Bezier curves currently lacks accuracy (e.g., the presence of deviations as discussed below) due to the necessity to approximate these curves to the base mesh. Despite the long existence of subdivision curves, these drawbacks have not yet been overcome.
[0010] In this context, improved solutions using computer-aided design of curves are needed.
[0011] Such an improved solution is provided by European patent application EP23306674.5, which was filed by DASSAULTSYSTEMMES on October 02, 2023. The European patent application discloses a computer-implemented method for converting a subdivided curve into a corresponding computer-aided design (CAD) curve format, a CAD model representing a product to be manufactured, and a method of using the CAD model. The CAD model includes at least a portion defined by a subdivided curve and obtainable according to a conversion of the subdivided curve to a corresponding CAD curve format, the conversion being according to a method for converting a subdivided curve into a corresponding computer-aided design (CAD) curve format.
[0012] It is worth noting that the solution proposed in European patent application EP23306674.5 allows integration and use of subdivision curves in modern CAD software, and it is worth noting that they are fed as input to most known CAD operators. It is the aim of the present disclosure to further improve the application of CAD operators to subdivision curves, and it is worth noting that a solution for applying CAD deformation operators to CAD objects defined by subdivision curves is provided, including a CAD curve format derived from the conversion 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 generated by converting the corresponding subdivision curve defined by the base mesh into a computer-aided design (CAD) curve format, and the CAD deformation operator is configured to deform the input CAD object to create a contact geometric relationship with another CAD object. The method includes converting the given curve into a format that can be read by the CAD deformation operator. The method also includes applying the CAD deformation operator to the converted given curve. The method also includes converting the result of applying the CAD deformation operator back to the CAD curve format. The method can be referred to as a "deformation method".
[0014] The method may include one or more of the following:
[0015] The given curves include unitary curves, each of which is pointed to by an edge, and converting the given curves includes concatenation of the given unitary curves of the given curves pointed to by the edges into one or more single NURBS curves;
[0016] The unit curve of a given curve is G2 continuous, so the concatenation is unbiased;
[0017] Converting the result of applying the CAD deformation operator back to the CAD curve format includes decomposing each NURBS curve of the one or more NURBS curves into a unit curve, the unit curve produced by the decomposition corresponding to the given unit curve;
[0018] The number of unit curves generated by the decomposition is equal to the number of given unit curves;
[0019] The method further comprises, before converting:
[0020] detecting sharp vertices in the base mesh;
[0021] identifying corresponding sharp vertices in the given curve;
[0022] Split the given curve according to the identified sharp vertices to split the given curve into curves each bounded by two sharp vertices or by a sharp vertex and a boundary vertex
[0023] Performing the converting, applying and converting back steps based on the split curve;
[0024] The operator is one of the following:
[0025] Matching operation on curves;
[0026] Matching operation of 3D points;
[0027] Matching operations on surface boundaries;
[0028] Local fitting operations on other curves;
[0029] Local fitting operations on one or more surfaces;
[0030] A local fit operation on a polygon; or
[0031] G2 symmetry operation about the symmetry plane; and / or
[0032] The converting, applying and converting back steps are performed automatically.
[0033] The present disclosure also provides a computer program, which includes instructions for executing the deformation method. Optionally, the computer program may also include instructions for executing the conversion method and / or design method disclosed in European patent application EP23306674.5.
[0034] A computer-readable data storage medium having a computer program recorded thereon is also provided.
[0035] The present disclosure also provides a system, which includes a processor coupled to a memory, on which the computer program is recorded.
[0036] There is also provided an apparatus including a data readable storage medium having the computer program recorded thereon.
[0037] The device may form or be used as a non-transitory computer-readable medium, such as in a SaaS (Software as a Service) or other server, or cloud-based platform, etc. The device may alternatively include a processor coupled to the data storage medium. Thus, the device may form a computer system in whole or in part (e.g., the device is a subsystem of the entire system). The system may also include a graphical user interface coupled to the processor. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Non-limiting examples will now be described with reference to the accompanying drawings, in which:
[0039] Figures 1 to 48 The method of European patent application EP23306674.5 is shown;
[0040] Figures 49 to 70 A deformation method is shown; and
[0041] Fig.71 An example of a system is shown. DETAILED DESCRIPTION
[0042] A computer-implemented method for applying a CAD deformation operator to a given curve is provided. The given curve is generated by 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 to create a contact geometric relationship with another CAD object. The method includes converting the given curve into a format that can be read by the CAD deformation operator. The method also includes applying the CAD deformation operator to the converted given curve. The method also includes converting the result of applying the CAD deformation operator back to the CAD curve format. As mentioned above, the method can be referred to as a "deformation method".
[0043] The deformation method constitutes an improved solution for using subdivision curves in CAD software.
[0044] It is noteworthy that the method allows the application of a CAD deformation operator to a given curve, which is the result of converting the corresponding subdivision curve defined by the base mesh into a CAD curve format. The given curve can be, for example, a G2-continuous CAD curve obtained by applying the conversion method of European patent application EP23306674.5 to a subdivision curve. The method allows the application of any given CAD deformation operator to such a curve. To this end, the method converts the given curve into a format readable by a CAD deformation operator, applies the CAD deformation operator, and converts the result back into a CAD curve format.
[0045] Furthermore, all these steps (conversion, application of CAD operators and conversion back) may be automatically performed, being applied automatically by the computer executing the method (e.g. when a user activates a command that starts the application of a CAD operator). This makes the method ergonomic, in case the ergonomics of the design have been improved due to the use of subdivided curves, as explained in European patent application EP23306674.5, the method steps are transparent from the user (designer) point of view, since they are automatically performed (and e.g. in a few seconds, e.g. less than 10s, 5s, 2s or 1s). Furthermore, the method may be performed while a given curve is being displayed. This means that the end user only sees the given curve and the manipulations (deformations) he / she is applying to the curve, but not the steps of the method that are automatically performed as a background process.
[0046] Furthermore, the deformation method allows the use of any known CAD deformation operator configured to deform the input CAD object to create a contact geometric relationship with another CAD object, such as a matching operation on a curve, a matching operation on a 3D point, a matching operation on a surface boundary, a local fitting operation to another curve, a local fitting operation to one or more surfaces, a local fitting operation to a polygon, or a G2 symmetry operation about a symmetry plane.
[0047] It is important to point out that writing a subdivision curve CAD deformation operator, rather than making the subdivision curves into a format compatible with the CAD deformation operator as the deformation method does, does not allow to obtain the high quality results that using the legacy CAD operators (which the method supports) would allow. In fact, the base mesh may not have enough degrees of freedom to satisfy the connection request. For example, matching a subdivision curve representing a line, it is impossible to connect the latter to a continuity level G2 case, since only two vertices can be provided (only one vertex is moved for the calculation).
[0048] The deformation method is used to apply a CAD deformation operator to a given curve. This means that the method takes a given curve as input, performs method steps (convert, apply, convert back) to apply the operator, and outputs the result of the application of the operator to the input curve in the CAD curve format.
[0049] The given curve is generated by converting the corresponding subdivision curve into a CAD curve format. As mentioned above, the given curve may be the output result of the conversion method disclosed in European patent application EP23306674.5 when applied to the subdivision curve, or may be the output result after the output result is modified according to the design method disclosed in European patent application EP23306674.5. Therefore, the given curve may be a G2-continuous CAD curve formed by one or more Bezier curves, each Bezier curve corresponding to a corresponding edge of the base mesh. The given curve may have the following topological data structure: a computer object "body" refers to a topological object "wire", which refers to one or more topological objects "edges" (one for each edge of the base mesh), each topological object "edge" refers to a corresponding Bezier curve (corresponding to the Bezier curve of the base mesh edge corresponding to the topological "edge" object), and the Bezier curve is a geometric object. 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 Bezier curve may be referred to as the "unit curve" of a given curve, which is thus formed by the union of one or more such unit curves.
[0050] For the sake of completeness, the content of European patent application EP23306674.5 is now provided.
[0051] A computer-implemented method for converting a subdivision curve into a corresponding computer-aided design (CAD) curve format is provided. The subdivision curve is controlled by a base mesh. The base mesh is formed by vertices connected by one or more edges. The subdivision curve defines at least a portion of a product to be manufactured. The method is used to design a product. The method includes transforming the subdivision curve into a G2-continuous CAD curve. The CAD curve is formed by a union of one or more Bezier curves. Each Bezier curve corresponds to a corresponding edge of the base mesh. The control polygons of the CAD curve are calculated from the base mesh. The transformation is based on a Catmull-Clark thinning process. The method may be referred to as a "conversion method".
[0052] The method constitutes an improved solution for using quality curves to design products to be manufactured.
[0053] It is noteworthy that the method converts subdivision curves into a CAD curve format, i.e., a G2-continuous CAD curve. This allows the designer to work on such CAD curves and thus perform Class A modeling edits. In addition, CAD curves are compatible with CAD software and CAD tools (e.g., CAD operators). Therefore, the method bridges the CAD framework and the subdivision curve framework. Further, since the CAD curve has control polygons calculated from the base mesh of the subdivision curve, the method allows editing of the subdivision curve (e.g., editing of the base mesh) to be performed, which are then automatically converted to CAD curves because their control polygons are derived from the base mesh.
[0054] Further, the CAD curve is formed by the union of one or more Bezier curves, each Bezier curve corresponding to the corresponding edge of the base mesh. Therefore, there is a one-to-one mapping between each Bezier curve and each edge of the base mesh. This allows the modification performed by the user to be localized: the user can act on the Bezier curve or its control point to perform the modification, and the modification only affects the part of the model corresponding to the Bezier curve, and does not have a large impact on the model, which is contrary to what is discussed above for the prior art. This greatly improves ergonomics during design: the designer can focus on the part of the design that he / she really wants to edit (in the physiological sense, i.e., eye focus), and the editing will not trigger unwanted changes in other parts of the model. In this way, the number of user-machine interactions is also greatly reduced because corrections caused by unwanted modifications do not have to be performed. In addition, as a result of the conversion, the union of the Bezier curves is already G2-continuous, as are the intersections between the Bezier curves. Therefore, the user does not need to be committed to making these nodes G2-continuous, so as to be suitable for Class A modeling. Further, these modifications performed on the base mesh may automatically and directly feed back to the Bezier curve(s) affected by these modifications, since their controlling polygons may be linearly related to the base mesh, as discussed further below.
[0055] Furthermore, when working on curves defined using only Bezier curves instead of subdivision curves, the connections between the various Bezier curves must be managed, which is not ergonomic and implies the use of many computer objects (such as control points), which leads to increased computer resource consumption and increased memory size. Subdivision curves, on the other hand, allow the design of complex shapes with a single curve that is easier to deform and does not require as many computer objects (control points) to store and process.
[0056] The conversion method is used to convert the subdivision curve controlled by the base mesh into the corresponding CAD curve format. This means that the conversion method takes the subdivision curve as input, performs the conversion (automatically by the computer system), and outputs the result of the conversion, i.e. the corresponding CAD curve format (a G2-continuous CAD curve formed by the union of one or more Bezier curves). "CAD curve format" or "CAD curve" refers to a curve that is compatible with and can be used in CAD software, i.e., the CAD operators and CAD tools of modern CAD software can be used in CAD software. In the case of the present method, this format resulting from the conversion is a G2-continuous CAD curve formed by the union of one or more Bezier curves.
[0057] The conversion method is used for designing a product to be manufactured, at least part of which is defined by an input subdivision curve. This means that the result of the conversion method can be used to design the product, for example can be used in a step that is part of a design process for the 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 into the same design process, which comprises performing the conversion method and then performing the design method. The conversion method itself can form a design step, for example if it comprises the creation of the input subdivision curve by a user by drawing a sketch of the geometry of the curve. Then, when creating the sketch, the method can include, automatically by the system, calculating a base mesh and then converting into a CAD format.
[0058] This means that at some point after the method, i.e. downstream of the method, for example after executing the design method, the product model resulting from the design and comprising the portion defined by the subdivision curve will be used to manufacture the product according to the design.
[0059] As previously mentioned, 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 can reflect and control the geometry of the curve. The creation of a subdivision curve can include defining the geometry by a user (e.g., by executing a shape), and automatically inferring the base mesh by a computer system by any suitable method. The base mesh is a topological structure consisting of a set of vertices and edges, each edge connecting two vertices. The base mesh includes one or more such edges. Vertices and edges can be referred to as cells. This topological structure controls and defines the geometry of the curve. The concept of subdivision curves is well known (see, for example, reference documents https: / / courses.cs.washington.edu / courses / cse457 / 11au / lectures / subdivision.pdf and http: / / cgpp.net / file / cgPP3e_ch22W.pdf).
[0060] A subdivision curve is equal to the boundary of a subdivision surface, where the subdivision surface's base mesh is an extrusion of the subdivision curve's base mesh. Figures 7 to 10 Such a bridge between subdivision curves and surfaces is shown. Figure 8 shows the subdivision curve, Figure 7 Its base mesh is shown. Fig. 9 The corresponding subdivision surface base mesh is shown. It can be seen that the base mesh is Figure 7 Extrusion of the base mesh shown. Fig.10 shows the subdivision surface, which is Figure 8 The subdivision curve shown is stretched. Figure 7 The subdivision curve shown is Fig. 9 The boundaries of the subdivision surface shown, and Figure 8 The subdivision curve shown is Fig.10 The boundary of the subdivision surface shown.
[0061] The subdivision curves define at least a portion of the product to be manufactured. This means that the product as modeled in the CAD system has a portion (e.g. an outer surface portion) defined based on the subdivision curves. For example, the outer surface portion may be a CAD curve converted from the subdivision curve, or a surface stretched from the CAD curve. However, this does not exclude further design steps in which the portion of the CAD model of the product defined by the subdivision curves is modified.
[0062] The method may include, for example, as an initial step, providing (obtaining) a subdivision curve. Providing a subdivision curve may include creating a subdivision curve. Creating a subdivision curve may include sketching the geometry of the curve by graphical user interaction, and then automatically calculating a base mesh by a computer system (by any suitable method). Creating may optionally include, by graphical user interaction, further modifying the base mesh. Providing a subdivision curve may alternatively include retrieving (e.g., downloading) the curve from a (e.g., remote) data storage medium, to which the subdivision curve has been stored after creation.
[0063] The method includes (e.g., further providing a subdivision curve) transforming the subdivision curve into a G2-continuous CAD curve formed by the union of one or more Bezier curves. When providing the subdivision curve, the computer system can automatically perform this step, i.e., without any further user action (e.g., the user does not have to click a button to start the transformation). For example, a user can create a geometric shape of a subdivision curve as described above, and the computer system automatically calculates the basic grid and automatically performs the transformation step. This can be performed in real time, i.e., the time between providing the subdivision curve and the result of the transformation step can be a few seconds or less, such as less than 10s, 5s, 2s or 1s. This means that the transformation step is very fast and real-time, making it transparent to the user. The method may include displaying the G2-continuous curve on a display of the computer system. This provides instantaneous visual feedback to the user, for example, the user automatically and in real time provides visual feedback when drawing a shape sketch of the subdivision curve, and the feedback is in the form of displaying the G2-continuous curve generated by the transformation step. The method may further comprise displaying the base curves, e.g. by default when creating the base curves and for the remainder of the method (including the transformation step), and / or displaying the control polygons of each Bezier curve, e.g. by default once the transformation step is completed. Alternatively, the display of the base curves and / or the control polygons of the Bezier curves may be performed when the user activates a display graphics command (e.g. by clicking a button). The user may, for example, display the base curves by activating a specific graphics command and / or display the control polygons of all Bezier curves or of one or more of them by activating another specific graphics command.
[0064] The transformation step may also be referred to as a "conversion step". The transformation / conversion step is accomplished by applying a conversion process based on a Catmull-Clark refinement process, for example by directly applying the Catmull-Clark refinement process. The Catmull-Clark refinement process works as follows. Given a curve base mesh, the process performs an iterative refinement of the subdivision of the base mesh (i.e., by iteratively adding vertices and / or edges). The process converges to a limit curve, i.e., a uniform cubic spline. When the subdivision curve does not include sharpness or weights, the spline can be C2 continuous. In this case, the subdivision converges to C2 continuous NURBs with arcs represented by Bezier curves. In any case (including when the subdivision curve includes sharpness or weights), the limit curve is internally G2-continuous. Fig.11 , 12A and 13 illustrate such a process. Fig.11 A base grid 110 and a limit curve 112 are shown. Fig. 12A The results 120 of the first level segmentation are also shown. Fig.13The results 130 of the second level segmentation are also shown.
[0065] The output of the method includes the result of the transformation, i.e., a G2-continuous CAD curve formed by one or more Bezier curves. The output can consist of a computer object or data that can consist of the following topological data structure: a computer object "body" references a topological object "line", which references one or more topological objects "edges" (one for each edge of the base mesh), each topological object "edge" references a corresponding Bezier curve (corresponding to the Bezier curve of the base mesh edge corresponding to the topological "edge" object), and the Bezier curve is a geometric object. The output can also include a base mesh. Each edge of the base mesh corresponds to a topological edge in the output, and each vertex of the base mesh corresponds to a topological vertex in the output, and vice versa. In other words, the input of the method is a subdivision curve defined by the base mesh, and the output is the same subdivision curve but converted into a CAD curve format.
[0066] The transformation can apply the Catmull-Clark refinement process, which is described in the reference Catmull, Clark, "Recursively Generated BSpline Surfaces On Arbitrary Topological Meshes", 1978, which is incorporated herein by reference, and the process is referred to as "the method" in the reference, except that the process is applied to curves rather than surfaces. The refinement level can be user-specified, or it can be predefined and fixed. The method applies the Catmull-Clark process in such a way that for each edge of the mesh, a corresponding single portion of a G2-continuous CAD curve is generated. In other words, there is exactly one Bezier curve for each patch ("patch" in the sense of Catmull, Clark "Recursively Generated BSenpline Surfaces On Arbitrary Topological Mishes", 1978). NURBS is a cascade of Bezier curves (which can also be called arcs), and as discussed below, the control polygons for each of these Bezier curves are calculated based on the base mesh.
[0067] The application of the refinement process described in the reference Catmull, Clark, "Recursively Generated BSpline Surfaces On Arbitrary Topological Meshes", 1978 can be shown in the following example. j,n}j Represents the subdivision vertices at level n by using the following rule ( Fig. 12B The example shown illustrates the application of this rule, which is similar to Fig. 12A The subdivision steps shown correspond to those shown above) creating vertices {v j,n+1} j and from the existing edge {e k,n+1} k To refine the subdivision curve to level n+1:
[0068]
[0069] In these embodiments, the tip or sharp apex remains in place.
[0070] The curve resulting from the transformation is a G2-continuous curve, which is a uniform cubic spline (as discussed in reference Catmull, "A Subdivision Algorithm for Computer Display of Curved Surfaces", PhD thesis 1974, which is incorporated herein by reference). The G2-continuous curve is formed by the union of one or more Bezier curves, each Bezier curve resulting from the transformation of a corresponding base mesh edge.
[0071] The concept of G2 continuity has been discussed above. To make it more complete, a brief definition of this (well-known) concept is now presented. First, curvature in this article refers to a geometric term indicating the degree to which a curve or surface deviates from perfect straightness or flatness. Curvature can be measured as the inverse of the radius of the local osculating circle. Therefore, a curve has low curvature and a large radius when it is slightly curved, and has high curvature and a small radius in the case of sharp curves. Continuity in this article refers to the type of connection at a given point. For a given vertex, G0 continuity represents the point continuity of the point (meaning that the curve is continuous at this point), G1 continuity represents tangent continuity (meaning that the tangent of the curve is continuous at this point), and G2 continuity represents curvature continuity (meaning that the curvature of the curve is continuous at this point). A curve is G0-continuous (or G1-continuous, or G2-continuous) if it has G0 continuity (or G1 continuity, or G2-continuity) in all its points. G0 continuity is usually used to represent creases / sharp features. Fig.14 The concept of G0 continuity is shown.
[0072] The curve base mesh is the control polygon of the generated cubic B-spline curve, which is the union of N Bezier curves, N being the number of edges of the base mesh. Each Bezier curve can be associated with a control polygon (i.e., a respective control polygon). The concept of control polygons of (or associated with) Bezier curves or NURBS curves is well known. The control polygon associated with the Bezier curve has control points, which are linearly related to the vertices of the base mesh. The control points of the control polygon associated with the Bezier curve can correspond to the product of the vertices of the base mesh and a matrix. The vertices of the base mesh can include vertices connected by the corresponding edges corresponding to the Bezier curve and vertices of adjacent edges (e.g., vertices in all base mesh edges including at least one vertex of the corresponding edge).
[0073] exist Fig.15A The control polygon is shown above. Fig.15A A spline 154, a base mesh 150 as a control polygon of the spline 154, and a control polygon 152 as a Bezier curve associated with edge P2-P3 of the base mesh 150 are shown (Pi is a vertex of the base mesh, and Qi is a control point of the control polygon of the Bezier curve). In some embodiments, Qi is linearly related to Pi by the following matrix relationship:
[0074]
[0075] Although the formula is Fig.15A The edge P2-P3 in is shown as an example, but the other edges also use the same corresponding formula.
[0076] The so-called normal case of the corresponding base mesh edge is described above, where there is no weight (or attraction) applied to any vertex of the edge. Now we discuss the special case where at least one of the edges of the corresponding edge has a weight or attraction. Before that, let's discuss the concepts of Valence and normal and special vertices.
[0077] Valence is the number of edges surrounding a vertex of the base mesh. For curves, valence can be 1 (for end vertices) or 2 (for internal vertices), and for surfaces, valence is at least 2. The term "special vertices" comes from the subdivision surface literature to define the type of base mesh vertices. In the case of subdivision surfaces, vertices are regular if they do not have any weight or sharpness and if they are inside with valence 4 or on a boundary with valence 2 or 3. Otherwise they are called special. Around regular vertices, the surface satisfies natural C2 continuity. Around special vertices, the surface only satisfies G0 or G1 continuity. In the case of subdivision curves, regular vertices are all vertices without sharpness or weight.
[0078] If at least one of the vertices connected by the corresponding edge is sharp, the matrix can be such that it achieves sharpness preservation in the Bezier curve. For example, in the above formula, Q1 depends on P1, P2, P3. If P2 is sharp, the matrix can be modified so that Q1 depends only on P2 and P3. This can be applied equally to each such sharp vertex.
[0079] If at least one of the vertices connected by the corresponding edge has a weight, the matrix can preserve its weight in the Bezier curve. For example, in the above formula, if vertex P2 has a weight (i.e., the curve is locally attracted to P2), the matrix can be specifically processed to ensure that the curvature around P2 is good. The method can be any method suitable for the present invention, such as the method partially expressed in EP patent application publication EP1750228A2 (which has been granted), which is incorporated herein by reference. More specifically, in the case of subdivided surfaces, the previously mentioned EP patent application publication EP1750228A2 describes how to improve the shape of the approximate surface around special vertices. The process can add more degrees of freedom by using NURBS curves (e.g., degree 6 NURBS curves in the embodiment). The redundant control points required to define the curve can be moved by solving a linear system to optimize the shape curvature quality, such as paragraphs
[0033] to
[0037] , paragraphs
[0068] to
[0077] and paragraphs
[0069] to
[0080] of EP patent application publication EP1750228A2. Figure 3As disclosed in . The method can use this disclosure to calculate an approximation of a subdivision curve, which is a restriction on a subdivision surface when there is at least one special vertex. To this end, the method may include, using the disclosure of EP patent application publication EP1750228A2, defining a local subdivision surface base mesh for each edge having at least one special vertex, the method calculating the subdivision surface on the local subdivision surface base mesh, and extracting appropriate boundaries that form an approximation of the subdivision curve. In this case, the control polygon can be a polygon that approximates the subdivision curve. The surface base mesh is simply a stretch of one of the curves in an arbitrary direction, and also returns weights and sharpness. This is in Fig. 15B and Fig. 15C It is shown in Fig. 15B shows the curve approximation for the special case where vertex P2 of edge P2-P3 has weight , and Fig. 15C Subdivision surface mesh creation and boundary curve extraction are shown.
[0080] Other advantages and examples of the conversion method are now discussed.
[0081] Subdivision curves have a multi-level description that allows the user to access a base mesh. This base mesh is similar to the control point network of a Bezier curve, but is much more fully represented. Due to this mathematical description, it becomes very easy to create very complex curves, keeping a very simple base mesh. In addition to this, it is possible to apply attractions (weights) on vertices and edges to deform the resulting curve without modifying the vertex positions of the base mesh, providing more degrees of freedom. This attraction can be sharp, allowing the user to create curves that were originally G2 continuous, but only G0, to create sharp vertices or broken lines or other sharp features. In addition to all these features, the subdivision curve topology is completely free. Therefore, not only can open curves be easily created, but also closed curves of any shape.
[0082] Furthermore, all well-known operations available on subdivision surfaces can also be projected on the curve world: inserting / removing vertices at exact locations, stretching free vertices to stretch curve ends, deforming the base mesh to deform the shape, modification of vertex weights and / or bevels on vertices.
[0083] The conversion method allows the user to manipulate these curves during design, allowing to benefit from all the advantages of these curves, while providing conversion of these curves in CAD format, allowing Class A modeling.
[0084] In other words, all the above operations on subdivision curves can be performed at the subdivision level and converted to Bezier curves (provided by the conversion method) allowing the results to be integrated into the classic CGM modeler. This integration allows the use of historical operators on those curves, such as Boolean operations (fillet, trim, split) or any other operation.
[0085] 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, and creating them from subdivision curves becomes easier, leading to better and more precise results (with less or no deviation).
[0086] Subdivision surfaces are already integrated in CAD modeling machines. However, in current software solutions that use Bezier curves or NURBS curves to create subdivision surfaces from these curves, deviations are observed between the surface and these curves. Fig.16 and Fig.17 This is shown. Fig.16 A subdivision surface 160 (with a base mesh 162) obtained from a Bezier curve or NURBS curve 164 is shown. As can be seen, a deviation 166 is observed between the curve 164 and the surface 160. Likewise, Fig.17 A subdivision surface 170 (with a base mesh 172) derived from a Bezier curve or NURBS curve 174 is shown. As can be seen, a deviation 176 is observed between the curve 174 and the surface 170. Fig.18 Shows Fig.16 The subdivision surface 160, but this time obtained from the subdivision curve 184, and Fig.19 Shows Fig.17 The subdivision surface 170 is obtained from the subdivision curve 194. Fig.18 and 19 As can be seen above, there is no deviation between the subdivision curves and the subdivision surfaces.
[0087] As mentioned previously, the output topology resulting from the transformation (volume->line->edge->Bezier curve) can be understood (and used directly) via CAD modeling. Fig. 20 A flow chart illustrating the input of the conversion and output topology is shown. Fig.21 Examples of output topologies illustrated by graphs and curve sketches are also shown.
[0088] As mentioned before, the conversion also allows to preserve sharpness and weights / attraction on vertices. Furthermore, it generates a curve representation as the boundary of the extruded surface that will be obtained from the base mesh resulting from the extrusion of the base mesh of the subdivision curves defined as previously described. Fig. 22 These advantages are shown.
[0089] Subdivision curves allow any kind of shapes to be created, and therefore the conversion method allows all those shapes to be converted consistently. Fig.23 A circular closed shape 230 is shown defined by a base mesh 232 formed by four vertices. This shape cannot be created using standard Bezier curves and NURBS curves. Fig.24 ) to easily perform shape deformation, and the shape can be easily opened by removing the edges of the base mesh 232 (as shown in Fig.25 shown). Fig.26 It is shown that a bevel with 3 vertices (here on the lower left vertex of the base mesh 232) can be easily created to produce a bevel-like pinch.
[0090] Subdivision curves also allow easy creation of sharp vertices with G0 continuity, such as Fig. 27 This shape cannot be created with the traditional Bezier and NURBS curves. Several such curves must be created and then connected to achieve this shape. Other paradigms (such as constraints or matching) must be used later to maintain the connection, which reduces user performance and productivity. This is supported natively by subdivision curves and conversion methods. Subdivision curves also allow the creation of very free-form shapes with a small number of vertices, such as Fig.28 shown.
[0091] European patent application EP23306674.5 also provides a CAD model. The CAD model represents a product to be manufactured. The CAD model includes at least one portion defined by subdivision curves and obtainable by conversion of a base mesh of the subdivision curves into a corresponding CAD curve format. The conversion is performed according to a conversion method. The at least one portion corresponds to a G2-continuous CAD curve formed by a union of one or more Bezier curves. The number of Bezier curves is equal to the number of edges of the base mesh of the subdivision curve. The base mesh forms a control polygon of the CAD curve.
[0092] At least a portion is obtainable according to a conversion of a base mesh of a subdivided curve to a corresponding CAD curve format, wherein the conversion is according to a conversion method, and at least a portion corresponds to a G2-continuous CAD curve formed by a union of one or more Bezier curves. This means that at least a portion is a G2-continuous CAD curve or is obtained from a G2-continuous CAD curve, and the G2-continuous CAD curve is a G2-continuous CAD curve resulting from a transformation step of a conversion method applied to a subdivided curve defining at least one curve, or is any G2-continuous CAD curve that can be obtained by applying the conversion method to a subdivided curve. Thus, the G2-continuous CAD curve is formed by a union of one or more Bezier curves, the number of Bezier curves being equal to the number of edges of a base mesh of the subdivided curve, and the base mesh forming a control polygon of the CAD curve, as it is used for the conversion method. The subdivided curves and G2-continuous CAD curves to which at least a portion of the model corresponds may have any one or any combination of the features of those curves as described for the conversion method. "Corresponding to" means that at least a portion may be a G2-continuous CAD curve or may be obtained from it. For example, at least a portion may be a surface resulting from the stretching of a G2-continuous CAD curve.
[0093] European patent application EP23306674.5 also provides a computer-implemented method for using a CAD model. The method of use includes performing one or more modifications to a base mesh of a subdivided curve. One or more modifications are transferred to the at least one portion of the CAD model (automatically by a computer, for example, using a relationship between a control polygon connecting a Bezier curve and a base mesh). Alternatively, the method of use includes applying one or more CAD operators to the at least one portion. Performing one or more modifications to a base mesh of a subdivided curve may include performing one or more of the following:
[0094] Insert vertices;
[0095] Remove vertices;
[0096] Add bevels at vertices;
[0097] stretching the terminal vertices to extend the curve;
[0098] Add attraction to one or more vertices; and / or
[0099] Changes the topology from an open shape to a closed shape, or vice versa.
[0100] Figures 29 to 38 Screen shots of a video showing a designer using subdivision curves according to an embodiment of the method. These figures illustrate the method and its advantages. Fig.29A screenshot showing the shape of the subdivision curve that the designer has just created is shown. Apply the conversion method and a few seconds later the subdivision curve is converted to the CAD curve format by the conversion method. Fig.30 The G2-continuous CAD curve is shown. Fig.31 Several G2-continuous CAD curves obtained in the same way are shown, including Fig.30 curve. Fig.32 A display of the corresponding base mesh of the input subdivision curve is shown. This display can be triggered when the user activates a command for that date. Fig.33 A screenshot of the graphics window for modifying a base mesh is shown. The graphics window actually displays the same Figures 29 to 32 The curves shown in FIG. 1 are on the same screen, but for the sake of clarity, they are shown separately in this disclosure. Fig.33 As can be seen above, this graphics window allows the user to modify the parameters of the base mesh (or several) when the base mesh (or several) are selected, including its (their) complexity (number of vertices). The graphics window can be displayed when the user activates a command for this purpose. Here, in Fig.33 On, for Figure 31-32 In the bottom curve shown, the user has just changed the number of vertices from 8 to 5. Fig.34 The result of this modification to the bottom curve is shown. Fig.35 A partial screenshot of still the same screen is shown, wherein a further small window is displayed when the user activates the command for that day. Fig.35 As shown, the user has selected (clicked) a graphical tool 350 that allows modification of the weights of the selected mesh vertex (or vertices). Fig.36 , which shows that the user has selected vertices 360 of the base mesh of the right curve. Fig.37 Shown along the right curve Fig.35 , the user interacts with the window to modify the selected vertex 360 weight value to 76%, thereby modifying the shape of the curve. Fig.38 Still another user interaction with the displayed window is shown, where the user has now selected the sharpness graphic tool 370 , sharpening the selected vertex 360 .
[0101] Figures 39 to 48 It comes from Figures 29 to 38 A screenshot of the same CAD software interface is shown, and a comparison between subdivision curves and Bezier curves is illustrated. Fig.39 Five subdivision curves are shown. Fig.40 and Fig.41 Bezier curves 400, 402, 404, 406 and 408 have been sketched in Fig.39 to roughly reproduce their shapes. Figures 42 to 45 Control polygons 420, 428, 422, and 426 for Bezier curves 400, 408, 402, and 403, respectively, are shown. As can be seen, due to the complex shapes of these curves, the polygons do not conform to the curves very well and are not ergonomic to operate when they are stretched wide and far across the screen. In contrast, Figures 46 to 48 Base meshes 460, 466, and 468 are shown for curves 400, 406, and 408 (respectively). As can be seen, these base meshes conform better to the shape of the curves and are significantly more ergonomic to operate.
[0102] This deformation method is now discussed further.
[0103] The CAD deformation operator is configured to deform the input CAD object to create a contact geometric relationship with another CAD object. "CAD object" refers to a CAD model or a part of a CAD model, or more generally, any computer object suitable for use with CAD software. The so-called "contact geometric relationship" refers to direct geometric contact, such as matching contact, fitting contact, or tangent contact, or indirect geometric contact, such as symmetry or distance constraints. The operator can be one of the following: a matching operation on a curve, a matching operation on a 3D point, a matching operation on a surface boundary, a local fitting operation on another curve, a local fitting operation on one or more surfaces, a local fitting operation on a polygon, and a G2 symmetry operation about a symmetry plane.
[0104] CAD deformation operators are well known in CAD. However, they work on Bezier or NURBS technology. That is, CAD deformation operators are configured to be applied to single (i.e., topological single-unit) NURBS curves or Bezier curves, i.e., such curves are associated with a single topological unit (e.g., an edge). In contrast, a given curve of the method can be a union of Bezier curves, each of which is associated with a single topological unit (edge) with a one-to-one mapping between these edges and the edges of the underlying mesh. The result of converting the subdivision curve to CAD format therefore consists of several topological units, each of which points to a base Bezier curve. In other words, a given curve has a multi-unit topology structure, while known CAD deformation operators are configured to be applied to Bezier curves or NURBS curves associated with a single-unit topology structure.
[0105] Fig.49 An example of a CAD deformation operator, the Match operator, is shown. This operator takes curve 1 as input and deforms it to match curve 2, either through a G0 connection or a G1 connection. Fig.50A "local fit to another curve" CAD deformation operator (left) and a "local fit to a surface" CAD deformation operator (right) are shown. Fig.51 The CAD deformation operator for the "G2 symmetry operation about a symmetry plane" is shown.
[0106] The deformation method consists in converting a given curve into a format readable by a CAD deformation operator. As explained previously, such an operator does not take as input several Bezier curves pointed to by different topological cells. Therefore, the conversion consists in converting the union of the Bezier curves (also called "unit curves") forming the given curve into one or more NURBS curves, each Bezier curve pointed to by a respective topological edge (as described previously), each NURBS curve pointed to by a topological cell.
[0107] Prior to conversion, the method may include detecting sharp vertices in the base mesh, and identifying corresponding sharp vertices in the given curve (equivalently, sharp junctions / connection points between unit curves). Fig.52 shows a sharp vertex in an example of a subdivision curve. Fig.52 Sharp vertices of a subdivision curve are shown, but it should be noted that each corresponding edge and vertex of the subdivision curve corresponds to a topological edge and vertex (i.e., there is a one-to-one mapping), so identifying sharp vertices on a subdivision curve or its underlying mesh can identify sharp vertices in the CAD curve format. Fig.53 Shows Fig.52 Detected sharp vertices among the vertices of the base mesh (BM vertices) of the subdivision curve are shown. Fig.54 Shows the Fig.53 The subdivision curve shown is converted into the given curve, and Fig.55 Its topology is shown. To perform this detection and identification, the method may perform a parsing of the underlying mesh to retrieve a sharpness attribute for each vertex of the mesh (this is an attribute stored on each vertex).
[0108] After detecting and identifying the sharp vertices, the method then includes splitting the given curve according to the identified sharp vertices to split the given curve into each curve bounded by two sharp vertices or one sharp vertex and one boundary vertex. The curves generated by the splitting form partitions of the given curve. The conversion, application and conversion back steps are then applied based on the curves obtained by the splitting. In this way, these steps are applied to the curves generated by the splitting and will be affected by the CAD deformation operator. These steps may not be applied to other curves, however, these other curves can be used in the final curve reconstruction step described below. Which curves will be affected by the CAD deformation operator depends on the operator and / or the position where the designer wants to apply the operator on the given curve. For example, in the case of a matching operator, there may be only one curve affected by the operator, which is one of the curves including the boundary vertex. For each curve generated by the splitting and to be affected by the operator: the method converts the curve into a format readable by the CAD deformation operator, then applies the CAD operator to the converted curve, and then converts the result back to the CAD curve format. Thus, this splitting method allows the deformation operation (performed by the deformation operator) to be stopped at the sharp vertex, thereby avoiding instability in other parts of the given curve. This is in Fig.56 An example of a matching inflection operator is shown in .
[0109] It should be understood that if a given curve does not feature any sharp vertices, such detection of sharp vertices is not performed and then no splitting of the given curve is performed. Such detection is performed only if there is at least one sharp vertex in a given curve.
[0110] In an embodiment where sharp vertices are detected and subsequently split, if a deformation operator is applied to the first vertex of a given curve (e.g. Fig.57 ), then the vertices of the base mesh are parsed from the second point to the (N-1)th point. th points, where N is the number of points in the base mesh (the number of points from point 1 to point N). If the deformation is performed on the last vertex of a given curve (such as Fig.58 ), then the vertices of the base mesh are parsed in the opposite way (from point N-1 to point 2). In both cases, parsing stops at the first retrieved sharp vertex and splitting is performed only at that sharp vertex. Fig.57 and 58The sharp vertices retrieved by performing the split are shown (circled by a dotted circle). If the deformation operator applies the deformation on both sides (i.e., on both curves including the boundary vertex), the detection is performed in two 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. The split is then performed on the two first sharp vertices found in both directions (this produces three curves, the curve between the two sharp vertices is not affected by the deformation). Fig.59 This final case is shown in , which shows that both first sharp vertices (still outlined by dashed circles) are identified (one in each direction), and Fig.60 The splitting performed at each such sharp vertex is shown, thereby splitting a given curve into three curves. It should be noted that the vertices are not moved, contrary to what is shown in the figure. This is for illustration purposes only.
[0111] The conversion of a given curve may include cascading unit curves (each unit curve is a Bezier curve corresponding to a corresponding edge of the base mesh and pointed to by a corresponding topological edge). The unit curves are connected into one or more single NURBS curves. More specifically, if the given curve does not include any sharp vertices, all unit curves are cascaded into a single NURBS curve. If the curve includes at least one sharp vertex, for each corresponding curve generated by the above splitting and to be affected by the operator, the unit curves of the given curve that form the corresponding curve are cascaded in the corresponding NURBS curve. Since the unit curves of the given curve are G2 continuous, the cascading is unbiased. The cascading thus produces one or more single NURBS curves, each NURBS curve, corresponding to the curve generated by the splitting (or if there are no sharp vertices, the single NURBS curve generated by the given curve), as a result of the cascading, it is a single unit (pointed to by a single topological object, for example, a mesh). These curves are compatible with CAD deformation operators. Fig.61 The resulting single-cell topology resulting from the cascading is shown.
[0112] Since the unit curve of the given curve is G2 continuous, the concatenation is bias-free. Specifically, since the given curve, by construction (e.g., as a result of the conversion method disclosed in European patent application EP23306674.5), is internally G2 continuous, this means that all NURBS curves are G2 connected. As a result, the concatenation of curves can be processed without deviation. The concatenation creates a NURBS curve that fits the input Bezier curve, such as Fig.62 shown.
[0113] The method then further comprises applying a deformation operator to the given curve after the transformation, for example to each NURBS curve resulting from the cascade. This step is known in the art and consists in the known application of known CAD deformation operators to curves (or more) of suitable format, such as NURBS curves resulting from the cascade. However, the method may, for each NURBS curve, ensure that the stability of the vertices opposite to the vertices affected by the deformation is maintained, for example by applying continuity conditions. This is in Fig.63 Shown in.
[0114] The method then comprises converting the result of applying the CAD deformation operator back to the CAD curve format. The method may be used to convert each NURBS curve resulting from the concatenation back to the CAD curve format, wherein the operator has been applied to each NURBS curve. To this end, the method may comprise decomposing each NURBS curve into unit curves. This may comprise breaking the NURBS at the locations of its arc limits (which correspond to the limits between unit curves, or the limits between the edges of the base mesh). This forms a unit curve (Bezier curve) which corresponds to a given unit curve for a given curve. In particular, as previously described, the concatenation of unit curves is applied to all given curves (when there are no sharp vertices) or to the curves resulting from the splitting and affected by the deformation. In a first alternative, the conversion back step decomposes the single NURBS curve resulting from the concatenation of all unit curves (after the operator) into these unit curves. In a second alternative, the decomposition may be performed only for each NURBS curve resulting from the concatenation of unit curves formed by the corresponding curves resulting from the splitting and affected by the deformation, and the decomposition is backed to these unit curves. For these other curves resulting from the decomposition and which have not yet undergone the concatenation, their unit curves can, for example, be saved after the decomposition and remain unchanged through the subsequent steps of the method. The unit curve resulting from the decomposition thus corresponds to a given unit curve, i.e. there are the same number of unit curves after the decomposition as before the concatenation, and the unit curves after the decomposition correspond to the same topological edges of the subdivided curves as the corresponding unit curves before the concatenation. Fig.64 Shows the application to Fig.63 The curves shown are the results of the decomposition.
[0115] The method may further comprise a final reconstruction step of putting all unit curves together and reconstructing the subdivision curve (in CAD format) topology. Fig.65 Shown for Fig.64 The result of such a reconstruction of the curves is shown.
[0116] Fig.66 A flow chart showing an example of this method is shown.
[0117] Figures 67 to 70 are screen shots of the design steps on the CAD software and illustrate the deformation method. Fig.67 Several segmented curves (in CAD curve format) are shown displayed on the screen of the CAD software. Fig.68 , the user has selected curve 680, and upon activating the appropriate command, a window 682 for applying a CAD deformation operator has opened. The user has selected the matching operator 682, and Fig.68 686 by positioning cursor 688 on curve 686 and clicking on the curve. When the user selects curve 686, the curve is matched with previously selected curve 680. The matching result is shown in Fig.69 Shown in. Fig.70 Shown - once Fig.69 As shown, once the matching operation is performed, window 682 is displayed. As can be seen, the user can easily modify the properties of the matching operator (e.g., select sharpness, diffuse matching, apply desired tension). Figures 67 to 70 As shown, the user only sees the displayed subdivision curves and a window for applying the CAD deformation operator. During the application of the CAD deformation operator, the steps of the method are automatically performed as a background process and are transparent to the user, who sees the results in real time (e.g., the normal, short, processing time for executing the method).
[0118] "Designing a manufactured product (or a product to be manufactured) / mechanical part / mechanical product" means any action or series of actions that is at least part of a process that describes in detail a modeled object (3D or 2D) for manufacturing a product / mechanical part / mechanical product. The method may be part of a process that forms a design step for applying CAD deformation operators.
[0119] Therefore, the method generally manipulates modeling objects in the CAD curve format discussed herein, such as subdivision curves, CAD models. Modeling objects are any objects defined by data stored in, for example, a database. By extension, the expression "modeling object" refers to the data itself. Depending on the type of system, the modeling object can be defined by different types of data. The system can actually be any combination of a CAD system, a CAE system, a CAM system, a PDM system, and / or a PLM system. In these different systems, the modeling object is defined by the corresponding data. Accordingly, it can be said that the reference is a CAD object, a PLM object, a PDM object, a CAE object, a CAM object, a CAD data, a PLM data, a PDM data, a CAM data, a CAE data. However, these systems are not mutually exclusive, because the modeling object can be defined by data corresponding to any combination of these systems. Therefore, the system can be a CAD, CAE, PLM and / or CAM system, which will be obvious from the definition of such a system provided below.
[0120] In addition, a CAD solution (e.g., a CAD system or CAD software) refers to any system, software or hardware, such as CATIA, that is at least suitable for designing a modeled object based on a graphical representation of the modeled object and / or its structured representation (e.g., a feature tree). In this case, the data defining the modeled object includes data that allow the representation of the modeled object. The CAD system can, for example, provide a representation of a CAD modeled object using edges or lines, in some cases with faces or surfaces. Lines, edges or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications, according to which geometric figures can be generated, thereby enabling the representation to be generated again. The specifications of the modeled object can be stored in a single CAD file, or in multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of one megabyte per component. And a modeled object can typically be an assembly of tens of thousands of components.
[0121] In the context of CAD, a modeled object may generally be a 2D or 3D modeled object, for example representing a product such as a part or an assembly of parts, or possibly an assembly of a product. A 2D or 3D modeled object may be a manufactured product, i.e. a product to be manufactured. By "3D modeled object", it is meant any object modeled by data that allows its 3D representation. The 3D representation allows the part to be viewed from all angles. For example, when a 3D modeled object is represented in 3D, the 3D modeled object is manipulated or rotated about any of its axes or about any axis in the screen on which the representation is displayed. This specifically excludes 2D icons that are not modeled in 3D. The display of a 3D representation facilitates design (i.e. increases the speed at which the designer statistically completes his task). This speeds up the manufacturing process in industry, since the design of the product is part of the manufacturing process.
[0122] The 2D or 3D modeled object may represent the geometry of a product to be manufactured in the real world after its virtual design has been completed with, for example, a CAD / CAE software solution or a CAD / CAE system, such as a (e.g. mechanical) part or an assembly of parts (or equivalently an assembly of parts, since an assembly of parts can be considered as a part itself from a method point of view, or the method can be applied independently to each part of the assembly), or more generally any rigid body assembly (e.g. a moving mechanism). CAD / CAE software solutions allow product design in a variety of and not limited industrial fields, including: aerospace, architecture, engineering, consumer products, high-tech equipment, industrial equipment, transportation, marine and / or offshore oil and gas production or transportation. Therefore, the 3D modeled objects designed by this method can represent industrial products, which can be any mechanical parts, such as parts of land vehicles (including, for example, automobile and light truck equipment, racing cars, motorcycles, trucks and automobile equipment, trucks and buses, trains), parts of air vehicles (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), parts of naval vehicles (including, for example, naval equipment, commercial ships, offshore equipment, yachts and work boats, marine equipment), general mechanical parts (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, manufactured metal products, tire manufacturing products), electromechanical or electronic parts (including, for example, consumer electronics products, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer products (including, for example, furniture, home and garden products, leisure products, fashion products, products of hard goods retailers, products of soft goods retailers), packaging (including, for example, food and beverage and tobacco, beauty and personal care, household product packaging).
[0123] CAD systems can be history-based. In this case, the modeled object is also defined by data including the history of geometric features. The modeled object can actually be designed by a physical person (i.e., a designer / user) using standard modeling features (e.g., extrusion, rotation, cutting and / or rounding) and / or standard surface features (e.g., sweeping, blending, lofting, filling, deformation and / or smoothing). Many CAD systems that support this modeling function are history-based systems. This means that the creation history of the design features is usually saved by a non-cyclic data stream that links the geometric features together through input and output links. The history-based modeling paradigm has been well known since the 1980s. The modeled object is described by two persistent data representations: history and B-rep (i.e., boundary representation). B-rep is the result of the calculation 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 chessboard arrangement of B-rep). The history of the part is the design intent. Basically, history collects information about the operations that the modeled object has undergone. The B-rep can be saved with the history to make it easier to display complex parts. The history can be saved with the B-rep to allow design changes to be made to the part according to the design intent.
[0124] A PLM system also means any system suitable for managing modeled objects that represent physical manufactured products (or products to be manufactured). In a PLM system, a modeled object is therefore defined by data suitable for manufacturing a physical object. These can typically be dimensional values and / or tolerance values. In order to manufacture an object correctly, it is best to have such values.
[0125] CAE solution also refers to any solution, hardware or software suitable for analyzing the physical behavior of a modeled object. A well-known and widely used CAE technology is the finite element model (FEM), which is equivalently referred to as a CAE model in the following. FEM generally involves dividing the modeled object into elements, i.e. a finite element mesh, whose physical behavior can be calculated and simulated by equations. This CAE solution is produced by Dassault Systèmes under the trademark Another growing CAE technology involves modeling and analyzing complex systems consisting of multiple components from different physical domains without CAD geometry data. CAE solutions allow the simulation of manufactured products and thus their optimization, improvement and validation. This CAE solution is manufactured by Dassault Systèmes under the trademark Provided. CAE can be used to ensure that various structural requirements (such as but not limited to mass, stiffness, strength, durability) are achieved by the new CAD model. Some of these requirements may be referred to as key performance indicators (KPIs). For many industrial products (e.g., automobiles, aircraft, consumer packaged goods, high-tech), these KPIs conflict, for example, lower mass generally results in lower stiffness. Therefore, optimization methods are often applied to find the best compromise between KPIs.
[0126] A CAM solution refers to any solution of software suitable for managing the hardware of a product's manufacturing data. Manufacturing data typically includes data related to the product to be manufactured, the manufacturing process and the resources required. A CAM solution is used to plan and optimize the entire manufacturing process of a product. For example, it can provide the CAM user with information about the feasibility, the duration of the manufacturing process or the number of resources (such as a specific robot) that can be used at a specific step of the manufacturing process; thereby allowing a decision to be made on management or the required investment. CAM is a subsequent process after the CAD process and potentially the CAE process. For example, a CAM solution can provide information about machining parameters, or molding parameters that are consistent with the draft features provided in the CAD model. Such CAM solutions are sold by Dassault Systèmes under the trademarks CATIA, Solidworks or the trademark CAD. supply.
[0127] CAD and CAM solutions are therefore closely related. In fact, CAD solutions focus on the design of a product or component, while CAM solutions focus on how to manufacture it. Designing a CAD model is the first step in computer-aided manufacturing. In fact, CAD solutions provide key functionalities such as feature-based modeling and boundary representation (B-Rep) to reduce the risk of errors and loss of precision during the manufacturing process handled by CAM solutions. In fact, the purpose of a manufacturing CAD model is to manufacture. Therefore, it is a virtual twin, also called digital twin, of the object to be manufactured with two objectives:
[0128] - Check the correct behavior of the object to be manufactured in a specific environment; and
[0129] - Ensure the manufacturability of the object to be manufactured.
[0130] PDM stands for Product Data Management. A PDM solution is any solution, hardware or software, suitable for managing all types of data related to a specific product. PDM solutions can be used by all actors involved in the product life cycle: mainly engineers, but also project managers, finance personnel, sales personnel and buyers. PDM solutions are usually based on a product-oriented database. It allows actors to share consistent data on their products, thus preventing actors from using fragmented data. This PDM solution is sold by Dassault Systèmes under the trademark supply.
[0131] As previously described, the method manipulates a CAD object (given curve) and outputs a CAD object (given curve) that may be formed in or may be included in a CAD model. The CAD model may include or consist of a feature tree and / or a B-rep. Such a model may be derived from a CAE model and may be generated by a CAE to CAD conversion process.
[0132] The CAD model may be feature-based (e.g. it may include a feature tree and optionally a corresponding B-rep obtained by executing the feature tree). A feature-based 3D model allows for the detection and automatic resolution of geometric errors in the CAD model, such as collisions that will affect the manufacturing process (e.g. during the determination of a manufacturing file or CAM file as described below). A collision is the interpenetration between two parts of a 3D model, e.g. due to their relative motion. Furthermore, such collisions can sometimes only be detected by finite element analysis of a CAD feature-based model. Therefore, by iteratively modifying the parameters of the features and performing a finite element analysis, the resolution of the collision can be performed using or automatically by a CAD solution.
[0133] As another example, a feature-based 3D model allows the automatic creation of tool paths for a machine via computer numerical control (CNC), such as during the determination of a manufacturing file or CAM file as described below. With CNC, each object to be manufactured acquires a customized computer program that is stored in and executed by a machine control unit, i.e., a microcomputer connected to the machine. The program contains the 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 with CNC.
[0134] The key feature of a CAD model is that it can be precisely and unambiguously designed by linking a small number of high-level parametric design operations (including, for example, but not limited to, sketching, extrusion, chamfering), and edited by modifying its high-level parameters. This is a key difference from polyhedral representations such as triangular surface meshes, which can represent any 3D shape but do not provide the modification or parameterization capabilities required in industrial design environments.
[0135] Since the CAD model is a parametric model of the part / product, it is lighter in terms of memory footprint than other models such as CAE models. In fact, the CAD model allows storing lists of features and parameters instead of a collection of discrete geometric elements such as finite elements, which is lighter in terms of storage and memory footprint. Therefore, working on a CAD model reduces the memory requirements of the underlying system compared to, for example, a CAE model, and furthermore facilitates the editability of the model. This amounts to, in addition to transforming the CAE model into a more easily editable CAD model, the CAE to CAD conversion process actually compresses the CAE model into a CAD model that is lighter in terms of memory requirements (e.g., footprint).
[0136] The generation of custom computer programs from CAD files can be automated. Such generation can therefore be error-proof and can ensure perfect reproduction of the CAD model into the manufactured product. CNC is considered to offer potentially higher precision, complexity, and repeatability than manual machining. Other benefits include greater accuracy, speed, and flexibility, as well as capabilities such as contouring, which allows the milling of contoured shapes, including those produced in 3D designs.
[0137] 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 a mechanical part. A B-rep may be the result of a calculation and / or a series of operations performed during the design phase of a 3D modeled object that represents a mechanical part. When the modeled object is represented, the shape of the mechanical part displayed on a computer screen is a B-rep (e.g., a tessellation of the B-rep). In an example, a B-rep represents a portion of a modeled object.
[0138] B-rep includes topological entities and geometric entities. Topological entities are: faces, edges and vertices. Geometric entities are 3D objects: surfaces, planes, curves, lines, points. By definition, a face is a bounded part of a surface, called the supporting surface. An edge is a bounded part of a curve, called the supporting curve. A vertex is a point in 3D space. They are related to each other as follows. A bounded part of a curve is defined by two points (vertices) located on the curve. A bounded part of a surface is defined by its boundary, which is a set of edges located on the surface. The boundaries of the edges of the faces are connected by shared vertices. Faces are connected by shared edges. If two faces share an edge, they are adjacent. Similarly, if two edges share a vertex, they are adjacent. In a CAD system, B-rep collects the "bounded by" relationship, the relationship between the topological entity structure, and the mathematical description of the supporting geometric structure in appropriate data structures. The internal edges of a B-rep are the edges that are shared by exactly two faces. By definition, boundary edges are not shared, they only define 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 of its edges are interior edges. A B-rep is considered open if it includes at least one boundary edge. A closed B-rep is used to model thick 3D bodies because it defines the interior portion of the space that (virtually) surrounds the material. An open B-rep is used to model 3D skins, which represent 3D objects whose thickness is small enough to be ignored.
[0139] The key advantage of B-rep is its ability to accurately represent arbitrary shapes compared to any other type of representation used in CAD modeling. All other representations in use, such as point clouds, distance fields, and meshes, perform approximations of shapes to represent through discretization. On the other hand, B-rep contains surface equations that represent the exact design and therefore constitutes a true "master model" for further manufacturing, whether this is for the generation of tool paths for CNC or discretized into the correct sample density for a given 3D printer technology. In other words, by using B-rep, the 3D model can be an accurate representation of the manufactured object. B-rep is also advantageous for simulating the behavior of 3D models. In terms of stress, thermal, electromagnetic or other analysis, it supports local refinement of simulation meshes to capture physical phenomena, and in terms of kinematics, it supports real contact modeling between curved surfaces. Finally, B-rep allows for a small memory and / or file footprint. First, because the representation contains only parameter-based surfaces, in other representations such as meshes, the equivalent surface includes up to thousands of triangles. In other representations such as meshes, the equivalent surface includes up to thousands of triangles. Second, because B-Rep does not contain any history-based information.
[0140] The deformation method may be included in a production process, which may include, after executing the method, producing a physical product corresponding to a CAD model including a given curve. The production process may include the following steps:
[0141] The method is performed (eg, automatically).
[0142] The obtained CAD model is used to manufacture the part / product.
[0143] Using a CAD model for manufacturing refers to any real-world action or series of actions that involves / involves the manufacturing of the product / part represented by the CAD model. Using a CAD model for manufacturing may, for example, include the following steps:
[0144] Editing the obtained CAD model;
[0145] performing simulations based on the CAD model or based on a corresponding CAE model (e.g. the CAD model derived from the CAE model after a CAE to CAD conversion process), such as simulations for verifying mechanical, usage characteristics and / or manufacturing characteristics and / or constraints (e.g. structural simulations, thermodynamic simulations, aerodynamic simulations);
[0146] editing the CAD model based on the results of the simulation;
[0147] Optionally (i.e., depending on the manufacturing process used, the production of the mechanical product may or may not include this step), determining (e.g., automatically) a manufacturing file / CAM file based on the (e.g., edited) CAD model for use in the production / manufacturing of the manufactured product;
[0148] sending said CAD file and / or said manufacturing file / CAM file to a factory; and / or
[0149] (e.g., automatically) generating a manufacturing file / CAM file or CAD model based on the determined manufacturing file, manufacturing a mechanical product represented by the model original output by the method. This may include feeding the manufacturing file / CAM file and / or CAD file (e.g., automatically) to a machine that performs the manufacturing process.
[0150] The final step of production / manufacturing may be referred to as a manufacturing step or a production step. This step is based on a CAD model and / or CAM file, for example, when the CAD model and / or CAD file is fed to one or more manufacturing machines or a computer system that controls the machine, the part / product is manufactured / produced. The manufacturing step may include performing any known manufacturing process or a series of manufacturing processes, such as one or more additive manufacturing steps, one or more cutting steps (e.g., laser cutting or plasma cutting steps), one or more stamping steps, one or more forging steps, one or more bending steps, one or more deep drawing steps, one or more molding steps, one or more machining steps (e.g., milling steps), and / or one or more blanking steps. Because the design method improves the design of the model (CAE or CAD) representing the part / product, manufacturing and its productivity are also improved.
[0151] Editing a CAD model may include performing one or more versions of a CAD model by a user (i.e., a designer), for example, by using a CAD solution. Modifications to a CAD model may include one or more modifications to the geometry and / or parameters of the CAD model. Modifications may include any modification or a series of modifications performed on the feature tree of the model (e.g., modifications of feature parameters and / or specifications) and / or modifications performed on the display representation of the CAD model (e.g., B-rep). These modifications are modifications that maintain the technical functionality of the part / product, i.e., modifications performed by the user that may affect the geometry and / or parameters of the model, just to make the CAD model more technically compatible with the downstream use and / or manufacture of the part / product. Such modifications may include any modification or a series of modifications that make the CAD model technically compatible with the specifications of the machine used in the downstream manufacturing process. Such modifications may additionally or optionally include any modification or a series of modifications that make the CAD model technically compatible with further use after the product / part is manufactured, such modifications or a series of modifications being based on, for example, the results of a simulation.
[0152] The CAM file may include a manufacturing step-by-step model obtained from a CAD model. The manufacturing steps may include all data required to manufacture the mechanical product, so that its geometry and / or material distribution are consistent with those captured by the CAD model, and possibly to manufacturing tolerance errors. Determining the production file may include applying any CAM (Computer Aided Manufacturing) or CAD to CAM solution to (e.g. automatically) determine the production file from the CAD model (e.g. any automatic CAD to CAM conversion algorithm). Such a CAM solution or CAD to CAM solution may include one or more of the following software solutions, which enable, based on the CAD model of the product to be manufactured, the automatic generation of manufacturing instructions and tool paths for a given manufacturing process:
[0153] Fusion 360,
[0154] FreeCAD,
[0155] CATIA,
[0156] SOLIDWORKS,
[0157] NC Shop Floor Programmer from Dassault Systèmes shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer,
[0158] NC Mill-TurnMachine programmer from Dassault Systèmes shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer, and / or
[0159] Powder Bed Machine Programmer by Dassault Systèmes shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer
[0160] The product / part may be an additively manufacturable part, i.e. a part manufactured by additive manufacturing (i.e. 3D printing). In this case, by feeding the CAD model directly (e.g. and automatically) to the 3D printer, the production process does not include the step of determining the CAM file and proceeds directly to the production / manufacturing step. The 3D printer is configured to 3D print the mechanical product directly and automatically according to the CAD model when the CAD model representing the mechanical product is fed to the 3D printer (e.g. and when 3D printing is initiated by the 3D printer operator). In other words, the 3D printer receives (e.g., automatically) the CAD model fed to it, reads the CAD model (e.g., automatically), and prints the part (e.g., automatically) by adding material together (e.g., layer by layer) to reproduce the geometry and / or material distribution captured by the CAD model. The 3D printer adds material to accurately reproduce the geometry and / or material distribution captured by the CAD model in reality, up to the resolution of the 3D printer, and can choose whether there are tolerance errors and / or manufacturing corrections. Manufacturing may include determining such manufacturing corrections and / or tolerance errors, for example by a user (e.g., an operator of a 3D printer) or automatically (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. Additionally or alternatively, the production process may include determining the printing direction (e.g., to minimize overhang volume (as described in European Patent No. 3327593, which is incorporated herein by reference)), layer slicing (i.e., determining the thickness of each layer, the path / trajectory between layers, and other characteristics of the 3D printer head (e.g., for a laser beam, such as path, speed, intensity / temperature and other parameters)) from the CAD model (e.g., automatically by the 3D printer or a computer system controlling it).
[0161] Alternatively, the product / part may be a machined part (i.e., a part manufactured by machining), such as a milled part (i.e., a part manufactured by milling). In this case, the production process may include a step of determining a CAM file. This step may be automatically performed by any suitable CAM solution to automatically obtain a CAM file from a CAD model of the machined part. The determination of the CAM file may include (e.g., automatically) checking whether the CAD model has any geometric characteristics (e.g., errors or artifacts) that may affect the production process and (e.g., automatically) correcting such particularities. For example, if the CAD model still contains sharp edges (because the machining or milling tool cannot create sharp edges), machining or milling based on the CAD model may not be possible. In this case, the determination of the CAM file may include (e.g., automatically) chamfering or rounding such sharp edges (e.g., using a chamfer or rounding radius that corresponds to the tool tip radius of the machining tool, e.g., substantially equal within a tolerance error range) so that machining or milling can be performed based on the CAD model. More generally, the determination of the CAM file may automatically include chamfering or rounding of geometries in the CAD model that are incompatible with the radius of the machining or milling tool to enable machining / milling. This check and possible correction (such as chamfering or rounding of geometries) may be performed automatically as previously described, but may also be performed manually by a user (such as a machining engineer) on the CAD and / or CAM solution, for example, which constrains the user to perform corrections to make the CAD model conform to the specifications of the tool used in the machining process.
[0162] In addition to the inspection, the determination of the CAM file may include (e.g., automatically) determining a machining or milling path, i.e., the path of the product to be machined by the machining tool. The path may include a set of coordinates and / or a parameterized trajectory to be followed by the machining tool during machining, and determining the path may include, based on the CAD model, (e.g., automatically) calculating these coordinates and / or trajectories. The calculation may be based on the calculation of the boundaries of the Minkowski subtraction of the CAD model, represented by the CAD model of the machining tool, as discussed, for example, in European patent application EP21306754.9 filed by Dassault Systèmes on December 13, 2021, and incorporated herein by reference. It should be understood that the path may be a single path, for example, that the tool follows continuously without breaking contact with the material to be cut. Alternatively, the path may be a cascade of sequential sub-paths followed by the tool in a certain order, for example, the tool follows each sequential sub-path continuously without breaking contact with the material to be cut. Optionally, the determination of the CAM file may then include (e.g., automatically) setting machine parameters, including cutting speed, cutting / piercing height and / or die opening stroke, for example based on the determined path and based on the machine's specifications. Optionally, the determination of the CAM file may then include (e.g., automatically) configuring nesting, wherein the CAM solution determines the optimal orientation of the part to maximize machining efficiency.
[0163] In the case of machining or milling a part, the determination of the CAM file results in the generation of a CAM file, and thereby an output CAM file, which includes a machining path and optionally includes nested specifications of set machine parameters and / or configurations. The output CAM file can then be fed (e.g. directly and automatically) to a machining tool, and / or the machining tool can be programmed (e.g. directly and automatically) by reading the file, based on which the production process includes a production / manufacturing step in which the machine machines the product according to the production file (e.g. by directly and automatically executing the production file). The machining process includes the machining tool cutting a block of material in the real world to reproduce the geometry and / or material distribution captured by the CAD model, for example within a tolerance error range (e.g., tens of microns for milling).
[0164] Alternatively, the product / part may be a molded part, i.e. a part manufactured by molding (e.g., injection molding). In this case, the production process may include a step of determining a CAM file. The step may be automatically performed by any suitable CAM solution to automatically obtain a CAM file from a CAD model of the molded part. The determination of the CAM file may include (e.g., automatically) performing a molding check sequence based on the CAD model to check whether the geometry and / or material distribution captured by the CAD model are suitable for molding, and (e.g., automatically) performing appropriate corrections if the CAD model is not suitable for molding. Performing the check and appropriate corrections (if any) may be performed automatically, or alternatively, by a user (e.g., a molding engineer), for example using a CAD and / or CAM solution that allows the user to perform appropriate corrections to the CAD model, but limits his / her corrections so that the CAD model complies with the specifications of the molding tool. The check may include: verifying that the virtual product represented by the CAD model is consistent with the dimensions of the mold and / or verifying that the CAD model includes all draft angles required for demoulding the product, as known per se from molding. Then, the determination of the CAM file may also include determining the amount of liquid material to be used for molding based on the CAD model, and / or the time for the liquid material to harden / solidify in the mold, and outputting a CAM file including these parameters. Then, the production process includes (e.g., automatically) performing molding based on the output file, wherein, within the determined hardening time, the mold forms the liquid material into a shape corresponding to the geometry and / or material distribution captured by the CAD model, for example within a tolerance error range (e.g., until the draft angle is combined or until the draft angle is modified for demolding).
[0165] Alternatively, the product / part may be a stamped part, which may also be referred to as a "stamped part", i.e. a part manufactured in a stamping process. In this case, the production process may include (e.g., automatically) determining a CAM file based on a CAD model. The CAD model represents a stamped part, for example, if the stamped part includes some flanges, the stamped part may have one or more flanges, and may in the latter case include excess material that needs to be removed to form the unfolded state of one or more flanges of the part, as known from stamping itself. Therefore, the CAD model, which may also include excess material (if any), includes a portion representing a part without flanges (in some cases the entire part), and may include an external excess patch portion representing a flange (if any). The excess patch portion may present g2-continuity over a specific length and then g1-continuity over a specific length.
[0166] The determination of the CAM file may include, in this stamping case, determining the parameters of the stamping machine, such as the size and / or punching force of the stamping die or punch, (e.g., automatically), 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 unfolded state of one or more flanges of the part, the excess material to be removed may be cut, for example, by machining, and determining the CAM file may also include determining the corresponding machining CAM file, such as previously discussed. If there are one or more flanges, determining the CAM file may include determining the geometric specifications of the g2-continuity and the geometric specifications of the g1-continuity portion, which allows the flange to be folded to the inner surface of the stamped part and folded along the g2 continuous length during the folding process after the stamping itself and the removal of the excess material. The CAM file thus determined may therefore include: the parameters of the stamping tool, optionally the specifications for folding the flange (if any), and optionally the machining production file for removing the excess material (if any).
[0167] The stamping production process can then, for example, directly and automatically output a CAM file and perform a stamping process based on the file (e.g., automatically). The stamping process can include stamping (e.g., punching) a portion of the material to form a product represented by the CAD file, which may have an unfolded flange and excess material (if any). Where appropriate, the stamping process can then include cutting excess material based on the machining production file and folding the flange based on the specification for folding the flange, thereby folding the flange over its g2-continuous length and smoothing the outer boundaries of the part. In the latter case, the manufactured part shape is different from the virtual part shape represented by the CAD model because the excess material in the CAD model is removed and the flange is folded, whereas the part represented by the CAD model has excess material and the flange is in an unfolded state.
[0168] The method herein is computer-implemented. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any similar system. Therefore, the steps of the method may be performed by a computer, fully automatically or semi-automatically. In an example, the triggering of at least some steps of the method may be performed by user-computer interaction. The required user-computer interaction level may depend on the foreseen level of automaticity and be balanced with the need to implement the user's wishes. In an example, the level may be user-defined and / or predefined.
[0169] A typical example of a computer-implemented method is to use a system suitable for this purpose to perform the method. The system may include a processor and a graphical user interface (GUI) coupled to a memory on which a computer program including instructions for performing the method is recorded. The memory may also store a database. The memory is any hardware suitable for such storage, and may include several physically different parts (e.g., one for the program and possibly one for the database).
[0170] Fig.71 An example of a system is shown, where the system is a client computer system, such as a user's workstation.
[0171] The client computer of this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, a random access memory (RAM) 1070 also connected to the bus. The client computer is further provided with a graphics processing unit (GPU) 1110 associated with a video random access memory 1100 connected to the bus. Video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to a mass storage device (e.g., a hard disk drive 1030). Mass storage devices suitable for tangibly embodying computer program instructions and data include various forms of non-volatile memory, such as semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks. Any of the foregoing may be supplemented or integrated by a specially designed ASIC (application specific integrated circuit). A network adapter 1050 is responsible for managing access to a network 1060. The client computer may also include a tactile device 1090, such as a cursor control device, a keyboard, etc. A cursor control device is used in the client computer to allow the user to selectively position the cursor at any desired location on the display 1080. Additionally, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a plurality of signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, the buttons of which are used to generate the signals. Alternatively or additionally, the client computer system may include a sensor pad and / or a sensor screen.
[0172] The computer program may include instructions executable by a computer, the instructions including means for causing the above system to perform the method. The program may be recordable on any data storage medium (including the memory of the system). The program may be implemented, for example, in a digital electronic circuit device or computer hardware, firmware, software or a combination thereof. The program may be implemented as a device, for example, a product tangibly embodied in a machine-readable storage device to be executed by a programmable processor. The method steps may be performed by executing an instruction program by a programmable processor to perform the functions of the method by operating on input data and generating output. Therefore, the processor may be programmable and coupled to receive data and instructions from a data storage system, at least one input device and at least one output device, and to send data and instructions to a data storage system, at least one input device and at least one output device. The application program may be implemented in a high-level program or object-oriented programming language, or, if desired, in an assembly or machine language. In any case, the language may be a compiled language or an interpreted language. The program may be a complete installer or updater. The application of the program on the system in any 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, which communicates with one or more clients via a network. In such a case, the processing unit executes the instructions included in the program, thereby causing the method to be performed in a cloud computing environment.
Claims
1. A computer-implemented method for applying a CAD deformation operator to a given curve, the given curve being generated by converting a corresponding subdivision curve defined by a base mesh into a computer-aided design (CAD) curve format, the CAD deformation operator being configured to deform an input CAD object to create a contact geometric relationship with another CAD object, the method comprising: - converting said given curve into a format readable by said CAD deformation operator; - applying said CAD deformation operator to said transformed given curve; as well as - Converting the result of applying said CAD deformation operator back to said CAD curve format.
2. The method according to claim 1, wherein: The given curves include unit curves, each of the unit curves being pointed to by an edge, and wherein converting the given curves includes: - concatenating the given unit curves of the given curve into one or more single NURBS curves.
3. The method according to claim 2, wherein: The unit curve of the given curve is G2 continuous and the concatenation is therefore bias-free.
4. The method according to claim 2 or 3, wherein: Converting the result of applying the CAD deformation operator back to the CAD curve format comprises: - decomposing each of the one or more NURBS curves into a unit curve, the unit curve produced by the decomposition corresponding to the given unit curve.
5. The method according to claim 4, wherein: The number of unit curves generated by the decomposition is equal to the number of given unit curves.
6. The method according to any one of claims 1 to 5, wherein: The method further comprises, before the converting: Detecting sharp vertices in the base mesh; identifying corresponding sharp vertices in the given curve; Splitting the given curve according to the identified sharp vertices to split the given curve into curves each bounded by two sharp vertices or by one sharp vertex and one boundary vertex; The converting, applying and converting back steps are performed based on the curve obtained by the splitting.
7. The method according to any one of claims 1 to 6, wherein: The operator is one of the following: Matching operation on curves; Matching operation of 3D points; Matching operations on surface boundaries; Local fitting operations on other curves; Local fitting operations on one or more surfaces; A local fit operation on a polygon; or G2 symmetry operation about the symmetry plane.
8. The method according to any one of claims 1 to 7, wherein: The converting, applying and converting back steps are performed automatically.
9. A computer program comprising instructions, which, when a computer system executes the instructions, causes the computer system to perform the method according to any one of claims 1 to 8.
10. A computer-readable data storage medium having recorded thereon the computer program according to claim 9.
11. A computer system comprising a processor coupled to a memory, the memory having recorded thereon the computer program of claim 9.
Citation Information
Patent Citations
Process for creating a parametric surface having a required geometrical continuity
EP1750228A2
Orientation of a real object for 3D printing
EP3327593A1
3D axis machining design
EP4195088A1