Profile detection in discrete 3D model representing machined part

The method addresses the unreliability of existing profile detection in discrete 3D models by calculating distortion functions to identify valid profiles, ensuring compatibility with CAD software and effective integration of machined parts into manufacturing processes.

JP2025165406APending Publication Date: 2025-11-04DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025070354
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-22
Filing Date
2025-04-22
Publication Date
2025-11-04

AI Technical Summary

Technical Problem

Existing methods for profile detection in discrete 3D models representing machined parts are unreliable, particularly for complex cases such as self-intersecting curves and degenerate/non-manifold surfaces, leading to unusable 3D models in CAD software and potential software crashes.

Method used

A computer-implemented method that determines candidate parameterizations and projections of 3D surfaces onto a point cloud, calculating a function to penalize distortion between projections and parameterizations, ensuring the formation of valid profiles by comparing the function's value to a predefined threshold, thereby excluding invalid profiles like T-shaped curves.

Benefits of technology

The method robustly detects valid profiles in discrete 3D models, ensuring compatibility with CAD software and enabling reliable integration of machined parts into manufacturing processes, even in noisy models derived from 3D scans.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025165406000001_ABST
    Figure 2025165406000001_ABST
Patent Text Reader

Abstract

To provide a computer-implemented method for profile detection in a discrete 3D model in particular.SOLUTION: A discrete 3D model represents a machined part. The method includes: the steps for providing parameterization candidates for a 3D surface and projection candidates for the 3D surface to R2 about each 3D surface of at least one 3D surface in a 3D model; and calculating a function. The function penalizes distortion about each pair of point groups of the 3D surface having an adjacent parameter value. The distortion is present between difference between projections of the point groups and difference between parameterization of the point groups. Further, the method includes a step for determining that the parameterization candidates and the projection candidates form effective profile of the 3D surface if the calculated function is less than a threshold defined in advance.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to the field of computer programs and systems, and more particularly to methods, systems, and programs for profile detection in discrete 3D models representing machined parts. [Background technology]

[0002] The market offers numerous hardware and software solutions for designing, engineering, and manufacturing objects. CAD is an abbreviation for Computer-Aided Design, which refers to software solutions for designing objects. CAE is an abbreviation for Computer-Aided Engineering, which refers to software solutions for analyzing and simulating the physical behavior of future products. CAM is an abbreviation for Computer-Aided Manufacturing, which refers to software solutions for defining product manufacturing processes and resources. In such computer-aided design solutions, the graphical user interface plays a key role in the efficiency of the techniques. These techniques can be incorporated into product lifecycle management (PLM) solutions. PLM refers to an engineering strategy that helps companies share product data, apply common processes, and leverage corporate knowledge for product development from conception to the end of the product's life, across the entire extended enterprise concept. PLM solutions offered by Dassault Systèmes (under the registered trademarks CATIA, SIMULIA, DELMIA, and ENOVIA) provide an Engineering Hub that organizes product engineering knowledge, a Manufacturing Hub that manages manufacturing engineering knowledge, and an Enterprise Hub that enables enterprise integration and connectivity to both the Engineering and Manufacturing Hubs. All these solutions provide a common model that connects products, processes, and resources to enable dynamic, knowledge-based product development and decision support that drive optimized product definition, manufacturing preparation, production, and service.

[0003] In this situation, an improved solution for profile detection in discrete 3D models representing machined parts is needed. Summary of the Invention

[0004] Accordingly, a computer-implemented method for profile detection in a discrete 3D model is provided. The discrete 3D model represents a machined part. The method includes, for each 3D surface of at least one 3D surface in the 3D model, determining a candidate parameterization of the 3D surface and a parameterization of R. 2 and providing candidate projections of the 3D surface onto the point cloud. The method further comprises calculating a function that penalizes distortion for each pair of points of the 3D surface having adjacent parameter values. The distortion is the difference between the difference between the projections of the point cloud and the difference between the parameterizations of the point cloud. The method further comprises determining that the candidate parameterizations and projections form a valid profile of the 3D surface if the calculated function is less than a predefined threshold.

[0005] The method comprises one or more of the following: For each pair of consecutive points on the 3D surface, the function penalizes the distortion according to the ordering of the parameter values ​​of the points. The difference between projections of a point cloud is an increasing function of the distance between the projections of the point cloud, and the difference between parameterizations of a point cloud is an increasing function of the distance between the parameterizations of the point cloud. -This function belongs to the following type: 〇

[0006]

number

[0007] where,

[0008]

number

[0009] However, 〇 V=(v1,…,v n ) is a set of points (p1,…,p n ), and 〇 F=(f1,…,f n ) is a set of points (p1,…,p n ) and f i and p i are ordered. The at least one 3D surface includes at least one 3D surface for which it is determined that the parameterization candidates and the projection candidates do not form a valid profile. the at least one 3D surface comprises a 3D surface formed by a collection of a first 3D surface and a second 3D surface, the projection candidate is a projection candidate of the collection of the first 3D surface and the second 3D surface, and the parameterization candidate is a parameterization candidate of the collection of the first 3D surface and the second 3D surface. the first 3D surface and the second 3D surface are adjacent and have a common point cloud, and the candidate parameterization of the aggregation of the first 3D surface and the second 3D surface is an aggregation of parameterizations of the first 3D surface and the second 3D surface, whereby the common point cloud has the same parameterization. The parameterization of the collection of first and second 3D surfaces belongs to the following type:

[0010]

number

[0011] where,

[0012]

number

[0013] , and

[0014]

number

[0015] , and

[0016]

number

[0017] where F=(f1,…,f r+m ) is the parameterization of the first 3D surface, G = (g1,…,g r+n ) is the parameterization of the second 3D surface, (f1,…,f r ) and (g1,…,g r ) is the common point group (c1,…,c r ) to parameterize it. The discrete 3D model is derived from a 3D scan of the machined part; and / or If it is determined that the parameterization candidates and the projection candidates form a valid profile of the 3D surface, the method further comprises:

[0018] * Adapting CAD operators to surfaces based on profiles.

[0019] Further provided is a computer program comprising instructions for carrying out the method.

[0020] Additionally, a computer readable storage medium having a computer program recorded thereon is provided.

[0021] Further provided is a computer system comprising a processor coupled to a memory, the memory having a computer program stored therein. [Brief explanation of the drawings]

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

[0023] [Figure 1] FIG. 1 illustrates the method. [Figure 2] FIG. 1 illustrates the method. [Figure 3] FIG. 1 illustrates the method. [Figure 4] FIG. 1 illustrates the method. [Figure 5] FIG. 1 illustrates the method. [Figure 6] FIG. 1 illustrates an example of a system. DETAILED DESCRIPTION OF THE INVENTION

[0024] A computer-implemented method for profile detection in a discrete 3D model is proposed. The discrete 3D model represents a machined part. The method includes, for each 3D surface of at least one 3D surface in the 3D model, determining a candidate parameterization of the 3D surface and a R 2 and providing candidate projections of the 3D surface onto the point clouds. The method further comprises calculating a function that, for each pair of point clouds of the 3D surface having adjacent parameter values, penalizes distortion, the distortion being between the difference between the projections of the point clouds and the difference between the parameterizations of the point clouds. The method further comprises determining that the candidate parameterizations and the candidate shadows form a valid profile of the 3D surface if the calculated function is less than a predefined threshold.

[0025] The method constitutes an improved solution for profile detection in discrete 3D models representing machined parts.

