Method for detecting material extrusion

A CAD method using the Monte Carlo method to detect and parameterize extruded surfaces in machine parts enhances manufacturing processes by defining optimal paths for molding, 3D printing, and machining, addressing the inefficiencies in existing CAD systems.

JP7882686B2Active Publication Date: 2026-06-30DASSAULT SYSTEMES SA

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
DASSAULT SYSTEMES SA
Filing Date
2022-05-18
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

Existing CAD systems lack effective methods for detecting material extrusion in machine parts, which is crucial for manufacturing processes such as molding, additive manufacturing, and machining, as they do not efficiently identify and parameterize extruded surfaces.

Method used

A computer-aided method that calculates the ratio of the orthographic projection of a skin portion on a plane perpendicular to the extrusion axis to determine if the material distribution is an extrusion, using the Monte Carlo method and probability distributions to analyze the CAD 3D model, and provides a computer program and system for implementing this method.

Benefits of technology

Enables accurate detection and parameterization of extruded surfaces, facilitating manufacturing processes by defining draft angles, 3D printing paths, and machining tool paths, thereby improving productivity and ease of manufacturing.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

To provide a computer implementation method constituting a solution improved to process a CAD 3D model of a machine component and for detecting extrusion of a material in some portion of the machine component having a material distribution, a system, and a program.SOLUTION: A method includes: providing a CAD 3D model of a machine component including a skin portion representing an outer surface of a portion of the machine component and extrusion shafts 310 and 320; calculating a ratio of an area of orthogonal projection of the skin portion to an area of the skin portion; and determining whether material distribution is arranged as extrusion on the basis of the ratio and a ratio threshold value. When the ratio is lower than the ratio threshold value, the outer surface is determined to be an extrusion surface.SELECTED DRAWING: Figure 6
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 specifically, to a method, a system, and a program for detecting extrusion of materials in a part of a machine component.

Background Art

[0002] The market offers numerous systems and programs for the design, engineering, and manufacturing of objects. CAD stands for Computer-Aided Design, and refers to software solutions for designing objects, for example. CAE stands for Computer-Aided Engineering, and refers to software solutions for simulating the physical behavior of future products, for example. CAM stands for Computer-Aided Manufacturing, and refers to software solutions for defining manufacturing processes and operations, for example. In such computer-aided design systems, graphical user interfaces play a crucial role in terms of technical efficiency. These technologies can be integrated into Product Lifecycle Management (PLM) systems. PLM is a business strategy that helps companies share product data, apply common processing, and leverage enterprise knowledge to help develop products from concept to lifecycle, across the concept of an extended enterprise. Dassault Systèmes' PLM solutions (under the trademarks CATIA, ENOVIA, and DELMIA) provide an Engineering Hub for organizing product engineering knowledge, a Manufacturing Hub for managing manufacturing engineering knowledge, and an Enterprise Hub that enables enterprise integration and connectivity to the Engineering and Manufacturing Hubs. Together, these systems provide an open object model that links products, processes, and resources to enable dynamic, knowledge-based product creation and decision support, facilitating product definition, manufacturing preparation, production, and service optimization.

[0003] Some of these systems and programs offer functionality to process CAD 3D models of machine parts in order to detect their characteristics (for example, automatically).

[0004] In "Schnabel et al., “Efficient RANSAC for Point-Cloud Shape Detection”, Computer Graphics Forum, 26(2), 2007, pp. 214-226," an automated random sample consensus (RANSAC) algorithm is presented for detecting basic shapes in unorganized point clouds. This algorithm decomposes the point cloud into simple hybrid structures consisting of unique shapes and sets of remaining points. Each detected shape acts as a proxy for its corresponding set of points. Based on random sampling, this algorithm detects planes, spheres, cylinders, cones, and tori.

[0005] "Wang et al., “A Framework for 3D Model Reconstruction in Reverse Engineering”, Computers & Industrial Engineering, 63(4), 2012, pp. 1189-1200" presents a framework for 3D model reconstruction. Composed of four main elements, this framework provides a systematic solution for reconstructing geometric models from the surface mesh of existing objects. First, the input mesh is preprocessed to remove noise. Next, the mesh is divided into segments to obtain individual geometric feature patches. Then, primitive features are reconstructed from the segmented feature patches using two integrated solutions: a solid feature-based strategy and a surface feature-based strategy. Finally, modeling operations such as solid Boolean operations and surface trimming operations are performed to assemble the primitive features into the final model. [Overview of the Initiative] [Problems that the invention aims to solve]

[0006] Against this backdrop, there is still a need for improved solutions for processing CAD 3D models of mechanical parts. [Means for solving the problem]

[0007] Accordingly, a computer implementation method for detecting material extrusion in a portion of a machine part having a material distribution is provided. The method includes providing a computer-aided design 3D model of the machine part, which includes a skin portion representing the outer surface of that portion of the machine part, and an extrusion axis. The method further includes calculating the ratio of the area of ​​the orthographic projection of the skin portion on a plane perpendicular to the extrusion axis to the area of ​​the skin portion. The method further includes determining whether the material distribution is arranged as an extrusion by determining whether the outer surface is an extrusion surface based on the ratio and a ratio threshold. If the ratio is lower than the ratio threshold, the outer surface is determined to be an extrusion surface; if the ratio is not lower than the ratio threshold, the outer surface is determined not to be an extrusion surface.

[0008] This method may include one or more of the following: The above calculations involve performing the Monte Carlo method. The Monte Carlo method in question includes the following: • To provide boundary domains, • Sampling points in the boundary domain according to a probability distribution. For each sampled point, determine whether a line passing through the sample point and parallel to the extrusion axis intersects the skin portion. The orthographic area of ​​the skin portion is, • Estimated expected value of the line intersecting the skin area, • Proxified by the product of the area of ​​the boundary domain. thing. The estimated expected value of the line intersecting the skin portion is equal to the average value of the intersection function representing the intersection of the skin portion and the line at each sampling point. This method includes calculating the orthographic projection of the skin portion, wherein the boundary domain lies on a plane perpendicular to the extrusion axis and encompasses the orthographic projection of the skin portion, and the determination may include determining for each sampled point whether the sampled point lies inside the said projection of the skin portion on the boundary domain. Here, • A probability distribution may have a positive probability density in the strict sense. The crossover function is obtained by dividing the indicator function by the probability density, and the indicator function may indicate whether a given location on the boundary domain belongs to the orthogonal projection of the skin portion. Providing the aforementioned extrusion axis may include determining the extrusion axis by optimizing an objective function that penalizes the non-orthogonality of the normal of the skin portion to the candidate extrusion axis, based on the criterion that the value of the objective function must be lower than a threshold value of the objective function. The 3D model is a 3D mesh with discrete elements, and the ratio threshold is arbitrary and inversely proportional to the number of discrete elements in the 3D mesh. Calculate the extrusion contour based on the aforementioned extrusion axis.

[0009] A computer program containing instructions for performing this method is further provided.

[0010] Furthermore, a computer-readable storage medium on which the computer program is recorded is provided.

[0011] Furthermore, a system is provided that includes a processor coupled to memory on which the computer program is stored. [Brief explanation of the drawing]

[0012] Refer to the attached diagram to illustrate a non-limiting example.

[0013] [Figure 1] An example of the graphical user interface for this system is shown. [Figure 2] An example of this system is shown. [Figure 3] This method is illustrated as an example. [Figure 4] This method is illustrated as an example. [Figure 5] This method is illustrated as an example. [Figure 6] This method is illustrated as an example. [Figure 7] This method is illustrated as an example. [Modes for carrying out the invention]

[0014] This specification provides a computer implementation method for detecting material extrusion in a portion of a machine part having a material distribution. The method includes providing a computer-aided design (CAD) 3D model of the machine part. The 3D model includes a skin portion. The skin portion represents the outer surface of that portion of the machine part. The method further includes providing an extrusion axis. The method further includes calculating the ratio of the area of ​​the orthographic projection of the skin portion on a plane perpendicular to the extrusion axis to the area of ​​the skin portion. The method further includes determining whether the material distribution is arranged as an extrusion by determining whether the outer surface is an extrusion surface based on the ratio and a ratio threshold. If the ratio is lower than the ratio threshold, the outer surface is determined to be an extrusion surface; if the ratio is not lower than the ratio threshold, the outer surface is determined not to be an extrusion surface.

