Processing of CAD 3D models of machine parts
The method processes CAD models by applying an extrusion algorithm to skin portions, addressing the challenge of handling skinned areas and rotating surfaces, enhancing manufacturing processes through accurate detection and parameterization.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-06-01
- Publication Date
- 2026-04-07
AI Technical Summary
Existing technologies lack effective methods for processing CAD models of mechanical parts, particularly in handling skinned areas and rotating surfaces, which are crucial for manufacturing processes.
A method that processes CAD models by applying an extrusion algorithm to a transformation of the skin portion, enabling the unfolding of material distribution and detection of features such as rotating surfaces, using algorithms from European Patent Applications EP21305673.2 and EP21305671.6 for extrusion detection and parameterization.
Enables robust processing of skinned areas, allowing for accurate detection and parameterization of rotating surfaces, facilitating manufacturing processes like molding, machining, and additive manufacturing, and improving the productivity of manufacturing CAD systems.
Smart Images

Figure 0007841949000060 
Figure 0007841949000061 
Figure 0007841949000062
Abstract
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 processing a computer-aided design (CAD) 3D model of a mechanical part.
Background Art
[0002] For the design, engineering, and manufacturing of objects, many systems and programs are offered on the market. CAD is the acronym for Computer-Aided Design, which is related to, for example, software solutions for designing objects. CAE is the acronym for Computer-Aided Engineering, which is related to, for example, software solutions for simulating the physical behavior of future products. CAM is the acronym for Computer-Aided Manufacturing, which is related to, for example, software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role regarding the efficiency of the technology. These technologies can be embedded within a Product Lifecycle Management (PLM) system. PLM is a business strategy that promotes multiple companies to share product data, use common processes, and utilize company knowledge to conduct product development from concept to end-of-life based on the concept of an extended enterprise. The PLM solution provided by Dassault Systems (registered trademarks of CATIA, ENOVIA, and DELMIA) offers an engineering hub that systematizes product engineering knowledge, a product hub that manages manufacturing engineering knowledge, and an enterprise hub that performs enterprise integration and enables connection to both the engineering hub and the manufacturing hub. Together, these provide an open object model that links products, processes, and resources, enabling dynamic knowledge-based product generation and decision support that drives optimized product definition, manufacturing preparation, production, and service.
[0003] Some of these systems and programs provide functionality for processing CAD models of machine parts.
[0004] Wang et al.'s "A Framework for 3D Model Reconstruction in Reverse Engineering" (Computers & Industrial Engineering, 63(4), 2012, pp.1189-1200) proposes a framework for 3D model reconstruction. The framework consists of four main components and provides a systematic solution for reconstructing geometric models from the surface mesh of existing objects. First, the input mesh is preprocessed to remove noise. Second, the mesh is divided into multiple 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 are performed to assemble the primitive features into the final model.
[0005] Pottmann et al.'s "Approximation by Profile Surfaces" (The Mathematics of Surfaces VIII, A. Ball et al. (eds.), Information Geometers, 1998, pp. 17-36) discloses an algorithm for approximating scattering points by a given surface or rotating surface. This forms the basis for studying approximations using profile surfaces. A profile surface is a sweeping surface drawn when a planar curved surface rotates on a developable surface. Important special cases include developable surfaces and tubular surfaces where the moving curves are either straight lines or circles.
[0006] Schnabel et al., "Efficient RANSAC for Point-Cloud Shape Detection" (Computer Graphics Forum, 26(2), 2007, pp.214-226), proposes an automated random sample consensus (RANSAC) algorithm for detecting basic shapes within unstructured point clouds. This algorithm decomposes the point cloud into a simple, hybrid structure of unique shapes and the remaining point groups. Each detected shape acts as a proxy for the corresponding point group. This algorithm is based on random sampling and detects faces, spheres, cylinders, cones, and torus.
[0007] Geng et al., "A thin-plate cad mesh model splitting approach based on fitting primitives" (EG UK Theory and Practice of Computer Graphics, 2010, pp. 45-50), discloses a primitive fitting-based algorithm for segmenting a thin-plate CAD mesh model into three different types of parts: two of which are extruded surfaces and the remaining one is an outer surface. This method can be used for solid model reconstruction in the SDD process and involves two steps. First, a fully automated method for accurate primitive fitting to a CAD mesh is presented based on a hierarchical primitive fitting framework. Second, a procedure is presented for splitting a thin-plate 3D mesh model by detecting parallel extruded and outer surfaces.
[0008] In this context, improved solutions for processing CAD models of mechanical parts are still needed. [Overview of the Initiative]
[0009] Accordingly, a computer-aided design (CAD) 3D model of a mechanical part including a portion having a material distribution is provided. The method includes providing a 3D model including a skin portion of the 3D model representing the outer surface of the portion of the mechanical part. The method further includes processing the skin portion based on an extrusion algorithm, the transform of the skin portion being input to the algorithm. The transform represents the unfolding of the material distribution of the portion.
[0010] The method may include one or more of the following:
[0011] - Processing the skin portion based on an extrusion algorithm is, ○By expanding the skin portion, the conversion is obtained, ○ Inputting the conversion into the extrusion processing algorithm, ○Execute the extrusion processing algorithm, Includes.
[0012] - The extrusion processing algorithm is, ○Determine whether the transformation of the skin portion represents the outer surface of the material distribution configured as an extrusion, and / or, ○Calculate the extrusion profile. Includes.
[0013] - Processing the skin portion based on the extrusion algorithm includes detecting material rotation in the portion of the machine part, which includes determining the rotation axis by optimizing an objective function that penalizes the non-orthogonality of the normal of the skin portion with respect to the rotation direction perpendicular to the candidate rotation axis, in a range that is increasingly proportional to the distance to the rotation axis.
[0014] - The objective function is of the following type:
[0015]
number
[0016] Here, u is the direction of the candidate axis of rotation, c is the origin of the candidate axis of rotation, and A S π is the area of the skin portion, S is the skin portion, p is the position on the skin portion, and π c,u (p) is the orthogonal projection of p on the candidate axis of rotation, and n is the normal of the skin at position p.
[0017] -The development is, ○ To provide a rotating shaft, ○ Determining the cylindrical coordinate specification of the skin portion, wherein the cylindrical coordinate specification includes a first value, and each of the first values defines each position on the skin portion with respect to a cylindrical coordinate system having a longitudinal axis which is the axis of rotation. ○ Determining a Cartesian coordinate definition for a transformation with respect to a Cartesian coordinate system having one axis in the longitudinal direction, wherein the Cartesian coordinate definition includes a second value that defines the position in the transformation, and the second value corresponds to the first value, Includes.
[0018] - The skin portion is represented by a 3D discrete geometric representation having discrete elements, and determining the cylindrical coordinate default value of the skin portion involves determining the first value of each discrete element of the 3D discrete geometric representation.
[0019] -The first specified value of the cylindrical coordinates is, for each discrete element, ○The value of the radial distance, which is the norm of the radial vector with respect to the longitudinal axis, ○Values of the angular position on the skin portion with respect to the radial vector and the longitudinal axis, ○The value of the longitudinal position, which indicates the position on the longitudinal axis, It consists of.
[0020] Determining cylindrical coordinate defaults involves exploring the discrete elements of a 3D discrete geometric representation, and for each explored discrete element, calculating the angular position values by calculating the angular positions of the neighboring discrete elements of the explored discrete element.
[0021] - Calculating the aforementioned values for the angular positions of neighboring discrete elements of the explored discrete element includes duplicating one or more neighboring discrete elements whose angular position difference from the explored discrete element is greater than a threshold.
[0022] -Angular position values are of the following types:
[0023]
number
[0024] Here, u is the longitudinal axis, and p i θ is the Cartesian position vector of the explored discrete element i, and i θ is the value of the angular position of the explored discrete element. i+1 This is the angular position value of the neighboring discrete element i+1 of the explored discrete element i.
[0025] - The method further includes scaling the values of the angular position.
[0026] Furthermore, a computer program is provided that includes instructions for performing the aforementioned method.
[0027] Furthermore, a computer-readable storage medium on which the aforementioned computer program is recorded is provided.
[0028] Furthermore, a system is provided that includes a processor coupled to memory. The aforementioned computer program is stored in the memory. [Brief explanation of the drawing]
[0029] Non-specific examples will now be described with reference to the attached drawings.
[0030] [Figure 1] This method is shown. [Figure 2] This method is shown. [Figure 3] This method is shown. [Figure 4] This method is shown. [Figure 5] This method is shown. [Figure 6] This method is shown. [Figure 7] This method is shown. [Figure 8] This method is shown. [Figure 9] This method is shown. [Figure 10] This method is shown. [Figure 11] An example of the graphical user interface for this system is shown. [Figure 12] An example of this system is shown. [Modes for carrying out the invention]
[0031] This specification proposes a computer-aided design (CAD) 3D model of a mechanical part. The mechanical part includes a portion having a material distribution. The method includes providing a 3D model. The 3D model includes a skin portion of the 3D model. The skin portion represents the outer surface of the aforementioned portion of the mechanical part. The method further includes processing the skin portion based on an extrusion algorithm, to which the transformation of the skin portion is input. The transformation represents the unfolding of the material distribution of the aforementioned portion.
[0032] This constitutes an improved solution for processing CAD 3D models of mechanical parts. In particular, this method processes skinned areas based on an extrusion algorithm by inputting a skinned area transformation into the extrusion algorithm. The skinned area transformation represents the unfolding of the material distribution of the aforementioned area. That is, the skinned area transformation forms an unfolded skinned area that represents the unfolded material distribution. By using the skinned area transformation, this method enables processing of skinned areas by applying an extrusion algorithm to the skinned area (i.e., after transformation). This allows the method to use the extrusion method to process other types of surfaces (i.e., non-extruded skinned areas). For example, a rotating surface can be unfolded into an extruded surface using the transformation given by the method and then processed by an extrusion algorithm according to the method. This allows the method to process rotating surfaces by using known extrusion algorithms on the transformations of these rotating surfaces.
[0033] The extrusion algorithm used to transform the skin portion in this way can output several features (i.e., characteristics) of the input transformation of the skin portion (e.g., extrusion if the skin portion is a surface of revolution). Each of these features corresponds to each feature of the skin portion according to the transformation (e.g., according to the reciprocal of the transformation). In other words, the extrusion algorithm can output one or more features of the transformation, and these one or more features correspond to one or more features of the skin portion according to the reciprocal of the transformation. For example, the extrusion algorithm can take the transformation of a surface of revolution, which is an extruded surface, as input and output the parameterization of this extruded surface or a calculated extrusion profile of the extruded surface.
[0034] The extrusion processing algorithm may be any algorithm that enables extrusion detection, parameterization of the extrusion, and / or editing of the extrusion. For example, the extrusion processing algorithm may include an extrusion detection method according to European Patent Application EP21305673.2 (which is incorporated by reference in this application), filed by DASSAULT SYSTEMS on 21 May 2021, to determine whether the transformation of the skin portion represents the outer surface of the material distribution configured as an extrusion. Specifically, the extrusion processing algorithm may include a step of material extrusion detection in the transformation of the skin portion, i.e., a step of determining whether the transformation of the skin portion is an extruded surface. This is done by applying the computer-implemented method for material extrusion detection disclosed in the aforementioned European Patent Application 21305673.2 to the transformation of the skin portion (i.e., the transformation of the skin portion plays the role of the skin portion in the material extrusion detection method disclosed in the aforementioned European Patent Application 21305673.2). This allows the processing method to assess the shape of the material distribution represented by the skin portion before unfolding. For example, if the transformation of a rotating surface is an extruded surface, the method detects whether the transformation is an extruded surface by applying an extrusion processing algorithm to the transformation of rotation. This corresponds to detecting whether the skin portion represents the outer surface of a material distribution configured as a rotation. Alternatively or additionally, the extrusion processing algorithm may include determining the rotation axis of the skin portion by optimizing an objection function obtained from transforming the objective function for determining the extrusion direction. Additionally or alternatively, the extrusion processing algorithm may include a parameterization method in accordance with European Patent Application EP21305671.6 filed by DASSAULT SYSTEMS on 21 May 2021 (which is incorporated herein by reference) for determining one or more first value distributions of one or more parameters for the transformation of the skin portion. Specifically, the extrusion processing algorithm may include a step of parameterizing the transformation of the skin portion, i.e., a step of determining one or more first value distributions of each parameter of the transformation of the skin portion.This is done by applying the computer-based method for parameterization disclosed in European Patent Application No. 21305671.6, cited above, to the transformation of the skin portion. This makes it possible to determine one or more second value distributions of one or more parameters for the skin portion (for example, by considering (e.g., using) the reciprocal of the transformation for one or more first value distributions). Each of the second value distributions corresponds to each of the first value distributions according to the transformation. Thus, the processing method can parameterize the skin portion (e.g., a rotating surface) by parameterizing the transformation of the skin portion (e.g., an extruded surface) using an extrusion processing algorithm. Processing such CAD models for, for example, surface detection (e.g., rotating surface detection) or parameterization (e.g., rotating surface parameterization), which is made possible by this method, is particularly relevant to the field of manufacturing CAD, as will be discussed later.
[0035] Furthermore, processing the skin portion by processing each transformation of the skin portion of the 3D model improves the processing by becoming more robust to noise. In other words, a CAD model may be a noisy CAD model (for example, characterized by noise due to outliers, especially if the 3D model is a 3D point cloud, or characterized by noise due to the non-smoothness of the outer surface of the CAD model, especially if the 3D model is a 3D mesh). In fact, this method enables processing of the skin portion by utilizing an extrusion processing algorithm such as the parameterization method according to European Patent Application No. 21305671.6 cited above, or the extrusion detection method according to European Patent Application No. 21305673.2 cited above. Both of these methods are particularly robust to noise. Specifically, this method can process the skin portion based on an extrusion processing algorithm that includes a material extrusion detection step for the skin portion transformation, i.e., a step of determining whether the skin portion transformation is an extruded surface. This is done by applying the computer-implemented method for material extrusion detection disclosed in European Patent Application No. 21305673.2, cited above, to the transformation of the skin portion. Additionally or alternatively, the method may process the skin portion based on an extrusion processing algorithm that may include a step of parameterizing the transformation of the skin portion, i.e., a step of determining one or more first value distributions of each parameter of the transformation of the skin portion. This is done by applying the computer-implemented method for parameterization disclosed in European Patent Application No. 21305671.6, cited above, to the transformation of the skin portion.
[0036] As discussed above, processing CAD 3D models of mechanical parts for surface detection (e.g., surface of rotation) or parameterization is particularly relevant to the field of manufacturing CAD, that is, the field that aims to support the design and manufacturing processes with software solutions and generate physical products corresponding to the designed CAD 3D models. In this context, the CAD 3D model represents a manufactured product that can be manufactured downstream of its design. Thus, this method may be part of such a design and / or manufacturing process. This method may, for example, form or be part of a CAD feature acquisition step within such a design and / or manufacturing process. The CAD feature acquisition step includes detecting geometry by each CAD feature and parameterizing the detected geometry. For example, the CAD feature acquisition step may be a feature tree construction step. Within this step, the method may detect one or more geometries (e.g., surfaces of rotation) of the CAD model by processing transformations. The method may then further include parameterizing the detected geometry (e.g., parameterizing surfaces of rotation). Parameterization facilitates manipulation / editing of the CAD model. Another design and / or manufacturing step may be performed after a CAD feature acquisition step including this method. These steps optionally use the parameterized and detected geometry after the CAD feature acquisition step, and in particular, use the geometry detected by this method. These other steps may include other design and / or editing operations, testing, simulation, and / or manufacturing. In other words, this method may be included in a step within the manufacturing CAD process that adapts a CAD model for use in later steps within the manufacturing CAD process (e.g., other design / editing operations, testing, simulation, and / or manufacturing). This method may be included in many other applications that use the CAD features detected by this method.
[0037] Thus, this method can obtain a semantic 3D model, or feature tree, by processing a raw geometric representation (e.g., a mesh or point cloud) that includes specific geometry (e.g., revolved geometry). The raw geometry can be obtained, for example, from the original feature tree, which is no longer available for visualization and / or analysis purposes. The ability to reverse (i.e., obtain) the feature tree enables advanced editing and supports all the functions provided by manufacturing CAD programs for extruded surfaces. By detecting and fitting such specific geometry (e.g., revolved geometry), it becomes possible to manufacture corresponding parts (e.g., shafts or grooves) using specific industrial processes, such as turning.
[0038] Therefore, this method improves the processing of one or more skinned portions of a CAD 3D model (e.g., detection, editing, acquisition, conversion to CAD features, and / or parameterization) to enable, for example, the preparation of skinned portions with manufacturing in mind. In other words, the processed skinned portions provided by this method can be edited for manufacturing processes. For example, skinned portions processed by this method can be edited to take into account the characteristics of downstream manufacturing processes (e.g., molding, machining, additive manufacturing). This facilitates the preparation and / or setup of one or more manufacturing machines (e.g., molds, machining tools, or 3D printers). Thus, this method improves the manufacturing of products represented by CAD models and increases the productivity of the manufacturing process.
[0039] As discussed earlier, the processing of the skin portion can include the detection of geometry such as a rotating surface, enabling the parameterization of the detected geometry as described above. This allows the CAD model or at least a part thereof to be parameterized using this method to obtain a parameterized CAD model or a part thereof. "Parameterization" means fitting the CAD model (or at least a part of the CAD model, such as the skin portion) to a single 3D geometry object represented by a parameter equation or parameter function, thereby involving one or more parameters. Each of the one or more parameters can take values within a continuous range. 3D parameterized geometry objects, in contrast to non-parameterized 3D geometry objects such as discrete representations (e.g., point clouds, meshes, or voxel representations), allow for easy manipulation, and / or editability, and / or efficient in-memory storage. For example, the geometry of a skin portion (e.g., a rotating surface) may be fitted to a standard primitive (canonical primitive) (e.g., a parallelepiped, cylinder, or torus), or parameterized by other fitting geometry tools such as non-standard parameterized surfaces such as NURBS, or by other parameterization methods such as European Patent Application No. 21305671.6 cited above. Specifically, the method can process a skin portion based on an extrusion algorithm that may include a step of parameterizing the transformation of the skin portion, i.e., a step of determining one or more first value distributions of each parameter of the transformation of the skin portion. This is done by applying the computer-implemented method for parameterization disclosed in European Patent Application No. 21305671.6 cited above to the transformation of the skin portion. In all applications of the method, including those discussed below, the CAD 3D model may be a measured CAD 3D model (i.e., a CAD model obtained from physical measurements of a mechanical part, as discussed below).In such cases, processing the CAD 3D model (or its skin portion) allows for the processing of the (raw) measured CAD 3D model and, (for example, once geometry has been detected), the final editable version of the measured CAD 3D model. Therefore, this method can generally be used to process the measured portion of a mechanical part and then edit it, for example, into an editable data structure.
[0040] For example, skin portions such as rotating surfaces have a consistent geometry from a manufacturing perspective. In other words, the geometry of corresponding parts of machine components in the real world requires or is adapted to each manufacturing process (e.g., molding, additive manufacturing, or machining) that corresponds to a suitable machining path (e.g., with respect to manufacturing constraints) or a suitable mold characteristic (e.g., with respect to manufacturing constraints).
[0041] In several examples, a machine part can be a molded part, and the aforementioned portion can be manufactured by molding. The skin portion can be, for example, a rotating surface representing the molded portion of a machine part. Processing it thus allows for parameterization and / or editing based on molding requirements (e.g., facilitating the withdrawal (i.e., demolding and / or unmolding) of this portion from the mold). Thus, the method can be included in a design manufacturing CAD process and / or the manufacturing of the molded portion, including a downstream editing step of the processing performed by the method (e.g., surface detection and / or parameterization). The editing step involves using a CAD operator on the skin portion to satisfy the constraints of the corresponding mold in the downstream molding process, thereby facilitating the withdrawal / demolition / withdrawal of the molded portion from the mold. In several examples, the CAD operator includes one or more draft operators, and the editing step may include, for example, adding one or more draft operators to the end of the feature tree of the skin portion, and then using one or more draft operators on the skin portion to make it moldable and / or prepare it for molding.
[0042] In several examples, mechanical parts and their components can be manufactured by additive manufacturing. Processing of the skin portion allows for, for example, detection or parameterization of the skin portion, which enables editing of the skin portion. Editing may include defining a print path along one or more directions of the skin portion, for example, along the direction of rotation or axis of rotation if the skin portion is a rotating surface. Defining the print path may be based on the parameterization of the skin portion, i.e., after the skin portion has been processed (for example, the print path may be generated by CAD / CAM software from parameter geometry information in a feature tree (e.g., a circular path or a path along an axis for a rotating surface)). For this reason, the method may be included in the design manufacturing CAD process and / or the manufacturing of mechanical parts manufactured by additive manufacturing. The process may include a step of defining a print path along a direction of the skin portion (e.g., axis of rotation). The process may further include defining a setup of a 3D printer that performs additive manufacturing according to the defined print path.
[0043] In several examples, a machine part can be a machined part, and the aforementioned parts can be manufactured by machining (e.g., cutting). Processing of the skin portion allows for, for example, detection or parameterization of the skin portion, which enables editing of the skin portion. Editing may include defining the path of a machining tool (e.g., a cutting tool) along one or more directions of the skin portion, for example, along the direction of rotation or axis of rotation if the skin portion is a rotating surface. Such directions may be configured to increase the efficiency of machining, for example, so that machining along these directions is fast and / or highly accurate. For example, if the skin portion is a rotating surface, the machining tool may be configured to cut the material along the axis of rotation of the rotating surface (e.g., the tool path may be generated by CAD / CAM software from parameter geometry information in a feature tree (e.g., a circular path or a path along an axis for a rotating surface)). For this reason, the method can be included in the design manufacturing CAD process and / or in the manufacturing of machine parts manufactured by machining. The process may include a step of defining the path of a machining tool based on one or more features of the skin portion obtained by the method (e.g., axis of rotation). The process may further include defining the setup of machining tools that will perform machining according to the defined path.
[0044] We examined the use of processing methods in manufacturing CAD. Based on this, we will now consider other possible applications in manufacturing CAD or other situations.
[0045] In the first application example, the skin portion processed by this method, for example, detected and / or parameterized revolution surfaces, can be used for B-rep (boundary representation) construction. B-rep construction is discussed in 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 website 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 known in itself, a B-rep is a collection of concatenated boundary surface elements (for example, in the widely known STEP file format). B-rep construction includes fitting surfaces onto geometry (e.g., a surface of rotation) detected and / or parameterized by this method (which, as mentioned above, can be detected and / or parameterized by the extrusion algorithm), and defining these surfaces using data on the skin portion (e.g., the axis of rotation and / or rotation profile if the skin portion is a surface of rotation) (i.e., determining the topology data of the B-rep, i.e., the "defined by..." relationships). According to this first application example, the CAD model processing method can be included in a computer-based process for converting a CAD 3D model representing a mechanical part into a boundary representation.
[0046] In a second application, the skinned portions processed by this method can be used for feature tree construction. This second application involves constructing a feature tree representation of a CAD 3D model using the geometry of skinned portions detected and / or parameterized by the extrusion algorithm discussed earlier. Feature tree construction actually involves parameterizing one or more skinned portions as CAD rotation features, and then adding each parameterized skinned portion to the feature tree. Thus, the processing method can be included in a computer-based process for constructing a feature tree from a CAD 3D model representing a mechanical part. The feature tree construction process may include the following: - One or more uses of this method. Each use generates a processed skin portion (e.g., detection and / or parameterized rotation). - Each skin portion processed by this method is parameterized by this method. -Include each parameterized skin portion in the feature tree of the machine part.
[0047] In a third application example, the skin portion processed by this method is used for re-meshing (e.g., if the given CAD 3D is a 3D mesh) or re-sampling (e.g., if the given CAD 3D model is a 3D point cloud). According to the third application example, the skin portion can be parameterized as described above, thereby enabling re-meshing or re-sampling of the CAD 3D model. In the example where the CAD 3D model is a 3D mesh or a 3D point cloud, processing the skin portion according to this method enables more precise re-meshing and / or re-sampling of the skin portion, resulting in a finer mesh or point cloud. This re-meshing / resampling can be used to denoise the CAD 3D model (e.g., removing outliers, especially in 3D point clouds, or smoothing abnormal surfaces of the CAD model, especially in 3D meshes). Additionally or alternatively, this can be used to efficiently tessellate the 3D mesh, i.e., to fit the size of the mesh planes to the curvature of the corresponding surfaces. This is done to ensure an optimal discretization distance to the exact surface while optimizing the mesh weights (i.e., storage-wise) by minimizing the number of faces. For example, remeshing / resampling can be used to ensure a sufficiently small distance to the exact surface while minimizing the mesh weights (in this case, proximity to the surface is considered a constraint and not something to be optimized). Therefore, this processing method can be included in a computer-based process for remeshing (resampling each) a CAD 3D model, which is a 3D mesh (each a 3D point cloud) representing a mechanical part.
[0048] The skinned portions processed by this method (e.g., detected and / or parameterized rotating surfaces) can be used for other applications such as 3D deformation, 3D rendering (calculation of geometry / material attributes, occlusion culling, shadow determination), 3D animation, and / or shape compression. These application examples are discussed in 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. Once the skinned portions have been processed by this method (e.g., once the rotating surfaces have been detected and / or parameterized), deformations of the skinned portions can be obtained more precisely and easily. In the example where the skinned portion is a rotating surface, such deformations can be obtained by moving the axis of rotation and / or deforming the rotation profile curve, thus preserving the appearance of the rotating surface. Furthermore, skinned portions processed according to this method can be rendered and / or animated more easily and precisely, and require less memory space on disk compared to point clouds or meshes.
[0049] This method generally manipulates modeled objects such as CAD 3D models. A modeled object is any object defined by data stored, for example, in a database. More precisely, the expression "modeled object" refers to the data itself. Depending on this type of system, modeled objects can be defined by different types of data. In practice, a system can be any combination of a CAD system, CAE system, CAM system, PDM system, and / or PLM system. In these different systems, modeled objects are defined by corresponding data. Thus, we can list CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, since modeled objects can be defined by data corresponding to any combination of these systems, these systems are not mutually exclusive.
[0050] In the context of CAD, modeled objects are typically 3D modeled objects or 3D models, which can represent products such as a single part, an assembly of multiple parts, or an assembly of multiple products. "3D modeled object" or "3D model" means any object modeled with data that enables 3D representation. 3D representation allows viewing of a part from all angles. For example, a 3D modeled object, when represented in 3D, can be manipulated and rotated around any of its axes, or any axis within the screen where the representation is displayed. This eliminates the 2D icon that is not 3D modeled. 3D representation facilitates design (i.e., increases the speed at which designers statistically complete tasks). Since product design is part of the manufacturing process, this speeds up the industry's manufacturing process.
[0051] A 3D modeled object or 3D model can represent the geometry of a product that is manufactured in the real world after a virtual design has been completed using, for example, a CAD software solution or CAD system. Such products may be (e.g., mechanical) parts, assemblies of multiple parts (i.e., an assembly of multiple parts is considered a part itself from the perspective of this method, or this method may be used separately for each part of the assembly), or more generally, any rigid body assembly (e.g., a moving mechanism). CAD software solutions enable the design of products in an unlimited range of industrial fields, including aerospace, architecture, construction, consumer goods, high-tech devices, industrial equipment, transportation, shipping, and / or offshore oil / gas production or transport. Thus, a 3D modeled object can represent an industrial product that can be any mechanical part. This includes, for example, parts for ground vehicles (including, for example, automobiles and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, and trains), parts for aircraft (including, for example, airframe equipment, aerospace equipment, propulsion equipment, defense products, aerospace equipment, and space equipment), parts for ships (including, for example, ship equipment, merchant ships, marine equipment, yachts and workboats, and marine equipment), general machine parts (including, for example, industrial production machinery, mobile heavy machinery, onboard equipment, industrial equipment products, assembled metal products, and tire manufacturing products), electrical machinery or electronic components (including, for example, home appliances, security and / or control and / or measuring products, computing and communication equipment, semiconductors, medical devices and equipment), consumer goods (including, for example, furniture, household and garden products, leisure goods, fashion products, retail products of durable consumer goods, and retail products of consumables), and packaged goods (including, for example, food and beverages and tobacco, cosmetics and daily necessities, and packaging for household goods).
[0052] A 3D model forms a discrete geometric representation of a 3D real-world object, which can represent an object from the real world, such as a machine part. A discrete geometric representation is a data structure containing discrete datasets. Each data point can also be called a discrete element. Each data point represents a geometric entity positioned in 3D space. Each geometric entity represents a position on the 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 union or juxtaposition) represents the entire 3D object. In several examples, a discrete geometric representation can contain more than 100, 1000, or 10000 data points.
[0053] A discrete geometric representation can be, for example, a 3D point cloud where each geometric entity is a single point. Alternatively, a discrete geometric representation can be a 3D mesh where each geometric entity is a single mesh tile or face. A 3D mesh can be regular or irregular (i.e., it may or may not consist of faces of the same type). A 3D mesh can be a polygonal mesh, such as a triangular mesh. A 3D mesh can be obtained from a 3D point cloud, for example, by triangulating the 3D point cloud (e.g., using Delaunay triangulation).
[0054] A 3D point cloud or 3D mesh can be determined, for example, within a reconstruction process, from physical measurements of a real object. The 3D reconstruction process may include providing a real object, providing one or more physical sensors, each configured to acquire a physical signal, and acquiring one or more physical signals by operating 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 a 3D point cloud and / or 3D mesh based on these 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 aforementioned determination may include structure-from-motion analysis. The one or more sensors may, alternatively or additionally, include one or more depth sensors (e.g., on a GRB depth camera), and the aforementioned determination may include 3D reconstruction from depth data. The one or more depth sensors may include, for example, lasers (e.g., lidar) or ultrasonic emitters-receivers.
[0055] Alternatively, a 3D point cloud or 3D mesh can be obtained from a 3D modeled object, for example, by ray casting or tessellation of the 3D modeled object representing the skin (i.e., outer surface) of a solid or mechanical part. Tessellation can be performed according to the rendering process of any 3D modeled object. Such a rendering process can be coded on any CAD system to display a graphic representation of the 3D modeled object. The 3D modeled object can be designed by a user using a CAD system, or it may already be designed.
[0056] CAD systems can be history-based. In this case, the modeled object is further defined by data containing the history of geometric features. The modeled object can actually be designed by a physical person (i.e., designer / user) using standard modeling features (e.g., extrude, revolve, cut, and / or round) and / or standard surface features (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CA systems that support such modeling capabilities are history-based systems. This means that the generation history of design features is saved by an acyclic 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 to the part in accordance with the design intent. The history-based modeling paradigm can be implemented according to any method known in the art.
[0057] A PLM system further refers to any system adapted for managing modeled objects that represent physically manufactured (or manufactured) products. Therefore, in a PLM system, modeled objects are defined by data suitable for manufacturing physical objects. These can typically be dimensional values and / or tolerance values. In practice, it is preferable to have such values for accurate manufacturing of objects. For example, a PLM system can manage manufacturing tolerances in machining or forming related to features given in a CAD model.
[0058] A CAM solution further refers to any solution, software, or hardware adapted for managing product manufacturing data. Manufacturing data generally includes data about 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, they can provide CAM users with information on feasibility, the duration of the manufacturing process, or the number of resources needed. Resources are, for example, specific robots that may be used at specific steps in the manufacturing process. This allows for decisions regarding management or necessary investments. CAM is a process that follows the CAD process, and sometimes the CAE process. For example, a CAM solution can provide information on machining or forming parameters consistent with one or more features of a CAD model. Such CAM solutions are offered by Dassault Systems under the trademark DELMIA®.
[0059] A CAE solution further refers to any solution, software, or hardware adapted for analyzing the physical behavior of a modeled object. A well-known and widely used CAE technique is the Finite Element Method (FEM), which typically divides a modeled object into multiple elements and allows for the calculation and simulation of its physical behavior using mathematical formulas. Such CAE solutions are offered by Dassault Systems under the trademark SIMULIA®. Another emerging CAE technique involves modeling and analyzing complex systems composed of multiple components from various physics fields without CAD geometry data. CAE solutions enable the simulation of manufactured products, and therefore their optimization, improvement, and verification. Such CAE solutions are offered by Dassault Systems under the trademark DYMOLA®.
[0060] PDM stands for Product Data Management. A PDM solution refers to any solution, software, or hardware adapted to manage all types of data related to a particular product. A PDM solution can be used by all participants involved throughout the product's lifecycle. These participants are primarily engineers, but also include project managers, finance personnel, sales representatives, and buyers. PDM solutions are generally based on a product-oriented database. This allows participants to share consistent data about the product and thus prevents participants from using different data. Such PDM solutions are offered by Dassault Systems under the trademark ENOVIA®.
[0061] 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 a strict portion of a machine part that includes other parts. This method processes the skin portion based on an extrusion algorithm. This method is also repeatable, i.e., it may be used on one or more other parts of a machine part. The use of this method on each other part processes each skin portion based on an extrusion algorithm. Alternatively, the part of the machine part may be the machine part itself. The part of the machine part may be manufactured by machining processes, additive manufacturing processes, and / or molding. In several examples, the part of the machine part may be a shaft or groove having a material distribution configured as a rotation.
[0062] "External surface" refers to the surface of a machine part that is in contact with an external medium, such as another machine part or air. In other words, the external surface forms the boundary between the outside and inside of the machine part in the aforementioned portion. "Skin portion" refers to any surface representation (open or closed surface) of the external surface (or "skin") of the aforementioned portion of the machine part. The skin portion represents at least a portion of the boundary (i.e., surface) of each 3D model, and at least a portion of this boundary may represent the external surface. In other words, the skin portion is a portion of the provided 3D model of the machine part that corresponds to the external surface of the machine part. To put it another way, the CAD 3D model represents the machine part as a whole, but the skin portion is a portion of the CAD 3D model that represents the external surface of the aforementioned portion of the machine part. If the aforementioned portion is a precise part of the machine part, the skin portion may be a precise part of the boundary of the provided CAD 3D model. In this case, the 3D model may contain several other portions, each representing a different part of the machine part. Alternatively, if the aforementioned portion is the machine part itself, the skin portion may be the outer boundary of the CAD 3D model.
[0063] This 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.
[0064] As discussed above, providing a CAD 3D model may include measuring or acquiring the CAD 3D model. This could be done, for example, by providing physical sensors, operating those sensors on a mechanical part (which could be, for example, scanning the mechanical part), and then performing a 3D reconstruction process to acquire the 3D model. Alternatively, providing a 3D model may include generating the 3D model from, for example, a sketch of the 3D model. Yet another alternative is that providing a 3D model, in addition to generating or acquiring the 3D model, may include retrieving the 3D model from a (e.g., remote) database where the 3D model is stored.
[0065] This method further includes processing the skin portion based on an extrusion algorithm. As discussed above, processing the skin portion may include one or more of the following: geometry detection, editing, or parameterization of the skin portion. A transformation of the skin portion representing the unfolding of the material distribution of the aforementioned portion is input to the extrusion algorithm. "Transformation representing the unfolding of the material distribution of the aforementioned portion" means that each material distribution in the transformation of the aforementioned portion is an unfolding of the material distribution of this portion. "Unfolding of the material distribution of the aforementioned portion" means that the material distribution of the aforementioned portion is substantially flattened in one direction. In the case where the skin portion is a rotating surface, i.e., formed by rotating a profile around an axis of rotation, the unfolding can be represented as flattening the skin portion along the rotation path of the profile. In other words, the direction of flattening is the extrusion direction of the transformation of the skin portion (whereas the transformation of rotation is extrusion). In several examples, for example, when the profile of a rotating surface is a single line (only in this case), the unfolding of the skin portion is a flat surface, and the unfolding generates a flat surface (i.e., a plane).
[0066] Figures 1, 2, and 4 illustrate such transformations. As shown in Figure 1, unfolding portion 1000, which has skin portions 1010 and 1020, yields transformations 1030 and 1040 of substantially flattened skin portions 1010 and 1020, respectively. Similarly, as shown in Figure 2, unfolding portion 2000, which has skin portion 2010, yields transformation 2020. As shown in Figure 4, skin portion 4010 is flattened along a rotation path (in the xy plane) to yield transformation 4020.
[0067] This method may include a step of calculating the unfolding of the material distribution of the aforementioned portion, that is, calculating the transformation of the skin portion before processing the skin portion. Alternatively, the algorithm may be performed without requiring substantial calculation of the transformation, for example, by integrating the unfolding into the processing of the skin portion by processing the skin portion in a coordinate system corresponding to the use of the transformation. "Processing the skin portion based on an extrusion algorithm" means processing the skin portion using an extrusion algorithm. The extrusion algorithm can be any algorithm that processes the extrusion-related features of the input to the algorithm, for example, an algorithm that detects the extruded surface of the input and / or an algorithm that parameterizes the extruded surface of the input (for example, the detected extruded surface). Thus, this method processes the skin portion by processing each transformation. For example, this method processes a rotating surface by processing the extruded surface, which is the transformation of the rotating surface.
[0068] In several examples, the extrusion algorithm may include an algorithm for detecting an extruded surface in accordance with European Patent Application No. 21305673.2 cited above. Specifically, the extrusion algorithm may include a material extrusion detection step for the skin portion transformation, i.e., a step of determining whether the skin portion transformation is an extruded surface. This is done by applying the computer-implemented method for material extrusion detection disclosed in European Patent Application No. 21305673.2 cited above to the skin portion transformation. Alternatively or additionally, the extrusion algorithm may include an algorithm for parameterizing an extruded surface in accordance with European Patent Application No. 21305671.6 cited above. Specifically, the extrusion algorithm may include a step of parameterizing the skin portion transformation, i.e., a step of determining one or more first value distributions of each parameter of the skin portion transformation. This is done by applying the computer-implemented method for parameterization disclosed in European Patent Application No. 21305671.6 cited above to the skin portion transformation.
[0069] Processing of a skinned portion based on an extrusion algorithm may include unfolding the skinned portion. Unfolding the skinned portion obtains the transformation of the skinned portion (i.e., unfolding takes the skinned portion as input and outputs the transformation), thereby preparing it for input to the extrusion algorithm. The processing may further include inputting the transformation into the extrusion algorithm and then executing the extrusion algorithm. Execution of the extrusion algorithm can be initiated by inputting the transformation into the algorithm.
[0070] According to the first embodiment, the extrusion processing algorithm may include determining whether the transformation of the skin portion represents the outer surface of a material distribution configured as an extrusion. The determination of whether the transformation of the skin portion is configured as an extrusion may also be called extrusion detection. Extrusion detection may include determining the extrusion direction of the transformation of the skin portion. Alternatively, extrusion detection may include, for example, providing a potential extrusion direction by the user. In this method, it is verified whether the material distribution is configured as an extrusion along this direction. Extrusion detection may be carried out in accordance with European Patent Application No. 21305673.2 cited above. Specifically, the extrusion processing algorithm may include a material extrusion detection step for the transformation of the skin portion, i.e., a step of determining whether the transformation of the skin portion is an extruded surface. This is done by applying the computer-implemented method for material extrusion detection disclosed in European Patent Application No. 21305673.2 cited above to the transformation of the skin portion.
[0071] Such extrusion detection for skin transformations can detect various characteristics of the skin. In examples where the material distribution is configured as rotation, extrusion detection of the skin transformation can determine whether the skin transformation represents the outer surface, i.e., the rotating surface, of the material distribution configured as rotation. In such examples, if the skin transformation is determined to be an extruded surface, the skin is determined to be a rotating surface by this method. Optionally, the extrusion detection may include determining the axis of rotation of the determined rotating surface. Alternatively, the extrusion detection may include, for example, providing a potential axis of rotation by the user. This method verifies whether the material distribution is configured as rotation along this axis. If the skin is rotation, the skin transformation is an extrusion, and its extrusion direction corresponds to the direction of rotation around the axis of rotation, i.e., the direction along a circle centered on the axis of rotation, in other words, a set of vectors perpendicular to the axis of rotation (and tangent to the circle). The extrusion direction may be perpendicular to the axis of rotation of the skin.
[0072] The extrusion algorithm may further include calculating an extrusion profile. The extrusion profile may be the extrusion profile of the transformation of the skin portion. In the example where the material distribution is rotational, the calculation of the extrusion profile calculates the profile of the rotational surface. The calculation of the extrusion profile may be based on a determined extrusion direction or on a given extrusion direction. The extrusion algorithm may calculate the extrusion profile according to any known method for calculating an extrusion profile using a given extrusion direction, for example, according to the previously cited European Patent Application No. 21305673.2 or No. 21305671.6. Specifically, the extrusion algorithm may include a step of parameterizing the transformation of the skin portion, i.e., a step of determining one or more first value distributions of each parameter of the transformation of the skin portion. This is done by applying the computer-implemented method for parameterization disclosed in the previously cited European Patent Application No. 21305671.6 to the transformation of the skin portion. The use of this parameterization method may include a step of calculating a profile. This step may include fitting one or more curves based on the respective determined value distributions, as disclosed in European Patent Application No. 21305671.6, which has been previously cited. Additionally or alternatively, the extrusion processing algorithm may include a step of material extrusion detection of the skin portion transformation, i.e., a step of determining whether the skin portion transformation is an extruded surface. This is done by applying a computer-implemented method for material extrusion detection disclosed in European Patent Application No. 21305673.2, which has been previously cited, to the skin portion transformation. The use of this material extrusion detection method may include a step of calculating a profile. This step may include fitting one or more curves based on a given or determined extrusion direction, as disclosed in European Patent Application No. 21305673.2, which has been previously cited.
[0073] According to a second embodiment that can be combined with the first embodiment, the processing of the skin portion based on the extrusion algorithm may include material rotation detection in the aforementioned portion of the machine part. Material rotation detection may include optimizing an objective function that penalizes the non-orthogonality of the normal of the skin portion with respect to the rotation direction perpendicular to the candidate rotation axis, in a range proportional to the distance to the rotation axis, in order to determine the rotation axis. According to the second embodiment, the optimization of the objective function may be applied directly to the skin portion without using skin portion transformation.
[0074] In other words, according to the second aspect, the method is a method for detecting rotation in a part of a machine component that includes a material distribution, wherein the use of an extrusion processing algorithm forms a step of determining whether or not the material distribution is configured as rotation. In other words, according to the second aspect, a computer-based method for detecting rotation in a part of a machine component that has a material distribution is proposed. This method is - To provide a CAD 3D model of a machine part, wherein the 3D model includes a skin portion of the 3D model representing the outer surface of a part of the machine part. - Determining whether the material distribution is configured as a rotation, including determining the rotation axis by optimizing an objective function that penalizes the non-orthogonality of the normal of the skin portion with respect to the rotation direction perpendicular to the candidate rotation axis, within a range proportional to the distance to the rotation axis, Includes.
[0075] In an example following a combination of the first and second embodiments, the processing of the skin portion is based on a first extrusion algorithm according to the second embodiment, and further based on another (i.e., second) extrusion algorithm according to the first embodiment. In such an example, the method first processes the skin portion based on the first extrusion algorithm, and then processes the skin portion based on the second extrusion algorithm. In such a case, the method first uses the first extrusion algorithm (i.e., according to the second embodiment) to output a rotation axis for the skin portion. The method then calculates a transformation of the skin portion based on this rotation axis, resulting in an extrusion having an extrusion direction corresponding to the rotation direction around the rotation axis. That is, the extrusion direction corresponds to a direction along a circle centered on the rotation axis, in other words, a group of vectors perpendicular to the rotation axis (and tangent to the circle). The extrusion direction can be perpendicular to the rotation axis. The method then uses the second extrusion algorithm (i.e., according to the first embodiment) on the calculated transformation. In other words, such an example allows for the detection of the axis of rotation to define the transformation, and then the second algorithm can be used, which essentially means preparing the skin portion for use with the second algorithm. Additionally or alternatively, since the first algorithm determines the axis of rotation, the first algorithm has already performed the detection of whether the skin portion is a rotation or not. In this case, the second algorithm can be an extrusion detection algorithm that determines whether the transformation is an extrusion or not, thereby performing indirect rotation detection of the skin portion as described above. In other words, this example, which combines the first and second embodiments, performs double rotation detection, i.e., a double check that the skin portion is a rotation.
[0076] As described above, the objective function penalizes the non-orthogonality of the normal of the skin portion with respect to the rotation direction perpendicular to the rotation axis candidate (i.e., the free variable for optimization). Therefore, optimizing the objective function minimizes the objective function. The rotation direction is the direction representing the rotation around the rotation axis candidate. The rotation direction is defined in a plane perpendicular to the rotation axis. The penalty is applied in a range where the objective function is proportional to the distance to the rotation axis. This objective function can correspond to an objective function for extrusion detection expressed in another coordinate system obtained as a result of a transformation such that the rotation transformation is an extrusion. The rotation axis of the skin portion is determined by optimizing the objective function. In particular, for a skin portion configured as a rotation, the normal of the skin portion is perpendicular to the rotation direction, that is, perpendicular to the direction that rotates the profile of the rotating surface around the rotation axis. Therefore, the rotation axis is obtained by minimizing the non-orthogonality of the normal of the skin portion with respect to the rotation direction. The penalty application includes a constant weight at each position regardless of the distance to the axis. This improves the method with respect to the same level of noise within the 3D model (i.e., at the points of the point cloud or the vertices of the mesh) in cases where the 3D model is a 3D mesh or a 3D point cloud and has a typical point density (i.e., the vertices of the mesh or the points of the point cloud are not necessarily evenly distributed in 3D space). The penalty is applied equally to all points, without prioritizing points farther from the axis. This is particularly good for cases where the 3D model is obtained from common CAD software, where the number of points is roughly the same at any distance from the axis, but the distance between points (and therefore the size and area of the mesh faces, such as triangles or quadrilaterals) increases proportionally with distance from the axis.
[0077] The objective function should be of the following type:
[0078]
number
[0079] Here, u is the direction of the rotation axis candidate, c is the origin of the rotation axis candidate, A S is the area of the skin part, S is the skin part, p is the position on the skin part, π c,u (p) is the orthographic projection of p on the rotation axis candidate, and n is the normal of the skin part at the position p. The optimization of the objective function J R is a non-linear optimization problem. In solving this non-linear optimization problem, in order to obtain an initial solution for u and c, this method first fixes the weight 1 / |p τ -π c,u (p τ )| as a constant (for example, 1), and the problem can be solved by the least squares method. This method then injects this initial solution (for example, as the first guess) into the non-linear optimization solver using, for example, the Levenberg-Marquardt algorithm, and the non-linear optimization problem can be solved. Thus, by using a good initial solution in the optimization solver, the optimization of the objective function is improved, and this is solved more computationally efficiently without obtaining the minimum value of the objective function (i.e., as the result of the optimization).
[0080] Referring to Figures 3 and 4, the unfolding may include providing a rotation axis. In the example according to the second embodiment (or a combination of the first and second embodiments) discussed above, the provided rotation axis may be the rotation axis determined by optimizing the objective function as discussed above. The rotation axis may be provided separately by the user. The unfolding may further include determining a cylindrical coordinate default value for the skin portion. The cylindrical coordinate default value may include a first value. The first value may form a set of triple coordinate values. Each of the three coordinate values defines each position on the skin portion with respect to the cylindrical coordinate system. The cylindrical coordinate system may have a longitudinal axis which is the rotation axis provided. For example, the cylindrical coordinate system may be a cylindrical representation of the Cartesian coordinate system 3010, where the longitudinal axis z is the rotation axis of the skin portion 4010. The unfolding may further include determining a Cartesian coordinate default value for a transformation to a Cartesian coordinate system having one axis which is the longitudinal axis. For example, the development in Figures 3 and 4 determines the Cartesian coordinate default value 3020 for a transformation to a Cartesian coordinate system 3010 having one axis, which is the longitudinal axis z. The Cartesian coordinate default value may include a second value that defines the position on the transformation. The second value may correspond to (e.g., equal to) the first value. In other words, the Cartesian coordinate default value 3020 represents the cylindrical coordinate system representation of the Cartesian coordinate system 3010 as a Cartesian coordinate system. In several examples, the determination of the cylindrical coordinate default value of the skin portion is based on a reference (global) Cartesian coordinate system. This constitutes equivalence between the rotating surface and the extruded surface, thereby enabling the processing method to employ extrusion techniques known in the art. Referring to Figure 3, the second value can be a triplet of (r,θ,z) relative to the Cartesian coordinate system 3020. The second value represents the radial distance, angular position, and longitudinal position. The value of r can be set to a reference value such as 1 (unity). The value of θ can be within a certain interval (e.g., [0, 2π] or [-π, π]). The value of z can be within an interval such as [0, L]. Figure 4 shows the expanded transformation Φ R and its reciprocal Φ R -1This shows the equivalent value between the rotating surface 4010 and the extruded surface 4020.
[0081] In several examples, the skin portion can be represented by a 3D discrete geometric representation having discrete elements. In such examples, determining the cylindrical coordinate default value of the skin portion involves determining a first value for each discrete element of the 3D discrete geometric representation. The first value of the cylindrical coordinate default value may consist, for each discrete element, of a radial distance value which is the norm of the radial vector with respect to the longitudinal axis, a value for the angular position on the skin portion with respect to the radial vector and the longitudinal axis, and a value for the longitudinal position. The radial vector can be a vector connecting the center of the Cartesian coordinate system (i.e., the origin) to the position of the discrete element. The longitudinal position can indicate a position on the longitudinal axis. The longitudinal position can be a projection onto the longitudinal axis. The projection onto the longitudinal axis can be an orthogonal projection onto the axis. The radial distance can also be called the radius. The angular position can also be called the azimuth. The radius, azimuth, and longitudinal position can be defined as known in a standard cylindrical coordinate system.
[0082] Determining cylindrical coordinate defaults may involve calculating angular position values by exploring discrete elements of a 3D discrete geometric representation. For each explored discrete element, the method can calculate the angular positions of its neighboring discrete elements. In other words, the method can explore discrete elements by starting with one or more discrete elements and exploring each neighboring element. "Neighboring discrete elements of a discrete element" means a set of discrete elements geometrically positioned close to a discrete element (in 3D space), for example, within a sphere of a predetermined radius. In the example where the discrete geometric representation is a mesh, the neighboring discrete elements of a given discrete element, i.e., a vertex of the mesh, are multiple adjacent vertices, i.e., multiple vertices connected to that vertex by the edges of the mesh. In several examples, the calculation of angular position may begin by randomly selecting a discrete element that is not geometrically positioned on an axis of rotation. Subsequently, the angular position of each of the neighboring discrete elements of this discrete element can be calculated. Next, the angular position of each discrete element in the vicinity of the discrete element whose angular position has already been calculated is calculated, and this process is continued until the angular position of all discrete elements has been calculated. This type of exploration can also be called propagation. Using propagation improves the determination of cylindrical coordinate standards. This is because if the angular position is calculated independently for each discrete element, two separate compartments are obtained in the angular position value, which can result in two separate surfaces, but this is avoided with propagation.
[0083] Figures 5 to 7 show an example of determining cylindrical coordinate norms by exploring discrete elements. Calculating the angular positions independently results in the separated surface shown in Figure 5. This method can utilize the propagation shown in Figure 6. The propagation calculates the angular positions in an increasing pattern from left to right in Figure 6, resulting in the joined surface shown in Figure 7. If the discrete geometric representation is a mesh, this method can explore discrete elements along the faces / elements of the mesh (e.g., triangles) rather than along the vertices of the mesh, and calculate the angular values of the centroids of the faces / elements. If the discrete geometric representation is a point cloud, this method can explore the points of the point cloud point by point using proximity conditions (e.g., within a sphere of a predetermined radius as discussed above). This ensures that the resulting unfolded mesh is connected.
[0084] The calculation of the angular position values of neighboring discrete elements for explored discrete elements may involve duplicating one or more neighboring discrete elements whose angular position difference from the explored discrete element is greater than a threshold. In several examples, the threshold can be greater than or equal to π. In examples where the 3D model is a 3D mesh, this duplication involves duplicating one of the two vertices of one or more edges of the mesh. This improves the calculation of angular position when the skin portion is a full revolution surface. A "full revolution surface" means a surface that is closed in the direction of rotation. A full revolution surface can also be called a complete revolution surface or total revolution surface. In other words, a full revolution surface is a surface obtained by rotating the profile curve around an axis (of rotation), i.e., rotating it 360 degrees. Figure 8 shows an example of a full revolution surface that is closed in the direction of rotation but open at both ends (in the axial direction). That is, it has two circular boundaries (each generated by rotating the tip of the profile around the axis of rotation). In such cases, if a discrete element with already calculated angular position values is searched during the search, propagation may be interrupted. By duplicating one or more discrete elements from the neighboring discrete elements whose angular position difference from the already searched discrete element is greater than a threshold, consistency of angular position values is guaranteed, i.e., abrupt changes in angular position values due to full rotation are avoided. Furthermore, the acquisition of a separated surface is also avoided. This is because a separated surface can only be generated by using cut without duplicating the face / polygon at the location of abrupt changes.
[0085] The angular position values should be of the following type.
[0086]
number
[0087] Here, u is the longitudinal axis, and p i θ is the Cartesian position vector of the explored discrete element i, and i θ is the value of the angular position of the explored discrete element. i+1This is the angular position value of the neighboring discrete element i+1 of the explored discrete element i.
[0088] This method may further include scaling the angular position values. Scaling can be used to scale the angular position values of the skin portion transformation to avoid extremely short or extremely long extrusions, depending on the surface extension along the r and z axes.
[0089] This method is performed by a computer. This means that the steps (or substantially all steps) of this method are performed by at least one computer or any similar system. Thus, the steps of this method are performed by a computer, possibly fully automatically or semi-automatically. In several examples, at least some of the triggers for the steps of this method may be performed by user-computer interaction. The required level of user-computer interaction depends on the level of mechanical operation expected and can be balanced with the need to fulfill the user's requirements. In several examples, this level can be defined and / or predefined by the user.
[0090] For example, the step of providing a CAD 3D model of a machine part can be triggered by user action. This action may include, for instance, the user importing, loading, or generating a CAD 3D model.
[0091] A typical computer implementation of the method is to perform the method using a system adapted for this purpose. This system may include a processor coupled with memory and a graphical user interface (GUI). The memory stores a computer program containing instructions for performing the method. The memory may also store a database. The memory is any hardware adapted for such storage and may include several physically separate parts (for example, one part for the program and another for the database).
[0092] Figure 11 shows an example of a GUI for a CAD system. Model 2000 is an example of a CAD 3D model provided in this method. GUI 2100 is a typical CAD-like interface and has standard menu bars 2110, 2120, a lower toolbar 2140, and a side toolbar 2150. As is known in the art, such menu bars and toolbars contain a set of user-selectable icons, each icon associated with one or more actions or functions. Some of these icons are associated with software tools adapted for editing and / or working on the 3D modeled object 2000 displayed in GUI 2100. These software tools can be grouped into workbenches. Each workbench contains a subset of software tools. Specifically, one of the workbenches is an editing workbench suitable for editing the geometric features of the modeled product 2000. During operation, the designer can, for example, pre-select a portion of object 2000 and then start an action (e.g., changing dimensions or colors) or edit geometric constraints by selecting the appropriate icon. For example, a typical CAD operation is the modeling of punching or unfolding of a 3D modeled object displayed on the screen. The GUI can, for example, display data 2500 related to a displayed product 2000. In this example, the data 2500 and its 3D representation 2000, labeled "Feature Tree," relate to a brake assembly including brake calipers and discs. The GUI can also display various types of graphic tools 2130, 2070, and 2080. These are, for example, to facilitate 3D orientation of objects, to trigger simulations of the behavior of edited products, or to render various attributes of the displayed product 2000. The user can interact with the graphic tools by controlling the cursor 2060 with a haptic device.
[0093] Figure 12 shows an example of a system, such as a client computer system like a user's workstation.
[0094] 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 connected to the bus. The client computer is further equipped with a graphical processing unit (GPU) 1110 associated with video random access memory 1100 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. The mass storage controller 1020 manages access to mass memory devices such as a hard drive 1030. Mass memory devices suitable for tangibly realizing computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices such as EPROMs, EEPROMs, and flash memory devices, magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM disks 1040. Any of the above can be supplemented by or incorporated into a specially designed ASIC (Application-Specific Integrated Circuit). The network adapter 1050 manages access to the network 1060. The client computer may also include tactile devices 1090 such as a cursor control device and a keyboard. Using a cursor control device in the client computer, the user can selectively position the cursor at a 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 numerous signal generating devices for input control signals to the system. Typically, the cursor control device is a mouse, and signals can be generated using the buttons on this mouse. Alternatively or additionally, the client computer system may include a sensing pad and / or a sensing screen.
[0095] A computer program may include instructions that can be executed by a computer, and these instructions may include means for causing the system described above to execute the Method. The program may be stored on any data storage medium, including the system's memory. The program may be implemented, for example, in a digital electronic circuit, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as a device, for example, as a product tangibly embodied in a machine-readable storage device executed by a programmable processor. To execute the method steps, a programmable processor may perform the functions of the Method by executing a program of instructions, performing operations on input data, and generating outputs. Thus, a processor may be programmable to receive data and instructions from and to a data storage system in at least one input device and at least one output device, and may be coupled in such a way. The application program may be implemented, if desired, in a high-level procedural programming language or an object-oriented programming language, or in assembly language or machine language. In any case, the language may be a compiled language or an interpreted language. The program may be a complete installation program or an update program. In any case, the use of the program in the system provides instructions for executing the Method.
[0096] We will now examine examples of the method.
[0097] The embodiment describes a situation where a meaningful 3D model (i.e., a feature tree) is obtained by processing a raw geometric representation (e.g., a mesh or point cloud) that includes revolved geometry. The raw geometry can be obtained, for example, from the original feature tree, which is no longer available for visualization and / or analysis purposes. The ability to invert (i.e., acquire) the feature tree enables advanced editing and supports all the functionality provided by conventional CAD programs, in this case all the functionality available for revolved geometry such as shafts or grooves. By detecting and fitting such revolved features onto the geometry, it becomes possible to manufacture corresponding parts by specific industrial processes, such as turning. To achieve this, the embodiment determines the mathematical description of the revolved surface that best fits the mesh or point cloud. In the case of a point cloud, the embodiment requires both the normal vector and the nearest neighbor for each point in the point cloud (therefore providing minimal topological information).
[0098] The embodiment detects a rotating surface by treating a rotation in Cartesian coordinates as an extruded surface in cylindrical coordinates. As shown in Figure 3, the following transformation Φ in 3D space converts Cartesian coordinates to cylindrical coordinates.
[0099]
number
[0100] As shown in Figure 4, the embodiment involves point c and vector u R A rotating surface having an axis defined by can be converted into an extruded surface using the same profile as this rotating surface. This conversion involves translation (from c to the origin) and rotation R(u R (Rotating it with respect to the z-axis), and combining it with transformation Φ, transformation Φ RSet (x) = Φ(R(xc)). This means unfolding the rotating surface into an extruded surface. This transformation does not affect any of the points located within the xz plane (which is converted to the rz plane), so the profile curve is neither changed nor deformed.
[0101] The embodiment allows for the reuse of existing solutions for extruded surfaces by utilizing the equivalence between the rotating surface and the extruded surface, thereby simplifying this problem. The embodiment requires minimal computation as it leverages all available geometric data from the 3D CAD model. This provides a general solution (for all possible types of rotating surfaces) and supports noisy inputs. The resulting solution better fits various types of inputs, such as uneven meshes. Furthermore, the embodiment enables the use of extruded surface detection and fitting in accordance with the previously cited European Patent Applications 21305673.2 and 21305671.6, namely Monte-Carlo shadow estimation, natural surface parameterization, and profile calculation to avoid false-positive extrusions. Specifically, the embodiment can process a skin portion based on an extrusion processing algorithm that includes a material extrusion detection step for the skin portion transformation, i.e., a step of determining whether the skin portion transformation is an extruded surface, using Monte Carlo shadow estimation to avoid false positive extrusions. This is done by applying to the skin portion transformation a computer-implemented method for material extrusion detection disclosed in European Patent Application No. 21305673.2 cited above. The use of this material extrusion detection method may include a step of calculating a profile, which may include fitting one or more curves based on the extrusion direction provided or determined as disclosed in European Patent Application No. 21305673.2 cited above. Additionally or alternatively, the method can process a skin portion based on an extrusion processing algorithm that may include a step of parameterizing the skin portion transformation for natural surface parameterization, i.e., a step of determining one or more first value distributions for each parameter of the skin portion transformation. This is done by applying the computer-assisted method for parameterization disclosed in European Patent Application No. 21305671.6, cited above, to the transformation of the skin portion.The use of this parameterization method may include a step of calculating a profile. This step may include fitting one or more curves based on the determined value distribution as disclosed in European Patent Application No. 21305671.6 cited above. The examples further utilize all available geometric input data with minimal computation and provide a general solution for all possible types of surfaces of revolution. The examples are also robust to noisy inputs.
[0102] The 3D models provided in the examples may specifically include data points (e.g., mesh vertices or points in a point cloud), normals, and neighbor information for each point (i.e., neighboring points). Therefore, the examples work with meshes and point clouds for which given normal vectors and neighbor data have been pre-calculated. The examples can output rotation axes and planar profile curves that define the rotating surface. They can also calculate the limit angles of the rotating surface.
[0103] Energy for rotation detection The embodiment calculates the axis of rotation by optimizing an objective function. The objective function penalizes the non-orthogonality of the normal of the skin portion with respect to the rotation direction perpendicular to the candidate axis of rotation, within a range proportional to the distance to the axis of rotation. Such a penalty generates energy. We will now consider an example of obtaining such energy.
[0104] The embodiment allows for the calculation of the rotation axis starting from the following extrusion detection energy.
[0105]
number
[0106] Here, u is the extrusion direction, n is the local normal to the surface S, and A s is the total surface area S. The constraint is that the extrusion detection energy is less than the extrusion threshold, and the extrusion detection energy JE By minimizing the value of , the extrusion direction can be obtained. Next, the rotation detection energy can be derived as follows.
[0107]
number
[0108] Here, the variables u and c are the origins of the rotation direction and axis of rotation, respectively, p is a local point on the surface S, and π c,u (p) is the projection of p on the axis.
[0109] As previously discussed, the embodiment may include detection of an extruded surface according to the method of European Patent Application No. 21305673.2 cited above. Such extrusion detection is J E An extrusion detection function like the following can be used: Extrusion detection energy J E and rotation detection energy J R Both methods measure the average value of the cosine function (representing the angle) between the surface normal and the extrusion direction or rotation axis. On an accurate extruded / rotated surface, the surface normal is perpendicular to the extrusion direction or rotation axis, respectively. Therefore, theoretically, if u is the extrusion direction or rotation axis of the (extruded / rotated) surface S, the value of the energy function (J) E / J R The value of the energy function tends to be zero. In practice, if the value of the energy function is below the threshold, the extrusion detection method and the rotation detection method can determine the extrusion direction or rotation axis. The threshold can be set according to the noise level in the input 3D CAD model, with the threshold value increasing as the noise in the 3D model increases. In practice, the threshold can be set within the [0.0, 0.05] range, especially around 0.005 if there is no noise in the 3D model. Since the noise in the 3D model has a greater impact on rotational energy, the threshold for the rotation detection method can generally be set to a higher value than that for the extrusion detection method.
[0110] J R In order to obtain,
[0111]
number
[0112] To illustrate, the embodiment defines a map of cylindrical coordinates as follows.
[0113]
number
[0114] Herein lies the following:
[0115]
number
[0116] ξ is C 1 -It is a differential homeomorphism. The examples further include:
[0117]
number
[0118] The two metric tensors above
[0119]
number
[0120] This is defined by the components (M,ξ) within the chart.
[0121]
number
[0122] For some constants r0 > 0 and related volume forms on M, the following holds:
[0123]
number
[0124] Assuming that S⊂M is a Riemann surface and i is an inclusion map, the embodiment defines a pull-back i*T, where T is a tensor field of type (0,s) over M.
[0125]
number
[0126] Here, since di(X) can be easily identified by X, di can be omitted from the notation.
[0127] Next, the embodiment shows a metric tensor on S.
[0128]
number
[0129] This induces, and the induced volumetric form is
[0130]
number
[0131] That is the case. Here,
[0132]
number
[0133] It is located within the chart (U,x) of S. X (α)∈Ω (k-1) (M) is α∈Ω k This is the inner product of (M) and the vector field X. Int X (α)(Y1,···,Y k-1 ) = α(X,Y1,···,Y k-1 ) Also,
[0134]
number
[0135] is one of two smooth vector fields on S that satisfy the following:
[0136]
number
[0137] this is,
[0138]
number
[0139] This is called the normal vector field of S with respect to . The example further shows that in a consistent orientation
[0140]
number
[0141] In order to have this, the following is required:
[0142]
number
[0143] For energy transposition, the examples are as follows:
[0144]
number
[0145] We will consider this. S
[0146]
number
[0147] To determine whether or not it can be an extruded surface, the following energies are considered in the examples.
[0148]
number
[0149] Here,
[0150]
number
[0151] This is a pair.
[0152]
number
[0153] By comparing,
[0154]
number
[0155] Therefore,
[0156]
number
[0157] It appears that way.
[0158] Furthermore,
[0159]
number
[0160] Since we know this, the following holds true.
[0161]
number
[0162] Herein lies the following:
[0163]
number
[0164] To calculate p, we consider the example to be p∈S, and (X,Y)∈T as follows. p Define S.
[0165]
number
[0166] Herein lies the following:
[0167]
number
[0168]
number
[0169] Considering that,
[0170]
number
[0171] And so it becomes as follows:
[0172]
number
[0173]
number
[0174] Once we recognize this, the following holds true.
[0175]
number
[0176] This gives the following:
[0177]
number
[0178] Here, f is sufficiently small and (r / r0) is sufficiently close to 1 (or directly, (1-(r / r0) 2 If we make the hypothesis that f is small, then we approximate p as follows:
[0179]
number
[0180] Replacing it with makes sense. Therefore, the following holds true.
[0181]
number
[0182] The following will be recognized.
[0183]
number
[0184] Herein lies the following:
[0185]
number
[0186] Therefore,
[0187]
Number
[0188] when selected,
[0189]
Number
[0190] it becomes as follows, and the following holds.
[0191]
Number
[0192] Regarding ξ = (r, θ, z) as
[0193]
Number
[0194] for
[0195]
Number
[0196] the cylindrical coordinates of, g can be identified by the usual scalar product above, and the energy can be rewritten as follows.
[0197]
Number
[0198] It can be identified by the usual scalar product above, and the energy can be rewritten as follows.
[0199]
Number
[0200] Also, vol S That is
[0201]
Number
[0202] The measure on S induced by the above Lebesgue measure is the measure associated with the volume form η.
[0203] Therefore, the rotation detection energy J R is derived with respect to the extrusion detection energy J E
[0204] On the surface of the triangular mesh, the energy has the following (exact) individual expressions.
[0205]
Number
[0206] Here, p τ n τ and A τ are the center, normal vector, and area of the triangle τ, respectively.
[0207] According to the second aspect of the method considered above, in solving this non-linear optimization problem of minimizing J R the example can first obtain an initial solution for u and c by fixing the weight 1 / |p τ -π c,u (p τ )| to a constant (e.g., 1) and solving the problem by the least squares method. The example can then inject this initial solution into a non-linear optimization solver using, for example, the Levenberg-Marquardt algorithm.
[0208] |u×(p - c)| = |p - π c,u (p)|, where π c,u(p) is the projection of a surface point p on the axes defined by u and c, i.e., |p-π|. c,u Once we recognize that (p)| is the distance p to this axis, J R It is clear that this is different from the use of a normalization term. Using such a normalization term, the energy function J is as follows: R A variation of this can be obtained.
[0209]
number
[0210] This is J R This refers to the weight 1 / |p-π|. c,u (p) 2 They are different. When we view this problem as an extrusion and unfold the surface, J R The weight term is 1 / |p τ -π c,u (p τ By using )|, the influence of points closer to the axis is effectively reduced compared to points further from the axis.
[0211] Generally, two types of input meshes can exist. 1. A mesh with uniform density. As a result of uniform density, there are more points further away from the axis than near the axis. 2. A mesh generated by 3D software. The number of points is approximately the same at any distance from the axis, but the distance between points (and therefore the size and area of the triangles (or quadrilaterals)) increases proportionally to the distance.
[0212] In particular, in the second example, J RIt is easy to see that the specific weights used are advantageous. We will now examine this by referring to Figure 10 and considering a 2D example with line segments instead of triangular faces. Figure 10 shows an example of a line segment τ. The vertices p(r(p),θ(p)) and p'(r(p'),θ(p')) of the line segment τ satisfy δ=r(p)-r(p')<<1. δ typically represents the effect of noise on the radial coordinate system, but it is not proportional to the value of this radius (it is independent of the clean position of the point). Assuming that θ(p)-θ(p') is sufficiently small (otherwise the approximation is too coarse), then δ≈r(p)sin(θ(p)-θ(p'))sin(β) (β is the angle shown in the figure below). The magnitude of τ is A τ ≈r(p)sin(θ(p)-θ(p')), but by hypothesis it should be proportional to r, which means that sin(θ(p)-θ(p')) can be considered as a constant a. By recognizing sin(θ(p)-θ(p')), J* on this "plane" R The integrated energy following only this principle is as follows: A τ (n τ· e θ ) 2 ≒ar(p)sin(β) 2 =δ 2 / ar(p)
[0213] In other words, at the same noise level in this case, J* R The energy according to this prioritizes the plane located farther from the center, J R The energy according to (in this case, the energy of τ is δ) 2 / ar(p) is not the case. In general, it is estimated that the error on the normal vector increases as the curvature increases, and thus J* R This effect is compensated for by multiplying the local energy of by r. R Using it is justified.
[0214] Development Once the axis is detected, the embodiment converts φ RDefine the geometry (i.e., the skin portion) and unfold it onto the extruded surface. As discussed above, and according to the first aspect of the method discussed above, the embodiment can use the solutions proposed for extruded surfaces in European Patent Applications 21305673.2 and 21305671.6 cited above. To perform the unfolding, after translating the surface (so that the z axis becomes the axis of rotation) and aligning it with the coordinate system, the embodiment can calculate the cylindrical coordinates (r,θ,z) for each Cartesian point p=(x,y,z). The cylindrical coordinates are defined as follows:
[0215]
number
[0216] Here, e x θ is the direction vector of the x-axis. However, in practice, calculating the angle θ independently at each point makes it difficult to calculate the angular spacing actually covered by the surface. Using such independent calculations, it is possible to calculate two separate areas covered by a single surface, as shown in Figure 5, for example. To avoid this, referring to Figure 6, the embodiment utilizes topology to propagate (i.e., explore) the calculation from a randomly selected initial point p0 that must not be located on the axis to its neighbors (provided they are also not located on the axis).
[0217]
number
[0218] By using such an idea, the embodiment can obtain connected surfaces as shown in Figure 7.
[0219] On a mesh, a single vertex is neighbored by multiple adjacent vertices (i.e., connected by edges), while in a point cloud, a single point may be neighbored by k nearest points within the cloud. In the latter case, proximity is defined using all available information, for example, point coordinates, but also normal vectors and / or curvature values, if available. All points located on an axis are assumed to be on the surface boundary and are associated with an angle value of zero. i and e i+1 Since they are in the vicinity, the interval [θ i ,θ i+1 The surface is completely covered, and the continuity of the angular value field on the mesh or point cloud is maintained.
[0220] In order to generate an object that approximately reflects the surface proportions, if unfolded in this manner (and therefore to ensure that subsequent calculations are numerically valid), the embodiment may also scale the unfolded surface along the θ direction to avoid extremely short or extremely long extrusions, depending on the extension of the surface along the r and z axes.
[0221] On a fully rotated surface, as shown in Figures 8 and 9, the embodiment can interrupt propagation if it encounters (i.e., explores) a vertex that has already been processed (i.e., explored). The embodiment can remove connecting edges and adjacent triangles (in the case of a mesh) whenever the angular distance between two neighboring points is too large, for example, greater than π. When unfolding a surface, the embodiment can remove edges 8010 and their triangles from the mesh. Removing such edges results in data loss, which is rarely a problem with high-density meshes in general, but can be a problem with coarse, non-uniform meshes as shown in Figure 9. In some variations, the embodiment can duplicate one of the two vertices of an edge (by adding or removing 2π from its angle) so as to preserve the edge and its triangle in the unfolded result.
[0222] To avoid the generation of separated unfolded meshes, the embodiment performs propagation along triangles rather than along vertices and calculates the angular values of the centroids of the triangles. This ensures that the resulting unfolded mesh is connected.
[0223] application Since the rotating surface is unfolded onto the extruded surface (using the exact same profile curve in the rz plane), the embodiment can apply existing technical solutions to the extruded surface and utilize their results on the rotating surface according to a first aspect of the invention. These may include, but are not limited to, Monte Carlo shadow estimation according to the previously cited European Patent Application DS2020-29, and / or inductive (posteriori) false-positive extruder detection by natural surface parameterization according to the previously cited European Patent DS2020-23. The profile curve can then be robustly calculated using these results (avoiding the problem of overfitting that can occur when fitting the curve to a planar point cloud). Since the embodiment replaces topological information with the extruded surface, i.e., neighboring vertices on the rotating surface remain neighboring on the extruded surface, these methods can be used.
[0224] Using the Monte Carlo shadow estimation method discussed above, extrusion detection (and CAD processing in general) can be made more robust. Specifically, once the candidate extrusion surface and potential extrusion direction are known, this method can be used to provide additional conditions that guarantee that this surface more strongly approximates the extrusion and that it is not a surface with a good normal vector by chance. With this type of algorithm, detection behaves much better in the presence of noise. This Monte Carlo shadow estimation method estimates the potential extrusion direction e on the unfolded potential rotating surface. θ It can be used together with this.
[0225] The embodiment can detect the extruded surface and calculate each axis and center, and then calculate the angular parameterization of the entire surface using basic trigonometry. Specifically, the embodiment follows the profile directly on the rotating surface mesh (i.e., angular direction e) according to the technique of European Patent Application No. 21305671.6 cited above. θ The parameterization (oriented in a tangential direction perpendicular to the curve) can be calculated. Alternatively, the example suggests that the same technique can be applied to an extruded mesh obtained after unfolding, which is an approximation of a flat surface (without inherent curvature), implying that the PDE for solution will have an even simpler form.
[0226] Furthermore, since the transformation has equal length in r and z coordinates, it is sufficient to calculate the profile of the extruded surface after unfolding in order to find the profile of the rotating surface. This can be done, for example, using the parameterization, projection of vertices along the extrusion direction, and curve fitting to a parameterized point cloud on a plane, as introduced earlier.
Claims
1. A computer-aided design (CAD) 3D model of a machine part including a portion having a material distribution, To provide the 3D model including the skin portion of the 3D model representing the outer surface of the part of the machine component, The skin portion is processed based on an extrusion processing algorithm. Includes, The transformation of the skin portion is input to the extrusion processing algorithm, and the transformation represents the development of the material distribution of the portion. method.
2. Processing the skin portion based on the extrusion processing algorithm is, The transformation is obtained by unfolding the skin portion, The conversion is input to the extrusion processing algorithm, Execute the aforementioned extrusion processing algorithm and The method according to claim 1, including the method described in claim 1.
3. The aforementioned extrusion processing algorithm is: To determine whether the transformation of the skin portion represents the outer surface of the material distribution configured as an extrusion, and / or, Calculating the extrusion profile The method according to claim 2, including the method described in claim 2.
4. The method according to any one of claims 1 to 3, wherein processing the skin portion based on the extrusion processing algorithm includes detecting material rotation in the portion of the machine part, the material rotation detection includes determining the rotation axis by optimizing an objective function that penalizes the non-orthogonality of the normal (n) of the skin portion with respect to a rotation direction (u × (p - c)) perpendicular to a candidate rotation axis (u) in a range proportional to the distance to the rotation axis.
5. The aforementioned objective function is of the following type: [Math 1] Here, u is the direction of the candidate rotation axis, c is the origin of the candidate rotation axis, and A S π is the area of the skin portion, S is the skin portion, p is the position on the skin portion, and π c,u The method according to claim 4, wherein (p) is the orthogonal projection of p onto the candidate axis of rotation, and n is the normal of the skin portion at position p.
6. The aforementioned development is, To provide a rotating shaft, The cylindrical coordinate definition values of the skin portion, which include a first value, each of which defines a position on the skin portion with respect to a cylindrical coordinate system having a longitudinal axis that is the axis of rotation, are determined. Determine a Cartesian coordinate definition for a Cartesian coordinate system having one axis which is the longitudinal direction, wherein the Cartesian coordinate definition includes a second value that defines the position on the transformation, and the second value corresponds to the first value. The method according to claim 1, including the method described in claim 1.
7. The method according to claim 6, wherein the skin portion is represented by a 3D discrete geometric representation having discrete elements, and determining the cylindrical coordinate definition of the skin portion includes determining the first value of each discrete element of the 3D discrete geometric representation.
8. The first value of the cylindrical coordinate standard is, for each discrete element, The value of the radial distance, which is the norm of the radial vector (u × p) with respect to the longitudinal axis (u), The values of the radial vector and the angular position on the skin portion with respect to the longitudinal axis, The value of the longitudinal position indicating the position on the longitudinal axis, The method according to claim 7, comprising the above.
9. The method according to claim 8, wherein determining the cylindrical coordinate definition value includes calculating the value of the angular position by exploring the discrete elements of the 3D discrete geometric representation and calculating the angular position of the neighboring discrete elements of each explored discrete element.
10. The method according to claim 9, wherein calculating the value of the angular position of neighboring discrete elements of the explored discrete element includes duplicating one or more neighboring discrete elements from among the neighboring discrete elements whose difference in angular position from the explored discrete element is greater than a threshold.
11. The aforementioned value of the angular position is of the following type: [Math 2] Here, u is the longitudinal axis, and p i θ is the Cartesian position vector of the explored discrete element i, and i θ is the value of the angular position of the discrete element that was explored, i+1 The method according to any one of claims 9 to 10, wherein is the value of the angular position of the neighboring discrete element i+1 of the explored discrete element i.
12. The method according to claim 8, further comprising scaling the value of the angular position.
13. A computer program comprising instructions for performing the method described in claim 1.
14. A computer-readable storage medium on which the computer program described in claim 13 is recorded.
15. A system comprising a processor coupled to memory and a graphical user interface, wherein the memory stores the computer program described in claim 13.
Citation Information
Patent Citations
Efficient profile extrusion die design method
CN110750931A
Object-oriented graphic sweep system
JP1997504631A
Processor, processing method, processing program and recording medium for point group data
JP2013097489A
Data serialization extrusion for converting two-dimensional images to three-dimensional geometry
US20200394343A1