[0026] First, for each 3D surface of one or more 3D surfaces in the discrete 3D model, the method detects the profile of the 3D surface. Specifically, the method detects whether the candidate parameterizations and projections for the 3D surface form a valid profile, and if so, the profile is detected (i.e., the surface is detected as profile-based). Detecting the profile of a 3D surface is particularly relevant in manufacturing CAD, which refers to software solutions for the design and / or manufacture of machined parts represented by a 3D model. Indeed, detecting the profile of a 3D surface allows, for example, fitting a CAD operator (e.g., an extrusion operator or a draft operator) to the 3D surface. Fitting the CAD operator is part of the inference step of a CAD feature tree for the 3D discrete model, and this model can be in a CAD format (CAD model) that can be used to manufacture the machined part represented by that model.

[0027] Furthermore, the method not only detects profiles, but does so in a robust manner.

[0028] Indeed, prior art methods exist that detect profiles by detecting small portions of a curve and assembling them together (if possible) to form the profile. These methods may be successful in detecting profiles for very simple cases but may fail for more complex cases. For example, self-intersecting curves, such as T-shaped curves, can be detected as profiles by these methods. However, these self-intersecting profiles cannot be processed by CAD software, so they do not constitute profiles in the world of manufacturing CAD. For example, T-shaped curves cannot be fitted with CAD features / operators. This is more generally the case for degenerate / non-manifold curves, which prior art methods can infer from degenerate / non-manifold surfaces. Therefore, applying these prior art profile detection methods results in a processed 3D model that is unusable by CAD software except in very complex cases and that, when input into CAD software, would cause the CAD software to crash.

[0029] This problem is solved by the present method. Indeed, to find the profile of a given 3D surface of a discrete 3D model, the present method considers a candidate parameterization of the surface and a two-dimensional space R 2 It takes as input the projection candidates of the surface onto R. The surface parameterization is 2 is a continuous curve that maps a surface to R. 2 The method then determines whether these inputs form a valid profile of a 3D surface, i.e., (Note: in the discrete setting) R 2The method maps R (or at least an image of a parameterization in R) onto R and determines from these whether there exists a continuous curve (profile) with unit velocity such that the composition of this curve and parameterization is equal to the projection. The method determines whether the existence of a profile curve holds, but in a discrete setting since the 3D model is discrete. To do so, the method computes, for each pair of 3D surface point clouds with adjacent parameter values, a function that penalizes the distortion between the difference between the projection of the point clouds and the difference between the parameterizations of the point clouds. In other words, if two adjacent point clouds on a surface have closely spaced parameterizations, and R 2 If the projection of the points onto the surface also remains close, the function tends to have a small value. If this is true for all close pairs of points within the 3D surface, i.e., if the function is determined to have a small value that is less than a (small) predefined threshold for the 3D surface, it means that a true profile curve exists for the parameterization and projection candidates. If the function has a larger value, the method determines that no profile exists for these parameterization and projection candidates. This ensures that the method detects a profile corresponding to a continuous curve with unit velocity, which is a true profile that can be processed by CAD software. Typically, T-shaped curves, or more generally, degenerate and / or self-intersecting curves, fail the test performed by the method, i.e., the function will be larger than the threshold. Therefore, the method reliably excludes these cases as valid profiles, ensuring reliable integration of the 3D model in CAD software. In other words, the evaluation of projection-parameterization pairs provides robustness and strength for profile detection.

[0030] The discrete 3D model results from a 3D scan of a machined part. Therefore, in this case, the method detects one or more profiles on one or more surfaces within the scanned 3D model, thereby performing indirect measurements on the scanned object. Therefore, the method can be used for reverse engineering, and once the profiles are detected, a step of fitting a CAD feature operator to each profile can be performed to make the scanned object usable in CAD software. For example, the method may include, as an initial step, performing a 3D scan of the machined part to obtain a discrete 3D model. When obtained from a 3D scan, the discrete 3D model may contain noise. In such cases, conventional methods tend to fail to detect profiles within the model, whereas the present method is successful in such cases. Therefore, the method is robust to noisy models derived from 3D scans.

[0031] Alternatively or additionally, the method may also be used for the design and / or manufacture of a machined part represented by a discrete 3D model. To that end, the method may include the further step of converting the discrete 3D model into a CAD model by any known method. This may include, in particular, the step of adapting a CAD operator to each surface whose profile has been detected by any known suitable method. The method may then include additional steps related to the design and / or manufacture of the CAD model. These steps are described in more detail below.

[0032] The method can be used more generally in the fields of 3D CAD analysis, modeling and editing, 3D reconstruction and recognition, simulation and experimental design.

[0033] Furthermore, as described further herein, the method can detect whether the union of two valid profiles for two 3D surfaces still forms a valid profile for the union of the two surfaces.

[0034] The method is for profile detection in a discrete 3D model representing a machined part, meaning that the method receives as input the discrete 3D model and outputs, for each 3D surface of at least one 3D surface, data indicating whether candidate parameterizations and projections on the 3D surface form a valid profile (e.g., the output may be a "yes" or "no" indicator). If the output indicates that the candidate parameterizations and projections do indeed form a valid profile, the method may further comprise calculating the profile (by any known method suitable for calculating a profile based on the parameterizations and projections) and outputting the profile, or parameters thereof.

[0035] A valid profile, also called profile shape, is a triplet (S, π, γ),

[0036]

number

[0037] is a surface,

[0038]

number

[0039] is a continuous map,

[0040]

number

[0041] is a curve with unit velocity, so that

[0042]

number

[0043] There exists a continuous map of that satisfies the following equation:

[0044]

number

[0045] is.

[0046] If (*) holds, then π is the projection of the profile shape and γ is its profile curve (also called "the profile");

[0047]

number

[0048] is a parameterization of the profile shape. This definition is illustrated in Figure 1. Examples of CAD profile shapes include extruded surfaces, revolved surfaces, draft extruded surfaces, and sweeps. The method detects such profiles.

[0049] The at least one 3D surface may comprise one or more 3D surfaces in the 3D model. These surfaces may comprise a subset of all surfaces in the 3D model (e.g., all such surfaces may result from a segmentation of the 3D model, the method optionally comprising performing this segmentation as an initial step). These surfaces may result from an initial step of pre-processing the discrete 3D model to detect these surfaces as surfaces that may be defined by a profile. The method may include such an initial step, which may be performed by any known method. This initial step may include detecting extrusion surfaces in the 3D model by applying the method disclosed in European Patent Application EP 21305673.2, filed by Dassault Systèmes and incorporated herein by reference. This initial step may also include applying the method disclosed in European Patent Application No. EP 21305763.1, filed by Dassault Systèmes and incorporated herein by reference, to detect revolution surfaces within the 3D model. This initial step may also include applying the method disclosed in European Patent Application No. EP 23306189.4, filed by Dassault Systèmes and incorporated herein by reference, to detect draft surfaces within the 3D model (more specifically, applying the tests performed by this method to detect draft surfaces within the 3D model). This initial step may also include applying any suitable known method to detect sweep surfaces within the 3D model. Alternatively, the subset may be selected by the user graphically, for example, by clicking on the surfaces to be selected.

[0050] A 3D discrete model is a 3D discrete geometric representation of a machined part. A discrete geometric representation is a data structure that contains a discrete collection of portions of data. Each portion of data may equivalently be called a discrete element. Each portion of data represents a respective geometric entity located in 3D space. Each geometric entity represents a respective location of the 3D object (or, in other words, a respective portion of material that makes up the solid represented by the 3D object). The collection (i.e., the combination or juxtaposition) of the geometric entities represents the entire 3D object. A discrete geometric representation may, in examples, contain 100, 1000, or more than 10,000 such portions of data.