[0015] The present invention constitutes an improved solution for processing a CAD 3D model of a machine part, for example, to detect features of the machine part. In fact, the method provides a test for extrusion detection in a part of a machine part by analyzing each 3D model of the machine part. The method enables extrusion detection, that is, by detecting whether the material distribution of the part has an extruded surface on its outer surface. In particular, the method enables verification of the presence of extrusion with respect to a given extrusion axis.

[0016] Extrusion detection is particularly relevant to the CAD manufacturing field, specifically to software solutions that support the design and manufacturing processes, with the objective of producing physical products corresponding to the CAD 3D models being designed. In this context, the CAD 3D models represent manufactured goods that can be produced downstream of the design. Therefore, this method may be part of such a design and / or manufacturing process. For example, this method may constitute, or be part of, a step in such a design and / or manufacturing process to acquire CAD features, the step of acquiring CAD features including the detection of geometry for each CAD feature and the parameterization of the detected geometry. For example, the step of acquiring CAD features may be a step of building a feature tree. Within this step, this method detects extruded surfaces, for example, while other methods may detect other shapes. Next, this method may further include parameterizing the detected extruded surfaces. In practice, the detection of each extruded surface by this method enables the parameterization of each skin portion of the CAD 3D model representing the extruded surface. Parameterization facilitates the manipulation / editing of the CAD model. The step of acquiring CAD features including this method may be followed by further design and / or manufacturing steps that use the parameterized and detected geometry / CAD features, in particular the extruded faces detected by this method. These additional steps may include further design and / or editing operations, testing, simulation, and / or manufacturing. In other words, this method may be included within the manufacturing CAD process in a step of adapting the CAD model for use in subsequent manufacturing CAD process steps (e.g., further design / editing operations, testing, simulation, and / or manufacturing). This method may be included in many other applications that use the extruded faces detected by this method.

[0017] Thus, this method improves the processing (e.g., editing) of extruded surfaces in CAD 3D models, thereby enabling preparation from a manufacturing perspective, for example. In other words, the detection and arbitrary instantiation of extruded surfaces provided by this method may be used for manufacturing purposes. In fact, some manufacturing processes are designed to concretely construct objects that are mainly composed of extruded surfaces (e.g., extrusion processes). For example, the extruded surfaces detected by this method may be edited taking into account the characteristics of downstream manufacturing processes (e.g., machining, forming). This makes it easier to prepare and set up manufacturing equipment (molds or machining tools, etc.). In this way, this method improves the manufacturing of products represented by CAD models and increases the productivity of the manufacturing process.

[0018] As described above, detection of extruded surfaces allows for the parameterization of the detected extruded surfaces. Therefore, this method can be used to parameterize a CAD model or at least a portion thereof to obtain a parameterized CAD model or a portion thereof. "Parameterization" means that a CAD model (or at least a portion of a CAD model, e.g., a skin portion) can be fitted with a single 3D geometric object, which is represented by a parametric equation or parametric function and thus involves one or more parameters. Each of the one or more parameters may take values ​​within each continuous range. Parameterized 3D geometric objects, in contrast to non-parameterized 3D geometric objects such as discrete representations (point clouds, meshes, voxel representations, etc.), allow for easy manipulation and / or editing and / or efficient storage to memory. For example, extruded surfaces may be fitted with canonical primitives (e.g., parallelepipeds or cylinders), or they may be parameterized with other adaptive geometry tools, such as non-canonical parameterized surfaces like NURBS. In any application of this method, including the applications described below, the CAD 3D model may be a CAD 3D model being measured (i.e., a CAD model obtained from physical measurements of a machine part, as described below). In such cases, the (raw) measured CAD 3D model can be processed by performing extrusion detection on the CAD 3D model, and ultimately the measured CAD 3D model can be edited (once extruded surfaces are detected). Thus, this method can generally be used to detect extruded surfaces on a measured portion of a machine part, and then process it into an editable data structure.

[0019] The extruded surface is a consistent surface from a manufacturing perspective. That is, the relevant part of a machine part in the real world has a geometry that requires or is adapted to each manufacturing process (e.g., molding, additive manufacturing, or machining), for example, a geometry corresponding to a processing path (e.g., preferred under manufacturing constraints) or a mold characteristic (e.g., preferred under manufacturing constraints).

[0020] For example, a machine part may be a molded part, and that part may be manufactured by molding. In such a case, the parameterization of the detected extruded surface representing the part, made possible by the present method as described above, enables the application of a draft operator to the parameterized extruded surface. As is well known from CAD manufacturing, the draft operator is applicable to extruded features, and by applying the draft operator, a draft angle can be defined with respect to the extruded axis, giving the extruded surface a conical shape. During the molding process of the corresponding part, which retains this conical shape obtained at the time of design, the conical shape facilitates the withdrawal of the part from the mold (i.e., demolding / unmolding). In other words, a draft can be efficiently created on the extruded surface (applying a slight angle to the vertical surface) to facilitate unmolding along the extruded axis. Therefore, the present method may be included in a manufacturing CAD process for the design and / or manufacture of a molded part, which includes an editing step downstream of the extruded detection performed by the present method. The editing step may include applying a draft operator to the extruded surface detected by the present method to satisfy the constraints of the corresponding mold in the downstream molding process, thereby facilitating demolding / unmolding / unmolding of the molded part.

[0021] For example, mechanical parts and their components may be manufactured by additive manufacturing. In such cases, the parameterization of the detected extruded surface representing the component, as enabled by this method as described above, allows for the definition of a 3D printing path along the extruder axis of the detected extruded surface. For example, the extruder axis may be the optimal 3D printing path or 3D printing orientation. Therefore, this method may be included in a manufacturing CAD process for designing and / or manufacturing mechanical parts manufactured by additive manufacturing. This process may include defining a printing path along the extruder axis of the detected extruded surface based on the parameterization of its surface. Furthermore, this process may further include defining the settings of a 3D printer that performs additive manufacturing according to the defined printing path (e.g., an extrusion process).

[0022] For example, a machine part may be a machined part, and that part may be manufactured by machining (e.g., cutting). In such a case, the parameterization of the detected extruded surface representing that part, made possible by the method as described above, enables the definition of a machining tool (e.g., cutting tool) path along the extrusion axis of the detected extruded surface. Therefore, the method may be included in a manufacturing CAD process for designing and / or manufacturing machine parts manufactured by machining. This process may include defining a machining tool path along the extrusion axis of the detected extruded surface, based on the parameterization of its surface. Defining the path may include, for example, identifying parts of the extruded portion of the machine part to be cut, such as sharp parts to be smoothed by the machining tool. This process may further include defining the settings of the machining tool that will perform the machining according to the defined path. We have discussed the use of the detected extruded surfaces in CAD manufacturing. Now, we will describe other applications of these detected extruded surfaces that may be relevant to CAD manufacturing or other contexts.

[0023] In the first application, the extruded surfaces detected by this method may be used in the construction of B-reps. B-rep construction is described in the references "P. Benko et al., “Algorithm for reverse engineering boundary representation models”, Computer-Aided Design, 33, 2001, pp. 839-851", "A. Tumanin, “Polygonal Mesh to B-Rep Solid Conversion: Algorithm Details and C++ Code Samples” published on Habr.com on September 4, 2019, and "Beniere et al., “Recovering Primitives in 3D CAD meshes”, Proceedings of SPIE, 2011", all of which are incorporated herein by reference. As is well known, a B-rep is a collection of connected boundary surface elements (e.g., in the STEP file format, as is well known). B-rep construction may include fitting a surface to the extruded surface detected by this method and defining the surface using extrusion-related data (e.g., extrusion axis and / or extrusion contour) (i.e., determining the B-rep's phase data, i.e., the "- is bounded by -" relationship). According to this first application, this extrusion detection method may be included in a computer implementation process for converting a CAD 3D model representing a mechanical part into a boundary representation.