[0051] The discrete geometric representation may be, for example, a 3D point set, where each geometric entity is a point. Alternatively, the discrete geometric representation may be a 3D mesh, where each geometric entity is a mesh tile or face. The 3D mesh may be regular or irregular (i.e., may or may not be composed of faces of the same type). The 3D mesh may be, for example, a polygonal mesh, such as a triangular mesh. The 3D mesh may be obtained from the 3D point set, for example, by triangulating the 3D point set (e.g., using Delaunay triangulation).

[0052] A 3D point set or a 3D mesh can be determined, for example, from physical measurements on a real object (i.e., an actual machined part) within a reconstruction process. The 3D reconstruction process can include providing a real object, providing one or more physical sensors, each configured to acquire a respective physical signal, and collecting the one or more respective physical signals by operating the one or more physical sensors on the real object (i.e., scanning the real object with each sensor). The 3D reconstruction can then automatically determine the 3D point set and / or the 3D mesh based on the measurements according to any known technique. The one or more sensors can include multiple cameras (e.g., RGB, and / or image or video, etc.), and the determination can include structure-from-motion analysis of three-dimensional shape reconstruction from multi-perspective images. Alternatively or additionally, the one or more sensors can include one or more depth sensors (e.g., on an RGB depth camera), and the determination can include 3D reconstruction from the depth data. The one or more depth sensors can include, for example, a laser (e.g., lidar, etc.) or an ultrasonic emitter-receiver. The 3D reconstruction process may be part of a reverse engineering process for obtaining a CAD model of the real object, which reverse engineering process also includes a method for detecting CAD volume extrusion operators on the measured 3D object, which contribute to the definition of the raw measured object in terms of CAD features and thus contribute to the reverse engineering process.

[0053] Alternatively, the 3D point set or 3D mesh may be obtained from a 3D modeled object representing the skin (i.e., outer surface) of a solid or machined part by ray casting on the 3D modeled object or by tessellating the 3D modeled object. The tessellation may be performed according to any 3D modeled object rendering process. Such a rendering process may be coded on any CAD system to display a graphical representation of the 3D modeled object. The 3D modeled object may be designed or have been designed by a user using a CAD system.

[0054] The method may comprise providing a discrete 3D model, such as at an initial step of the method. This may include retrieving (e.g., downloading) the 3D model from a (e.g., remote) memory, or server, or database where the 3D modeled object is stored (e.g., following a 3D scan of the machined part). If the discrete 3D model results from a 3D scan of the machined part, providing the discrete 3D model may include performing a 3D scan of the machined part, thereby obtaining a 3D point set as the 3D discrete model, or meshing this 3D point set (e.g., using any suitable triangulation process), thereby obtaining a 3D mesh as the discrete 3D model.

[0055] For each 3D surface of the at least one 3D surface, the method comprises: 2 and providing a candidate projection of the 3D surface onto the surface.

[0056] If M is a (topological) manifold of dimension d, then a parameterization is an atlas of charts on M, i.e., a set of homeomorphisms of smooth manifolds.

[0057]

number

[0058] This is the construction of

[0059]

number

[0060] forms an open covering of M. Indeed, on smooth manifolds (i.e., C ∞ ) on a smooth chart (C ∞ -diffeomorphisms). A surface mesh or point set represents a polygonal surface, which is a special case of a topological manifold of dimension 2. Therefore, a parameterization of the mesh or point set, i.e., the entire surface is covered by the domain of the mesh or point set, can be constructed in R. 2 A family of continuous maps with values ​​within . A candidate parameterization of a 3D surface is any parameterization of such a 3D surface. The candidate parameterization may be any parameterization that follows the natural orientation of the surface. For example, the candidate parameterization of a 3D surface may be a parameterization obtained by the method for parameterization disclosed in European Patent Application EP21305671.6, filed by Dassault Systèmes and incorporated herein by reference.

[0061] R 2The projection candidate of the 3D surface onto π may be any initial guess π of the optimal projection to satisfy equation (*) (in a discrete setting). Such an initial guess may be provided by a user or by any computer-implemented method suitable for this purpose. For example, if the surface is an extruded surface, the projection candidate may be the orthogonal projection calculated by the extrusion detection method disclosed in European Patent Application No. EP 21305673.2, which is incorporated herein by reference. If the surface is a rotated surface, the projection candidate may be the orthogonal projection calculated by the rotation detection method disclosed in European Patent Application No. EP 21305763.1, which is incorporated herein by reference. If the surface is a draft surface, the projection candidate may be the projection calculated by the draft detection method disclosed in European Patent Application No. 23306189.4, which is incorporated herein by reference. Other solutions exist in the prior art for computing projection candidates in the case of different surfaces.

[0062] The method steps are performed for each 3D surface of the at least one 3D surface, where a candidate parameterization and a candidate projection are input. These steps may be repeated for multiple different candidate parameterizations and / or multiple different candidate projections until a single pair of parameterizations and projections produces a valid profile, or until the method determines that all possible pair of parameterizations and projections produce invalid profiles.

[0063] In addition to providing candidate parameterizations and candidate projections of the 3D surface, the method also includes calculating a function that, for each pair of 3D surface points with adjacent parameter values, penalizes the distortion between the difference between the projections of the points and the difference between the parameterizations of the points. This means that the function depends on each pair of 3D surface points with adjacent parameter values ​​(i.e., with close parameter values), and the parameter value of a point is the value of the parameterization of this point according to the candidate parameterization. This function can be, for example, the sum or maximum value of the aforementioned distortions for each pair of points over these pairs of points.

[0064] The function may penalize distortion for each pair of consecutive points of a 3D surface according to the order of the point cloud's parameter values. In other words, the distortion may depend on each pair of consecutive points, e.g., it may be a sum or maximum value over these pairs of consecutive points. Each pair is a pair of consecutive points of a 3D surface according to the order (i.e., increasing or decreasing) of the point cloud's parameter values. That is, the points of the 3D surface are ordered according to the ascending or descending order of the point cloud's parameter values ​​(given by the parameterization candidates), and consecutive points are consecutive points in this order.

[0065] This distortion is a term (e.g., subtraction) that tends to have high values ​​(at least in absolute value) when the differences between the projections of the point clouds (i.e., the images of the point clouds by the projection candidates) and the differences between the parameterizations of the point clouds are extremely large. That is, for example, when the differences between the projections of the point clouds are high (i.e., the projected points tend to move away from each other when projected, even though they are expected to be close on the profile), and the differences between the parameterization values ​​are low (i.e., the points are expected to be close on the profile). Thus, due to distortion, points that are expected to be close on the profile (according to the parameterization) will be projected by the projection candidates with a large difference in R 2In other words, the difference in parameterization corresponds to the expected distance between the points on the profile curve, which is compared to the distance achieved by projection.

[0066] The difference between projections of point clouds can be an increasing function of the distance between the two point projections (i.e., between the images of the point cloud by the candidate projections) for each pair of point clouds. The difference between parameterizations of point clouds can be an increasing function of the distance between the two point parameterizations (i.e., between the images of the point cloud by the candidate projections) for each pair of point clouds.

[0067] An example formula for the function will be described below: This formula comes from the discrete setting of this disclosure. For completeness, the continuous setting will be described first.

[0068] [Continuous Settings] Let X be a topological space.

[0069]

number

[0070] and

[0071]

number

[0072] Let be a continuous map.

[0073]

number

[0074] teeth,

[0075]

number