[0024] In a second application, the extruded surfaces detected by this method may be used to construct a feature tree. This second application includes constructing a feature tree representation of a CAD 3D model using the detected extrudes. In fact, constructing the feature tree may involve parameterizing each detected extrude as its own CAD extrude feature, and then adding each parameterized CAD extrude feature to the feature tree. Thus, this extrude detection method may be included in a computer implementation process for constructing a feature tree from a CAD 3D model representing a mechanical part. The feature tree construction process may include the following: This method must be applied at least once (each application yields a detected extruded surface), and optionally, one or more other geometry detection methods must be applied (each application yields a detected other geometry). This method involves parameterizing each detected extruded surface as a CAD extruded feature, and optionally parameterizing other detected geometries as corresponding CAD features. Adding each parameterized CAD feature to the feature tree of the mechanical part.

[0025] In a third application, the extruded surfaces detected by this method are used for remeshing (e.g., if the provided CAD 3D model is a 3D mesh) or resampling (e.g., if the provided CAD 3D model is a 3D point cloud). According to the third application, the skin portion may be parameterized as described above, thereby enabling remeshing or resampling of the CAD 3D model. This remeshing / resampling may be used to remove noise from the CAD 3D model (e.g., removing outlier points, especially in the case of a 3D point cloud, or smoothing the outer surface of the CAD model, especially in the case of a 3D mesh). Additionally or alternatively, remeshing / resampling may be used to efficiently tessellate the 3D mesh, that is, the mesh face size may be adapted to the curvature of the corresponding surface in order to ensure an optimal discretization distance to the accurate surface while minimizing the number of faces and optimizing the weight (in storage) of the mesh. For example, remeshing / resampling may be used to minimize the weight of the mesh while ensuring a sufficiently short distance to the accurate surface (e.g., in this case, proximity to the surface is considered a constraint and not an optimization). Therefore, this extrusion detection method may be included in a computer implementation process for remeshing (or resampling) a CAD 3D model, which is a 3D mesh (or 3D point cloud) representing a machine part.

[0026] Extruded surfaces, such as those detected by this extrusion detection method, may be used for other purposes, such as 3D deformation, 3D rendering (calculation of geometric / material attributes, occlusion culling, shadow determination), 3D animation, and / or shape compression. These applications are discussed in the reference "Kaiser A. et al., “A survey of Simple Geometric Primitives Detection Methods for Captured 3D data”, Computer Graphics Forum, 2018," which is incorporated herein by reference.

[0027] Furthermore, as described above, this method not only performs extrusion detection, which can be useful in many applications, but also constitutes an improved solution for detecting extruded surfaces. In fact, this method further includes calculating the ratio of the area of ​​the orthographic projection of the skin portion on a plane perpendicular to the extrusion axis to the area of ​​the skin portion. The calculated ratio provides the relative size of the area of ​​the projected skin portion to the area of ​​the skin portion, i.e., the relative size of the shadow of the skin portion. The relative size of the shadow of the skin portion tends to be small when the material distribution is close to the arrangement as an extrusion, that is, when the skin portion is nearly perpendicular to the plane. In other words, using this ratio as in this method is a particularly efficient and robust method for detecting extrusions. Moreover, the calculated ratio corresponds to the ratio of two integral quantities (i.e., the area of ​​the orthographic projection of the skin portion and the area of ​​the skin portion), each of which depends only on the position parameter. Thus, the calculated ratio is more robust to noise in the provided CAD model (e.g., noise from outlier points, especially in the case of a 3D point cloud, or noise from the non-smoothness of the outer surface of the CAD model, especially in the case of a 3D mesh).

[0028] Furthermore, this method enables the detection of extruded surfaces having a general extrusion contour. In such an example, the material distribution is arranged around the extrusion axis according to the general contour of the extrusion. The general contour may be canonical (geometric) primitives or non-canonical (geometric) primitives. Unlike canonical primitives (such as circles and regular polygons), non-canonical primitives may be parameterized using appropriate tools (e.g., NURBS) rather than simple primitive fitting or parameterization. In addition, since calculating the above ratios is applicable when the skin portion is not simply connected (e.g., when the skin portion has holes) or when the model is a general discrete geometric representation (e.g., uniform or non-uniform, triangular or other type of mesh), this method constitutes an improved solution for extrusion surface detection. Therefore, extrusion detection is applicable in the manufacturing CAD process to detect extrusions (including extrusions obtained from non-canonical contours) of general CAD models of machine parts, thereby forming an improved solution.

[0029] This method is implemented on a computer. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any system. Thus, the steps of this method are performed by a computer, sometimes fully automatically, or sometimes semi-automatically. In one example, the initiation of at least some steps of this method may be performed through user-computer interaction. The required level of user-computer interaction may depend on the expected level of automation and be balanced with the need to implement the user's wishes. In one example, this level may be user-defined and / or predefined.

[0030] For example, the step of providing a CAD 3D model of a machine part may be initiated by a user action. For example, such action may include the user importing, loading, or creating a CAD 3D model. Similarly, the step of providing an extrusion axis may be initiated by a user action. For example, such action may include selecting an axis in a (reference) coordinate system, selecting a line, segment, or edge of a loaded part, or inserting data that defines the extrusion axis.

[0031] A typical example of a computer implementing this method is running it on a system adapted for this purpose. The system may include a processor coupled with memory and a graphical user interface (GUI), where memory stores a computer program containing instructions for performing this method. Memory may also store a database. Memory is any hardware adapted for such storage and may include several physically distinct components (e.g., one for the program and possibly one for the database).

[0032] This method typically manipulates modeling objects, such as CAD 3D models. A modeling object is any object defined by data stored, for example, in a database. Therefore, the expression "modeling object" refers to the data itself. Depending on the type of system, modeling objects may be defined by various types of data. The system can be any combination of CAD, CAE, CAM, PDM, and / or PLM systems. In these various systems, modeling objects are defined by corresponding data. Thus, CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data may be discussed. However, since modeling objects can be defined by data corresponding to any combination of these systems, these systems are not exclusive to each other. Therefore, the system can be both a CAD and a PLM system, as will be evident from the definition of such a system described below.

[0033] The term CAD system further refers to a system, such as CATIA, that is adapted to design modeled objects based on their graphical representation. In this case, the data defining the modeled object includes data that enables the representation of the modeled object. A CAD system may provide a representation of a CAD modeled object, for example, using edges or lines, and in certain cases faces or surfaces. Lines, edges, or surfaces may be represented in various ways, with non-uniform rational B-splines (NURBS) being an example. Specifically, a CAD file may contain specifications from which geometry may be generated, thereby enabling the generation of what is represented. The specifications of a modeled object may be stored in a single CAD file or multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of 1 megabyte per part. Also, a modeled object can typically be an assembly of thousands of parts.

[0034] In the context of CAD, a modeled object is typically a 3D modeled object or 3D model representing a product, such as a part or an assembly of parts, or sometimes an assembly of a product. "3D modeled object" or "3D model" means an object modeled with data that enables a 3D representation. 3D representation allows parts to be viewed from all angles. For example, a 3D modeled object, when represented in 3D, may be processed and rotated based on any axis of its nature or any axis of the displayed screen. Therefore, 2D icons, in particular, that are not modeled in 3D are excluded. 3D representation facilitates design (i.e., statistically improves the speed at which designers perform tasks). Since product design is part of the manufacturing process, this speeds up the manufacturing process in industry.

[0035] A 3D modeled object or 3D model may represent the geometry of a product after a virtual design of the product to be manufactured in the real world has been completed, for example by a CAD software solution or CAD system. The product may be a (e.g., mechanical) part or an assembly of parts (parts and assemblies of parts are equivalent, since an assembly of parts may be considered a part itself from the perspective of this method, or since this method may be applied independently to each part of an assembly), or more generally, an assembly of any rigid body (e.g., a movable mechanism). CAD software solutions enable the design of products in a wide range of industrial sectors, including aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine, and / or offshore oil / gas production or transportation. The 3D modeled objects designed by this method may be industrial products that could be any mechanical parts, such as parts for land vehicles (e.g., automobile and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains, etc.), parts for aircraft vehicles (e.g., airframe equipment, aerospace equipment, propulsion equipment, defense products, aircraft equipment, space equipment, etc.), parts for marine vehicles (e.g., naval equipment, commercial ships, offshore equipment, yachts and workboats, marine equipment, etc.), general mechanical parts (e.g., industrial manufacturing machinery, heavy machinery or equipment, installation equipment, industrial equipment products, metalworking products, tire manufacturing products, etc.), electrical machinery or electronic components (e.g., home appliances, security and / or control and / or measurement products, computing and communication equipment, semiconductors, medical devices and equipment, etc.), consumer goods (e.g., furniture, home and garden products, leisure goods, fashion products, products of durable goods retailers, products of textile retailers, etc.), and packaging (e.g., food and beverages and tobacco, beauty and personal care, household goods packaging, etc.).