[0076] If so, then X is said to have a degenerate profile.

[0077]

number

[0078] , and

[0079]

number

[0080] (i.e., γ is parameterized by the arc length).

[0081] Point Cloud Pair

[0082]

number

[0083] For all of the above, the distortion is defined by the following equation:

[0084]

number

[0085] is.

[0086]

number

[0087] is a profile degenerate of X if and only if:

[0088]

number

[0089] , i.e.

[0090]

number

[0091] is.

[0092] [Discrete Settings]

[0093]

number

[0094] Let be the set of 2D points corresponding to the projection of the surface (by the projection candidates) onto R2,

[0095]

number

[0096] Let be the relevant parameters (i.e., according to the candidate parameterization).

[0097]

number

[0098] In all of the above,

[0099]

number

[0100] (If not, we can perform an index permutation so that this assumption holds.) This is the parameter ordering. V is

[0101]

number

[0102] and

[0103]

number

[0104] Using the approximation of the embedded topological space in the following sense,

[0105]

number

[0106] This is the case when V is the projection of the 3D surface by the projection candidate π. A continuous

[0107]

number

[0108] In contrast,

[0109]

number

[0110] Such a parameterization can be obtained using the method for parameterization disclosed in the above-mentioned European patent application EP21305671.6.

[0111] Therefore, the approximate local strain energy is defined as follows:

[0112]

number

[0113] The distortion is defined as follows:

[0114]

number

[0115] is.

[0116] When ε>0, (V,F) becomes a ε-quasi-discrete profile if the following condition is satisfied:

[0117]

number

[0118] is.

[0119] For sufficiently small ε (including the range from 0.001 times the diameter of the 3D model to 0.05 times the diameter of the 3D model, e.g., with larger choices of ε if the model contains noise), if (V,F) is an ε-near-discrete profile, then (V,F) is a valid discrete profile.

[0120] In other words, functions can be of the following types:

[0121]

number

[0122] where,

[0123]

number

[0124] However, 〇 V=(v1,…,v n ) is a set of points (p1,…,p n ), and 〇 F=(f1,…,f n ) is a set of points (p1,…,p n ) and f i and p iare ordered.

[0125] In addition to calculating the function, the method then comprises determining that the candidate parameterizations and projections form a valid profile of the 3D surface if the calculated function is less than a predefined threshold. In other words, the method compares the calculated value of the function with a predefined threshold, e.g., ε 2 is a predefined threshold,

[0126]

number

[0127] and if the value of the function is less than a predefined threshold, determine that the candidate parameterization and projection form a valid profile of the 3D surface, or if the value of the function is greater than the predefined threshold, determine that the candidate parameterization and projection do not form a valid profile of the 3D surface. The method may output data indicating whether the candidate parameterization and projection are determined to form a valid profile. If the candidate parameterization and projection are determined to form a valid profile, the method may further comprise calculating a profile curve γ that satisfies equation (*) by any known suitable profile calculation method.

[0128] The steps of the method are performed for each 3D surface of the at least one 3D surface. For each pair (V, F) representing a discrete profile candidate for a particular surface of the at least one 3D surface, the method includes: V,F , and if it is not a valid discrete profile, the pair can be filtered out. Figure 2 shows examples of pairs (V,F) classified as valid or non-valid discrete profiles. In the example on the right side of the figure, E V,F High values ​​of (ε 2(larger than ). In fact, some point clouds have very similar values ​​of parameter f but very different positions (v is far apart), so (V,F) would be classified as a non-valid discrete profile. In contrast to the left-hand image, in the right-hand image, the point cloud splits into two branches as it progresses to the right of the image. This is consistent with the fact that a continuous curve that splits into multiple branches (a non-manifold curve) is not a valid profile, as illustrated by Figure 3.

[0129] The at least one 3D surface may include at least one 3D surface for which it has been determined that the candidate parameterizations and projections do not form a valid profile. The at least one 3D surface may additionally or alternatively include at least one 3D surface for which it has been determined that the candidate parameterizations and projections form a valid profile.

[0130] Furthermore, if it is determined that the candidate parameterizations and projections form a valid profile of the 3D surface, the method may comprise fitting a CAD operator to the surface based on the profile, which may be performed by any suitable method.

[0131] The at least one 3D surface may include a 3D surface formed by a collection of a first 3D surface and a second 3D surface. In this case, the projection candidate is a projection candidate of the collection of the first 3D surface and the second 3D surface, and the parameterization candidate is a parameterization candidate of the collection of the first 3D surface and the second 3D surface. The first 3D surface and the second 3D surface may, for example, be adjacent and have a common point cloud. In this case, the parameterization candidate of the collection of the first 3D surface and the second 3D surface is a collection of parameterizations of the first 3D surface and the second 3D surface, whereby the common point cloud has the same parameterization. The projection candidate may be any appropriate projection candidate.

[0132] for example,

[0133]

number

[0134] is the common point group,

[0135]

number

[0136] Let be the remaining points of the first surface,

[0137]

number

[0138] Let be the remaining points of the second surface.

[0139]

number

[0140] (first surface parameterization) and

[0141]

number

[0142] (second surface parameterization)

[0143]

number

[0144] and

[0145]

number

[0146] Consider:

[0147]

number

[0148] is a continuous map,

[0149]

number

[0150] and

[0151]

number

[0152] can be assumed.

[0153]

number

[0154] Let be a projection candidate (π is continuous).

[0155]

number

[0156] Let be the mean shift value:

[0157]

number

[0158] is.

[0159] The parameterization of the ensemble is

[0160]

number

[0161] and

[0162]

number

[0163] , and finally can be obtained by calculating:

[0164]

number

[0165] is.

[0166] The parameters for these point sets can be associated with the following point sets:

[0167]

number

[0168] and V = π(R).

[0169]

number

[0170] to (R,H) is sometimes called a parameterized ensemble, and this ensemble is valid if (V,H) is a valid discrete profile (according to the determining step of the method). Again, this calculation can be used to generate new candidate profiles and filter out ensembles that are not valid.

[0171] In other words, the parameterization of the collection of first and second 3D surfaces can belong to the following types (for example, more precisely, the following types):

[0172]

number

[0173] where,

[0174]

number

[0175] and

[0176]

number

[0177] and

[0178]

number

[0179] where F=(f1,…,f r+m ) is the parameterization of the first 3D surface, G = (g1,…,g r+n ) is the parameterization of the second 3D surface, (f1,…,f r ) and (g1,…,g r ) is the common point group (c1,…,c r ) where f i and g i is described above

[0180]

number

[0181] are not necessarily ordered (ascending or descending), as are the f in the formula for , but in the examples they may be ordered as such. They are ordered simply to allow a common set of points to emerge.

[0182] Figure 4 shows an example where the method will detect that two planar segments (segment 1 and segment 2) on a surface mesh (representing a 3D machined part) cannot be reconstructed from a single extrusion with a valid profile, but if taken separately, the two planar segments can be part of two extrusions. In other words, valid discrete profiles can be calculated for both of these segments, but the corresponding profiles cannot be aggregated into a larger valid discrete profile, which is shown in Figure 5.

[0183] As previously mentioned, the method may be included in a process for designing and / or manufacturing a machined part represented by a discrete 3D model.

[0184] "Design of manufactured product / machined part / machined product" refers to any action or series of actions that are at least part of a process of refining a modeled object (3D or 2D) of a manufactured product / machined part / machined product. The method may form such a process or form at least part of it. Indeed, as mentioned above, the method may be part of a step of converting a discrete 3D model into a 3D CAD model, the method detecting profiles and enabling fitting of a CAD operator based on these profiles (and the method may comprise this fitting step).

[0185] As such, the methods typically manipulate modeled objects, such as discrete 3D models. A modeled object is any object defined by data stored, for example, in a database. By extension, the term "modeled object" refers to the data itself. Depending on the type of system, a modeled object may be defined by various types of data. Indeed, a system may be any combination of a CAD system, a CAE system, a CAM system, a PDM system, and / or a PLM system. In these various systems, a modeled object is defined by corresponding data. Thus, it may be referred to as a CAD object, a PLM object, a PDM object, a CAE object, a CAM object, CAD data, PLM data, PDM data, CAM data, or CAE data. However, since a modeled object may be defined by data corresponding to any combination of these systems, these systems are not mutually exclusive. Thus, a system may be both a CAD, a CAE, a PLM, and / or a CAM system, as will become apparent from the definitions of such systems provided below.

[0186] A CAD solution (e.g., a CAD system or CAD software) also refers to any system, software, or hardware adapted to at least design a modeled object based on a graphical representation of the modeled object, such as CATIA, and / or a structured representation thereof (e.g., a feature tree). In this case, data defining the modeled object consists of data enabling the representation of the modeled object. For example, a CAD system provides a representation of the CAD modeled object using edges or lines, and possibly faces or surfaces. The lines, edges, or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications from which geometry can be generated, which in turn enables the representation of the generated object. The specifications of the modeled object may be stored in a single CAD file or may be saved in multiple CAD files. Typical sizes of files representing modeled objects in CAD systems are in the range of one megabyte per part. Furthermore, the modeled object may typically be an assembly of thousands of parts.

[0187] In the context of CAD, a modeled object may typically be a 2D modeled object or a 3D modeled object, and may represent a product, such as a part or assembly of parts, or possibly an assembly of a product. The 2D or 3D modeled object is a manufactured product, i.e., a product to be manufactured. A "3D modeled object" means any object modeled by data that allows for its 3D representation. The 3D representation allows the part to be viewed from any angle. For example, a 3D modeled object, when represented in a 3D representation, can be manipulated and rotated around any of its axes or around any of the axes within the screen on which the representation is displayed. This specifically does not include 2D icons that are not 3D modeled. Displaying 3D representations facilitates design (i.e., statistically increases the speed at which designers accomplish their tasks). Because product design is part of the manufacturing process, this speeds up the manufacturing process in industry.

[0188] The 3D modeled object involved in this method may represent the shape of a product to be manufactured in the real world after its virtual design is completed, for example, by a CAD / CAE software solution or CAD / CAE system. This may include a (e.g., machined) part or part assembly (or, equivalently, any assembly of parts, since an assembly of parts may be considered a part itself from the perspective of this method, or the method may be applied to each part of the assembly independently), or more generally, any rigid assembly (e.g., a moving mechanism). CAD / CAE software solutions enable the design of products in a variety of industries, including aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine, and / or offshore oil and gas production or transportation. Thus, the 3D modeled object designed by this method may represent an industrial product, which may be any machined part. That is, for example, parts of land vehicles (including, for example, automobile and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, trains, etc.), parts of aircraft (including, for example, airframe equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, space equipment, etc.), parts of watercraft vehicles (including, for example, naval equipment, merchant ships, offshore equipment, yachts and workboats, marine equipment, etc.), general machined parts (including, for example, industrial manufacturing machinery, large mobile machines or equipment, installation equipment, industrial equipment products, metal fabrication products, tire manufacturing products, etc.), electromechanical or electronic products (including, for example, consumer electronics, security and / or control and / or measurement products, computing and communications equipment, semiconductors, medical devices and instruments, etc.), consumer products (including, for example, furniture, home and garden products, leisure products, fashion products, hard goods retailer products, soft goods retailer products, etc.), packaging (including food and beverage and tobacco, beauty and personal care, household goods packaging, etc.), etc.

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

[0190] A PLM system further refers to any system adapted to the management of modeled objects that represent physically manufactured products (or products to be manufactured). In a PLM system, the modeled objects are therefore defined by data that are suitable for the manufacture of the physical objects. These are typically dimensional and / or tolerance values ​​that are actually preferred to have in order to correctly manufacture the objects.

[0191] A CAE solution also refers to any software solution for hardware that is suitable for analyzing the physical behavior of a modeled object. A well-known and widely used CAE technique is finite element modeling (FEM), which will hereafter be referred to synonymously as a CAE model. FEM typically divides a modeled object into a set of elements, or finite element mesh, and equations can be used to calculate and simulate its physical behavior. Such CAE solutions are offered by Dassault Systèmes under the trademark SIMULIA®. Another growing CAE technique involves modeling and analyzing complex systems composed of multiple components from various physical disciplines without using CAD geometry data. CAE solutions enable simulation, and therefore optimization, improvement, and validation of manufactured products. Such CAE solutions are offered by Dassault Systèmes under the trademark DYMOLA®. CAE can be used to ensure that various structural requirements (such as, but not limited to, mass, stiffness, strength, and durability) are achieved by a new CAD model. Some of these requirements are sometimes called key performance indicators (KPIs). For many industrial products (e.g., automobiles, aircraft, consumer packaged goods, high-tech products, etc.), these KPIs are in conflict (e.g., lower mass usually means lower stiffness), so optimization methods are often applied to find the best tradeoff between the KPIs.

[0192] A CAM solution refers to any software solution for hardware adapted to manage a product's manufacturing data. Manufacturing data typically includes data related to the product being manufactured, the manufacturing process, and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, they provide CAM users with information about the feasibility, duration, or number of resources, such as specific robots, that can be used in a particular step of the manufacturing process, thereby enabling management or investment decisions. CAM is a process that follows the CAD process and potentially the CAE process. For example, a CAM solution may provide information about machining or forming parameters closely related to an extrusion feature provided in a CAD model. Such CAM solutions are offered by Dassault Systèmes under the trademarks CATIA®, Solidworks®, or DELMIA®.

[0193] Therefore, CAD solutions and CAM solutions are closely related. In fact, CAD solutions focus on the design of a product or part, while CAM solutions focus on its manufacturing method. The design of a CAD model is the first step towards computer-aided manufacturing. In fact, CAD solutions provide important functions such as feature-based modeling and boundary representation (B-rep) to reduce the risk of errors and loss of precision during the manufacturing process handled with CAM solutions. In fact, CAD models are intended to be manufactured. Therefore, a CAD model is a virtual twin of the object to be manufactured, also called a digital twin, with two purposes: -Ensuring the correct operation of the object being manufactured in a specific environment, and -Ensuring the manufacturability of the object being manufactured.

[0194] PDM is an abbreviation for Product Data Management. A PDM solution refers to any software solution for hardware that is suited to managing all types of data related to a specific product. PDM solutions can be used by all stakeholders involved in the product's lifecycle: primarily engineers, but also project managers, finance personnel, sales personnel, and buyers. PDM solutions are generally based on a product-oriented database. They allow stakeholders to share consistent data about the product, thus preventing them from using discrepant data. Such PDM solutions are offered by Dassault Systèmes under the trademark ENOVIA®.

[0195] The modeled object output by the design step of converting the discrete 3D model into a CAD model (which step may constitute the method) is a CAD model, which may include or consist of, for example, a feature tree and / or B-rep.

[0196] The CAD model may be feature-based (e.g., it includes a feature tree and, optionally, a corresponding B-rep obtained by execution of the feature tree). The 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 manufacturing or CAM files, as described below). A collision is, for example, an interpenetration between two parts of the 3D model due to their relative motion. Furthermore, this collision can sometimes only be detected by a finite element analysis based on the CAD feature-based model. Therefore, collision resolution can be performed automatically with or by the CAD solution by iteratively changing parameters of features and running finite element analysis.

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

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