[0036] Any 3D model can form a discrete geometric representation of a 3D real-world object, such as a machine part. A discrete geometric representation is a data structure that contains a discrete set of data fragments. Each data fragment may also be called a discrete element. Each data fragment represents a geometric entity that is placed in 3D space. Each geometric entity represents a position on a 3D object (in other words, each part of the material that makes up the solid represented by the 3D object). A collection of geometric entities (i.e., a combination or juxtaposition) as a whole represents at least a portion of a 3D object. A discrete geometric representation may contain, for example, more than 100, 1000, or 10000 data fragments.

[0037] A discrete geometric representation may be, for example, a 3D point cloud where each geometric entity is a point. A discrete geometric representation may be, for example, a 3D mesh where each geometric entity is a tile or face of a mesh. The 3D mesh may be regular or irregular (i.e., it may consist of homogeneous or non-homogeneous faces). The 3D mesh may be a polygonal mesh, for example, a triangular mesh. The 3D mesh may be obtained from a 3D point cloud by triangulating the 3D point cloud (for example, by Delaunay triangulation).

[0038] 3D point clouds or 3D meshes may be determined, for example, by physically measuring real objects in a reconstruction process. The 3D reconstruction process may include providing real objects, providing one or more physical sensors, each configured to acquire a specific physical signal, and operating those one or more physical sensors in a real-world scene to acquire one or more physical signals (i.e., scanning the real objects with each sensor). The 3D reconstruction may then automatically determine a 3D point cloud and / or 3D mesh based on the measurements, according to any known technique. The one or more sensors may include multiple (e.g., RGB and / or image or video) cameras, and the determination may include structure-from-motion analysis. The one or more sensors may optionally or additionally include one or more depth sensors (e.g., on an RGB-depth camera), and the determination may include 3D reconstruction from depth data. The one or more depth sensors may include, for example, lasers (e.g., LiDAR) or ultrasonic emitter-receivers. The 3D reconstruction process may be part of a reverse engineering process to obtain a CAD model of the real objects. Therefore, this extrusion detection method can form an improved solution for processing physical measurements to obtain CAD models, as it provides a robust test for extrusion detection based on CAD models. This extrusion detection method is particularly robust to noise in physical measurements (such as noise in the sensor output or the accuracy of the sensor) because it calculates the ratio between two areas, i.e., two integral values, and depends only on the position parameter. Such integral calculation improves robustness against local (point-by-point) noise.

[0039] Alternatively, a 3D point cloud or 3D mesh may be obtained from a 3D model object representing the skin (i.e., outer surface) of a solid or mechanical part, for example, by raycasting to the 3D model object or by tessellating the 3D model object. Tessellation may be performed according to any rendering process of the 3D model object. Such a rendering process may be coded on any CAD system to display a graphic representation of the 3D model object. The 3D model object may be designed by or created by a CAD system user.