[0199] Because CAD models are parameterized models of parts / products, CAD models are lighter in terms of memory footprint than other models, such as CAE models. Indeed, instead of storing a collection of discrete geometric elements, such as finite elements, CAD models allow for the storage of lists of features and parameters, which are lighter in terms of storage and memory footprint. Therefore, working on a CAD model reduces memory requirements for the underlying system compared to, for example, a CAE model, and further facilitates the editability of the model. This means that the CAE-to-CAD conversion process not only converts the CAE model into a more easily editable CAD model, but also compresses the CAE model into a CAD model that is lighter in terms of memory requirements (e.g., footprint, etc.).

[0200] The generation of custom computer programs from CAD files can be automated. This makes such generation less prone to error and ensures perfect reproduction of the CAD model for the product being manufactured. CNC is considered to offer greater precision, complexity, and repeatability than is possible through manual machining. Other advantages include increased accuracy, speed, and flexibility, as well as features such as contouring, which allows milling of contoured shapes, including those created in 3D designs.

[0201] A B-rep (i.e., boundary representation) is a 3D representation of a machined part. Specifically, a B-rep is a persistent data representation that describes a 3D modeled object that represents the machined part. A B-rep can be the result of a calculation and / or a series of operations performed during the design phase of the 3D modeled object that represents the machined part. When the modeled object is represented, the shape of the machined part that is displayed on a computer screen is a B-rep (e.g., a tessellation thereof, etc.). In an example, a B-rep represents a portion of the modeled object.

[0202] B-reps contain topological and geometric entities. Topological entities are faces, edges, and vertices. Geometric entities are 3D objects: surfaces, planes, curves, lines, and points. By definition, a face is the boundary of a surface, called a supporting surface. An edge is the boundary of a curve, called a supporting curve. A vertex is a point in 3D space. They are related to each other as follows: The boundary of a curve is defined by two points (vertices) on the curve. The boundary of a surface is defined by its boundary, which is the set of edges on the surface. The boundaries of edges of a face are connected by sharing vertices. Faces are connected by sharing edges. Two faces are adjacent if they share an edge. Similarly, two edges are adjacent if they share a vertex. In a CAD system, B-reps collect the "is bounded by" relationship, the relationship between topological entities and supporting geometry, and the mathematical description of the supporting geometry in an appropriate data structure. An internal edge of a B-rep is an edge that is shared by exactly two faces. By definition, a boundary edge is never shared, and a boundary edge borders only one face. By definition, a boundary face is bounded by at least one boundary edge. A B-rep is said to be closed if all of its edges are internal edges. A B-rep is said to be open if it contains at least one boundary edge. Closed B-reps are used to model thick 3D volumes, since they define the interior portion of the space that (virtually) encloses the material. Open B-reps are used to model 3D skins, which represent 3D objects whose thickness is small enough that it can be ignored.

[0203] A key advantage of B-rep over other representation types used in CAD modeling is its ability to accurately represent arbitrary shapes. All other representations currently in use, such as point sets, distance fields, and meshes, perform shape approximations and then represent them through discretization. B-rep, on the other hand, contains surface equations that represent the exact design. Therefore, it constitutes a true "master model" for subsequent manufacturing, whether it's generating CNC toolpaths or discretizing to the correct sample density for a given 3D printer technology. In other words, 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. For stress, thermal, electromagnetic, or other analyses, B-rep supports local refinement of the simulation mesh to capture physical phenomena. For kinematics, B-rep supports true contact modeling between curved surfaces. Finally, B-rep allows for a small memory and / or file footprint. First, B-rep representations contain only parametric surfaces, whereas in other representations such as meshes, the equivalent surface can consist of up to thousands of triangles, and second, B-rep does not contain any history-based information.

[0204] The method may be included in a manufacturing process, which may include, after performing the method or after performing a conversion step to a CAD model that may include the method, a step of manufacturing a physical product corresponding to the modeled object designed / processed / output by this step. The manufacturing process may include the following steps: - applying a step of converting (for example automatically) the discrete 3D model into a CAD model, thereby obtaining the CAD model. - Using the obtained CAD model to manufacture a part / product.