[0040] CAD systems may be history-based. In this case, the modeled object is further defined by data containing a history of its geometric features. The modeled object may actually be designed by a physical person (i.e., a designer / user) using standard modeling functions (extrude, revolve, cut, round, etc.) and / or standard surface functions (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 stored by a non-cyclic data flow that typically links the aforementioned geometric features via input and output links. The history of a part is the design intent. Essentially, the history collects information about the actions performed on the modeled object, thereby enabling design changes of the part in accordance with the design intent. The history-based modeling paradigm may be implemented according to any method known in the art.

[0041] A PLM system further refers to a system adapted for managing modeled objects that represent manufactured (or products to be manufactured) physical products. Therefore, in a PLM system, modeled objects are defined by data suitable for manufacturing physical objects. This data is typically dimensional values ​​and / or tolerances. Setting such values ​​is preferable for the correct manufacturing of the object. For example, a PLM system can manage manufacturing tolerances such as machining and forming for provided extrusion features in a CAD model.

[0042] A CAM solution further refers to a solution (hardware or software) suited to managing product manufacturing data. Manufacturing data typically includes data related to the product being manufactured, the manufacturing process, and the necessary resources. CAM solutions are used to plan and optimize the entire product manufacturing process. For example, a CAM solution can provide CAM users with information regarding feasibility, the duration of the manufacturing process, or the number of resources, such as specific robots, that may be used at a particular step of the manufacturing process, thus enabling decisions regarding management or necessary investments. CAM is a subsequent process following the CAD process and, in some cases, the CAE process. For example, a CAM solution may provide information regarding machining or forming parameters consistent with the provided extrusion features in the CAD model. Such CAM solutions are offered by Dassault Systèmes under its trademark DELMIA®.

[0043] CAE solutions further refer to solutions (hardware or software) suited to analyzing the physical behavior of modeled objects. A widely used and well-known CAE technique is the finite element method (FEM), which typically involves dividing a modeled object into elements whose physical behavior can be calculated and simulated through equations. Such CAE solutions are offered by Dassault Systèmes under its trademark SIMULIA®. Another growing CAE technique involves modeling and analyzing complex systems composed of multiple components from different fields of physics without CAD geometry data. CAE solutions enable simulation, and therefore, the optimization, improvement, and verification of manufactured products. Such CAE solutions are offered by Dassault Systèmes under its trademark DYMOLA®.

[0044] PDM is an abbreviation for Product Data Management. A PDM solution refers to a solution (hardware or software) suited to managing all types of data related to a specific product. PDM solutions can be used by all parties involved in the product lifecycle, primarily engineers, but also project managers, finance personnel, sales representatives, and buyers. PDM solutions are typically based on a product-oriented database. This allows parties to share consistent data about the product, preventing them from using different data. Such PDM solutions are offered by Dassault Systèmes under its trademark ENOVIA®.

[0045] Figure 1 shows an example of a GUI for a system where the system is a CAD system. Model 2000 is an example of a 3D model of the CAD provided in this method. GUI 2100 may be a typical CAD-like interface having standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menus and toolbars include a set of icons that the user can select, each icon being associated with one or more actions or operations known in the art. Some of these icons are associated with software tools suitable for editing and working with the 3D modeled object 2000 displayed in GUI 2100. The software tools may be grouped into workbenches. Each workbench consists of a subset of software tools. In particular, one of the workbenches is an editing workbench suitable for editing the geometric features of the modeled product 2000. During operation, the designer may, for example, pre-select a portion of the object 2000, select the appropriate icon, and then begin an operation (e.g., changing dimensions, color, etc.), or edit geometric constraints. For example, a typical CAD operation is modeling the extrusion and folding of a 3D modeled object displayed on the screen. The GUI may display, for example, data 2500 related to the displayed product 2000. In the example shown, the data 2500 and its 3D representation 2000, displayed as a "feature tree," relate to a brake assembly including a brake caliper and disc. The GUI may further display various types of graphic tools 2130, 2070, 2080 for, for example, facilitating the 3D orientation of an object, initiating a simulation of the operation of the edited product, or rendering various attributes of the displayed product 2000. The cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphic tools.

[0046] Figure 2 shows an example of a system, where the system is a client computer system, such as a user's workstation.

[0047] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and random access memory (RAM) 1070 also connected to the bus. The client computer further includes a video random access memory 1100 and associated graphics processing unit (GPU) 1110 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. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, such as semiconductor memory devices like EPROMs, EEPROMs, and flash memory devices; magnetic disks like internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the above may be complemented by or incorporated into specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to the network 1060. The client computer may also include haptic devices 1090, such as a cursor control device and a keyboard. A cursor control device is used in a client computer to allow the user to selectively position the cursor at any desired location on the display 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes several signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the mouse buttons are used to generate signals. Alternatively or additionally, the client computer system may include a pressure-sensitive pad and / or a pressure-sensitive screen.

[0048] A computer program may include instructions that can be executed by a computer, and the instructions 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 circuits, or in 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 for execution by a programmable processor. The steps of the Method may be performed by a programmable processor that executes a program of instructions to perform the functions of the Method by acting on input data and producing output. Thus, the processor may be programmable or coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to transmit data and instructions to them. The application program may be implemented in a high-level procedural programming language or an object-oriented programming language, or in assembly language or machine language, as necessary. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. In any case, the application of the program on the system results in instructions for performing the Method.

[0049] As described above, this extrusion detection method may be part of a manufacturing CAD design method. The design method may include designing and / or editing a CAD 3D model. Designing a CAD 3D model means any action or set of actions that are at least part of the process of creating a CAD 3D model. The method may include providing an already created CAD 3D model and then modifying the CAD 3D model based on the determination of the extruded surface. The objects modeled by the CAD 3D model may be modeled solids (i.e., modeled objects representing solids). The manufacturing objects may be products such as parts, or assemblies of parts.

[0050] This method includes providing a CAD 3D model of a machine part. The CAD 3D model includes a skin portion representing the outer surface of a part of the machine part. The part of the machine part may be an exact part of the machine part, in which case the machine part also includes other parts. This method detects whether the material distribution of this part is arranged as an extrusion. This method may be iterative, i.e., applied to one or more other parts of the machine part, and each time this method is applied to another part, it is determined whether the material distribution of each of those other parts is arranged as an extrusion. Alternatively, the part of the machine part may be the machine part itself, in which case this method determines whether the material distribution of the machine part itself is arranged as an extrusion. For example, a nut may have a material distribution that is arranged as an extrusion. The part of the machine part may be created by a machining process, an additive manufacturing process, and / or molding.

[0051] "External surface" means a surface that is in contact with a medium other than the machine part, such as another machine part or air. In other words, the external surface forms a boundary between the outside and inside of the machine part in that portion. "Skin portion" means any surface representation (open or closed surface) of the external surface (i.e., "skin") of a portion of the machine part. The skin portion may represent at least a portion of the boundary (i.e., surface) of each 3D model, and at least a portion of that boundary represents the external surface. In other words, the skin portion is a part of the 3D model of the machine part provided that corresponds to the external surface of the machine part. That is, while the entire 3D model in CAD represents the machine part, the skin portion is a part of the 3D model in CAD that represents the external surface of a particular portion of the machine part. The skin portion may be an exact portion of the boundary of the 3D model in CAD provided if that portion is an exact portion of the machine part. In this case, the 3D model includes other portions, each representing a different part of the machine part. Alternatively, if that portion is the machine part itself, the skin portion may be the outer boundary of the 3D model in CAD.

[0052] The method may include performing a segmentation method before providing a CAD 3D model. The segmentation method may provide one or more segments of the CAD 3D model. The skin portion may include, or consist of, one or more segments of the CAD 3D model obtained in the segmentation process, and such one or more segments may be, for example, a set of sides of a polygonal prism where each surface is output as a separate segment.

[0053] As described above, providing a CAD 3D model may include measuring or acquiring the CAD 3D model, for example, by providing a physical sensor, operating the physical sensor on a mechanical part (e.g., scanning the mechanical part), and performing a 3D reconstruction process to acquire the 3D model. Alternatively, providing a 3D model may include creating the 3D model, for example, by sketching it. Another alternative is that providing a 3D model may include retrieving the 3D model from a database (e.g., located remotely) where the 3D model is stored after it has been created or acquired.

[0054] The method further includes providing an extrusion axis. Providing an extrusion axis may include retrieving an extrusion axis from memory (for example, located remotely). Alternatively, providing an extrusion axis may include determining / calculating an extrusion axis by any suitable method. The extrusion axis represents possible candidate axes, and the method verifies whether the material distribution is arranged as an extrusion along the candidate axis.

[0055] In addition to providing the above, this method determines whether a material distribution is arranged as an extrusion by calculating and using the ratio of the area of ​​the orthographic projection of the skin portion on a plane perpendicular to the extrusion axis to the area of ​​the skin portion. That is, the ratio is equal to the area of ​​the orthographic projection divided by the area of ​​the skin portion. Therefore, in addition to providing the above, this method includes calculating the ratio. The orthogonal plane may be located at any position along the extrusion axis, for example, a plane passing through the origin of the reference coordinate system in which the 3D model is defined. The area of ​​the skin portion may be calculated by any method known in the CAD field. The area of ​​the skin portion (e.g., the exact value of the area) may be provided as part of the information embedded in the CAD model. Calculating the area of ​​the orthographic projection of the skin portion may include calculating the projection of the skin portion and calculating the area of ​​the projected skin portion (e.g., the exact value of the area with floating-point precision) by a method known in the CAD field. Alternatively, calculating the area of ​​the projected skin portion may include calculating an approximation (e.g., a proxy). By calculating an approximation of the projected area, the calculation becomes faster, potentially leading to an improved solution.

[0056] The method further includes determining whether a material distribution is arranged as an extrusion by determining whether the outer surface is an extruded surface based on the ratio and ratio threshold. If the ratio is lower than the ratio threshold, the outer surface is determined to be an extruded surface; if the ratio is not lower than the ratio threshold, the outer surface is determined not to be an extruded surface. "Extruded surface" means a surface produced by sliding a contour (i.e., an extruded contour) along an extrusion axis (e.g., a linear axis). The ratio threshold may be determined in advance before the start of the method, or may be set as appropriate according to a provided CAD 3D model during the execution of the method. In examples where providing a CAD 3D model involves measurement or acquisition, the ratio threshold may be set according to the measurement or acquisition accuracy such that the ratio threshold decreases as the measurement or acquisition accuracy increases. For example, the ratio threshold may be inversely proportional to the scan accuracy or sensor accuracy. In examples where the provided CAD model forms a discrete geometric representation, the ratio threshold may be set according to the number of data pieces (i.e., the number of geometric entities or discrete elements) in the discrete geometric representation, such that the ratio threshold decreases as the number of data pieces (i.e., the number of geometric entities or discrete elements) increases. For example, the ratio threshold may be inversely proportional to the number of data pieces in the discrete geometric representation. According to these examples, the larger the number of data pieces included in the discrete geometric representation of the CAD model, the smaller the ratio threshold. Alternatively or additionally, the ratio threshold may be set according to the maximum deviation angle of the skin portion relative to the extrusion axis. The maximum deviation angle of the skin portion is the maximum deviation angle of the points on the skin portion. The deviation angle of a point on the skin portion is the angle between the extrusion axis and the line connecting each point to a reference point on the extrusion axis. The value of the ratio threshold may be equal to the sine function applied to the maximum allowable deviation angle (e.g., η = sin(α)). The maximum deviation angle may be set to be smaller as the measurement or acquisition accuracy is higher (if the CAD model includes measurement or acquisition) and / or as the number of data fragments increases (if the CAD model forms a discrete geometric representation). In this method, the allowable maximum deviation angle is set at the following intervals.

number

number

[0057] For example, if the Method determines that an outer surface is an extruded surface, the Method may further include adding specifications to the 3D model accordingly. For example, the Method may include processing the skin portion by calculating, for example, extrusion parameters (including, for example, the extruded contour). Specifically, the Method may include calculating the extruded contour based on the extruded axis, for example, according to the method disclosed in European Patent Application No. 21305671.6 filed by Dassault Systèmes on 21 May 2021 (incorporated herein by reference). Specifically, the Method may include the step of parameterizing the extruded surface, i.e., determining one or more value distributions for each parameter of the skin portion, which may be carried out by applying a computer implementation method for parameterization disclosed in European Patent Application No. 21305671.6 filed by Dassault Systèmes on 21 May 2021, in particular an embodiment of the parameterization method in which the material distribution is arranged as an extruder. The application of this parameterization method may include a step of calculating the contour based on each determined value distribution, as disclosed in the aforementioned European Patent Application No. 21305671.6 filed by Dassault Systèmes on 21 May 2021. The method may optionally include creating a corresponding extruded feature based on the provided extrude axis and calculated extruded parameters. The method may optionally further include saving / storing the created extruded features. The saved / storing features may be used later in the feature tree creation / retrieval process. In the feature tree creation process, the extruded features created by the method may be integrated into the feature tree of the CAD 3D model. The method may further store the calculated extruded parameters (which may optionally be associated with the extrude axis) in persistent memory.

[0058] For example, if this method determines that the outer surface is not an extruded surface, the execution of this method may be stopped (i.e., nothing happens and the 3D model is not modified). Alternatively, this method may output information indicating that the extrusion detection result is negative. This information helps prevent, for example, the incorrect extrusion from being used further in subsequent design steps. Using an incorrect extrusion in the manufacturing CAD design process can lead to design errors that risk affecting downstream manufacturing processes later on.

[0059] Calculating ratios may involve performing the Monte Carlo method. The Monte Carlo method, also known as a "Monte Carlo experiment," refers to a method that relies on repeated random sampling to obtain numerical results. As is well known, a general Monte Carlo method may involve defining a domain of possible inputs, generating inputs randomly from a probability distribution across the domain, performing deterministic calculations on the inputs, and aggregating the results. Performing Monte Carlo calculations for ratios improves computational efficiency and robustness. In practice, the Monte Carlo method is independent of mesh type (uniform, triangular) and topology (e.g., the mesh may have holes), providing a guarantee of theoretical convergence and control over errors through approximation.

[0060] For example, the Monte Carlo method may include providing boundary domains. The boundary domains may be 3D domains encompassing a CAD 3D model or at least its skin portion. The boundary domains may be 3D bounding boxes of a CAD 3D model or at least its skin portion. Alternatively, the boundary domains may be 2D domains encompassing a plane projection of a CAD 3D model or at least its skin portion. In specific examples, the boundary domains may be 2D bounding boxes corresponding to each plane projection.

[0061] The Monte Carlo method may further include sampling points in a boundary domain according to a probability distribution. The probability distribution may be represented by each probability density function (PDF), as is known in the field of statistics. In one example, the probability distribution may be a uniform or non-uniform probability distribution. The probability distribution may be defined on the boundary domain, that is, the probability that each point being sampled is within the boundary domain is 1 (i.e., 100%). In other words, each point being sampled is within the boundary domain. Each PDF may assign a probability density value to each point within the boundary domain. In one example, the boundary of the boundary domain may be contained within the boundary domain. The sampling may be the output of the Metropolis-Hastings algorithm or any other algorithm or method that can sample values ​​according to a probability distribution.

[0062] The probability distribution and its respective PDF may be continuous probability distributions. Therefore, the method may sample points in the boundary domain from one or more continuous sets of numbers, where each set relates to one of the coordinates of the sampled points in the coordinate system. Alternatively, the probability distribution and its respective PDF may be discrete probability distributions. Therefore, the method may sample points in the boundary domain from one or more discrete sets of numbers representing the granularity of each coordinate of the sampled points in the coordinate system.

[0063] The Monte Carlo method may further include determining, for each sampled point, whether a line passing through the sampled point and parallel to the extrusion axis intersects the skin portion. This determination of whether a line passing through the point and parallel to the extrusion axis intersects the skin portion may be performed by any suitable method. For example, this determination may include determining whether the sampled point belongs to (i.e., is inside) the orthographic projection of the skin portion on a plane perpendicular to the extrusion axis. Alternatively, this determination may include applying a raycasting method, for example, shining a ray parallel to the extrusion axis from the sampled point and detecting whether the ray intersects the skin portion.

[0064] The area of ​​the orthographic projection of the skin portion may be proxied by the product of the estimated expected value of the line intersecting the skin portion and the area of ​​the boundary domain. The area of ​​the orthographic projection of the skin portion may be called equivalent to the "shadow" (of the skin portion). "Expected value" means the statistical expected value according to a probability distribution. As is well known in the field of statistics, the expected value is defined as the probability-weighted average of a certain event (e.g., the intersection of a line and the skin portion) according to a probability distribution. The area of ​​the boundary domain may be defined according to any known measure (e.g., the Lebesgue measure) and may be calculated according to any method known in the field of CAD.

[0065] The number of points sampled may be greater than, for example, 100, 1000, or 10000. The number of points sampled may be predetermined. This method may appropriately set the number of points sampled according to a convergence criterion (i.e., a stopping condition). The convergence criterion may be based on the difference between two consecutive estimates of the expected value of the line intersecting the skin portion. The consecutive values ​​may be evaluated after performing multiple samplings, for example, after 1, 10, 100, or 1000 samplings. Sampling may be stopped if the difference and / or relative difference between the two consecutive estimates is less than a threshold. Alternatively or additionally, the convergence criterion may be based on the variance / standard deviation estimator of the expected value of the line intersecting the skin portion. Sampling may be stopped if the estimated variance / standard deviation is less than a threshold for variance / standard deviation, and optionally, if the minimum number of points have already been sampled when the estimated variance / standard deviation is less than a threshold for variance / standard deviation. For example, the threshold for variance / standard deviation may be a value in the interval [0,1], e.g., less than 0.01. The minimum number of points sampled may be greater than 10, 100, or 1000. Alternatively or additionally, the method may set the sampling size according to a probability distribution. The sampling size may be set higher if the probability distribution is uniform, and lower if the probability distribution is non-uniform, e.g., if the probability distribution has high values ​​for each probability density around the skin portion or its projection. Thus, an improved solution is formed, as the calculation of the ratio is obtained via Monte Carlo simulation based on sufficiently large sampling according to the convergence criterion.

[0066] For example, the estimated expected value of lines intersecting the skin portion may be equal to the mean of the crossover function. The crossover function represents the intersection of a line and the skin portion at each sampled point. That is, the crossover function may take a point (e.g., a sampled point) as input and output whether lines passing through that point and parallel to the extrusion axis intersect the skin portion, by processing each coordinate of that point. In other words, the output of the crossover function is the result of determining, for each sampled point, whether lines passing through the sample point and parallel to the extrusion axis intersect the skin portion. For example, the crossover function may output a first value (e.g., 1 divided by each PDF value at that point) if the lines intersect the skin portion, and a second value (e.g., zero) if they do not intersect. Alternatively, the estimate of the expected value may be calculated using other statistical estimators known in the art.

[0067] The method may further include calculating the orthographic projection of the skin portion. The orthographic projection is an orthographic projection on a plane perpendicular to the extrusion axis. The orthographic projection may be obtained according to any known method for calculating an orthographic projection known in the field of CAD. In examples where the provided CAD model forms a discrete geometric representation with discrete elements, the orthographic projection may include the projection of each discrete element. The boundary domain may lie on a plane perpendicular to the extrusion axis (i.e., a 2D boundary domain) and may encompass the orthographic projection of the skin portion. For each sampled point, determining (whether lines passing through the sampled point and parallel to the extrusion axis intersect the skin portion) may include determining, using an appropriate method, whether the sampled point lies inside the projection of the skin portion on the boundary domain.

[0068] The probability distribution may have a strictly positive probability density, that is, it may have a value for each PDF. In one example, the probability distribution may be a uniform distribution, that is, each probability density may have a constant value with respect to the boundary domain. This constant value is equal to 1 divided by the area of ​​the boundary domain, that is, equal to the reciprocal of this area. In particularly efficient examples, the probability distribution may be a non-uniform distribution where the value of each probability density on the projection of the skin portion is higher.

[0069] The crossover function may be the indicator function divided by the probability density. The indicator function indicates whether a given location on the boundary domain belongs to the orthogonal projection of the skin portion (i.e., whether it is inside). The indicator function is sometimes also called the characteristic function. In one example, the crossover function may output a value of 1 if the location is inside the orthogonal projection, and a value of 0 otherwise.

[0070] Providing an extrusion axis may involve determining the extrusion axis by optimizing an objective function. The objective function penalizes the non-orthogonality (i.e., a free variable for optimization) of the normals of the skin portion with respect to the candidate extrusion axis. The optimization may be a minimization. The optimization is based on the criterion that the value of the objective function must be lower than a threshold value for the objective function. In other words, the optimization evaluates the value of the objective function (e.g., repeatedly) for multiple candidate extrusion axes (i.e., each extrusion axis to be optimized) unless the value is either lower than the threshold (e.g., the value respects the criterion) or sufficiently low (e.g., with respect to the convergence criterion). The function tends to be high when the normals of the skin portion tend not to be orthogonal to the candidate extrusion axis, and penalizes the non-orthogonality of the normals of the skin portion with respect to the candidate extrusion axis. The penalty may be an integral form of the measure of the non-orthogonality of the normals of the skin portion with respect to the candidate extrusion axis. The measure of non-orthogonality may be the square of the dot product between the normal of the skin portion and the candidate extrusion axis. The criterion may be set as a constraint within the optimization or as a post-hoc test.

[0071] An example of determining the extrusion axis by optimizing the objective function is described below.

[0072] Generally, the skin part refers to the outer surface of a certain part of a machine component.

number

number

[0073] This method optimizes the objective function

number

number

number

number

[0074] In particular, this method has a criterion that the value of the objective function must be lower than the threshold value of the objective function ε>0, i.e.,

number

[0075] The objective function J E (u) may take values from 0 to 1 (as the mean of the squared cosine of the angle between two unit vectors, u and n p ). The threshold value of the objective function value may be set to a predetermined value, or may be set as appropriate according to the provided CAD model. In particular, the threshold value of the objective function value may be set according to (e.g., proportionally) the noise level of the provided 3D model of CAD. The threshold value of the objective function value may be set to a value within the interval of [0, 0.1], [0, 0.01], [0, 0.005], or [0, 0.001]. In one example, the threshold value of the objective function value may be set as ε = 1×10 -3 .

[0076] Matrix T S is

Number

[0077] Therefore, the optimization problem is equivalent to finding the minimum eigenvalue λ S of T e and the associated eigenvector u e up to the threshold condition, where λ e ​​​​​​​​​​​​and optionally related eigenvalues ​​λ e This is provided. In other words, determining the extrusion axis is u e and optionally λ e Outputs.

[0078] As described above, determining the extrusion axis by optimizing the objective function can be useful for different purposes in methods for detecting material extrusion.

[0079] According to the first aspect, the extrusion axis obtained by optimization as described above (i.e., u e ) may be used in the material extrusion detection method. According to this first embodiment, the (minimum) value of the objective function (i.e., λ e The criterion that the value of the objective function must be lower than the threshold value of the relevant extrusion axis (minimum eigenvalue λ) for the provided CAD model. e These may be considered criteria for obtaining each eigenvector. According to the first embodiment, the extrusion detection method further verifies (i.e., confirms) whether the material distribution is positioned as an extrusion with respect to the extrusion axis obtained by optimization. In other words, according to the first embodiment, determining on a ratio whether the material distribution is positioned as an extrusion serves as a verification step to verify whether the extrusion axis determined by optimization and provided to the method is indeed an extrusion axis with respect to the material distribution. Thus, in the first embodiment, the robustness of the optimization is increased by the method.

[0080] In a second embodiment, determining the extrusion axis is the first verification step of the material extrusion detection method. According to the second embodiment, the criterion that the (minimum) value of the objective function must be lower than several small values ​​(e.g., a threshold for the objective function value) may be considered a criterion for verifying whether the material distribution is arranged as an extrusion. In one example, one or more verification steps may be performed before the extrusion detection method. That is, according to the second embodiment, optimization functions as a first verification step for verifying whether the material distribution is arranged as an extrusion. Determining whether the material distribution is arranged as an extrusion based on ratios also functions as a second and subsequent verification step for verifying whether the material distribution is arranged as an extrusion. Thus, in the second embodiment, the method provides a two-stage method for detecting extrusions, thereby improving robustness.

[0081] In examples where a CAD model forms a discrete geometric representation (e.g., a 3D mesh or point cloud), T S In the calculation, only the associated normal vector and area may be used for each discrete element of the discrete geometric representation. For example, for a triangular mesh M(V,E,F) provided as a CAD model, the skin portion

number

number

[0082] In one example, the threshold value of the objective function may be twice, ten times, or twenty times the square of the ratio threshold.

[0083] For example, a 3D model may be a 3D mesh with individual elements. The 3D mesh may be obtained as a result of tessellation of a CAD 3D model. The ratio threshold may be inversely proportional to the number of individual elements in the 3D mesh.

[0084] In one example, the method may further include calculating the extrusion profile based on the extrusion axis. The method may calculate the extrusion profile after it has been determined that the outer surface is an extruded surface. The method may calculate the extrusion profile based on the orthogonal projection of the skin portion on an orthogonal plane. The method may calculate the extrusion profile according to any known method. In an example where the 3D model is a point cloud, the method may calculate the extrusion profile by fitting a curve to the projected skin portion according to "Wang et al., “Fitting B-spline curves to point clouds using curvature-based square distance minimization”, CM Transactions on Graphics, 25(2), 2006, pp. 214-238", which is incorporated herein by reference. In other examples where the 3D model is a point cloud, the method may calculate the parameterization of the projected skin portion and use that parameterization to fit the curve, in accordance with Goshtasby, “Grouping and parameterizing irregularly spaced points for curve fitting”, ACM Transactions on Graphics, 19(3), 2000, pp. 185-203, which is incorporated herein by reference. In examples where the 3D model is a 3D mesh, the method may calculate the parameterization of the mesh and use that parameterization to fit the curve onto the projected skin portion (and the projected mesh), in accordance with the method disclosed in the aforementioned European Patent Application No. 21305671.6 filed by Dassault Systèmes on 21 May 2021. Specifically, the method may include a step of parameterizing the extruded surface, that is, a step of determining one or more value distributions for each parameter of the skin portion, which may be carried out by applying an embodiment of the parameterization method disclosed in European Patent Application No. 21305671.6 filed by Dassault Systèmes on 21 May 2021, in which the material distribution is arranged as an extruded portion.The application of this parameterization method may include the step of calculating the contour by fitting, for example, one or more curves based on the determined value distribution, as disclosed in the aforementioned European Patent Application No. 21305671.6 filed by Dassault Systèmes on 21 May 2021. Alternatively or additionally, the method may further include calculating an extrusion height limit that defines the extent of the extrusion along the extrusion axis. The height limit may be calculated by calculating the minimum and maximum values ​​on the extrusion axis of the projection of the vertices of a 3D mesh (if the 3D model is a mesh) or points of a point cloud (if the 3D model is a point cloud).

[0085] Next, we will explain how to implement this method.

[0086] In implementing this method, a CAD 3D model representing a part of a machine component is provided as input to the method in the form of a 3D triangular mesh M(V,E,F). In one example, the part of the machine component in question is an exact sub-part, and the mesh may be a sub-mesh of a larger mesh representing the entire machine component. The mesh is a piecewise linear surface.

number

number

[0087] next,

number

number

[0088] Next, a sufficiently large open set (e.g., a boundary domain),

number

[0089] Probability space

number

number

number

number

number

[0090] Random variable X = id Ω In the case of (idΩ is the identity map on Ω, that is, for any x ∈ Ω, id(x) = x, and its indicator function f is,

number

number

[0091] Here,

number

number

number

number

[0092] Next, the intersection function

number

number

number

number

[0093] In this implementation, we used N statistically independent samples (x1, ..., x N )∈Ω N (The law of X is

number

number

[0094] Each

number

[0095] (v i , v j , v k Let ) be a vertex of triangle τ∈F. i1i2 This notation means point x n And the projected vertex v of triangle τ i1 and v i2 The angle between these two points is as follows:

number

[0096] Next, expected value

number

number

[0097] P N is any statistical estimator

number

[0098] Here, we will explain an example of how to select a sample size N.

[0099] The value of N may be chosen such that all cases being processed are a predetermined single value; for example, N=1000 is a suitable value. The value of N may be higher to improve accuracy, or lower to improve computational efficiency.

[0100] The value of N may be selected based on a stopping condition; that is, the method continues sample generation unless a specific condition is met. For example, the method P N Standard deviation estimator σ N The value of may be compared to the threshold δ (i.e., if part of the stopping condition is σ N P N The standard deviation estimator for is the following estimator:

number

number

[0101] Furthermore, the value of N is a certain N min You may choose to make it larger. For example, N min When the value of is approximately 100, satisfactory results are obtained. Therefore, the perfect stopping condition in these cases is σ N ≤δ and N≧N min This may be the case. The threshold δ is selected in the interval [0,1] (the closer to 0, the more reliable the result), for example, if δ is less than 0.01, a satisfactory E ρ (f ρ Approximate value P of (X) N You can obtain this.

[0102] The value of N may be selected based on combinations of the examples above. In this case, the method may continue sample generation until the termination condition is met or a predetermined sample size is reached.

[0103] Next, the area of ​​the shadow is μ(Ω)P N It is proxied (i.e., approximated) as follows, and the ratio of the surface's shadow area to the total surface area is calculated as follows:

number

[0104] For a ratio threshold η where the mesh M is sufficiently small, condition R N If ≤η is satisfied, this method considers the surface S as the extruded surface (and the mesh M as an approximation of the extruded surface). The ratio threshold is the following interval

number

[0105] This method may also be used by setting η = sin(α) for a sufficiently small angle α, for example, the value is in the following interval

number

number

[0106] The results obtained by implementing the extrusion surface detection method described above are shown in Figures 6 and 7.

[0107] Figures 6A and 6B show two diagrams illustrating the implementation of this method. Figure 6A on the left shows a noisy mesh, and Figure 6B on the left shows a less noisy mesh. The mesh in Figure 6B may represent a pipe connector. Of these two examples, the normal vector on the mesh surface in Figure 6B shows less variation, therefore the objective function J of the mesh in Figure 6B is less important. E The optimized value for is lower. However, the mesh in Figure 6A represents the true extruded surface, while the mesh in Figure 6B does not represent the extruded surface (rather, it represents part of the torus).

[0108] The implementation of the disclosed extrusion surface detection method calculates the shadows of meshes A and B respectively with respect to the provided extrusion axes 310 and 320. The crosses 330 and 340 on the right of FIG. 6A and the right of FIG. 6B indicate the respective regions covered by the shadows of meshes A and B with respect to the calculated axes. The area of the shadow of mesh B is significantly larger compared to the total area of each 3D surface mesh, while the shadow of mesh A is more concentrated. The method uses the Monte Carlo method to sample points on the plane around the shadow (represented by the points sampled in FIGS. 6A - 6B) and count the proportion of points within the shadow (by adding weights or "importance") to estimate the areas of these shadows. If the ratio of the estimated area of the shadow to the total area of the mesh is greater than the ratio threshold η (as in the case of mesh B), the method determines that the provided portion represented by that mesh is not an extrusion surface.

[0109] Another application example of the method when the mechanical part is a nut is shown in FIG. 7. As shown in FIG. 7, even when there is a lot of noise in the mesh, the calculated area of the shadow of the mesh is very small. Therefore, the method determines that the provided portion is an extrusion surface.

[0110] When it is detected that the surface mesh corresponds to an extrusion surface, the method may further obtain (i.e., calculate) the complete extrusion operator (i.e., feature) related to that extrusion surface. Next, an example of obtaining an extrusion operator will be described.

[0111] The extrusion operator is defined by a 3D (extrusion) axis u e , a contour, i.e., a 2D curve that does not self - intersect, and height limits h corresponding to the minimum and maximum coordinates of the extrusion along the extrusion axis u e , h min , h max defined by. The extrusion axis is provided to the method.

[0112] In some examples, the method obtains the contour by projecting points (of the skin part) onto a plane orthogonal to u e (e.g., Π as described above)e Using this method, for example, the method discussed in "Wang et al., “Fitting B-spline curves to point clouds using curvature-based square distance minimization”, CM Transactions on Graphics, 25(2), 2006, pp. 214-238" above, curves can be directly fitted to unordered 2D point clouds.

[0113] In some cases, for example, using the method discussed in "Goshtasby, “Grouping and parameterizing irregularly spaced points for curve fitting”, ACM Transactions on Graphics, 19(3), 2000, pp. 185-203", this method may obtain the contour by calculating the parameterization of the projection points to be used, and then use this parameterization to fit the curve to these points.

[0114] In some examples, the method may obtain a contour by calculating the parameterization of a surface mesh and fitting a curve to projection points using the correct parameters, for example, using the method disclosed in the aforementioned European Patent Application No. 21305671.6 filed by Dassault Systèmes on May 21, 2021. Specifically, the method may include the step of parameterizing an extruded surface, i.e., determining one or more value distributions for each parameter of a skin portion, which may be carried out by applying an embodiment of the parameterization method disclosed in European Patent Application No. 21305671.6 filed by Dassault Systèmes on May 21, 2021, in particular, an embodiment of the parameterization method in which the material distribution is arranged as an extrusion. The application of this parameterization method may include a step of calculating the contour, as disclosed in the aforementioned European Patent Application No. 21305671.6 filed by Dassault Systèmes on 21 May 2021, which may include fitting, for example, one or more curves based on each determined value distribution. This solution is more efficient and robust and does not require good initialization.

[0115] In this method, the height limit can be calculated as follows:

number

Claims

1. A method performed by a computer for detecting material extrusion in a part of a machine component having a material distribution, - A computer-aided design (CAD) 3D model of the machine part, including a skin portion representing the outer surface of the part of the machine part, - Extrusion shaft and To provide, The ratio (RN) of the area (Sπ) of the orthographic projection of the skin portion on a plane perpendicular to the extrusion axis to the area (AS) of the skin portion, Based on the ratio and ratio threshold, it is determined whether the outer surface is an extruded surface, thereby determining whether the material distribution is arranged as an extruded surface. Includes, If the ratio is lower than the ratio threshold, the outer surface is determined to be an extruded surface; if the ratio is not lower than the ratio threshold, the outer surface is determined not to be an extruded surface. method.

2. The aforementioned calculation includes performing the Monte Carlo method, The aforementioned Monte Carlo method is, To provide boundary domains, Sampling points in the boundary domain according to a probability distribution, and For each sampled point, determine whether a line passing through the sample point and parallel to the extrusion axis intersects the skin portion. Includes, The area of ​​the orthographic projection of the skin portion is the expected value of the lines intersecting the skin portion. [Math 1] The estimated value (PN) is proxied by the product of the area of ​​the boundary domain (μ(Ω)), The aforementioned expected value is the expected value of the intersection function that represents the intersection of the skin portion and a line passing through the sample point and parallel to the extrusion axis at each sample point within the boundary domain. The method according to claim 1.

3. The estimated expected value of the line intersecting the skin portion is the average value of the intersection function (fρ) representing the intersection of the skin portion and the line at each sampled point. [Math 2] The method according to claim 2, which is equivalent to the method according to claim 2.

4. The method further includes calculating the orthographic projection of the skin portion, The boundary domain lies on a plane perpendicular to the extrusion axis and encompasses the orthogonal projection of the skin portion. The method according to claim 2, wherein the determination includes determining, for each sampled point, whether the sampled point lies inside the orthographic projection of the skin portion on the boundary domain.

5. The method according to claim 2, wherein the probability distribution has a positive probability density in the strict sense.

6. The estimated expected value of the line intersecting the skin portion is the average value of the intersection function (fρ) representing the intersection of the skin portion and the line at each sampled point. [Math 3] Equivalent to, The method according to claim 5, wherein the crossover function is an indicator function (f) obtained by dividing by the probability density, and the indicator function indicates whether a certain position (ω) on the boundary domain (Ω) belongs to the orthogonal projection of the skin portion.

7. Providing the extrusion axis involves determining the extrusion axis by optimizing an objective function that penalizes the non-orthogonality of the normal of the skin portion to the candidate extrusion axis, The method according to claim 1, wherein the penalty is based on the criterion that the value of the objective function must be lower than a threshold value for the objective function.

8. The aforementioned 3D model is a 3D mesh having discrete elements, The method according to claim 1, wherein the ratio threshold is arbitrary and inversely proportional to the number of discrete elements of the 3D mesh.

9. The method according to claim 1, further comprising calculating the extrusion contour based on the extrusion axis.

10. A computer program comprising instructions for causing a computer to perform the method described in any one of claims 1 to 9.

11. A computer-readable storage medium recording the computer program described in claim 10.

12. A system comprising a processor coupled to a memory storing the computer program described in claim 10, wherein the processor is operated by the computer program.