[0205] Using a CAD model in manufacturing refers to any real-world action or series of actions that involve or participate in the production of the product / part represented by the CAD model. Using a CAD model in manufacturing may include, for example, one or more of the following steps: - editing the obtained CAD model. - performing a simulation (e.g., a simulation for verifying mechanical, usage, and / or manufacturing properties and / or constraints (e.g., a structural simulation, a thermodynamic simulation, aerodynamic simulation, etc.) based on the CAD model or a corresponding CAE model (e.g., a CAE model on which the CAD model is based after a CAE-to-CAD conversion process, etc.). - editing the CAD model based on the results of the simulation. Optionally (i.e., depending on the manufacturing process used, the production of the machined product may or may not include this step), (e.g., automatically) determining a manufacturing file / CAM file (e.g., including manufacturing instructions for manufacturing the product represented by the CAD model, and / or control instructions for the manufacturing process, and / or control instructions for instructing the manufacturing process or their manufacturing tools, etc.) for the production / manufacturing of the manufactured product based on the (e.g., edited) CAD model (e.g., the control instructions are derived from the CAD model and / or a CAD file storing specifications of the CAD model). - sending the CAD and / or manufacturing / CAM files to a factory for the purpose of manufacturing the product represented by the CAD model; and / or - generating / manufacturing (e.g., automatically) the machined product originally represented by the model output by the method based on the determined manufacturing file / CAM file or CAD model, which may include (e.g., automatically) feeding the manufacturing file / CAM file and / or CAD file to a machine that performs the manufacturing process.

[0206] This final production / manufacturing step may be referred to as the manufacturing or production step. This step involves, for example, manufacturing / processing a part / product based on the CAD model and / or CAM file, for example, when the CAD model and / or CAD file is provided to one or more manufacturing machines or a computer system controlling the machines. The manufacturing step may include performing any known manufacturing process or series of manufacturing processes, such as one or more additive manufacturing steps, one or more cutting steps (e.g., laser cutting or plasma cutting), one or more stamping steps, one or more forging steps, one or more bending steps, one or more deep drawing steps, one or more forming steps, one or more machining steps (e.g., milling), and / or one or more punching steps. The design method improves the design of the model (CAE or CAD) representing the part / product, thereby improving manufacturing and its productivity.

[0207] Editing a CAD model may include a step in which a user (i.e., a designer) creates one or more editions of the CAD model, for example, by using a CAD solution. Modifying a CAD model may include one or more changes to each of the CAD model's geometry and / or parameters. The changes may include any change or set of changes made to the model's feature tree (e.g., changes to feature parameters and / or specifications, etc.) and / or changes made to the display representation of the CAD model (e.g., B-rep, etc.). The changes are changes that maintain the technical functionality of the part / product. That is, a user performs changes that may affect the model's geometry and / or parameters, but only to make the CAD model more technically compliant for downstream use of the part / product and / or for manufacturing the part / product. Such changes may include any change or set of changes that make the CAD model technically compliant with the specifications of a machine used in a downstream manufacturing process. Additionally or alternatively, such changes may include any change or set of changes that make the CAD model technically compliant for further use of the product / part after manufacturing. Such changes or set of changes may be made, for example, based on the results of a simulation.

[0208] A CAM file may include a manufacturing setup model obtained from a CAD model. The manufacturing setup may include all data required to manufacture a machined product (e.g., control instructions for controlling the manufacturing process, etc.), such that the manufacturing setup has a geometry and / or material distribution, and possibly even manufacturing tolerance errors, corresponding to those captured by the CAD model. Determining the manufacturing file may include applying any CAM (Computer Aided Manufacturing) or CAD-to-CAM solution (e.g., any automated CAD-to-CAM conversion algorithm, etc.) to (e.g., automatically) determine the production file from the CAD model. Such a CAM or CAD-to-CAM solution may include one or more of the following software solutions that enable the automatic generation of manufacturing instructions and toolpaths for a given manufacturing process based on a CAD model of the product to be manufactured: -Fusion 360 -FreeCAD (free CAD). -CATIA. -SOLIDWORKS. - Dassault Systèmes NC Shop Floor Programmer, listed here: https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer - Dassault Systèmes NC Mill-Turn Machine Programmer, available at: https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer; and / or - Programmer for the Dassault Systèmes Powder Bed Machine, available at: https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programme

[0209] The product / part may be an additively manufacturable part, i.e., a part manufactured by additive manufacturing (i.e., 3D printing). In this case, the manufacturing process proceeds directly to the production / manufacturing step by directly (e.g., automatically) feeding the CAD model to the 3D printer without including a step of determining a CAM file. The 3D printer is configured to receive a CAD model representing the machined product (e.g., and initiate 3D printing by the 3D printer operator) and directly and automatically 3D print the machined product according to the CAD model. In other words, the 3D printer (e.g., automatically) receives the CAD model fed to it, (e.g., automatically) reads the CAD model, and (e.g., automatically) prints the part, e.g., by adding material layer by layer, to replicate the geometry and / or distribution of material captured by the CAD model. The 3D printer adds material to thereby accurately replicate the geometry and / or distribution of material captured by the CAD model, up to the resolution of the 3D printer, optionally with or without tolerance errors and / or manufacturing compensations. Manufacturing may include determining such manufacturing corrections and / or tolerance errors, for example, by a user (e.g., an operator of the 3D printer) or automatically (e.g., by the 3D printer or a computer system controlling it), e.g., by modifying a CAD file to the specifications of the 3D printer. The production process may additionally or alternatively include determining a printing direction from the CAD model (e.g., automatically by the 3D printer or a computer system controlling it) to, for example, minimize the amount of overhang (as described in EP 3327593, incorporated herein by reference), layer slicing (determining the thickness of each layer, the path / trajectory for each layer, and other characteristics for the 3D printer head (e.g., for a laser beam, e.g., path, speed, intensity / temperature, and other parameters, etc.)).

[0210] Alternatively, the product / part may be a machined part (i.e., a part produced by machining), such as a milled part (i.e., a part produced by milling). In such cases, the manufacturing process may include determining a CAM file. This step may be performed automatically by any suitable CAM solution to automatically obtain the CAM file from a CAD model of the machined part. Determining the CAM file may include (e.g., automatically) checking whether the CAD model has any geometric idiosyncrasies (e.g., errors or artifacts, etc.) that may affect the manufacturing process, and (e.g., automatically) correcting such idiosyncrasies. For example, if the CAD model still contains sharp edges (because the machining or milling tool cannot create the sharp edges), machining or milling based on the CAD model may not be performed. In such cases, determining the CAM file may include (e.g., automatically) rounding or filleting such sharp edges (e.g., with a rounding or filleting radius that corresponds to the radius of the cutting head of the machining tool, e.g., substantially equal to the tolerance error) so that machining or milling can be performed based on the CAD model. More generally, determining the CAM file may automatically round or fillet geometry in the CAD model that is incompatible with the radius of the machining or milling tool to enable machining / milling. This checking and possible correction (e.g., rounding or filleting geometry, etc.) may be performed automatically, as described above, but may also be performed by a user (e.g., a machining engineer, etc.) manually performing the corrections on the CAD and / or CAM solution. The solution forces the user to perform corrections that make the CAD model conform to the specifications of the tooling used in the machining process.

[0211] In addition to verification, determining the CAM file may include (e.g., automatically) determining a machining or milling path, i.e., a path to be followed by a machining tool to machine the product. This path may include a set of coordinates and / or a parameterized trajectory to be followed by the machining tool for machining, and determining the path may include (e.g., automatically) calculating these coordinates and / or trajectory based on a CAD model. This calculation may be performed, for example, based on calculating the boundaries of a Minkowski subtraction of the CAD model with a CAD model representation of the machining tool, as described, for example, in European Patent Application EP 21306754.9, filed by Dassault Systèmes on December 13, 2021, and incorporated herein by reference. It should be understood that the path may be, for example, a single path that the tool follows continuously without interrupting contact with the material to be cut. Alternatively, the path may be a concatenation of a sequence of sub-paths that the tool follows in a particular order, e.g., each sub-path is followed consecutively by the tool without interrupting contact with the material being cut. Optionally, determining the CAM file may then include (e.g., automatically) setting machine parameters such as, for example, cutting speed, cut / pierce height, and / or mold opening stroke based on the determined path and machine specifications. Optionally, determining the CAM file may include (e.g., automatically) the CAM solution determining an optimal orientation for the part to configure a nest that maximizes machining efficiency.

[0212] In the case of a machined or milled part, determining the CAM file thus results in an output CAM file containing the machining paths and optionally set machine parameters and / or configured nest specifications. This output CAM file can then be (e.g., directly and automatically) fed to a machining tool and / or the machining tool is then (e.g., directly and automatically) programmed by reading the file, whereupon the production process includes a production / manufacturing step in which the machine performs machining of the product according to the production file, e.g., by directly and automatically executing the production file. The machining process includes a step in which the machining tool cuts a real-world block of material to reproduce the geometry and / or distribution of material captured by the CAD model, e.g., to a tolerance error (e.g., for milling, tens of microns, etc.).

[0213] Alternatively, the product / part may be a molded part, i.e., a part produced by molding (e.g., injection molding, etc.). In such cases, the production process may include determining a CAM file. This step may be performed automatically by any suitable CAM solution to automatically obtain the CAM file from a CAD model of the molded part. Determining the CAM file may include (e.g., automatically) performing a series of molding checks based on the CAD model to verify whether the geometry and / or material distribution captured by the CAD model are mold-compatible, and (e.g., automatically) performing appropriate corrections if the CAD model is not mold-compatible. The steps of checking and performing appropriate corrections (if any) may be performed automatically, or alternatively, by a user (e.g., a molding engineer, etc.), for example, using a CAD and / or CAM solution that allows the user to perform appropriate corrections to the CAD model, but constrains the user to make the corrections to conform the CAD model to the molding tool specifications. This check may include: verifying that the virtual product represented by the CAD model matches the dimensions of the mold. and / or verifying that the CAD model includes all draft angles required for demolding the product as known per se from molding. The step of determining the CAM file then further includes determining, based on the CAD model, the quantity of liquid material to be used for molding and / or the time for curing / solidifying the liquid material in the mold, and outputting a CAM file containing these parameters. The production process then includes (e.g., automatically) executing molding based on the output file, where the mold molds the liquid material into a shape corresponding to the geometry and / or material distribution captured by the CAD model, for example, up to tolerance errors (e.g., incorporating or changing draft angles for demolding).

[0214] Alternatively, the product / part may be a stamped part, sometimes referred to as a "stamped part," i.e., a part to be manufactured in a stamping process. In this case, the production process may include a step of (e.g., automatically) determining a CAM file based on a CAD model. The CAD model represents the stamped part, e.g., with one or more flanges if the part includes flanges, and in the latter case, may include excess material to be removed to form the developed state of one or more flanges of the part, as known from the stamping process itself. Thus, the CAD model includes a portion representing the part without the flange (possibly the entire part) and possibly an outer additional patch portion representing the flange (if present). This additional patch portion may include excess material (if present). This additional patch portion may exhibit g2 continuity over a certain length, followed by g1 continuity over a certain length.

[0215] In this stamping case, determining the CAM file may include (e.g., automatically) determining stamping machine parameters, such as the size and / or stamping force of the stamping die or punch, based on the shape and / or distribution of the virtual product geometry captured by the CAD model. If the CAD model also includes a representation of excess material to be removed to form the unfolded state of one or more flanges in the part, the excess material to be removed may be cut, for example, by machining, and determining the CAM file may also include determining a corresponding machining CAM file, for example, as described above. If one or more flanges are present, determining the CAM file may include determining the geometric specifications of the g2 continuity portion and the g1 continuity portion, thereby enabling the flange to be folded along the length of the g2 continuity toward the inner surface of the stamped part in a folding process after the stamping itself and the removal of excess material. Thus, the CAM file determined thereby includes: That is, the parameters of the stamping tool, the aforementioned specifications for optionally folding the flange (if present), and optionally the machining production file for removing excess material (if present).

[0216] The stamping production process may then, for example, directly and automatically output a CAM file and (e.g., automatically) execute the stamping process based on the file. The stamping process may include stamping (e.g., punching, etc.) a portion of material to form a product represented by the CAD file, which may include an unfolded flange and excess material (if present). Where appropriate, the stamping process may include cutting off the excess material based on the machining production file and folding the flange based on the aforementioned flange folding specifications, thereby folding the flange at a g2 continuous length and imparting a smooth appearance to the outer boundary of the part. In the latter case, the shape of the part after manufacture differs from its virtual counterpart represented by the CAD model; the excess material has been removed and the flange has been folded, whereas the CAD model represents the part with the excess material and the flange in an unfolded state.

[0217] The method is computer-implemented, meaning that the steps (or substantially all steps) of the method are performed by at least one computer, or any similar system. As such, the method steps are performed by a computer, possibly fully automatically or semi-automatically. In an example, triggering of at least some of the method steps may be performed by user-computer interaction. The level of user-computer interaction required may depend on the expected level of automation and may balance the need to implement user desires. In an example, this level may be user-defined and / or predefined.

[0218] A typical example of a computer implementation of the method is to perform the method using a system adapted for this purpose. The system comprises a processor coupled to a memory and a graphical user interface (GUI), the memory having stored therein a computer program including instructions for performing the method. The memory may also store a database. The memory may be any hardware suitable for such storage and may consist of several physically distinct parts (e.g., one for the program and possibly one for the database).

[0219] FIG. 6 shows an example of a system, which may be a client computer system such as a user's workstation.

[0220] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and a random access memory (RAM) 1070 also connected to the bus. The client computer further includes a graphics processing unit (GPU) 1110 associated with a video random access memory 1100 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices such as a hard drive 1030. Suitable mass storage devices for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, by way of example, semiconductor storage devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and the like. Any of the foregoing may be supplemented by, or incorporated in, specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to a network 1060. The client computer may also include a haptic device 1090, such as a cursor control device, keyboard, or the like. The cursor control device is used in the client computer to allow a user to selectively position a cursor at any location on the display 1080. Furthermore, the cursor control device allows a user to select various commands and input control signals. The cursor control device includes multiple signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the buttons on the mouse are used to generate the signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.

[0221] The computer program may include computer-executable instructions, which include means for causing the system to perform the method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuitry, or computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, such as an article of manufacture tangibly embodied in a machine-readable storage device, executed by a programmable processor. The method steps may be performed by a programmable processor executing a program of instructions to perform the functions of the method by operating on input data and generating output. The processor is thus programmable and may be coupled to receive data and instructions from, and transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language, as appropriate. In either case, the language may be a compiled or interpreted language. The program may be a fully installed program or an update program. In either case, application of the program to the system results in the generation of instructions for performing the method. Alternatively, the computer program may be stored and executed on a server in a cloud computing environment, the server communicating with one or more clients over a network. In such a case, a processing unit executes the instructions contained in the program, thereby causing the method to be performed in the cloud computing environment.

Claims

1. 1. A computer-implemented method for profile detection in a discrete 3D model representing a machined part, comprising: for each 3D surface of at least one 3D surface in the 3D model: candidate parameterizations of the 3D surface; R 2 and a projection candidate of the 3D surface onto providing a - for each pair of point clouds of the 3D surface with adjacent parameter values, computing a function that penalizes distortions between differences between projections of the point clouds and differences between parameterizations of the point clouds; determining that the candidate parameterizations and the candidate projections form a valid profile of the 3D surface if the calculated function is less than a predefined threshold; A method comprising:

2. The method of claim 1 , wherein the function penalizes the distortion for each pair of consecutive points of the 3D surface according to an ordering of parameter values ​​of the points.

3. the difference between the projections of the point clouds is an increasing function of the distance between the projections of the point clouds; the difference between the parameterizations of the point clouds is an increasing function of the distance between the parameterizations of the point clouds. The method of claim 2.

4. The function is [Equation 1] belongs to the type, where [Equation 2] where: V = (v 1 , …, v n ) is a set of points (p 1 , ..., p n ) is the projection of F = (f 1 , ..., f n ) is the point group (p 1 , ..., p n ) and f i and p i is ordered, The method of claim 3.

5. 5. The method of claim 1, wherein the at least one 3D surface includes at least one 3D surface for which it has been determined that the parameterization candidates and the projection candidates do not form a valid profile.

6. 6. The method of claim 1, wherein the at least one 3D surface comprises a 3D surface formed by a collection of a first 3D surface and a second 3D surface, the projection candidate is a projection candidate of the collection of the first 3D surface and the second 3D surface, and the parameterization candidate is a parameterization candidate of the collection of the first 3D surface and the second 3D surface.

7. 7. The method of claim 6, wherein the first 3D surface and the second 3D surface are adjacent and have a common set of points, and the candidate parameterization of the collection of the first 3D surface and the second 3D surface is a parameterization collection of the first 3D surface and the second 3D surface, whereby the common set of points has the same parameterization.

8. The parameterization of the collection of the first 3D surface and the second 3D surface is [Equation 3] belongs to the type, where [Equation 4] and [Equation 5] and [Equation 6] where F = (f 1 , ..., f r+m ) is the parameterization of the first 3D surface, and G=(g 1 , …, g r+m ) is the parameterization of the second 3D surface, and (f 1 , ..., f r ) and (g 1 , …, g r ) is the common point group (c 1 , ..., c r 8. The method of claim 7, wherein the parameterization of

9. The method of claim 1 , wherein the discrete 3D model is created from a 3D scan of the machined part.

10. If it is determined that the candidate parameterizations and the candidate projections form a valid profile of the 3D surface, fitting a CAD operator to the surface based on the profile. The method of any one of claims 1 to 9, further comprising:

11. A computer program comprising instructions which, when executed by a computer, cause the computer to carry out the method of any one of claims 1 to 10.

12. A computer-readable data storage medium having recorded thereon the computer program of claim 11.

13. 12. A computer comprising a processor coupled to a memory, the memory having stored thereon the computer program of claim 11.